Skip to content

Pass aggregate.committee_bits to get_committee_indices#4742

Merged
jtraglia merged 3 commits intoethereum:masterfrom
GarmashAlex:fix/electra-p2p
Nov 14, 2025
Merged

Pass aggregate.committee_bits to get_committee_indices#4742
jtraglia merged 3 commits intoethereum:masterfrom
GarmashAlex:fix/electra-p2p

Conversation

@GarmashAlex
Copy link
Copy Markdown
Contributor

Correct the beacon_aggregate_and_proof validation to call get_committee_indices(aggregate.committee_bits) instead of get_committee_indices(aggregate). Electra defines get_committee_indices to accept a committee bitvector and all related code paths and tests use .committee_bits. This change aligns the networking spec with the Electra attestation format introduced by EIP-7549 and avoids implementer confusion.

- [REJECT] `len(committee_indices) == 1`, where
`committee_indices = get_committee_indices(aggregate)`.
`committee_indices = get_committee_indices(aggregate.committee_bits)`.
- [REJECT] `aggregate.data.index == 0`
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.

Good catch. I find this section to be a little confusing. It's missing the aggregate = signed_aggregrate_and_proof.message.aggregate alias. In this PR, could you also add a paragraph near the beginning similar to the following:

The following validations MUST pass before forwarding the
`payload_attestation_message` on the network, assuming the alias
`data = payload_attestation_message.data`:

@jtraglia jtraglia changed the title fix(electra): pass aggregate.committee_bits to get_committee_indices Pass aggregate.committee_bits to get_committee_indices Nov 14, 2025
Copy link
Copy Markdown
Member

@jtraglia jtraglia left a comment

Choose a reason for hiding this comment

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

Good changes. Thanks for the PR 🙂

@jtraglia jtraglia merged commit 521f0fd into ethereum:master Nov 14, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants