hermes icon indicating copy to clipboard operation
hermes copied to clipboard

Support cosmos-sdk 0.45 and 0.46 chains side by side

Open mzabaluev opened this issue 2 years ago • 1 comments

Summary

The relayer should work with chain nodes based on both cosmos-sdk 0.45 / tendermint 0.34 and cosmos-sdk 0.46 / tendermint 0.35.

Problem Definition

While the Cosmos ecosystem transitions to Cosmos SDK 0.46, the relayer should be expected to connect chains working on both old and new versions of the protocols and specifications. There are breaking changes in at least tendermint 0.35, so the issue is more complex than just updating the libraries to the latest protocol and adding a few backward compatibility adaptations.

Proposal

  • [ ] Update ibc-proto code generation to tendermint 0.35, cosmos-sdk 0.46 and a compatible revision of ibc-go definitions TBD. Adapt the code using the protocol structures (#2213).
  • [ ] Extend tendermint-rs to interoperate with tendermint RPC 0.34 as a static API variant (that is, no need to support both versions with a single client type).
  • [ ] Implement support for both old and new (i.e. pre- and post-break) version combinations of tendermint RPC, Cosmos-SDK and IBC with dynamic selection in ibc and ibc-relayer (the same chain endpoint should be able to dynamically discover the versions used by the node and adapt to the protocol).

Acceptance Criteria

Hermes is able to connect and relay between the following node versions, as confirmed by tests:

  • [ ] Gaia 7.0
  • [ ] Gaia Rho

TODO: add other node implementations we care about?

At least one test run should exercise relaying between SDK 0.45 and 0.46 nodes.


For Admin Use

  • [ ] Not duplicate issue
  • [ ] Appropriate labels applied
  • [ ] Appropriate milestone (priority) applied
  • [ ] Appropriate contributors tagged
  • [ ] Contributor assigned/self-assigned

mzabaluev avatar Jun 08 '22 10:06 mzabaluev

Is this issue still relevant in its current form?

adizere avatar Sep 30 '22 09:09 adizere

Right before the release, Cosmos SDK 0.46 switched back from Tendermint 0.35 to 0.34. So at least you only need to worry about one Tendermint version for the two SDK versions.

webmaster128 avatar Mar 07 '23 14:03 webmaster128

Right! I've updated the issue to reflect that, switch from 0.45->0.46 to 0.46->0.47, and update on the progress.

romac avatar Mar 07 '23 14:03 romac