24 个版本

0.10.2 2024 年 3 月 20 日
0.10.0 2023 年 4 月 26 日
0.10.0-alpha.12023 年 3 月 24 日
0.9.0-rc.12022 年 12 月 25 日
0.5.0 2021 年 11 月 23 日

#6#bip32

Download history 150/week @ 2024-04-01 53/week @ 2024-04-08 57/week @ 2024-04-15 76/week @ 2024-04-22 52/week @ 2024-04-29 83/week @ 2024-05-06 68/week @ 2024-05-13 67/week @ 2024-05-20 90/week @ 2024-05-27 74/week @ 2024-06-03 58/week @ 2024-06-10 55/week @ 2024-06-17 77/week @ 2024-06-24 33/week @ 2024-07-08 83/week @ 2024-07-15

194 每月下载量
28 crate 中使用 (4 个直接使用)

Apache-2.0

205KB
4K SLoC

描述符钱包库

Build Tests Lints codecov

crates.io Docs unsafe forbidden Apache2 licensed

用于构建基于描述符的比特币钱包的库。现代冷钱包和热钱包所需的一切,但还不是 rust-bitcoin 库的一部分。

该库明确地将需要访问私钥的部分与那些永远不会触及私钥的部分分开。建议钱包设计时假设除交易签名外,所有操作都不会访问私钥;这部分必须分离到其他仓库/库,并严格控制。可以查看 bin 目录中的 btc-hotbtc-cold 命令行钱包示例,以了解如何实现这一点。

库提供

  • 对 BIP-32 推导路径的高效操作,将需要访问私钥的推导与始终不操作的部分分离;
  • miniscript 和经典比特币描述符;
  • 使用输入描述符的 PSBT 构造函数,允许在每笔输入的基础上指定关于 RBF、先前的公钥 P2C 微调以及自定义哈希类型的自定义信息;
  • PSBT 签署者,支持 RBF、相对和绝对时间锁定、所有 sighash 类型、复杂脚本,包括基于见证和 taproot 的;
  • 脚本模板,允许将扩展公钥嵌入到比特币脚本汇编中;
  • 事务输入和输出的字典序排序;
  • 脚本类型系统;
  • 用于处理哈希锁定合同的辅助类型;
  • PSBT 实用函数(检索先前输出、计算手续费);
  • 在 Electrum 服务器 API 之上的交易解析器 API,用于方便地计算已挖矿的交易费等;
  • 支持 SLIP-32/132 扩展公钥类型(ypubzprv 等)。

Wallet comparison diagram

命令行钱包

可以使用以下命令安装命令行钱包(需要已安装 rust 编译器和 rustup 工具)

$ rustup default stable
$ rustup update
$ git clone https://github.com/BP-WG/descriptor-wallet
$ cd descriptor-wallet
$ cargo install --path . --locked --all-features

这将向系统添加 btc-hotbtc-cold 命令。

使用 Docker 安装

构建

克隆仓库并切换到所需版本(此处为 v0.8.0

$ git clone https://github.com/BP-WG/descriptor-wallet
$ cd descriptor-wallet
$ git checkout v0.8.0

构建并标记Docker镜像

$ docker build -t descriptor-wallet:v0.8.0 .

用法

$ docker run descriptor-wallet:v0.8.0 btc-hot --help
$ docker run descriptor-wallet:v0.8.0 btc-cold --help

文件示例

$ docker run -v $PWD/data:/data descriptor-wallet:v0.8.0 btc-hot seed /data/testnet.seed
$ docker run -v $PWD/data:/data descriptor-wallet:v0.8.0 btc-hot derive --testnet /data/testnet.seed /data/testnet

依赖项

~11MB
~159K SLoC