From 525bed709f6e39eb0a5c8346240de1e08e56d2ea Mon Sep 17 00:00:00 2001 From: Eitan Seri- Levi Date: Mon, 9 Feb 2026 20:52:21 -0800 Subject: [PATCH] add consts --- beacon_node/beacon_chain/src/block_production/gloas.rs | 3 ++- consensus/types/src/core/consts.rs | 1 + validator_client/validator_services/src/block_service.rs | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/beacon_node/beacon_chain/src/block_production/gloas.rs b/beacon_node/beacon_chain/src/block_production/gloas.rs index 6312885af2..52f01cbe75 100644 --- a/beacon_node/beacon_chain/src/block_production/gloas.rs +++ b/beacon_node/beacon_chain/src/block_production/gloas.rs @@ -15,6 +15,7 @@ use state_processing::{ use state_processing::{VerifyOperation, state_advance::complete_state_advance}; use tracing::{Span, debug, debug_span, error, instrument, trace, warn}; use tree_hash::TreeHash; +use types::consts::gloas::{BID_VALUE_SELF_BUILD, BUILDER_INDEX_SELF_BUILD}; use types::{ Address, Attestation, AttestationElectra, AttesterSlashing, AttesterSlashingElectra, BeaconBlock, BeaconBlockBodyGloas, BeaconBlockGloas, BeaconState, BlockProductionVersion, @@ -147,7 +148,7 @@ impl BeaconChain { // We'll need to build out trustless/trusted bid paths. let (execution_payload_bid, state, payload_data) = self .clone() - .produce_execution_payload_bid(state, state_root_opt, produce_at_slot, 0, u64::MAX) + .produce_execution_payload_bid(state, state_root_opt, produce_at_slot, BID_VALUE_SELF_BUILD, BUILDER_INDEX_SELF_BUILD) .await?; // Part 3/3 (blocking) diff --git a/consensus/types/src/core/consts.rs b/consensus/types/src/core/consts.rs index 0d4c0591cb..c1e9b695fa 100644 --- a/consensus/types/src/core/consts.rs +++ b/consensus/types/src/core/consts.rs @@ -28,6 +28,7 @@ pub mod deneb { pub mod gloas { pub const BUILDER_INDEX_SELF_BUILD: u64 = u64::MAX; pub const BUILDER_INDEX_FLAG: u64 = 1 << 40; + pub const BID_VALUE_SELF_BUILD: u64 = 0; // Fork choice constants pub type PayloadStatus = u8; diff --git a/validator_client/validator_services/src/block_service.rs b/validator_client/validator_services/src/block_service.rs index ec6391b7d4..b95c0fa2ec 100644 --- a/validator_client/validator_services/src/block_service.rs +++ b/validator_client/validator_services/src/block_service.rs @@ -620,7 +620,9 @@ impl BlockService { ) .await?; - // For Gloas, fetch the execution payload envelope, sign it, and publish it + // TODO(gloas) we only need to fetch, sign and publish the envelope in the local building case. + // Right now we always default to local building. Once we implement trustless/trusted builder logic + // we should check the bid for index == BUILDER_INDEX_SELF_BUILD if fork_name.gloas_enabled() { self_ref .fetch_sign_and_publish_payload_envelope(proposer_fallback, slot, &validator_pubkey) @@ -634,7 +636,7 @@ impl BlockService { /// This should be called after the block has been published. /// /// TODO(gloas): For multi-BN setups, we need to track which beacon node produced the block - /// and fetch/publish the envelope from that same node. The envelope is cached per-BN, + /// and fetch the envelope from that same node. The envelope is cached per-BN, /// so fetching from a different BN than the one that built the block will fail. /// See: https://github.com/sigp/lighthouse/pull/8313 #[instrument(skip_all)]