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

no-std ibc-types-core-channel

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 日

#42#tendermint

Download history 794/week @ 2024-05-01 993/week @ 2024-05-08 522/week @ 2024-05-15 783/week @ 2024-05-22 1056/week @ 2024-05-29 838/week @ 2024-06-05 1076/week @ 2024-06-12 633/week @ 2024-06-19 846/week @ 2024-06-26 866/week @ 2024-07-03 811/week @ 2024-07-10 1495/week @ 2024-07-17 1139/week @ 2024-07-24 1112/week @ 2024-07-31 706/week @ 2024-08-07 518/week @ 2024-08-14

3,665 每月下载量
用于 2 crates

Apache-2.0

435KB
9K SLoC

ibc-types

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

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

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

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

贡献

IBC 的规范以英语形式在 cosmos/ibc 仓库 中指定。任何协议变更或说明都应该贡献到那里。

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

版本

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

资源

许可证

版权 © 2023 ibc-types 作者。

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

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

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

https://apache.ac.cn/licenses/LICENSE-2.0

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

依赖项

~16–27MB
~459K SLoC