8个版本 (破坏性更新)
0.27.1 | 2023年4月13日 |
---|---|
0.26.0 | 2023年1月12日 |
0.6.0 | 2022年9月28日 |
0.5.0 | 2022年5月25日 |
0.1.0 | 2021年1月8日 |
#709 in 魔法豆
每月46次下载
165KB
3K SLoC
关于
本项目提供使用最新的BDK API开发的命令行比特币钱包应用程序。这个项目可能看起来小巧而简单,但它通过利用BDK的强大功能,提供了一个强大的基于描述符的通用命令行钱包工具。是的,它支持Taproot!!
本包可用于以下用途
- 立即创建基于miniscript的钱包并连接到您选择的后端(Electrum、Esplora、Core RPC等),并快速体验您自己的复杂比特币脚本工作流程。可以连接一个或多个后端,与一个或多个钱包。
tests/integration.rs
模块用于记录BDK与不同比特币基础设施系统(如Core、Electrum和Lightning(即将推出TM))之间的高级别复杂工作流程。- (计划) 通过
wasm
暴露基本命令处理程序,以便将bdk-cli
功能原生化集成到 Web 平台。有关更多信息,请参阅沙箱页面。
如果您考虑在自己的钱包项目中使用 BDK,bdk-cli 是一个很好的沙箱,可以开始尝试。它允许轻松进行测试网和回归测试钱包操作,尝试使用描述符、miniscript 和 BDK API 所能实现的功能。有关 BDK 的更多信息,请参阅网站和Rust 文档
bdk-cli 可以通过不同的功能进行编译,以满足您的实验需求。
- 数据库选项
key-value-db
:将钱包数据库设置为sled
db。sqlite-db
:将钱包数据库设置为sqlite3
db。
- 区块链选项
rpc
:通过 RPC 将钱包连接到比特币核心。electrum
:将钱包连接到 electrum 服务器。esplora-ureq
或esplora-reqwest
:同步或异步地将钱包连接到 esplora 服务器。
- 额外实用工具
repl
:将 bdk-cli 作为REPL shell 使用(用于快速手动测试钱包操作)。compiler
:打开 bdk-cli 策略编译器命令。verify
:在钱包的每个sync
调用中使用bitcoinconsensus
验证交易。reserves
:使用 bdk-reserves 插件打开 bdk-cli 保留证明 操作命令。(需要electrum
功能)
- 自动节点后端
regtest-bitcoin
:自动部署 regtestbitcoind
节点,连接钱包,并通过bdk-cli node
子命令暴露核心 RPC 命令。regtest-electrum
:自动部署electrsd
和连接bitcoind
节点,通过bdk-cli node
暴露核心 RPC 命令,并提供一个连接到本地electrsd
的钱包。
默认功能集是 repl
和 sqlite-db
。使用默认功能,bdk-cli
可以用作 断网 钱包,并且可以执行所有不需要网络连接的操作。
安装 bdk-cli
从源代码
要从本地 git 仓库安装启用 electrum
区块链客户端的 bdk-cli
开发版本
cd <bdk-cli git repo directory>
cargo install --path . --features electrum
bdk-cli help # to verify it worked
如果没有启用区块链客户端功能,在线钱包命令 sync
和 broadcast
将被禁用。要启用这些命令,必须启用区块链客户端功能,例如 electrum
或其他区块链客户端功能。以下是如何使用带有 esplora-ureq
区块链客户端功能的 bdk-cli
二进制文件的示例。
RUST_LOG=debug cargo run --features esplora-ureq -- wallet --descriptor "wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)" sync
最多只能启用一个区块链功能,可用的区块链客户端功能有:electrum
、esplora-ureq
(阻塞)、esplora-reqwest
(异步)和 rpc
。
从 crates.io
您可以直接从 crates.io 使用以下命令安装 bdk-cli
最新标签的二进制文件,并带有在线钱包功能
cargo install bdk-cli --features electrum
bdk-cli 二进制文件使用示例
要获取 bdk-cli
二进制文件的使用信息,请使用以下命令,该命令将返回可用的钱包选项和命令列表
cargo run
将钱包同步到默认的Electrum服务器
cargo run --features electrum -- wallet --descriptor "wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)" sync
使用core rpc将钱包同步到Bitcoin Core节点(假设为运行在127.0.0.1:18443的regtest节点)
cargo run --features rpc -- --network regtest wallet --node 127.0.0.1:18443 --descriptor "wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)" sync
使用自定义日志获取钱包余额
RUST_LOG=debug,sled=info,rustls=info cargo run -- wallet --descriptor "wpkh(tpubEBr4i6yk5nf5DAaJpsi9N2pPYBeJ7fZ5Z9rmN4977iYLCGco1VyjB9tvvuvYtfZzjD5A8igzgw3HeWeeKFmanHYqksqZXYXGsw5zjnj7KM9/*)" get_balance
生成一个新的扩展主密钥,适用于在描述符中使用
cargo run -- key generate
资源
文档:[bitcoindevkit.org CLI部分](https://bitcoindevkit.org/bdk-cli/installation/ "bitcoindevkit.org CLI Section")
在《Bitcoin Developers Show》上的相关内容:[Youtube](https://www.youtube.com/watch?v=-Q8OD8NCEe4 "Youtube")
视频教程:[Youtube播放列表](https://www.youtube.com/playlist?list=PLmyfVqsSelG3jSobvpY3GoNKDtAumsrg3 "Youtube Playlist")
依赖项
~17–42MB
~576K SLoC