Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support dynamic version strings in ChanOpen handshake [ibc-go v2] #1410

Closed
7 tasks done
adizere opened this issue Oct 4, 2021 · 1 comment · Fixed by #1582
Closed
7 tasks done

Support dynamic version strings in ChanOpen handshake [ibc-go v2] #1410

adizere opened this issue Oct 4, 2021 · 1 comment · Fixed by #1582
Assignees
Labels
I: dependencies Internal: related to dependencies I: protocol Internal: related to IBC protocol changes (eg. v2 update)
Milestone

Comments

@adizere
Copy link
Member

adizere commented Oct 4, 2021

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:

a relayer will need to query the host chain for an updated version string prior to calling the OnChanOpenAck endpoint

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

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@adizere adizere added the I: dependencies Internal: related to dependencies label Oct 4, 2021
@adizere adizere added this to the 10.2021 milestone Oct 4, 2021
@adizere adizere modified the milestones: 10.2021, 11.2021 Nov 2, 2021
@adizere adizere changed the title Support for dynamic version strings in channel open handshake Support dynamic version strings in ChanOpen handshake [ibc-go v2] Nov 2, 2021
@adizere adizere modified the milestones: 11.2021, 12.2021, v0.8.2 Nov 2, 2021
@andynog
Copy link
Contributor

andynog commented Nov 16, 2021

@romac romac added the I: protocol Internal: related to IBC protocol changes (eg. v2 update) label Nov 16, 2021
@adizere adizere mentioned this issue Nov 22, 2021
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: dependencies Internal: related to dependencies I: protocol Internal: related to IBC protocol changes (eg. v2 update)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants