Skip to content

feat: add fast_confirmation SSE event#24

Merged
pk910 merged 1 commit into
masterfrom
feat/fast-confirmation-event
May 13, 2026
Merged

feat: add fast_confirmation SSE event#24
pk910 merged 1 commit into
masterfrom
feat/fast-confirmation-event

Conversation

@samcm
Copy link
Copy Markdown
Member

@samcm samcm commented May 13, 2026

Adds support for the new fast_confirmation SSE event introduced in ethereum/beacon-APIs#598. The event carries a beacon block root and slot, emitted once per slot after execution of the Fast confirmation rule.

Mirrors the existing block_gossip pattern: FastConfirmationEvent struct, generic + topic-specific handler wiring, and topic registration in SupportedEventTopics.

Adds support for the fast_confirmation event introduced in
ethereum/beacon-APIs#598. The event is emitted once per slot after
execution of the Fast confirmation rule and carries a beacon block
root + slot.
@pk910 pk910 merged commit b334d21 into master May 13, 2026
3 checks passed
@pk910 pk910 deleted the feat/fast-confirmation-event branch May 13, 2026 07:05
samcm added a commit to ethpandaops/xatu that referenced this pull request May 14, 2026
* feat: capture fast_confirmation beacon-api event end-to-end

Wires the new fast_confirmation SSE event (beacon-APIs#598) all the way
through xatu: adds the proto schema, the sentry decorator + dedup cache,
the server-side ingester registration, a tap on the raw event stream
that decorates fast_confirmation messages (since ethpandaops/beacon
doesn't yet expose a typed OnFastConfirmation), the ClickHouse table +
distributed view as a new 002 migration, the consumoor rowgen and
flatten logic, and a cross-cutting TestCompletenessEveryEventNameHasRoute
that asserts every Event_Name has a route or an allowlisted reason.

The slot field on the event is the confirmed block's slot (typically in
the past), so wallclock_slot/wallclock_epoch are also populated from
the sentry's wall clock, mirroring voluntary_exit.

Triggered by adding fast_confirmation to ethereum.beaconSubscriptions
in the sentry config.

Depends on ethpandaops/go-eth2-client#24 (currently pinned via
pseudo-version; bump to a tag once that merges).

* make fast_confirmation derived fields Nullable

Epoch 0 is genuine genesis data, not 'missing'. Sentinel-zero on
optional derived columns conflated the two. Switch propagation_slot_start_diff,
epoch, epoch_start_date_time, wallclock_slot/epoch and their *_start_date_time
to Nullable so a real null can mean 'unknown'. slot_start_date_time stays
non-null because it's in ORDER BY.

* silence goconst on shared column-key test literals

* lint: trim unused nolint:goconst markers

* bump ethpandaops/beacon to fast_confirmation-aware tip

Pulls in ethpandaops/beacon#73 so the library handleEvent switch
recognises fast_confirmation, eliminating per-event 'unknown event
topic' errors when a sentry subscribes to the topic.

* lint: function-level nolint:goconst for snapshot tests

* sentry: use beacon.OnFastConfirmation typed handler

* bump ethpandaops/beacon to v0.69.0
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