-
Notifications
You must be signed in to change notification settings - Fork 597
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
Document IBC upgrade support for genesis dump/restart #21
Comments
We discussed this today. The current mechanism supports genesis dump state restart, but it must happen in place of the upgrade migration. Pass an x/upgrade software upgrade proposal, let nodes panic, export genesis, change desired fields (chain-id), reset state, boot up nodes. We should
|
Currently not supported:
We need to loosen genesis validation since there may exist consensus states with empty roots (due to upgrades) |
I'd rather we just use a sentinel root value in upgrade consensus state and keep that check. Rather than remembering to put it wherever needed. |
I tested this and an upgrade + genesis restart worked fine. A genesis restart without an upgrade did not work with the relayers since the data gets reset. The trusted header could no longer be queried. When I get time I'll add documentation for this upgrade path |
* Add vitwitchain config * Add domain * Add vitwitchain-1 conf * Update vitwitchain-1.json
…ency-from-core-ibc remove wasm client keeper from IBC keeper
Summary
Currently IBC only supports IBC breaking change upgrades via the x/upgrade module. We should add additional support via the genesis dump state/restart mechanism.
Problem Definition
If the
x/upgrade
has a bug that prevents it from being used, genesis dump/restart would be required. In this case, the chain-id would need to be incremented, effectively breaking all existing IBC channels. To avoid this, the chain would need to halt and wait for the core devs to push a fix which fixes the code at the halting height and then the chain would likely want to use the upgrade module to swap binaries to something more stable.While this scenario is unlikely, if it did ever occur, I'm sure it would cause a lot of people headaches.
Proposal
Support genesis dump/restart. Revision numbers are already handled, so we just need to rework the current design to be a little more modular and not rely solely on the
x/upgrade
module. Ideally we could isolate the IBC specific code into it's own proposal. Then upgrade proposals which want to do an IBC upgrade, would include the IBC proposal as well (gov proposals can have multiple changes in one).I'll defer to @AdityaSripal on the specific design, but I think it's worthwhile to ensure IBC upgrades aren't dependent on bug-free code (by limiting the amount of code the IBC upgrades rely on)
For Admin Use
The text was updated successfully, but these errors were encountered: