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

syscoin

通用库,用于使用和与其他支持AUXPOW的加密货币(如Syscoin)互操作

16个版本 (2个稳定版)

使用旧的Rust 2015

4.16.1 2019年2月4日
0.16.15 2019年2月10日

#46#反序列化

CC0 许可证

520KB
7.5K SLoC

Status

Rust Bitcoin 库

支持反序列化、解析和执行与比特币和其他基于区块链货币相关的数据结构和网络消息的库。

文档

支持(或应该支持)

  • 比特币协议网络消息的反序列化
  • 区块和事务的反序列化
  • 脚本反序列化
  • 私钥和地址创建、反序列化和验证(包括对BIP32的全支持)
  • 支持在《Blockstream侧链白皮书》附录A中描述的合约支付

对于与Bitcoin Core的JSONRPC交互,建议使用rust-jsonrpc,它使用底层的strason库,将十进制数字解析为字符串,从而防止精度错误。

已知限制

共识

这个库**不应该**用于共识代码(即完全验证区块链数据)。技术上支持这样做,但这样做是非常不推荐的,因为这个库与Bitcoin Core参考实现之间存在许多已知和未知的不同之处。在像比特币这样的基于共识的加密货币中,所有各方使用相同的规则来验证数据至关重要,而这个库根本无法实施与Core相同的规则。

鉴于C++和Rust的复杂性,这不太可能得到解决,并且没有计划这样做。当然,欢迎为修复特定的共识不兼容性提供补丁。

文档

目前,文档非常稀疏。欢迎为添加使用示例和扩展现有文档提供补丁。

关于替代币/替代链的政策

欢迎通过向现有枚举中添加常量(例如设置网络消息魔数序列)来支持非比特币加密货币的补丁。任何更复杂的修改都需根据具体情况考虑。由于加密货币领域中的项目经常出现和消失,并且设计本身就不太完善,因此保持代码库的可维护性是一个重要目标。

一般来说,提高跨链兼容性的修改(例如支持跨链原子交换)比仅支持单个区块链的修改更有可能被接受。

发行说明

请参阅CHANGELOG.md

依赖项

~1.2–4MB
~57K SLoC