Skip to content

fix(sn-manager): gate unprepared v2.6 upgrades#315

Merged
mateeullahmalik merged 1 commit into
release/v2.5.3from
fix/v2.5.2-sn-manager-evm-gate-minimal
Jul 25, 2026
Merged

fix(sn-manager): gate unprepared v2.6 upgrades#315
mateeullahmalik merged 1 commit into
release/v2.5.3from
fix/v2.5.2-sn-manager-evm-gate-minimal

Conversation

@mateeullahmalik

Copy link
Copy Markdown
Collaborator

Summary

Build v2.5.3 from the exact v2.5.2 codebase with one sn-manager safety gate:

  • block an automatic update from a pre-v2.6 SuperNode to a v2.6+ target when supernode.evm_key_name is missing, blank, or unreadable
  • allow the update when evm_key_name is configured
  • allow normal forward updates for an already-v2.6 SuperNode when the transitional field is absent

The v2.5.2 base contains no automatic EVM rollback path, so this change does not add or retain one.

Scope

Only sn-manager update gating and focused tests:

  • sn-manager/internal/updater/updater.go
  • sn-manager/internal/updater/updater_test.go
  • sn-manager/internal/utils/chain_id.go
  • sn-manager/internal/utils/chain_id_test.go

No release workflow, SuperNode runtime, chain, EVM module, migration, or configuration refactor.

Invariant

Current SuperNode Target evm_key_name Result
<2.6 <2.6 any unchanged
<2.6 >=2.6 non-empty allow
<2.6 >=2.6 missing/empty/unreadable block before download/install
>=2.6 later missing/empty allow; never auto-rollback

Prerelease labels do not bypass the boundary: v2.6.0-testnet is treated as a v2.6 binary.

State-machine impact

None.

  • State keys: unchanged
  • CheckTx / DeliverTx: unchanged
  • BeginBlock / EndBlock: unchanged
  • Determinism / replay: unchanged
  • Migration / upgrade handler: none

Verification

Using Go 1.25.9:

  • go test ./... in sn-manager
  • go test -race ./internal/updater ./internal/utils
  • go vet ./... in sn-manager
  • CGO_ENABLED=0 go build ./... in sn-manager
  • independent narrow review: approved

@mateeullahmalik
mateeullahmalik merged commit 230cf11 into release/v2.5.3 Jul 25, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant