#type #commitment #ibc #cosmos #blockchain #data-structures

无std ibc-core-commitment-types

ibc-rs 维护,封装了必要 ICS-23 Vector Commitments 数据结构和领域类型,如 Inter-Blockchain Communication (IBC) 协议中指定。旨在通用适用性,以促进跨不同 IBC 允许项目的开发和集成。

10 个版本 (6 个破坏性版本)

0.54.0 2024 年 8 月 12 日
0.53.0 2024 年 5 月 14 日
0.52.0 2024 年 4 月 26 日
0.51.0 2024 年 3 月 26 日
0.48.1 2023 年 11 月 27 日

#446魔法豆

Download history 1803/week @ 2024-04-22 1297/week @ 2024-04-29 1280/week @ 2024-05-06 1577/week @ 2024-05-13 1383/week @ 2024-05-20 1357/week @ 2024-05-27 2524/week @ 2024-06-03 1169/week @ 2024-06-10 1042/week @ 2024-06-17 1379/week @ 2024-06-24 1038/week @ 2024-07-01 907/week @ 2024-07-08 1014/week @ 2024-07-15 799/week @ 2024-07-22 417/week @ 2024-07-29 226/week @ 2024-08-05

每月下载 2,470
用于 29 个 crate(14 个直接使用)

Apache-2.0

155KB
3K SLoC

IBC 核心

这是顶层库,重新导出 Inter-Blockchain Communication (IBC) 核心模块作为元crate。它旨在简化将各种 IBC 核心模块导入和集成到您的区块链中的过程。

IBC 是一个分布式协议,它使不同的主权区块链之间的通信成为可能,而 IBC 核心是处理数据包传输、身份验证和排序(TAO)的协议部分。

ibc-core 中的结构设计旨在为外部用户提供灵活性。您可以选择使用整个 ibc-core 包,或者有选择性地导入特定的库。从那里,您还可以灵活地引入整个子模块(例如,ibc-core-client 包),或者只导入模块相关的数据结构(例如,ibc-core-client-types)。

这种多功能性赋予了宿主(包括链集成商、中继或任何IBC工具项目)在其特定需求的基础上构建解决方案的能力。

子包

目前,ibc-core 包包含了以下IBC核心规范的实现

ICS-02:客户端语义

ICS-03:连接语义

ICS-04:通道和包语义

ICS-24:宿主要求

ICS-25:处理程序接口

ICS-26:路由模块

与跨链标准(ICS)的差异

此包在多个方面与ICS规范存在差异。以下提供更多详细信息。

模块系统:不支持不可信模块

ICS-24(宿主要求)给出了关于模块系统的以下要求,宿主状态机必须支持

宿主状态机必须支持一个模块系统,其中自包含的、可能彼此互不信任的代码包可以安全地在同一账本上执行[...]。

该包目前不支持相互不可信的包。也就是说,宿主状态机上的模块被认为是完全可信的。在实践中,这意味着每个模块要么是宿主状态机开发者编写的,要么完全经过他们的审查。

端口系统:没有对象能力系统

ICS-05(端口分配)要求宿主系统支持对象能力引用或模块的源验证。

在前一种对象能力情况下,IBC处理程序必须有能力生成对象能力,这些是唯一的、不可复制的引用,可以传递给模块,而其他模块无法复制。[...]在后一种源验证情况下,IBC处理程序必须有能力安全地读取调用模块的源标识符,这是宿主状态机中每个模块的唯一字符串,无法被模块更改或被另一个模块伪造。

该包目前不要求宿主系统中的任何一种。由于假设模块是可信的,因此不需要这种保护资源的对象能力系统。

关于这方面的更多信息,请参阅此问题

端口系统:转移和释放端口

ICS-05(端口分配)要求IBC处理程序允许转移端口的所有权释放端口

我们目前不支持这两者。

异步确认

标准允许模块异步确认数据包。这允许模块接收数据包,但仅在稍后时间应用更改(之后它们将写入确认)。

我们目前强制应用程序将数据包作为onRecvPacket的一部分处理。如果您需要为您的应用程序异步确认,请提交一个问题。

请注意,这仍然使我们与ibc-go保持100%兼容。

贡献

IBC在cosmos/ibc仓库中以英文指定。任何协议更改或说明都应在那里贡献。

如果您有兴趣贡献,请查看贡献指南。我们欢迎并感激社区贡献!

依赖关系

约15MB
约310K SLoC