5 个版本 (重大更新)

0.6.0 2021 年 9 月 30 日
0.5.0 2021 年 8 月 9 日
0.4.0 2021 年 3 月 17 日
0.3.0 2021 年 2 月 17 日
0.2.0 2020 年 12 月 21 日

#bdk 中排名 11

Download history 5455/week @ 2024-03-14 7135/week @ 2024-03-21 4745/week @ 2024-03-28 5719/week @ 2024-04-04 7098/week @ 2024-04-11 6025/week @ 2024-04-18 5864/week @ 2024-04-25 4258/week @ 2024-05-02 5601/week @ 2024-05-09 5763/week @ 2024-05-16 5036/week @ 2024-05-23 6135/week @ 2024-05-30 7396/week @ 2024-06-06 6188/week @ 2024-06-13 5005/week @ 2024-06-20 2756/week @ 2024-06-27

每月下载量 22,312
28 crate 中使用(直接使用 7 个)

MIT/Apache

6KB
103

比特币开发套件

BDK

一个用 Rust 编写的现代、轻量级的基于描述符的钱包库!

Crate Info MIT or Apache-2.0 Licensed CI Status Wallet API Docs Rustc Version 1.63.0+ Chat on Discord

项目主页 | 文档

关于

bdk 库旨在为基于比特币的应用程序提供精心设计和审查过的组件。它建立在优秀的 rust-bitcoinrust-miniscript crate 的基础上。

⚠ 比特币开发套件的开发人员正在发布 v1.0,这是对库工作方式的根本重写。有关此项目的背景信息,请参阅 https://bitcoindevkit.org/blog/road-to-bdk-1/(忽略时间线 😁)。有关发布时间表,请参阅 BDK 1.0 项目页面

架构

该项目分为几个 crate,位于 /crates 目录中

  • wallet:包含由其他组件提供的低级机制构建的中央高级 Wallet 类型
  • chain:存储和索引链数据的工具
  • persist:定义 BDK 钱包数据持久性的类型
  • file_store:(实验性)将链数据存储在单个文件中的持久化后端
  • esplora:扩展 esplora-client 包,提供从 Esplora HTTP 服务器获取链数据的方法,以便 bdk_chainWallet 可以消费
  • electrum:扩展 electrum-client 包,提供从 electrum 服务器获取链数据的方法,以便 bdk_chainWallet 可以消费

如何使用这些组件的完整示例在 /example-crates

  • example_cli:被 example_* 包使用的库。提供同步、显示余额、生成地址和创建交易等实用工具,而无需使用 bdk_wallet Wallet
  • example_electrum:基于 example_clielectrum 包构建的命令行比特币钱包应用程序。展示了 bdk 工具(chain + file_store + electrum)的力量,而不依赖于主 bdk_wallet 库。
  • example_esplora:基于 example_cliesplora 包构建的命令行比特币钱包应用程序。展示了 bdk 工具(chain + file_store + esplora)的力量,而不依赖于主 bdk_wallet 库。
  • example_bitcoind_rpc_polling:基于 example_clibitcoind_rpc 包构建的命令行比特币钱包应用程序。展示了 bdk 工具(chain + file_store + bitcoind_rpc)的力量,而不依赖于主 bdk_wallet 库。
  • wallet_esplora_blocking:使用 Wallet 通过 Esplora 阻塞接口同步和消费
  • wallet_esplora_async:使用 Wallet 通过 Esplora 异步接口同步和消费
  • wallet_electrum:使用 Wallet 通过 Electrum 同步和消费

最低支持的 Rust 版本 (MSRV)

此库应与Rust 1.63.0的任何功能组合编译。

要使用MSRV构建,您需要按照以下方式固定依赖项

cargo update -p zstd-sys --precise "2.0.8+zstd.1.5.5"
cargo update -p time --precise "0.3.20"
cargo update -p home --precise "0.5.5"
cargo update -p proptest --precise "1.2.0"
cargo update -p url --precise "2.5.0"

许可证

根据您选择的以下任一许可证授权

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您提交的任何旨在包含在作品中的贡献都将按上述方式双授权,不附加任何额外的条款或条件。

依赖项

~1.5MB
~35K SLoC