Decouple signed builder auth data from the HTTP dial target - #17124
Open
terencechain wants to merge 1 commit into
Open
Decouple signed builder auth data from the HTTP dial target#17124terencechain wants to merge 1 commit into
terencechain wants to merge 1 commit into
Conversation
|
LGTM and really appreciate this. Without this change, optional sidecars would be unable to route signed request authorizations to downstream builders. This will preserve out-of-protocol experimentation without friction 😄 |
terencechain
force-pushed
the
builder-proxy
branch
from
July 7, 2026 22:12
004cdcb to
7c54cb9
Compare
This was referenced Jul 9, 2026
terencechain
force-pushed
the
builder-proxy
branch
2 times, most recently
from
July 11, 2026 20:19
f0dfebf to
dcf400b
Compare
terencechain
force-pushed
the
builder-proxy
branch
from
July 24, 2026 03:54
dcf400b to
6bb8ba9
Compare
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
buildersentries to proposer settings builder config:urlis the HTTP dial target, optionalauth_data(0x-hex bytes) is signed into request auths and defaults to the UTF-8 bytes ofurl, optionalpubkeycredits execution payments only from that builder, optionalmax_execution_payment,min_bid, andbuilder_boost_factoroverride the config-level defaults.relaysremains a deprecated alias; duplicate(url, auth_data)entries are rejected.(pubkey, slot, auth_data)authenticates bothgetExecutionPayloadBidandsubmitBuilderPreferences. The beacon node routes byurlonly and forwards auths byte-for-byte unchanged, so proxying needs no special support: pointurlat the sidecar and setauth_datato identify the downstream builder.getExecutionPayloadBid,Date-MillisecondsandX-Timeout-Msheaders are sent on bid requests, andEth-Consensus-Versionis dropped from the request-auth endpoints since their bodies are not fork-versioned.Example config:
{ "version": 2, "proposer_config": { "0xa057816155ad77931185101128655c0191bd0214c201ca48ed887f6c4c6adf334070efcd75140eada5ac83a92506dd7a": { "fee_recipient": "0x50155530FCE8a85ec7055A5F8b2bE214B3DaeFd3", "gas_limit": "45000000", "builder": { "enabled": true, "builders": [ { "url": "https://builder-a.example.com", "pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a", "max_execution_payment": "250000000" }, { "url": "https://sidecar.example.com", "auth_data": "0x68747470733a2f2f6275696c6465722d622e6578616d706c652e636f6d", "min_bid": "10000000", "builder_boost_factor": "150" } ], "max_execution_payment": "500000000" } } }, "default_config": { "fee_recipient": "0x8943545177806ED17B9F23F0a21ee5948eCaa776", "builder": { "enabled": true, "builders": [ {"url": "http://buildoor-lodestar-nethermind-2-1:8080"}, {"url": "http://buildoor-lodestar-nethermind-2-2:8080"} ], "max_execution_payment": "18446744073709551615" } } }Entry fields:
urlrequired (where requests are sent),auth_data/pubkeyand the per-builder limits optional. An entry withoutauth_datasigns the UTF-8 bytes of itsurl; an entry withoutpubkeyaccepts execution payments from any builder on that channel up to its cap.default_configapplies to every key, so large operators define builder entries once;proposer_configis only for keys that deviate.