This release introduces a series of improvements to ICS-27 Interchain Accounts (ICA).
We appreciate very much the feedback that we have got since the initial release of ICA in ibc-go v3.0.0 and we have recognized that the lack of a default underlying app (aka authentication module) has been one the primary reasons for the slow adoption of ICA (i.e. lack of controller chains in mainnet). With the release of Cosmos SDK v0.46.x we have also realized the need to separate authentication and application logic: the new design of x/gov
and x/group
allow for arbitrary message passing via the message router and these modules can act as authentication modules with respect to interchain accounts integration.
ibc-go v6.0.0 includes changes to ICA that makes integrating the controller chain functionality easier. It introduces a new message server to the controller submodule and, once application callbacks are implemented (see ADR-008), all use cases for ICA will be supported by the message server without the need for an underlying app and we will incrementally move towards deprecation of the public APIs (this and this).
To minimize disruption to developers working on the original design of the ICS-27 controller module, all changes are made made in a backwards compatible fashion. The only difference is in terms of how the channel capability is claimed. Instead of the underlying app claiming the channel capability, it is now the controller submodule who will claim it. Any logic associated with claiming the capability should be now removed from the OnChanOpenInit
callback of the underlying app. See ADR-009 for more information on these changes.
We present here a summary of the most relevant changes in comparison to v6.0.0-beta1. Please see the v6.0.0 changelog for the full set of changes included in this pre-release.
dependencies
- Cosmos SDK has been bumped to v0.46.4.
Special thanks to our external contributors on this release: @Anmol1696 @georgelombardi97 @alizahidraja @agouin @nicolaslara @LaurensKubat
To learn more about ibc-go versioning, please read our RELEASES.md.
IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.46.4 and ibc-go v6.0.0-rc0, please follow: