Repository navigation
fix(v2): calendar-launch startup trial skipped once the launch date has passed (validators refusing to start after #457) - #460
Merged
Conversation
…as passed check_calendar_launch trial-loaded the config with v2 armed at the era AFTER the finalized head — correct before the date, wrong after it (the real block is in the past: mainnet 9399600). With #457 typing [v2] image_decoupled_from_block = 9493200, every node that pulled main refused to start: "image_decoupled_from_block=9493200 precedes [v2] from_block=9500400". Past the date (chain time at the finalized head), the first poll's resolve_calendar_launch parses the config at the real block and refuses one that cannot load there; an unreadable head timestamp keeps the trial. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMT4D7eZUKUF2gocYLVFmj
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
URGENT — external validators that pulled main since #457 refuse to start. Reported by an external validator 2026-11-13 ~13:10 UTC:
Cause
check_calendar_launch(validator + trainer startup) trial-loads the config with v2 armed at the era start after the finalized head. Before the launch date that is the right guess. After it, the real block is in the past (mainnet v2 = 9399600, resolved from finalized timestamps), so the trial block is fake. #457 typed[v2] image_decoupled_from_block = 9493200; against the fake trial block 9500400 the loader's "must not precede [v2] from_block" check fires, so the node refuses to start. Before #457 that field was 0 and the check never fired. No test ran this startup check with the shipped file at a head past the launch, so CI was green.Our own nodes were not affected: the operator's deployed chain.toml types
[v2] from_block = 9399600, so the launch is not "pending" there.Fix
Once chain time at the finalized head is at or past
launch_at_utc, skip the trial. The first poll'sresolve_calendar_launchparses the config at the REAL block and refuses one that cannot load there. An unreadable head timestamp keeps the trial (the safe side). Before the date nothing changes.Typing
[v2] from_block = 9399600in main instead does not work: main ships the rollover undecided (3600 grid), and 9399600 is only an era start on the 900 grid each node resolves on chain.Verified (
python -P, config only)resolve_calendar_launchlands on 9399600 with v2b 9493200; the pre-date trial still runs and still refuses a bad config.test_shipped_file_starts_after_the_launch_date_with_the_typed_v2b_switch.After merge, validators
Pull main, keep your state files, restart. No hand edits.
🤖 Generated with Claude Code
https://claude.ai/code/session_01BMT4D7eZUKUF2gocYLVFmj