Skip to content

Aliasing new approach #7739

Closed
Closed
@AdityaSripal

Description

@AdityaSripal

We internally discussed different approaches to aliasing v1 channels to v2 and weighed the potential complexities in ibc-go with the potential complexity of retaining a channel layer for new users of IBC.

We decided that having a channel layer was unnecessarily complex for new users, and that conceptually the idea of creating two clients and then directly connecting them together was much simpler. Thus, we are moving back to the CounterpartyInfo struct that we had discussed before which will be keyed directly against the clientID.

There will thus, only be two clients and counterparty information signalling the path to verify against. The packet handlers will remain and will directly retrieve and use these structs for processing.

We will also retain the idea that there is only a single identifier to create a Eureka connection between two chains in the standard case (rather than having a client identifier and a separate channel identifier)

In order to support existing channels, we will create an exceptional case handling in ibc-go that will create a direct map from the channel-id to the clientID to retreive the underlying client and counterpartyInfo

The counterpartyInfo itself should have only the merklePathPrefix and the counterpartyId

The counterpartyId is to be interpreted as the provable path under which the counterparty will write all outgoing packet messages toward us.

Thus, in the aliasing case; the counterpartyId should be the counterparty's original channel-id since the counterpartyId need not be strictly linked to the clientID.

Furthermore, given the new key formats introduced in cosmos/ibc#1155 and the changes we made to supporting broader tree types; we should be able to have just a single field of the counterpartyId which should be explored by the implementor writing up this approach.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions