本指南提供了迁移到 ibc-go v8.1.0 版本的说明。 本文档根据四类潜在用户分为四个部分: 注意: ibc-go 遵循 Golang 语义化版本控制,因此在主版本发布时必须更新所有导入路径。

链

04-channel 参数迁移

已为 04-channel 模块新增自主管理的 params。这些参数包括 upgrade_timeout,用于通道升级能力中指定一个时间区间;在该时间区间内,对手链必须在其一侧清空所有传输中的数据包,并迁移到 FLUSH_COMPLETE 状态。04-channel 模块中配置了一个自动迁移处理器,用于设置默认参数(默认升级超时时间为 10 分钟)。该模块还提供了对应的 MsgUpdateParams message,其中包含一个 Params 字段,可通过完整指定该字段来更新模块的 Params。

手续费迁移

在 ibc-go v8.1.0 中,引入了改进后且更高效的数据包激励手续费托管计算方式(更多信息参见此 issue)。在 v8.1.0 之前,托管金额为 (ReckFee + AckFee + TimeoutFee);从 ibc-go v8.1.0 开始,计算方式变更为 Max(RecvFee + AckFee, TimeoutFee)。为了确保在升级到 ibc-go v8.1.0 期间仍处于传输中的数据包能够正确退还手续费,29-fee 模块中配置了一个自动迁移处理器,用于退还剩余手续费(即 (ReckFee + AckFee + TimeoutFee) - Max(RecvFee + AckFee, TimeoutFee));否则,当数据包生命周期完成并采用新计算方式时,这部分手续费将不会被退还。

IBC 应用

  • 此版本未作出相关变更。

中继器

  • 此版本未作出相关变更。

IBC 轻客户端

  • 此版本未作出相关变更。

This guide provides instructions for migrating to version v8.1.0 of ibc-go. There are four sections based on the four potential user groups of this document: Note: ibc-go supports golang semantic versioning and therefore all imports must be updated on major version releases.

Chains

04-channel params migration

Self-managed params have been added for 04-channel module. The params include the upgrade_timeout that is used in channel upgradability to specify the interval of time during which the counterparty chain must flush all in-flight packets on its end and move to FLUSH_COMPLETE state). An automatic migration handler is configured in the 04-channel module that sets the default params (with a default upgrade timeout of 10 minutes). The module has a corresponding MsgUpdateParams message with a Params field which can be specified in full to update the module’s Params.

Fee migration

In ibc-go v8.1.0 an improved, more efficient escrow calculation of fees for packet incentivisation has been introduced (see this issue for more information). Before v8.1.0 the amount escrowed was (ReckFee + AckFee + TimeoutFee); from ibc-go v8.1.0, the calculation is changed to Max(RecvFee + AckFee, TimeoutFee). In order to guarantee that the correct amount of fees are refunded for packets that are in-flight during the upgrade to ibc-go v8.1.0, an automatic migration handler is configured in the 29-fee module to refund the leftover fees (i.e (ReckFee + AckFee + TimeoutFee) - Max(RecvFee + AckFee, TimeoutFee)) that otherwise would not be refunded when the packet lifecycle completes and the new calculation is used.

IBC apps

  • No relevant changes were made in this release.

Relayers

  • No relevant changes were made in this release.

IBC light clients

  • No relevant changes were made in this release.