mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-02 06:48:59 -07:00
parser: rework, made stateless
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
use std::path::Path;
|
||||
use std::{collections::BTreeMap, path::Path};
|
||||
|
||||
use bitcoincore_rpc::{Auth, Client, Result};
|
||||
use bitcoincore_rpc::{Auth, Client};
|
||||
use brk_error::Result;
|
||||
use brk_parser::Parser;
|
||||
use brk_structs::Height;
|
||||
|
||||
@@ -12,35 +13,40 @@ fn main() -> Result<()> {
|
||||
.join("Library")
|
||||
.join("Application Support")
|
||||
.join("Bitcoin");
|
||||
let brk_dir = Path::new(&std::env::var("HOME").unwrap()).join(".brk");
|
||||
|
||||
let rpc = Box::leak(Box::new(Client::new(
|
||||
"http://localhost:8332",
|
||||
Auth::CookieFile(bitcoin_dir.join(".cookie")),
|
||||
)?));
|
||||
|
||||
let parser = Parser::new(bitcoin_dir.join("blocks"), Some(brk_dir), rpc);
|
||||
let parser = Parser::new(bitcoin_dir.join("blocks"), rpc);
|
||||
|
||||
// let start = None;
|
||||
// let end = None;
|
||||
// parser
|
||||
// .parse(start, end)
|
||||
// .iter()
|
||||
// .for_each(|(height, _block, hash)| {
|
||||
// println!("{height}: {}", hash);
|
||||
// });
|
||||
let start = Some(915_155_u32.into());
|
||||
let end = None;
|
||||
let mut blk_index = 0;
|
||||
let mut diff = BTreeMap::new();
|
||||
parser.parse(start, end).iter().for_each(|block| {
|
||||
println!("{}: {}", block.height(), block.hash());
|
||||
let new_blk_index = block.position().blk_index;
|
||||
if new_blk_index < blk_index {
|
||||
diff.insert(blk_index - new_blk_index, block.height());
|
||||
}
|
||||
blk_index = new_blk_index;
|
||||
});
|
||||
|
||||
let block_0 = parser.get(Height::new(0));
|
||||
dbg!("{}", block_0.coinbase_tag());
|
||||
// let v = diff.iter().rev().take(10).collect::<Vec<_>>();
|
||||
|
||||
let block_158251 = parser.get(Height::new(158251));
|
||||
dbg!("{}", block_158251.coinbase_tag());
|
||||
// let block_0 = parser.get(Height::new(0))?;
|
||||
// dbg!("{}", block_0.coinbase_tag());
|
||||
|
||||
let block_173195 = parser.get(Height::new(173195));
|
||||
dbg!("{}", block_173195.coinbase_tag());
|
||||
// let block_158251 = parser.get(Height::new(158251))?;
|
||||
// dbg!("{}", block_158251.coinbase_tag());
|
||||
|
||||
let block_840_000 = parser.get(Height::new(840_004));
|
||||
dbg!("{}", block_840_000.coinbase_tag());
|
||||
// let block_173195 = parser.get(Height::new(173195))?;
|
||||
// dbg!("{}", block_173195.coinbase_tag());
|
||||
|
||||
// let block_840_000 = parser.get(Height::new(840_004))?;
|
||||
// dbg!("{}", block_840_000.coinbase_tag());
|
||||
|
||||
dbg!(i.elapsed());
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ fn main() {
|
||||
let i = std::time::Instant::now();
|
||||
|
||||
let bitcoin_dir = Path::new("").join("");
|
||||
let brk_dir = Path::new("").join("");
|
||||
|
||||
let rpc = Box::leak(Box::new(
|
||||
Client::new(
|
||||
@@ -21,7 +20,7 @@ fn main() {
|
||||
// let start = None;
|
||||
// let end = None;
|
||||
|
||||
let parser = Parser::new(bitcoin_dir.join("blocks"), Some(brk_dir), rpc);
|
||||
let parser = Parser::new(bitcoin_dir.join("blocks"), rpc);
|
||||
|
||||
// parser
|
||||
// .parse(start, end)
|
||||
@@ -43,7 +42,7 @@ fn main() {
|
||||
// .script_pubkey
|
||||
// );
|
||||
|
||||
let block_850_000 = parser.get(Height::new(850_000));
|
||||
let block_850_000 = parser.get(Height::new(850_000)).unwrap();
|
||||
|
||||
let tx = block_850_000.txdata.iter().find(|tx| {
|
||||
tx.compute_txid().to_string()
|
||||
|
||||
Reference in New Issue
Block a user