Skip to content

ws get_header bids stream draft - #483

Merged
ltitanb merged 1 commit into
Commit-Boost:mainfrom
ninaiiad:ng/ws-get-header
Aug 11, 2026
Merged

ws get_header bids stream draft#483
ltitanb merged 1 commit into
Commit-Boost:mainfrom
ninaiiad:ng/ws-get-header

Conversation

@ninaiiad

Copy link
Copy Markdown
Contributor

No description provided.

@ninaiiad
ninaiiad requested a review from a team July 28, 2026 17:52
Comment thread config.example.toml
Comment thread crates/common/src/pbs/relay.rs Outdated
@JasonVranek

Copy link
Copy Markdown
Collaborator

I like the simplicity of per-slot streams vs the old PoC establishing long lived connections. Q is if handshake overhead is neglible or will be problematic / is this enough time for the relay to establish reliable RTTs?

Comment thread crates/pbs/src/mev_boost/get_header.rs
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs Outdated
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs Outdated
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs Outdated
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs Outdated
ltitanb
ltitanb previously approved these changes Aug 3, 2026
Comment thread config.example.toml Outdated
Comment thread crates/common/src/pbs/relay.rs Outdated
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs
@ninaiiad
ninaiiad force-pushed the ng/ws-get-header branch 3 times, most recently from fd8b6a2 to fa466ca Compare August 3, 2026 19:50
ltitanb
ltitanb previously approved these changes Aug 3, 2026
ltitanb
ltitanb previously approved these changes Aug 4, 2026
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs
JasonVranek
JasonVranek previously approved these changes Aug 10, 2026
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs Outdated
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs Outdated
Comment thread crates/pbs/src/mev_boost/get_header_ws.rs
@ltitanb
ltitanb merged commit e622a5e into Commit-Boost:main Aug 11, 2026
3 checks passed
JasonVranek added a commit that referenced this pull request Aug 11, 2026
Adds the ePBS (gloas) builder-API surface and the strict header rulings,
rebased onto main so it sits on top of the SSZ rewrite (#468) and the
fork-from-slot fix (#487).

ePBS endpoints:
- getExecutionPayloadBid, submitBuilderPreferences, submitSignedBeaconBlock,
  with per-builder routing by SignedRequestAuth.data (no Eth-Builder-Url).
- SSZ-first request/response with JSON fallback; the bid poll ladder honors the
  proposer's timing headers.

Header discipline (builder-specs #165):
- Eth-Consensus-Version required for JSON and SSZ on the request-auth endpoints;
  absent -> MissingVersionHeader, present-but-unsupported -> InvalidVersionHeader,
  both 400. The accepted set is Gloas only; any other fork name is a client bug.
- A relay bid whose response fork is not Gloas on the Gloas-only endpoint is a
  bad relay response: dropped, never forwarded under the wrong fork.

Status + observability:
- zero addressed builders accepting an ePBS submission maps to 500, not 502
  (neither endpoint declares 502); new PbsClientError::NoBuilderResponse.
- decode/accept rejections counted in BEACON_NODE_STATUS via record_client_error;
  dropped relay responses in pbs_relay_invalid_response_total{reason,endpoint,relay_id}.

Legacy PBS, the websocket get_header stream (#483), and the #487 fork fix are
unchanged. Suite green, clippy clean.
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.

5 participants