fix(fork-choice): align proposer reorg helper with consensus spec - #9444
Open
VanshSahay wants to merge 5 commits into
Open
fix(fork-choice): align proposer reorg helper with consensus spec#9444VanshSahay wants to merge 5 commits into
VanshSahay wants to merge 5 commits into
Conversation
VanshSahay
force-pushed
the
fix/proposer-reorg-spec-alignment
branch
from
June 10, 2026 09:29
d771d8a to
8ba9a6f
Compare
Member
|
We're currently heavily reworking the reorg feature for Gloas: Once the dust settles we'll ping you to fix merge conflicts, and then we'll review. |
Contributor
Author
|
@michaelsproul quick check, any changes to be made here? |
Contributor
Author
|
bumping this up @michaelsproul |
Member
|
No bandwidth to review this at the moment sadly. Will revisit down the track. As stated on the OG issue this is low prio (has no practical relevance) |
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.
Fixes two divergences between Lighthouse's
get_proposer_head_infoand the consensus spec:Finalization age check now uses
store.finalized_checkpoint.epochinstead ofhead_node.unrealized_finalized_checkpoint().epoch. The store's checkpoint is the ratified value; the head's unrealized checkpoint is optimistic and unreliable when considering a reorg.FFG competitiveness no longer requires
unrealized_finalized_checkpointto match between parent and head — onlyunrealized_justified_checkpoint. This matches the spec'sis_ffg_competitivewhich only compares justifications. Finalization follows from justification, so blocking on finalized checkpoints gives up useful reorgs for no safety gain.Removed the now-unused
DoNotReOrg::MissingHeadFinalizedCheckpointvariant.Added two unit tests covering the divergence scenarios described in the issue:
store_checkpoint_used_for_finalization_age: stale store finality blocks reorg even when head's unrealized finality is freshffg_competitiveness_only_checks_justification: matching justifications allow reorg despite differing finalized checkpointsCloses #9359