38个版本

1.0.0-rc.2+1 2021年1月19日
0.11.0-beta.72024年8月15日
0.11.0-beta.62024年5月24日
0.11.0-beta.52024年3月19日
0.4.0 2021年3月8日

#789 in 神奇豆子

Download history 67/week @ 2024-05-20 8/week @ 2024-05-27 5/week @ 2024-06-03 51/week @ 2024-07-01 3/week @ 2024-07-29 80/week @ 2024-08-12

83 每月下载次数

Apache-2.0

505KB
3K SLoC

客户端验证基础库

Build Tests Lints codecov

crates.io Docs unsafe forbidden Apache-2 licensed

这是一个定义客户端验证标准的实现,代表了一套基础库。这些库覆盖的标准包括 LNPBP-4LNPBP-7LNPBP-8LNPBP-9LNPBP-81(更多详细信息请参阅下面的组件部分)。

客户端验证是一种基于证明发布/承诺媒介层的分布式计算范式,该媒介层可能是比特币区块链或其他类型的分布式共识系统。

该库的开发得到了 LNP/BP 标准协会 的支持,并在其 GitHub 页面 上进行。

客户端验证的原型最初由Peter Todd提出,其潜在应用由Giacomo Zucco设计。Dr Maxim Orlovsky在社区的大量参与下将其塑造成协议设计。

该库支持的最低Rust版本(MSRV)是1.66和2021版Rust。

文档

所有库的详细开发人员和API文档可以在以下位置访问:

要了解该库所支持的技术,请查看我们技术演示的幻灯片LNP/BP 技术讲座视频

组件

该库由以下三个主要组件组成,它们定义了构成客户端验证 API 和其核心功能的独立部分。这些是

用法

存储库包含用于客户端验证的 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