1 个不稳定版本
0.1.0-preview | 2021年7月28日 |
---|
#466 in #bitcoin
66KB
1K SLoC
Rust 中的 PayJoin 实现
关于
免责声明:正在进行中!
虽然我认为运行它的风险不大,但现在请不要依赖于它的安全性!请至少审查验证无超额支付的代码,并告诉我你已经做了。
开发状态
- 发送方 - [x] 基本逻辑 - [x] 大多数检查已实现 - [x] 文档 - [x] 使用官方测试向量的单元测试通过 - [ ] 许多单元测试 - [x] 费用贡献支持 - [x] 使用 bitcoind 的示例客户端 - [x] 已测试并可与 BTCPayServer 一起工作 - [ ] 已测试并可与 WasabiWallet 一起工作 - [ ] 强制执行最低费用率 - [ ] 独立审查 - [ ] 独立测试
- 接收方 - [ ] 基本逻辑 - [ ] 大多数检查已实现 - [ ] 文档 - [ ] 使用官方测试向量的单元测试通过 - [ ] 许多单元测试 - [ ] 费用贡献支持 - [ ] 使用 bitcoind 的示例客户端 - [ ] 已测试并可与 BTCPayServer 一起工作(除 BTCPayServer 错误 外) - [ ] 已测试并可与 WasabiWallet 一起工作 - [ ] 已测试并可与 Blue Wallet 一起工作 - [ ] 强制执行最低费用率 - [ ] 折扣支持 - [ ] 独立审查 - [ ] 独立测试
- 代码质量 - [x] 符合 Rust 风格的代码 - [x] 新类型 - [x] 无恐慌错误处理 - [x] 没有未经验证/分析/证明的
unsafe
代码 - [ ] 无警告 - [ ] CI - [ ] 集成测试 - [ ] 模糊测试 - [ ] 覆盖率测量
描述
这是一个实现 BIP78 PayJoin 的库和示例二进制文件。该库对 IO 完全无感知——实际上,它不做任何 IO。这种设计的首要目标是使其易于单元测试。虽然我们还没有达到那里,但它已经比 针对 Electrum 的 PayJoin PR 多了无限多的测试。 :P
另一个优点是它不关心你使用 async
、阻塞、tokio
、sync-std
hyper
、actix
还是其他什么。Rust 中已经有了太多的框架,所以最好避免直接将其引入库代码中。该库目前仅包含发送方实现,但我还想要添加接收方。
提供的二进制文件目前是一个快速拼凑的工具,用于通过Bitcoin Core钱包执行PayJoin。意图是随着时间的推移进一步开发它,以支持其他后端(例如LND内部钱包)。
欢迎贡献!
许可证
MITNFA免责声明:如果你在生产环境中使用这个库而没有审查,你同意公开受到羞辱和嘲笑。审查员必须展示对Rust和相关的比特币协议细节的良好知识。
依赖关系
~7MB
~84K SLoC