Support dynamic version strings in ChanOpen handshake [ibc-go v2] #1410
Labels
I: dependencies
Internal: related to dependencies
I: protocol
Internal: related to IBC protocol changes (eg. v2 update)
Milestone
Crate
ibc-relayer
Summary
Add support in Hermes for dynamic channel version negotiation for use in channel open handshakes, with application to ICS-027.
Problem Definition
Whenever Hermes is building one of the first three messages of a channel's handshake (init, try, ack), it must also relay a version parameter which is an application-defined string. The relevant part of the specification is here. The ICA protocol (ics-027) uses the channel version to pass the interchain account between the host chain and the controller chain. Issue cosmos/ibc-go#378 describes accurately what Hermes is supposed to do, in particular:
Further details are provided in this comment: cosmos/ibc-go#136 (comment)
The actual implementation of the new query (which Hermes will need to rely on) is in this PR: cosmos/ibc-go#384
Proposal
The changes we need to do are localized here:
https://github.com/informalsystems/ibc-rs/blob/8d4d73bf6aa35a6f9111bf6cfbf08f23f2ffe7c6/relayer/src/chain.rs#L224-L233
There is also a note with respect to this problem at a call site in the relayer's channel object implementation.
https://github.com/informalsystems/ibc-rs/blob/8d4d73bf6aa35a6f9111bf6cfbf08f23f2ffe7c6/relayer/src/channel.rs#L655-L656
Acceptance Criteria
For Admin Use
The text was updated successfully, but these errors were encountered: