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

无需 std ibc-types

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

19 个版本 (11 个重大变更)

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.0.0 2023年4月16日

#5 in #ibc

Download history 1036/week @ 2024-05-04 662/week @ 2024-05-11 698/week @ 2024-05-18 849/week @ 2024-05-25 969/week @ 2024-06-01 1003/week @ 2024-06-08 747/week @ 2024-06-15 827/week @ 2024-06-22 873/week @ 2024-06-29 644/week @ 2024-07-06 1361/week @ 2024-07-13 1265/week @ 2024-07-20 1147/week @ 2024-07-27 839/week @ 2024-08-03 704/week @ 2024-08-10 1119/week @ 2024-08-17

3,964 monthly downloads

Apache-2.0

575KB
11K SLoC

ibc-types

此软件包定义了 Inter-Blockchain Communication (IBC) 消息的通用数据结构,这些结构可以被不同的 IBC 实现或 IBC 生态系统工具重用。

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

除了定义 IBC 消息的 Rust 类型外,ibc-types 还定义了 IBC 事件的 Rust 类型,并提供了将 IBC 事件解析为和从 ABCI 消息的代码。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作者。

此crate最初是从ibc-rs分叉而来。

版权 © 2022 Informal Systems Inc.及ibc-rs作者。

遵循Apache License 2.0(“许可”);除非适用法律要求或书面同意,否则不得使用此仓库中的文件,除非符合许可。您可以在以下地址获得许可副本:

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

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

依赖

~16–27MB
~447K SLoC