bitcoin-explorer
bitcoin_explorer is an efficient library for decoding transaction information from
bitcoin blockchain.
Support bitcoin MainNet, might support other networks in the future.
Documentation
Hardware Requirements
Memory Requirement
Memory requirement: 8 GB physical RAM.
Disk Requirement
SSD for better performance.
Benchmarking
- OS:
x86_64Windows 10 - CPU: Intel i7-9700 @ 3.00GHZ (4-core, 8-threads)
- Memory: 16 GB 2667 Mhz
- Disk: WDC SN730 512GB (SSD)
Iteration Through All Blocks (0 - 700000)
db.iter_block::<SBlock>(0, 700000)
- Time: about 10 minutes
- Peak Memory: <= 500 MB
Iteration Through All Blocks (0 - 700000) With Input Addresses
db.iter_connected_block::<SConnectedBlock>(700000)
Using default configuration
Compile with default features (Cargo.toml):
= "^2.1"
- Time: about 2.5 hours
- Peak Memory: 4 GB
Using non-default configuration (large RAM for good performance)
Compile with non-default features (Cargo.toml):
= { = "^2.1", = false }
- Time: about 30 minutes
- Peak Memory: 32 GB
Examples
get a block (i.e., see doc for what is full/simple format)
use ;
use Path;
get a transaction (in different formats)
Note: this requires building tx index with --txindex=1 flag using Bitcoin Core.
use ;
use Path;
Iterate through blocks (in different formats)
use ;
use Path;
Iterate through blocks (in different format) with outpoints connected to outputs
Notes
Compatibility
This package deals with the binary file of another software Bitcoin Core.
It might not be compatible with older Bitcoin Core versions.
Tested on
Bitcoin Core version v0.21.1.0-g194b9b8792d9b0798fdb570b79fa51f1d1f5ebaf Copyright (C) 2009-2020 The Bitcoin Core developers.
Non-Default Feature (In-Memory-UTXO cache)
If you have more than 32 GB memory, you might try default-features = false
for faster performance on db.iter_connected_block()
= { = "^2.1", = false }