Skip to content

Add executable gossip validation functions for gloas - #5294

Merged
jtraglia merged 90 commits into
ethereum:masterfrom
jtraglia:executable-networking-specs-gloas
Jul 31, 2026
Merged

Add executable gossip validation functions for gloas#5294
jtraglia merged 90 commits into
ethereum:masterfrom
jtraglia:executable-networking-specs-gloas

Conversation

Comment thread specs/gloas/p2p-interface.md
Comment thread specs/gloas/p2p-interface.md Outdated
Comment thread specs/gloas/p2p-interface.md Outdated
Comment thread specs/phase0/p2p-interface.md
Comment thread specs/gloas/p2p-interface.md Outdated
Comment thread specs/gloas/p2p-interface.md Outdated
Comment thread specs/gloas/p2p-interface.md Outdated
raise GossipReject("dependent root is not before the proposer lookahead epoch")

# [IGNORE] The dependent root is a possible dependent block for the lookahead epoch
if not is_valid_dependent_root(store, preferences.dependent_root, lookahead_epoch):

@nflaig nflaig Jul 30, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

is the store correctly "ticked" to current_time_ms, otherwise this could cause issues, since the state was always dialed forward to the current slot, also shouldn't the store just be the source of truth for time?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'm not entirely sure. Let's follow up on this later.


# [REJECT] The signature is valid with respect to the validator's public key
validator = lookahead_state.validators[preferences.validator_index]
domain = get_domain(lookahead_state, DOMAIN_PROPOSER_PREFERENCES, proposal_epoch)

@nflaig nflaig Jul 30, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

the lookahead_state is only dialed to lookahead_epoch_start_slot which should be sufficient for the check above, but how we get the domain seems wrong at the fork boundary, we probably wanna do something like compute_fork_version(proposal_epoch), in lodestar we use preferences.proposal_slot for this, epoch works the same though

Comment thread specs/gloas/p2p-interface.md Outdated

@wemeetagain wemeetagain 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.

After discussing with nflaig, imo this is a great improvement.

  • properly specifying and selecting a state from the store
  • properly selecting time via the store

@jtraglia

Copy link
Copy Markdown
Member Author

Hi everyone. This PR has gotten really large; ~120 comments and 90 commits. I acknowledge that this is not perfect. Notably we need to deal with state ambiguity and improve the test cases. I'm going to merge this PR now so we can iterate with smaller PRs. Big thanks to all that helped with this 🙏

@jtraglia
jtraglia merged commit ecf42d8 into ethereum:master Jul 31, 2026
16 checks passed
@jtraglia
jtraglia deleted the executable-networking-specs-gloas branch July 31, 2026 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants