#deserialize #crypto #key #script #block #transaction #bitcoin

no-std monacoin

适用于使用和互操作 Monacoin 和其他加密货币的通用库

2 个不稳定版本

使用旧的 Rust 2015

0.27.1-pre2022年1月21日
0.23.0 2020年4月28日

#96#deserialization

CC0 许可证

1MB
15K SLoC

Status Continuous integration Safety Dance

注意

这是对 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