docs(ops): add fail-closed EVM migration runbooks - #197
Draft
mateeullahmalik wants to merge 14 commits into
Draft
Conversation
Register the coordinated v1.20.2 upgrade boundary for the evmigration fixes. The handler runs module migrations only and declares no store changes or historical state repair.
mateeullahmalik
changed the base branch from
matee/evmigration-history-repair
to
matee/evmigration-v1202-upgrade-handler
July 28, 2026 22:18
mateeullahmalik
marked this pull request as draft
July 29, 2026 20:22
4 tasks
…e' into matee/evmigration-operator-safety-rebased # Conflicts: # app/upgrades/upgrades.go # app/upgrades/v1_20_2/upgrade.go
TestV1202IsMigrationOnlyOnAllNetworks asserted config.StoreUpgrade == nil. That premise held for testnet (v1.20.0 already mounted the EVM stores) and was wrong for mainnet, which is still on 1.12.0 and has none of them. The mainnet-shaped devnet rehearsal disproved it: every validator crash-looped with panic: version of store evmigration mismatch root store's version; expected 155 got 0; new stores should be added using StoreUpgrades v1.20.2 now declares the EVM store additions on every network, paired with the add-only store loader that mounts only keys absent from committed state - a no-op on a chain that already ran v1.20.0, a full bring-up on one that did not. Renamed to TestV1202RegistersOnAllNetworks and reduced to the registration assertion. Store expectations live in v1_20_2_store_test.go, which asserts the five store keys and the add-only loader pairing. This is the third copy of the same wrong premise found and removed; the surviving assertions are the rehearsal-proven ones.
mateeullahmalik
changed the base branch from
matee/evmigration-v1202-upgrade-handler
to
matee/evmigration-continuity-core
July 31, 2026 00:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add fail-closed operator artifacts, scripts, and runbooks for manual EVM account/validator migration, based on the chain history-preservation PR.
This PR does not change consensus state transitions. It hardens release compatibility approval, mnemonic handling, relayer address verification, governance helper invocation, and repeatable rehearsal evidence.
Behavior change
argv[0];evalor mnemonic in argv.0600.Protocol/state-machine impact
Operator scripts submit existing migration/governance messages; the chain remains the source of truth for accepted state transitions.
Operational invariants
argv[0]and hash-verified immediately before execution.Failure modes and recovery
Known compatibility boundary
Exact
v2.5.3-testnetSuperNode setup rejects destination-key recovery after EVM migration with a duplicate-address error and exits before daemon launch. On-chain registrations, histories, migrations, and delegations remain correct, but upload/download/action verification cannot be claimed with that old daemon after migration.The compatibility manifest therefore remains fail closed until release owners bind and verify a compatible no-echo pre-stage implementation and supported daemon artifacts. This PR does not silently substitute a newer daemon or modify chain logic.
Risks
Rollback
Observability
Evidence surfaces include:
Verification
54ab2f8f81ed7b9a593fb585fa53987b7e90741d;1.20.2;e4de48318a0e23ac36698fc3c53863dabe5d010b2bd9bc83ea6ffec79de086fa.The current head differs by ancestry-only stack correction and is being revalidated by CI.
Stack order
v1.20.2migration-only upgrade handler