Expand description
§Introduction
This library is designed for efficient and massive deserialization of the binary Bitcoin Core block files.
It decodes all transactions, addresses, script types, connects outpoints of inputs to outputs, to figure out input addresses.
This library allows efficient and versatile reading of all bitcoin transaction records. This is good for analysis and research on bitcoin trading behaviour.
§Example
use bitcoin_explorer::BitcoinDB;
use std::path::Path;
let path = Path::new("/Users/me/bitcoin");
// launch without reading txindex
let db = BitcoinDB::new(path, false).unwrap();
// launch attempting to read txindex
let db = BitcoinDB::new(path, true).unwrap();
§Features
Feature ‘on-disk-utxo
’ is enabled by default,
which uses an on-disk cache to keep track of unspent transaction
for iterator db.iter_connected_block
.
To use in-memory UTXO cache for better performance,
use default-features = false
to Cargo.toml,
which requires 32GB+ RAM.
Re-exports§
pub use crate::iter::BlockIter;
pub use crate::iter::ConnectedBlockIter;
pub use crate::parser::block_index::BlockIndex;
pub use crate::parser::block_index::BlockIndexRecord;
pub use crate::parser::proto::connected_proto::ConnectedBlock;
pub use crate::parser::proto::connected_proto::ConnectedTx;
pub use crate::parser::proto::connected_proto::FConnectedBlock;
pub use crate::parser::proto::connected_proto::FConnectedTransaction;
pub use crate::parser::proto::connected_proto::SConnectedBlock;
pub use crate::parser::proto::connected_proto::SConnectedTransaction;
pub use crate::parser::proto::full_proto::FBlock;
pub use crate::parser::proto::full_proto::FBlockHeader;
pub use crate::parser::proto::full_proto::FTransaction;
pub use crate::parser::proto::full_proto::FTxOut;
pub use crate::parser::proto::simple_proto::SBlock;
pub use crate::parser::proto::simple_proto::SBlockHeader;
pub use crate::parser::proto::simple_proto::STransaction;
pub use crate::parser::proto::simple_proto::STxOut;
Modules§
- iter
- This module defines the infrastructure for efficient iteration over blocks
- parser
- This module defines how to parse binary data on disk to Block structs defined in proto.
Structs§
- Address
- A Bitcoin address.
- BitcoinDB
- This is the main struct of this crate!! Click and read the doc.
- Block
- A Bitcoin block, which is a collection of transactions with an attached proof of work.
- Block
Hash - A bitcoin block hash.
- Block
Header - A block header, which contains all the block’s information except the actual transactions
- InnerDB
- Script
- A Bitcoin script.
- Transaction
- A Bitcoin transaction, which describes an authenticated movement of coins.
- Txid
- A bitcoin transaction hash/transaction ID.
Enums§
- Network
- The cryptocurrency to act on
Traits§
- FromHex
- Trait for objects that can be deserialized from hex strings
- ToHex
- Trait for objects that can be serialized as hex strings
Functions§
- get_
addresses_ from_ script - Extract addresses from a script public key.
- parse_
script Deprecated - Extract addresses from a script public key.