Skip to content

Conversation

@domiwei
Copy link
Member

@domiwei domiwei commented Dec 12, 2025

This PR fixes the Beacon API events endpoint to publish SingleAttestation objects (introduced in Electra) under the single_attestation topic instead of attestation.

Currently, Caplin publishes all attestations under the attestation topic, regardless of whether they are pre-Electra Attestation objects or post-Electra SingleAttestation objects.

References:

https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/p2p-interface.md#beacon_attestation_subnet_id -
https://github.com/ethereum/beacon-APIs/blob/master/apis/eventstream/index.yaml#L71 -
https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/beacon-chain.md#singleattestation

For context:

We'd love to see this added. We have some contributoors pushing to the ethPandaOps Xatu dataset using Caplin - but we're not capturing attestations because of it. For example:
https://lab.ethpandaops.io/xatu/contributors/abstractdrank74#attestation-latency

This PR fixes the Beacon API events endpoint to publish
SingleAttestation objects (introduced in Electra) under the
`single_attestation` topic instead of `attestation`.

Currently, Caplin publishes all attestations under the `attestation`
topic, regardless of whether they are pre-Electra `Attestation` objects
or post-Electra `SingleAttestation` objects.

**References:**
-
https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/p2p-interface.md#beacon_attestation_subnet_id
-
https://github.com/ethereum/beacon-APIs/blob/master/apis/eventstream/index.yaml#L71
-
https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/beacon-chain.md#singleattestation

**For context:**

We'd love to see this added. We have some contributoors pushing to the
ethPandaOps Xatu dataset using Caplin - but we're not capturing
attestations because of it. **For example:**
https://lab.ethpandaops.io/xatu/contributors/abstractdrank74#attestation-latency
@domiwei domiwei requested a review from Giulio2002 as a code owner December 12, 2025 08:23
@domiwei domiwei enabled auto-merge (squash) December 12, 2025 08:24
@domiwei domiwei merged commit 488ea73 into release/3.3 Dec 12, 2025
11 checks passed
@domiwei domiwei deleted the kewei/pick/single_att_event branch December 12, 2025 08:40
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.

4 participants