3个版本
使用旧的Rust 2015
0.28.4 | 2024年7月29日 |
---|---|
0.28.3 | 2024年7月29日 |
0.28.2 | 2024年7月26日 |
#14 in #bip-32
407 每月下载量
1MB
18K SLoC
Rust Bellscoin
支持反序列化、解析和执行与Bellscoin相关的数据结构和网络消息的库。
支持(或应该支持)
- Bellscoin协议网络消息的反序列化
- 区块和交易的反序列化
- 脚本的反序列化
- 私钥和地址创建、反序列化和验证(包括完整的BIP32支持)
- PSBT创建、操作、合并和最终化
已知限制
共识
此库 不得 用于共识代码(即完全验证区块链数据)。技术上支持这样做,但这样做非常不妥,因为此库与Bellscoin Core参考实现之间存在许多差异,已知和未知。在基于共识的加密货币(如Bellscoin)中,所有各方都使用相同的规则来验证数据至关重要,而这个库无法实现与Core相同的规则。
鉴于C++和Rust的复杂性,这可能永远不会得到修复,也没有计划这样做。当然,欢迎修复特定共识不兼容性的补丁。
支持16位指针大小
不支持16位指针大小,并且我们不能保证它们将被支持。如果您关心它们,请告诉我们,这样我们可以了解对此的兴趣有多大,并可能决定支持它们。
文档
目前可在 docs.rs/bellscoin 上找到。添加使用示例和扩展现有文档的补丁将非常受欢迎。
贡献
贡献通常受到欢迎。如果您打算进行较大更改,请在提交PR之前在问题中进行讨论,以避免重复工作和架构不匹配。如果您有任何问题或想要讨论的想法,请加入我们
最低支持的Rust版本(MSRV)
此库应始终能够在任何组合的功能(除 no-std
)下在 Rust 1.29 或 Rust 1.47 下编译,包括使用 no-std
。
由于某些依赖项在次要/修补版本中破坏了构建,要使用 1.29.0 编译,需要运行以下版本锁定命令
cargo update -p cc --precise "1.0.41" --verbose
为了使用 use-serde
功能或使用 1.29.0 构建单元测试,还需要以下版本锁定命令
cargo update --package "serde" --precise "1.0.98"
cargo update --package "serde_derive" --precise "1.0.98"
为了让功能 base64
与 1.29.0 一起工作,我们还需要锁定 byteorder
cargo update -p byteorder --precise "1.3.4"
安装 Rust
可以使用您选择的包管理器或 rustup.rs 安装 Rust。前者被认为更安全,因为它通常不涉及对 CA 系统的信任。但您应该知道,您发行版提供的 Rust 版本可能已经过时。通常,对于 rust-bitcoin
来说这不是问题,因为我们支持比当前稳定版本更旧的版本(参见 MSRV 部分)。
构建
可以使用 cargo
构建和测试此库
git clone [email protected]:rust-bitcoin/rust-bitcoin.git
cd rust-bitcoin
cargo build
您可以使用以下命令运行测试
cargo test
有关更详细说明,请参阅 cargo
文档
拉取请求
每个 PR 至少需要两个审查才能合并。在审查阶段,维护者和贡献者可能会留下评论并要求更改。请尝试解决它们,否则您的 PR 可能会在更长一段时间的不活动后被关闭而不合并。如果您的 PR 尚未准备好审查,请通过在标题前添加 WIP:
来标记。
CI 管道
CI 管道在运行在每个 MR 之前需要获得批准。
为了加快审查过程,可以使用 act 在本地运行 CI 管道。由于目前不支持缓存,使用 act
时将跳过 fuzz
和 Cross
作业。我们不 积极 支持 act
,但会合并修复 act
问题的 PR。
发行说明
请参阅 CHANGELOG.md。
许可
本项目中的代码根据 Creative Commons CC0 1.0 Universal license 许可。
依赖项
~5–8MB
~89K SLoC