Skip to content

11261 update gossip rules - #11270

Merged
mehdi-aouadi merged 6 commits into
Consensys-Incorporated:masterfrom
mehdi-aouadi:11261-update-gossip-rules
Sep 15, 2026
Merged

mehdi-aouadi merged 6 commits into
Consensys-Incorporated:masterfrom
mehdi-aouadi:11261-update-gossip-rules

Conversation

@mehdi-aouadi

@mehdi-aouadi mehdi-aouadi commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

PR Description

Update Gloas gossip rules for beta 0 spec

Fixed Issue(s)

fixes #11261

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

Medium Risk
Changes consensus gossip validation for Gloas messages (bids, preferences, payload attestations), including new IGNORE rules and ordering that can alter which messages are accepted or deferred on the network.

Overview
Updates Gloas (EPBS) gossip validators to match the beta 0 spec: rule ordering, IGNORE vs REJECT semantics, and clearer spec-style comments across payload attestations, execution payload bids/envelopes, and proposer preferences.

Shared helpers: GossipValidationHelper adds isWithinProposerLookahead and isWithinParentProposerLookahead (MIN_SEED_LOOKAHEAD), used by bid and proposer-preferences validation.

Execution payload bids: Ignores bids whose slot is past the parent block’s proposer lookahead; treats fee-recipient mismatch as IGNORE (not reject); splits builder checks (index in range, active, payload-builder version). Duplicate-bid ignore messages include slot and builder index.

Proposer preferences: Early dedup; IGNORE pre-Gloas proposal epochs; proposer-known check via isWithinProposerLookahead; requires dependent block state via getStateAtBlockRoot before checkpoint state (ignore if dependent root has not passed validation).

Payload attestations: REJECT when validator index is out of range; centralized trace logging with validator/slot/block context for accept/reject/ignore/save-for-future.

Execution payload envelopes: Comment/label alignment only for most rules; limit checks documented as explicit [REJECT] steps.

Tests cover lookahead helpers, bid lookahead/blob/builder cases, out-of-range payload attestation validators, and new proposer-preferences paths.

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

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 095c1e1. Configure here.

@lucassaldanha lucassaldanha 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. One thing I notice is that we had a bunch of comments edited/removed. In some instances, they seem to provide relevant context for the validation's applicability. Not sure if that was deliberate, but it's worth double-checking whether some of them are still relevant.

@mehdi-aouadi

Copy link
Copy Markdown
Contributor Author

LGTM. One thing I notice is that we had a bunch of comments edited/removed. In some instances, they seem to provide relevant context for the validation's applicability. Not sure if that was deliberate, but it's worth double-checking whether some of them are still relevant.

I double checked: The comments are the same as the spec now. Some comments related to implementation details were removed (the DoS prevention mechanism description for example) and other comments were deliberately removed because seemed excessive to me (state lookup by block root instead of slot for example).

@mehdi-aouadi
mehdi-aouadi enabled auto-merge (squash) September 15, 2026 09:47
@mehdi-aouadi
mehdi-aouadi merged commit b94bc78 into Consensys-Incorporated:master Sep 15, 2026
176 of 178 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 15, 2026
@mehdi-aouadi
mehdi-aouadi deleted the 11261-update-gossip-rules branch September 15, 2026 16:58
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.

Update gossip rules

2 participants