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

Provide a "upgrade client proposal" handler for Tendermint chains #420

Closed
Tracked by #554
Farhad-Shabani opened this issue Feb 13, 2023 · 1 comment · Fixed by #680
Closed
Tracked by #554

Provide a "upgrade client proposal" handler for Tendermint chains #420

Farhad-Shabani opened this issue Feb 13, 2023 · 1 comment · Fixed by #680
Assignees
Labels
O: exploratory Objective: aims to investigate new ideas
Milestone

Comments

@Farhad-Shabani
Copy link
Member

Farhad-Shabani commented Feb 13, 2023

Problem Definition

The work done so far and covered within ADR06 around upgrading a counterparty client mainly reflects how to handle submitted MsgUpgradeClient by the relayer and substitute the upgraded client and consensus states on the counterparty chain.
But, there is another side to this process (see ibc-go) and it is where the newly proposed client and consensus states should be stored in the upgrade path (related to #141) of the upgrading chain.
We haven't clarified yet how the incoming chain-level upgrade proposal should be handled within the IBC-rs core and a specific implementation for Tendermint chains seems to be necessary.

@Farhad-Shabani
Copy link
Member Author

Farhad-Shabani commented May 10, 2023

Updates

  • We cannot assume about how hosts may reach a consensus on upgrading a client, which could be via a governance model, multi-sig, etc. Accordingly, we can’t write a generic UpgradeProposal handler.
  • The minimum we should do is expose getter/setter APIs under our context traits, so hosts can store and retrieve upgraded client/consensus states in/from UpgradeClientPath
  • For Comet-based chains, we might be able to code a very similar operation to IBC-go and maintain it within IBC-rs as some ready-to-use functions. But we'd have to add a minimal gov module to basecoin-rs first. (Blocked)

@Farhad-Shabani Farhad-Shabani added the A: blocked Admin: blocked by another (internal/external) issue or PR label May 10, 2023
@Farhad-Shabani Farhad-Shabani changed the title Investigate required implementation to handle the submitted Upgrade Proposal by the upgrading chain Provide a "upgrade client proposal" handler for Tendermint chains May 11, 2023
@github-project-automation github-project-automation bot moved this from 📥 To Do to ✅ Done in ibc-rs May 23, 2023
@Farhad-Shabani Farhad-Shabani added this to the v0.41.0 milestone May 23, 2023
@Farhad-Shabani Farhad-Shabani removed the A: blocked Admin: blocked by another (internal/external) issue or PR label Nov 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O: exploratory Objective: aims to investigate new ideas
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants