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 Cosmos SDK 0.46 and 0.47 chains side by side #2276

Closed
3 of 10 tasks
Tracked by #3005
mzabaluev opened this issue Jun 8, 2022 · 3 comments · Fixed by #3179
Closed
3 of 10 tasks
Tracked by #3005

Support Cosmos SDK 0.46 and 0.47 chains side by side #2276

mzabaluev opened this issue Jun 8, 2022 · 3 comments · Fixed by #3179
Assignees
Labels
A: blocked Admin: blocked by another (internal/external) issue or PR I: dependencies Internal: related to dependencies I: logic Internal: related to the relaying logic I: protocol Internal: related to IBC protocol changes (eg. v2 update) I: rpc Internal: related to (g)RPC O: new-feature Objective: cause to add a new feature or support
Milestone

Comments

@mzabaluev
Copy link
Contributor

mzabaluev commented Jun 8, 2022

Summary

The relayer should work with chain nodes based on both Cosmos SDK 0.46 / Tendermint 0.34 and Cosmos SDK 0.47 / CometBFT 0.37.

Problem Definition

While the Cosmos ecosystem transitions to Cosmos SDK 0.47, 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 CometBFT 0.37, 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 CometBFT 0.37, Cosmos SDK 0.47 and a compatible revision of ibc-go definitions TBD. Adapt the code using the protocol structures (Update to cosmos-sdk 0.46 and tendermint 0.35 #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:

  • A chain based on Cosmos SDK 0.46
  • A chain based on Cosmos SDK 0.47

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


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@mzabaluev mzabaluev added O: new-feature Objective: cause to add a new feature or support I: logic Internal: related to the relaying logic I: rpc Internal: related to (g)RPC I: protocol Internal: related to IBC protocol changes (eg. v2 update) labels Jun 8, 2022
@adizere adizere added the I: dependencies Internal: related to dependencies label Jun 21, 2022
@adizere
Copy link
Member

adizere commented Sep 30, 2022

Is this issue still relevant in its current form?

@webmaster128
Copy link

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.

@romac romac changed the title Support cosmos-sdk 0.45 and 0.46 chains side by side Support Cosmos SDK 0.46 and 0.47 chains side by side Mar 7, 2023
@romac
Copy link
Member

romac commented Mar 7, 2023

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 romac modified the milestones: v1.5, v1.4 Mar 7, 2023
@romac romac pinned this issue Mar 7, 2023
@seanchen1991 seanchen1991 added the A: blocked Admin: blocked by another (internal/external) issue or PR label Mar 17, 2023
@romac romac unpinned this issue Mar 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: blocked Admin: blocked by another (internal/external) issue or PR I: dependencies Internal: related to dependencies I: logic Internal: related to the relaying logic I: protocol Internal: related to IBC protocol changes (eg. v2 update) I: rpc Internal: related to (g)RPC O: new-feature Objective: cause to add a new feature or support
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

6 participants