Skip to content

feat(pbs): a switch to turn off dialing, and a 20 ms ePBS buffer default - #511

Merged
JasonVranek merged 4 commits into
mainfrom
epbs-dial-switch
Oct 15, 2026
Merged

JasonVranek merged 4 commits into
mainfrom
epbs-dial-switch

Conversation

@JasonVranek

@JasonVranek JasonVranek commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Two ePBS config follow-ups to #506:

  1. A [pbs] dial_unconfigured_builders switch that turns off dialing builders outside the config, from the review on dial.rs.
  2. proposer_deadline_buffer_ms defaults to 20 instead of 50, and setup no longer asks for it as the first config item to change.

Dial switch

Since #506, an ePBS bid or builder preferences request whose auth_data matches none of the key's relay entries in the Commit-Boost config is dialed at the builder that auth_data specifies. dial_unconfigured_builders lets an operator turn that off and keep Commit-Boost only to the builders in its config.

[pbs]
dial_unconfigured_builders = false

The default is true, which keeps #506's behaviour. The switch applies to the whole instance - there's no per-mux override.

When it is off:

  • Configured relays: mux relays and [[relays]] serve requests exactly as before.
  • Anything else: a request whose auth_data doesn't match any of the key's relay entries gets 400 "auth.message.data does not match any configured builder". Commit-Boost logs a warning with the auth_data.
  • Order of checks: the switch is checked before the chained-Commit-Boost and own-host checks. Those also answer 400, so the only difference is the log line.

Buffer default

Commit-Boost's own share of the buffer is a few milliseconds on a release build. Measured with a relay that never answers, it used 1.8 ms p50, 2.9 ms p99 and 3.7 ms at most, over 3000 requests. About 2 ms of that is millisecond rounding.

So 20 suits a beacon node on the same host. The setting stays for a beacon node on another host, where the response's trip back and any clock difference between the hosts come out of the buffer.

@JasonVranek
JasonVranek requested a review from a team October 13, 2026 22:12
…nfig

`dial_unconfigured_builders` (default true) controls whether an ePBS bid or
builder preferences request whose auth data matches no relay entry is dialed.
With it off, mux relays and `[[relays]]` still serve as before, and any other
auth data gets a 400 without a builder being asked.
…nts say why

A builder listed only in another mux's relays is still refused with dialing
off, so the docs name the key's relay entries rather than any relay entry.
The dial-off tests skip the address check so that only the switch can stop
the dial, and the unit test drops an assert another one covers.
… of setup

Commit-Boost's own share of the buffer is a few milliseconds on a release
build, so 20 suits a beacon node on the same host. The setting stays for
setups where the beacon node runs on another host, where the response's
trip back and any clock difference between the hosts come out of the
buffer. Setup no longer asks for it; the Timing section says when to
raise it.
0.23.46 is inside the 14-day publish-age cooldown, so this uses just update-allow. Cargo also moves tempfile's getrandom from 0.4.3 to 0.3.4; both were already in the lock, and tempfile is used only by build scripts and tests.
@JasonVranek
JasonVranek merged commit 23c061c into main Oct 15, 2026
6 checks passed
@JasonVranek
JasonVranek deleted the epbs-dial-switch branch October 15, 2026 15:39
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.

3 participants