Add builder API types, request-auth domain, and eth2 client methods (Gloas builder API 1/5) - #9803
Merged
Conversation
Member
Author
|
This pull request is part of a Mergify stack:
|
This was referenced Aug 13, 2026
Open
ethDreamer
force-pushed
the
stack/ethDreamer/gloas-builder-api-stacked/add-builder-api-types-req-auth-domain-eth2-client--1df19d46
branch
from
August 13, 2026 23:39
088ad76 to
6f6c368
Compare
Member
Author
Revision history
|
ethDreamer
force-pushed
the
stack/ethDreamer/gloas-builder-api-stacked/add-builder-api-types-req-auth-domain-eth2-client--1df19d46
branch
from
August 14, 2026 00:03
6f6c368 to
7e94d7b
Compare
eserilev
reviewed
Aug 14, 2026
ethDreamer
force-pushed
the
stack/ethDreamer/gloas-builder-api-stacked/add-builder-api-types-req-auth-domain-eth2-client--1df19d46
branch
from
August 14, 2026 18:25
7e94d7b to
6e51496
Compare
ethDreamer
force-pushed
the
stack/ethDreamer/gloas-builder-api-stacked/add-builder-api-types-req-auth-domain-eth2-client--1df19d46
branch
2 times, most recently
from
August 18, 2026 17:51
3e64b04 to
8e5b90a
Compare
Member
Author
pawanjay176
reviewed
Aug 18, 2026
pawanjay176
left a comment
Member
There was a problem hiding this comment.
Looking good. Mostly nits
| /// the exact bytes when it verifies. When no value has been agreed out of band, implementations | ||
| /// SHOULD default to the UTF-8 bytes of the builder's own advertised URL, exactly as advertised, | ||
| /// so proposers with no prior relationship can construct an identical `data` deterministically. | ||
| /// A zero-length `data` is invalid. |
Member
There was a problem hiding this comment.
Is this enforced somewhere else?
Member
Author
There was a problem hiding this comment.
It's enforced in the fn validate() on BuilderEntry:
pub fn validate(&self) -> Result<(), &'static str> {
if self.url.as_bytes().is_empty() {
return Err("zero-length builder url");
}
if self.auth.message.data.is_empty() {
return Err("zero-length auth data");
}
Ok(())
}and the same validate() function is used on BuilderPreferenceEntry and it's enforced in the HTTP API:
- File: beacon_node/http_api/src/validator/mod.rs:547-553
- Added in PR: Convert produceBlockV4 to POST and round-trip Eth-Builder-Url (Gloas builder API 4/5) #9806
for entry in builder_config.builders.iter() {
entry.validate().map_err(|e| {
warp_utils::reject::custom_bad_request(format!(
"invalid builder entry: {e}"
))
})?;
}and that PR adds a test for the http api at beacon_node/http_api/tests/tests.rs:5107 that explicitly tests the http api rejects it.
ethDreamer
force-pushed
the
stack/ethDreamer/gloas-builder-api-stacked/add-builder-api-types-req-auth-domain-eth2-client--1df19d46
branch
2 times, most recently
from
August 19, 2026 21:58
766aa4e to
5609394
Compare
|
Queued — the merge queue status continues in this comment ↓. |
ethDreamer
force-pushed
the
stack/ethDreamer/gloas-builder-api-stacked/add-builder-api-types-req-auth-domain-eth2-client--1df19d46
branch
from
August 20, 2026 17:50
5609394 to
d68a341
Compare
|
Some required checks have failed. Could you please take a look @ethDreamer? 🙏 |
…Gloas builder API 1/5) First PR of the Gloas builder API stack (builder-specs #165 / beacon-APIs #630): - consensus/types: DOMAIN_REQUEST_AUTH application domain and `get_request_auth_domain()` - common/builder_types: new crate with the shared Builder API wire types - common/eth2: POST produceBlockV4 methods, builder-preferences methods, `Eth-Builder-Url` header plumbing, and `ProduceBlockV4Metadata::builder_url` All changes are additive: the legacy GET v4 block-production methods are kept alongside the new POST variants until the validator client migrates later in this stack, then removed in the final PR. Change-Id: I1df19d460b74b0e7387426e79a2e8edc764da837
ethDreamer
force-pushed
the
stack/ethDreamer/gloas-builder-api-stacked/add-builder-api-types-req-auth-domain-eth2-client--1df19d46
branch
from
August 20, 2026 21:41
d68a341 to
885b2f8
Compare
Merge Queue Status
This pull request spent 32 minutes 2 seconds in the queue, including 29 minutes 9 seconds running CI. Required conditions to merge
|
10 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.

First PR of the Gloas builder API stack (builder-specs #165 / beacon-APIs #630):
get_request_auth_domain()Eth-Builder-Urlheader plumbing, andProduceBlockV4Metadata::builder_urlAll changes are additive: the legacy GET v4 block-production methods are kept
alongside the new POST variants until the validator client migrates later in
this stack, then removed in the final PR.