#consensus #bitcoin #lnp-bp #binary-encoding #rgb #data-structures

confined_encoding

受限编码:客户端验证的确定二进制序列化

5个版本

0.9.0-alpha.52022年12月7日
0.9.0-alpha.42022年11月26日
0.9.0-alpha.32022年11月25日
0.9.0-alpha.22022年11月17日
0.9.0-alpha.12022年11月16日

#32 in #lnp-bp

27 每月下载
用于 confined_encoding_test

Apache-2.0

72KB
1.5K SLoC

受限编码库

Build Tests Lints codecov

Docs unsafe forbidden Apache-2 licensed

客户端验证的共识关键应用的确定二进制序列化。

此库基于 LNPBP-7 定义的严格编码标准。严格编码是一种在客户端验证中广泛使用的保守二进制编码,用于具有已知内部数据结构的确定便携(平台无关)数据的序列化。严格编码是无模式编码。

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

该库的开发得到了 LNP/BP 标准协会 的支持。

该库由 Dr Maxim Orlovsky 根据彼得·托德(Peter Todd)关于客户端验证数据序列化的想法设计,他塑造了这些想法并将它们标准化,并在本库中实现了它们。

文档

有关库的详细开发者和API文档,请访问 https://docs.rs/confined_encoding/

有关库所支持的技术,请查看我们的技术演示幻灯片 幻灯片LNP/BP 技术讨论视频

使用

要使用此库,您只需在项目的 Cargo.toml 文件的 [dependencies] 部分引用最新版本即可。

confined_encoding = "2.0"

如果您正在使用其他客户端验证库,请考虑导入单个 client_side_validation 库,该库重新导出所有库,包括当前库。

库定义了两个主要特性,ConfinedEncodeConfinedDecode,这些特性应在每个需要客户端验证表示的类型上实现。

库导出派生宏 #[derive(ConfinedEncode, ConfinedDecode)],这是 confined_encoding_derive 子crate的一部分,并由默认特性 derive 控制。

贡献

贡献指南可以在 CONTRIBUTING 中找到。

许可

这些库在 Apache 2.0 开源许可的条款下分发。有关许可详情,请参阅 LICENCE 文件。

依赖

~9.5MB
~142K SLoC