Gloas publish data columns during local block building (#9182)

Make sure we are publishing columns during local block production


  


Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>

Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
This commit is contained in:
Eitan Seri-Levi
2026-04-28 15:19:47 +02:00
committed by GitHub
parent 4415cf0506
commit 6258eadc91
9 changed files with 545 additions and 57 deletions

View File

@@ -35,6 +35,7 @@ use types::{
SignedVoluntaryExit, Slot, SyncAggregate, Withdrawal, Withdrawals,
};
use crate::pending_payload_envelopes::PendingEnvelopeData;
use crate::{
BeaconChain, BeaconChainError, BeaconChainTypes, BlockProductionError,
ProduceBlockVerification, block_production::BlockProductionState,
@@ -74,6 +75,7 @@ pub struct ExecutionPayloadData<E: types::EthSpec> {
pub execution_requests: ExecutionRequests<E>,
pub builder_index: BuilderIndex,
pub slot: Slot,
pub blobs_and_proofs: (types::BlobsList<E>, types::KzgProofs<E>),
}
impl<T: BeaconChainTypes> BeaconChain<T> {
@@ -647,9 +649,14 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
let envelope_slot = payload_data.slot;
// TODO(gloas) might be safer to cache by root instead of by slot.
// We should revisit this once this code path + beacon api spec matures
self.pending_payload_envelopes
.write()
.insert(envelope_slot, signed_envelope.message);
let (blobs, _) = payload_data.blobs_and_proofs;
self.pending_payload_envelopes.write().insert(
envelope_slot,
PendingEnvelopeData {
envelope: signed_envelope.message,
blobs: Some(blobs),
},
);
debug!(
%beacon_block_root,
@@ -769,7 +776,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
payload_value: _,
execution_requests,
blob_kzg_commitments,
blobs_and_proofs: _,
blobs_and_proofs,
} = block_proposal_contents;
// TODO(gloas) since we are defaulting to local building, execution payment is 0
@@ -795,6 +802,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
execution_requests,
builder_index,
slot: produce_at_slot,
blobs_and_proofs,
};
// TODO(gloas) this is only local building