Skip to content

feat: add aggregate attestation support#181

Open
samcm wants to merge 8 commits intomasterfrom
feat/capture-aggregates
Open

feat: add aggregate attestation support#181
samcm wants to merge 8 commits intomasterfrom
feat/capture-aggregates

Conversation

@samcm
Copy link
Copy Markdown
Member

@samcm samcm commented Jan 19, 2026

Summary

  • Add support for capturing aggregate attestations alongside single attestations
  • Aggregate attestations use the attestation beacon API events topic
  • Produces the same BEACON_API_ETH_V1_EVENTS_ATTESTATION_V2 event type but with populated aggregation_bits

Key Differences from Single Attestations

Aspect Single Attestation Aggregate Attestation
Data Type *electra.SingleAttestation *spec.VersionedAttestation
Topic single_attestation attestation
Handler OnSingleAttestation() OnAttestation()
AggregationBits Empty string Hex-encoded bitlist
Subnet Filtering Yes No (global broadcast)

Test plan

  • Build passes: go build ./...
  • Lint passes: golangci-lint run --new-from-rev="origin/master"
  • Unit tests pass: go test -race ./...
  • CI integration tests

Add support for capturing aggregate attestations alongside single
attestations. Aggregate attestations are broadcast on the `attestation`
beacon API events topic and produce the same
`BEACON_API_ETH_V1_EVENTS_ATTESTATION_V2` event type, but with
populated `aggregation_bits`.

Key differences from single attestations:
- Uses *spec.VersionedAttestation instead of *electra.SingleAttestation
- No subnet filtering (aggregates are broadcast globally)
- Aggregation bits are hex-encoded in the output
- No AttestingValidator metadata (aggregates represent multiple validators)

Both TopicSingleAttestation and TopicAggregateAttestation share the
same opt-in condition - if single attestation is enabled, aggregates
are also enabled.
@samcm samcm requested a review from mattevans as a code owner January 19, 2026 04:33
samcm added 6 commits January 19, 2026 14:36
- Enable attestation subnet checking in the integration test
- Add verification that attestation events (single or aggregate) are being captured
- Increase timeout from 60s to 90s to allow for attestation events
Not all consensus clients emit attestation events at the same rate.
Some clients may not have validators assigned during the test window.
Make attestation verification optional to avoid flaky test failures.
The ethereum-package starlark code now uses 'depends_on' parameter
for store_service_files which requires a newer Kurtosis version.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants