38个版本
1.0.0-rc.2+1 |
|
---|---|
0.11.0-beta.7 | 2024年8月15日 |
0.11.0-beta.6 | 2024年5月24日 |
0.11.0-beta.5 | 2024年3月19日 |
0.4.0 | 2021年3月8日 |
#789 in 神奇豆子
83 每月下载次数
505KB
3K SLoC
客户端验证基础库
这是一个定义客户端验证标准的实现,代表了一套基础库。这些库覆盖的标准包括 LNPBP-4、LNPBP-7、LNPBP-8、LNPBP-9 和 LNPBP-81(更多详细信息请参阅下面的组件部分)。
客户端验证是一种基于证明发布/承诺媒介层的分布式计算范式,该媒介层可能是比特币区块链或其他类型的分布式共识系统。
该库的开发得到了 LNP/BP 标准协会 的支持,并在其 GitHub 页面 上进行。
客户端验证的原型最初由Peter Todd提出,其潜在应用由Giacomo Zucco设计。Dr Maxim Orlovsky在社区的大量参与下将其塑造成协议设计。
该库支持的最低Rust版本(MSRV)是1.66和2021版Rust。
文档
所有库的详细开发人员和API文档可以在以下位置访问:
- https://docs.rs/client_side_validation/
- https://docs.rs/single_use_seals/
- https://docs.rs/commit_verify/
要了解该库所支持的技术,请查看我们技术演示的幻灯片和LNP/BP 技术讲座视频。
组件
该库由以下三个主要组件组成,它们定义了构成客户端验证 API 和其核心功能的独立部分。这些是
- Commit-verify 客户端验证特定 API
- Single-use-seals API(《LNPBP-8 标准》)
- 从库根目录开始的客户端验证 API,根据《LNPBP-9 标准》将这些组件连接在一起。
用法
存储库包含用于客户端验证的 Rust 库。
在其他项目中使用库
要使用库,您只需要最新版本的库,发布到 crates.io 的 [dependencies]
部分,您的项目 Cargo.toml
文件中。以下是该存储库中可用的完整库列表
client_side_validation = "1" # "Umbrella" library including all of the tree libraries below
commit_verify = "1" # Consensus and multi-message commitments
single_use_seals = "1" # Generic (non-bitcoin-specific) API
"Umbrella" client_side_validation
库默认配置了功能集,启用所有功能(并包括上述其他所有库)。如果需要限制此集合,则可以使用特定库或以下方式配置主库
[dependencies.client_side_validation]
version = "1"
default-features = false
features = [] # Your set of features goes here
该库有四个功能标志,默认情况下都不使用
rand
,提供对生成 32 字节序列的Slice32
类型支持,用于许多 LNP/BP 应用(例如作为哈希锁定预像或在 LNPBP-4 多承诺期间使用);serde
,提供对整个库数据结构序列化支持使用 serde;async
,提供用于使用异步 Rust 的项目的异步特性。
有关可能启用库的具体功能,请查阅位于每个库子目录中的 README.md
文件中的库特定指南。
基于客户端验证的库
大多数开发者可能对基于客户端验证的更高级库更感兴趣,将其应用于特定的承诺媒介(区块链中的比特币交易图或状态通道,或更神秘的系统,如 elements & liquid 使用的机密比特币交易,或基于 mimblewimble 的系统)。以下是(可能不完整)此类库的列表
- 比特币:BP 核心库,其中包含比特币 UTXO 单次使用印章实现,用于合约支付和签名类型印章,以及用于确定性比特币承诺的库。此库由 LNP/BP 协会维护。
- Pandora 印章链,是 Pandora 网络 的实验性区块链,使用修改后的比特币共识规则进行客户端验证,扩展了 eltoo-和契约相关功能,并去除了原生区块链级别的硬币。
贡献
贡献指南可在CONTRIBUTING中找到。
许可协议
库按照Apache 2.0开源许可证分发。有关许可证详情,请参阅LICENCE文件。
依赖项
~5MB
~104K SLoC