Skip to content

Add Savanna system contract support and fix autokick#59

Open
molty365 wants to merge 4 commits into
telosnetwork:mainfrom
molty365:savanna-instant-finality-system-contract
Open

Add Savanna system contract support and fix autokick#59
molty365 wants to merge 4 commits into
telosnetwork:mainfrom
molty365:savanna-instant-finality-system-contract

Conversation

@molty365

Copy link
Copy Markdown

Summary

  • Add Savanna finalizer key support to the Telos system contract.
  • Add switchtosvnn to establish the first finalizer policy and transition consensus.
  • Guard the Savannah switch so the live active schedule must match Telos schedule metrics and every scheduled producer must have an active finalizer key.
  • Fix Telos missed-block autokick under Savanna by preserving schedule metrics across no-op schedule proposals.
  • Avoid double-counting lifetime_missed_blocks when a producer is kicked for missed blocks.

Root cause fixed

Under Savanna, update_elected_producers can repeatedly call set_proposed_producers with an unchanged producer schedule. Telos was treating each successful proposal as a fresh schedule metrics reset, which wiped missed-block counters before autokick could reach the configured threshold. The fix only rebuilds schedule metrics when the producer membership actually changes.

The separate system_rotation.cpp change removes a manual lifetime_missed_blocks increment because producer_info::kick() already applies that increment before resetting the per-rotation counter.

Validation

  • git diff --check
  • Built eosio.system with telos-cdt:4.1.1 Docker image.
  • Live Savanna autokick rehearsal: forced one producer to miss blocks, producer was kicked at 660 missed blocks, schedule/finalizer policy excluded the kicked producer, and finality remained healthy.

Notes

  • Opened as draft pending testnet rehearsal with real BP finalizer keys.
  • Local C++ unit test harness was not included in this PR; the workspace test build still needs separate Spring/CDT harness cleanup.

@TheJudii TheJudii force-pushed the savanna-instant-finality-system-contract branch from 2518222 to 40dfd38 Compare June 4, 2026 15:36
@TheJudii TheJudii changed the title [codex] Add Savanna system contract support and fix autokick Add Savanna system contract support and fix autokick Jun 4, 2026
@TheJudii TheJudii marked this pull request as ready for review June 4, 2026 16:54
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