#ibc #consensus #tendermint #cosmos #blockchain #data-structures

no-std ibc-types-lightclients-tendermint

Inter-Blockchain Communication (IBC) 协议的数据类型。该包定义了可以被不同的 IBC 实现或生态系统工具重用的通用数据结构。

18 个版本 (10 个破坏性更新)

0.14.1 2024 年 7 月 17 日
0.13.0 2024 年 4 月 4 日
0.12.0 2024 年 3 月 1 日
0.11.0 2023 年 12 月 30 日
0.10.0 2023 年 11 月 27 日

#46 in #tendermint

Download history 1040/week @ 2024-05-04 663/week @ 2024-05-11 708/week @ 2024-05-18 854/week @ 2024-05-25 984/week @ 2024-06-01 1009/week @ 2024-06-08 750/week @ 2024-06-15 844/week @ 2024-06-22 877/week @ 2024-06-29 645/week @ 2024-07-06 1366/week @ 2024-07-13 1254/week @ 2024-07-20 1113/week @ 2024-07-27 838/week @ 2024-08-03 701/week @ 2024-08-10 1119/week @ 2024-08-17

3,926 每月下载量
ibc-types 中使用

Apache-2.0

295KB
5K SLoC

ibc-types

该包定义了可以由不同的 IBC 实现或 IBC 生态系统工具重用的 IBC 消息的通用数据结构。

与提供特定且具有意见的 IBC 实现的 ibc-rs 不同,ibc-types 只定义了允许处理 IBC 消息的 Rust 类型,允许使用通用语言在顶部构建 IBC 实现或 IBC 生态系统工具。

除了定义 IBC 消息的 Rust 类型外,ibc-types 还定义了 IBC 事件的 Rust 类型,并提供了将 IBC 事件解析为 ABCI 消息和从 ABCI 消息解析 IBC 事件的代码。IBC 事件实际上是 IBC 的一个关键部分,因为它们需要与中继器交互,但实际上并没有在任何地方进行指定。在 ibc-types 中提供事件解析代码允许 IBC 实现和中继器实现共享生成和消费事件的通用代码。

ibc-types 包是一个顶层包装包,重新导出由 IBC 模块范围限定的子包的内容。这种结构意味着库的外部用户可以使用一个通用的包,但允许不同 IBC 模块之间的依赖关系。例如,ibc-types 包重新导出了在 ibc-types-core-client 包中定义的客户端类型,以及 ibc-types-lightclients-tendermint 包中定义的 Tendermint 轻客户端类型。但由于这些是独立的包,Tendermint 轻客户端类型可以依赖于核心 IBC 客户端类型,从而防止循环依赖问题。

贡献

IBC 在 cosmos/ibc 仓库 中用英语指定。任何协议变更或澄清都应该在那里进行贡献。

该仓库包含模拟 IBC 消息的 Rust 数据类型。

版本控制

我们遵循 语义版本控制,尽管 API 仍在积极开发中。

资源

许可证

版权所有 © 2023 ibc-types 作者。

此软件包最初是从 ibc-rs 分支出来的。

版权所有 © 2022 Informal Systems Inc. 和 ibc-rs 作者。

遵循 Apache 许可证 2.0 版(“许可证”);除非适用法律要求或书面同意,否则不得根据许可证使用此存储库中的文件。您可以在以下位置获得许可证副本:

https://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何形式的明示或暗示保证。有关许可证的特定语言、权限和限制,请参阅许可证。

依赖项

~15–27MB
~446K SLoC