Skip to content

Redesign fork choice abstractions - #10901

Merged
zilm13 merged 7 commits into
Consensys-Incorporated:masterfrom
zilm13:forkchoice-redesign
Jul 3, 2026
Merged

Redesign fork choice abstractions#10901
zilm13 merged 7 commits into
Consensys-Incorporated:masterfrom
zilm13:forkchoice-redesign

Conversation

@zilm13

@zilm13 zilm13 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

PR Description

Spec: ethereum/consensus-specs#5249

Fixed Issue(s)

Closes #10754
Closes #10773

Documentation

  • I thought about documentation and added the doc-change-required label to this PR if updates are required.

Changelog

  • I thought about adding a changelog entry, and added one if I deemed necessary.

Note

High Risk
Changes core fork-choice ancestry, proposer-boost weighting, and Gloas late-reorg paths; incorrect payload-status handling could affect head selection and reorg safety.

Overview
Aligns fork-choice helpers with the Gloas/EIP-7732 spec by making ancestry walks payload-status-aware instead of defaulting every ancestor to a PENDING ForkChoiceNode.

getAncestorNode now takes a starting ForkChoiceNode (not just a block root) and is implemented on ForkChoiceStrategy by walking protoarray from that node identity. Call sites such as dependent-root resolution in ForkChoice pass the full node so parent-variant selection is preserved.

Adds isAncestor on ForkChoiceUtil (phase0: root match via getAncestorNode) with a Gloas override that also requires matching payload status (PENDING ancestors act as a wildcard). Gloas proposer-boost / attestation-weight logic uses isAncestor instead of ad-hoc ancestor-node comparisons.

Renames isShufflingStable to isNotEpochBoundary to mirror spec naming. Renames resolveVoteNode to getSupportedNode on ForkChoiceModel (protoarray score deltas).

specrefs drop several fork-choice items from the “not implemented” list and point is_ancestor, get_supported_node, is_epoch_boundary, and Gloas get_ancestor at the new Java implementations.

Reviewed by Cursor Bugbot for commit 461ef5a. Bugbot is set up for automated code reviews on this repo. Configure here.

@tbenr tbenr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zilm13
zilm13 merged commit 3179df6 into Consensys-Incorporated:master Jul 3, 2026
84 checks passed
@zilm13
zilm13 deleted the forkchoice-redesign branch July 3, 2026 13:07
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consensus-specs alpha.9 meta ForkChoice spec redeisgn

2 participants