0.1.31 |
|
---|
#51 in #explorer
135KB
3K SLoC
bitcoin-query
bitcoinquery
是一个用 rust
开发的 Python 包,用于将比特币核心二进制文件作为数据库访问。
如何安装?
此库适用于 Python 和 Rust。
对于 Python 用户,使用 pip install bitcoin-query
。
对于 Rust 用户,在 Cargo.toml
中包含 bitcoinquery="0.1"
。
安装要求
目前仅提供 macOS py39 轮子。
对于使用 pip 在其他操作系统或 Python 版本上构建软件包,请确保已安装 Rust 工具链,并且已安装 cmake
。
文档
有关 API 文档,请访问 文档。
兼容性说明
此软件包处理另一个软件的二进制文件 Bitcoin Core
。它可能与较旧的 Bitcoin Core 版本不兼容。
当前与 Bitcoin Core 版本 v0.21.1.0-g194b9b8792d9b0798fdb570b79fa51f1d1f5ebaf
兼容。版权 (C) 2009-2020 The Bitcoin Core 开发者。
使用说明
它包含一个类 BitcoinDB
。
import bitcoinquery as bq
# parse the same path as `--datadir` argument for `bitcoind`.
db = bq.BitcoinDB("~/Bitcoin")
# get the length of the longest chain currently on disk.
db.get_max_height()
# get block of a certain height
db.get_block(1000)
# to retrieve the connected outputs of each inputs as well
db.get_block(1000, connected=True)
# get block hash of a certain height.
db.get_hash_from_height(1000)
# a fast method for getting just the header.
# in memory query, no disk access
db.get_block_header(1000)
# get block of height 1000.
db.get_height_from_hash("some hash")
# get transaction from txid.
# This queries the `levelDB` each time, thus it is relatively slow.
db.get_transaction("some txid")
# get the height of the block which this transaction belongs.
db.get_height_from_txid("some txid")
# get the script type and addresses from a script public key
db.parse_script("some hex script pubic key")
# use iterator
for block in db.get_block_iter_range(start=1000, end=2000):
do_something_with(block)
# use iterator, iterate over heights
for block in db.get_block_iter_array(heights=[1, 3, 5, 7, 9]):
do_something_with(block)
# use iterator, connect outpoints
for block in db.get_block_iter_range(end=700000, connected=True):
do_something_with(block)
依赖项
~15MB
~241K SLoC