mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-06-17 10:19:44 -07:00
BRK Parser
A very fast and simple Rust library which reads raw block files (blkXXXXX.dat) from Bitcoin Core node and creates an iterator over all the requested blocks in sequential order (0, 1, 2, ...).
The element returned by the iterator is a tuple which includes the:
- Height:
Height - Block:
Block(frombitcoin-rust) - Block's Hash:
BlockHash(also frombitcoin-rust)
Requirements
Even though it reads blkXXXXX.dat files, it needs bitcoind to run with the RPC server to filter out block forks.
Peak memory should be around 500MB.
Disclaimer
A state is saved in {bitcoindir}/blocks/blk_index_to_blk_recap.json to allow for faster starts (see benchmark below) but doesn't yet support locking. Thus it is recommended to run one instance of brk_parser at a time.
Comparaison
| brk_parser | bitcoin-explorer (deprecated) | blocks_iterator | |
|---|---|---|---|
Runs with bitcoind |
Yes ✅ | No ❌ | Yes ✅ |
Runs without bitcoind |
No ❌ | Yes ✅ | Yes ✅ |
0..=855_000 |
4mn 10s | 4mn 45s | > 2h |
800_000..=855_000 |
0mn 52s (4mn 10s if first run) | 0mn 55s | > 2h |
Benchmarked on a Macbook Pro M3 Pro