Skip to content

Commit

Permalink
feat: remove channel upgradability (#8008)
Browse files Browse the repository at this point in the history
* feat: remove channel upgradability

* lint

* basic migration setup

* feat: remove channel upgradeability

* fix docs

* register v10 migration in app module

* error on upgrading channels + code review fixes
  • Loading branch information
gjermundgaraba authored Feb 26, 2025
1 parent 272c09b commit f7b24e1
Show file tree
Hide file tree
Showing 106 changed files with 6,263 additions and 25,677 deletions.
2,654 changes: 555 additions & 2,099 deletions docs/client/swagger-ui/swagger.yaml

Large diffs are not rendered by default.

413 changes: 0 additions & 413 deletions docs/docs/01-ibc/06-channel-upgrades.md

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion docs/docs/02-apps/02-interchain-accounts/01-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,4 @@ This means that the host and controller modules cannot close channels, but they

In the event of a channel closing (due to a packet timeout in an ordered channel, for example), the interchain account associated with that channel can become accessible again if a new channel is created with a (JSON-formatted) version string that encodes the exact same `Metadata` information of the previous channel. The channel can be reopened using either [`MsgRegisterInterchainAccount`](./05-messages.md#msgregisterinterchainaccount) or `MsgChannelOpenInit`. If `MsgRegisterInterchainAccount` is used, then it is possible to leave the `version` field of the message empty, since it will be filled in by the controller submodule. If `MsgChannelOpenInit` is used, then the `version` field must be provided with the correct JSON-encoded `Metadata` string. See section [Understanding Active Channels](./09-active-channels.md#understanding-active-channels) for more information.

When reopening a channel with the default controller submodule, the ordering of the channel cannot be changed. In order to change the ordering of the channel, the channel has to go through a [channel upgrade handshake](../../01-ibc/06-channel-upgrades.md) or reopen the channel with a custom controller implementation.
When reopening a channel with the default controller submodule, the ordering of the channel cannot be changed.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ slug: /ibc/light-clients/proposals

# Handling proposals

It is possible to update the client with the state of the substitute client through a governance proposal. [This type of governance proposal](../../01-ibc/07-proposals.md) is typically used to recover an expired or frozen client, as it can recover the entire state and therefore all existing channels built on top of the client. `RecoverClient` should be implemented to handle the proposal.
It is possible to update the client with the state of the substitute client through a governance proposal. [This type of governance proposal](../../01-ibc/06-proposals.md) is typically used to recover an expired or frozen client, as it can recover the entire state and therefore all existing channels built on top of the client. `RecoverClient` should be implemented to handle the proposal.

## Implementing `RecoverClient`

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/05-migrations/02-sdk-to-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ app.IBCKeeper = ibckeeper.NewKeeper(

### UpdateClientProposal

The `UpdateClient` has been modified to take in two client-identifiers and one initial height. Please see the [documentation](../01-ibc/07-proposals.md) for more information.
The `UpdateClient` has been modified to take in two client-identifiers and one initial height. Please see the [documentation](../01-ibc/06-proposals.md) for more information.

### UpgradeProposal

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/05-migrations/12-v8-to-v8_1.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ There are four sections based on the four potential user groups of this document

### `04-channel` params migration

Self-managed [params](https://github.com/cosmos/ibc-go/blob/v8.1.0/proto/ibc/core/channel/v1/channel.proto#L183-L187) 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 (see [Channel Upgrades](../01-ibc/06-channel-upgrades.md#) for more information). An [automatic migration handler](https://github.com/cosmos/ibc-go/blob/v8.1.0/modules/core/module.go#L162-L166) 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](https://github.com/cosmos/ibc-go/blob/v8.1.0/proto/ibc/core/channel/v1/tx.proto#L435-L447) with a `Params` field which can be specified in full to update the module's `Params`.
Self-managed [params](https://github.com/cosmos/ibc-go/blob/v8.1.0/proto/ibc/core/channel/v1/channel.proto#L183-L187) 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](https://github.com/cosmos/ibc-go/blob/v8.1.0/modules/core/module.go#L162-L166) 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](https://github.com/cosmos/ibc-go/blob/v8.1.0/proto/ibc/core/channel/v1/tx.proto#L435-L447) with a `Params` field which can be specified in full to update the module's `Params`.

### Fee migration

Expand Down
17 changes: 0 additions & 17 deletions docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,13 +119,6 @@ const config = {
docsPluginId: "adrs",
label: "Architecture Decision Records",
},
{
type: "doc",
position: "left",
docId: "intro",
docsPluginId: "tutorials",
label: "Tutorials",
},
{
type: "docsVersionDropdown",
position: "right",
Expand Down Expand Up @@ -275,16 +268,6 @@ const config = {
exclude: ["**/*.template.md"],
},
],
[
"@docusaurus/plugin-content-docs",
{
id: "tutorials",
path: "tutorials",
routeBasePath: "tutorials",
sidebarPath: require.resolve("./sidebars.js"),
exclude: ["**/*.template.md"],
},
],
[
"@docusaurus/plugin-content-docs",
{
Expand Down
Loading

0 comments on commit f7b24e1

Please sign in to comment.