2 个不稳定版本
使用旧的 Rust 2015
0.27.1-pre | 2022年1月21日 |
---|---|
0.23.0 | 2020年4月28日 |
#96 在 #deserialization
1MB
15K SLoC
注意
这是对 rust-bitcoin 的分支。
Rust Monacoin 库
支持对与 Monacoin 相关的数据结构和网络消息进行反序列化、解析和执行的库。
支持(或应该支持)
- Bitcoin 协议网络消息的反序列化
- 块和交易的反序列化
- 脚本反序列化
- 私钥和地址创建、反序列化和验证(包括对 BIP32 的完全支持)
- PSBT 创建、操作、合并和最终化
- 支持在 Blockstream 章节A中的“支付到合约”
对于与 Bitcoin Core 的 JSONRPC 交互,建议使用 rust-bitcoincore-rpc。
已知限制
共识
这个库 不能 用于共识代码(即完整验证区块链数据)。虽然技术上支持这样做,但由于这个库与 Bitcoin Core 参考实现之间存在许多差异(已知的和未知的),这样做是非常不恰当的。在像 Bitcoin 这样的基于共识的加密货币中,所有参与者都必须使用相同的规则来验证数据,而这个库无法实现与 Core 相同的规则。
鉴于 C++ 和 Rust 的复杂性,这不太可能得到修复,也没有计划修复。当然,欢迎为修复特定的共识不兼容性提供补丁。
文档
目前可在 docs.rs/bitcoin 上找到。添加使用示例和扩展现有文档的补丁将非常受欢迎。
最低支持的 Rust 版本 (MSRV)
此库应始终与 Rust 1.32 的任何功能组合编译。
由于一些依赖项在次要/补丁版本中破坏了构建,为了使用 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
Rust 可以使用您选择的包管理器安装或通过 rustup.rs。前者被认为更安全,因为它通常不涉及对 CA 系统的信任。但您应该意识到,您发行版提供的 Rust 版本可能已过时。通常,对于 rust-bitcoin
来说这不是问题,因为我们支持比当前稳定版更旧的版本(参见 MSRV 部分)。
构建
可以使用 cargo
构建和测试库。
git clone [email protected]:wakiyamap/rust-monacoin.git
cd rust-monacoin
cargo build
您可以使用以下命令运行测试
cargo test
有关更详细的说明,请参阅 cargo
文档。
拉取请求
每个 PR 至少需要两个审查才能合并。在审查阶段,维护者和贡献者可能会留下评论并要求更改。请尽力解决它们,否则您的 PR 可能会在更长的不活跃时间后关闭而无法合并。如果您的 PR 尚未准备好审查,请通过在标题前加上 WIP:
来标记。
关于替代币/替代链的政策
这是一个替代币(Monacoin)库。比特币(非替代币)在这里:这里。
发行说明
请参阅 CHANGELOG.md。
许可
本项目中的代码在 Creative Commons CC0 1.0 Universal license 下授权。
依赖项
~7–10MB
~112K SLoC