Skip to content

Carry Fulu kzg_commitments on data_column_sidecar events - #256

Open
Bronek wants to merge 2 commits into
bronek/eager_http_sse_outputfrom
bronek/publish_kzg_commitments
Open

Bronek wants to merge 2 commits into
bronek/eager_http_sse_outputfrom
bronek/publish_kzg_commitments

Conversation

@Bronek

@Bronek Bronek commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

The application boundary reads commitments from the acquired Fulu sidecar. These will be streamed as an ordered kzg_commitments list in data_column_sidecar events, following beacon-APIs v4.0.0. Each 48-byte commitment is encoded as a 0x-prefixed string of 96 hexadecimal digits. Gloas events omit the field, matching v5.0.0-alpha.2.

This supplies the nonempty list required by the inspected go-eth2-client decoder. Since Gloas events do not supply kzg_commitments, the decoder is incompatible with Gloas. Lighthouse v8.2.2 also requires an additional versioned_hashes field, so its decoder remains incompatible.

This change builds on eager SSE writes and the 512 KiB send cap. With no earlier event backlog, that accommodates one block’s 128 column events carrying 21 commitments each, even when the socket accepts no bytes.

Fulu data_column_sidecar events lacked the kzg_commitments list defined
by beacon-APIs v4.0.0. Include the sidecar's commitments in order, encoding
each 48-byte value as a 0x-prefixed string of 96 hexadecimal digits.
Gloas sidecars carry no commitments, so their events omit the field,
matching the v5.0.0-alpha.2 event format.

SidecarIdentity retains the detected layout and exposes the Fulu list.
The application boundary passes the borrowed bytes to the renderer while
the acquired sidecar remains alive. Publication selection is unchanged.

Renderer and socket tests check distinct commitments in order and the
field's absence for Gloas. Producer tests also check the detected layout.
ADR-0004 records the fork-specific event formats.

Formatting and all-feature Clippy passed during review. Relevant tests
passed; the workspace suite failed only when finalized_state_loads
rejected its expired checkpoint.

Assisted-by: Claude:claude-fable-5-1
Assisted-by: Codex:gpt-6-astra
@Bronek
Bronek changed the base branch from main to bronek/eager_http_sse_output September 14, 2026 16:35
@Bronek
Bronek added this pull request to stack #257 September 14, 2026 16:36
@Bronek
Bronek force-pushed the bronek/publish_kzg_commitments branch from 048df8f to c4751e9 Compare September 14, 2026 16:42
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.

1 participant