#ibc #consensus #cosmos #tendermint #blockchain

ibc-relayer-types

跨链通信协议(IBC)的实现。此包包含主要数据结构和链上逻辑

22个不稳定版本 (9个破坏性版本)

新功能 0.29.2 2024年8月14日
0.29.1 2024年7月23日
0.29.0 2024年6月24日
0.27.2 2024年3月12日
0.20.0 2022年10月28日

1 in 魔法豆

Download history 915/week @ 2024-04-24 269/week @ 2024-05-01 332/week @ 2024-05-08 229/week @ 2024-05-15 634/week @ 2024-05-22 1088/week @ 2024-05-29 982/week @ 2024-06-05 1118/week @ 2024-06-12 1558/week @ 2024-06-19 1093/week @ 2024-06-26 740/week @ 2024-07-03 1271/week @ 2024-07-10 957/week @ 2024-07-17 1063/week @ 2024-07-24 392/week @ 2024-07-31 584/week @ 2024-08-07

每月3,160次下载
用于 25 个包(15个直接使用)

Apache-2.0

645KB
16K SLoC

IBC模块

Crate Docs Build Status End to End testing Apache 2.0 Licensed Rust Stable Rust 1.51+

有关如何使用此包的详细信息,请参阅ibc-rs仓库的根目录。

跨链通信协议(IBC)模块的实现。

文档

请参阅docs.rs上的文档。

与跨链标准(ICS)的差异

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

模块系统:不支持不受信任的模块

ICS 24(主机要求)规定了主机状态机必须支持的模块系统要求。

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

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

端口系统:不支持对象能力系统

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

在先前的对象-能力案例中,IBC 处理器必须具备生成对象能力的功能,即生成唯一的、不可见引用,这些引用可以被传递给模块,并且不会被其他模块重复。 [...] 在后者的源身份验证案例中,IBC 处理器必须具备安全地读取调用模块的源标识符的能力,这是一个在主机状态机中每个模块唯一的字符串,无法被模块本身更改或被其他模块伪造。

此软件包目前不需要主机系统的任何支持。由于假设模块是可信任的,因此无需此对象能力系统来保护可能具有恶意意图的模块的资源。

有关此问题的更多背景信息,请参阅此问题

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

ICS 5(端口分配)要求 IBC 处理器允许转移端口所有权释放端口

我们目前不支持这两者。

许可协议

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

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

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

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

依赖项

~16–27MB
~443K SLoC