From f7c7ed84577c82897ede21b17e37192412cfa167 Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Fri, 1 May 2026 03:31:51 +0200 Subject: [PATCH] clean up gloas-payload-cache --- beacon_node/beacon_chain/src/beacon_chain.rs | 9 ++++----- .../beacon_chain/src/pending_payload_cache/mod.rs | 4 ++-- .../src/pending_payload_cache/pending_components.rs | 7 +------ .../types/src/execution/signed_execution_payload_bid.rs | 8 ++++++++ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index e17b4789f8..a7f289b3f1 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -3352,7 +3352,6 @@ impl BeaconChain { } self.emit_sse_data_column_sidecar_events( - slot, &block_root, data_columns.iter().map(|column| column.as_data_column()), ); @@ -3430,7 +3429,6 @@ impl BeaconChain { ); self.emit_sse_data_column_sidecar_events( - slot, &block_root, merge_result .full_columns @@ -3536,7 +3534,6 @@ impl BeaconChain { } EngineGetBlobsOutput::CustodyColumns(columns) => { self.emit_sse_data_column_sidecar_events( - slot, &block_root, columns.iter().map(|column| column.as_data_column()), ); @@ -3570,7 +3567,6 @@ impl BeaconChain { fn emit_sse_data_column_sidecar_events<'a, I>( self: &Arc, - slot: Slot, block_root: &Hash256, data_columns_iter: I, ) where @@ -3579,6 +3575,10 @@ impl BeaconChain { if let Some(event_handler) = self.event_handler.as_ref() && event_handler.has_data_column_sidecar_subscribers() { + let mut data_columns_iter = data_columns_iter.peekable(); + let Some(slot) = data_columns_iter.peek().map(|col| col.slot()) else { + return; + }; let imported_data_columns = self .cached_data_column_indexes(block_root, slot) .unwrap_or_default(); @@ -3643,7 +3643,6 @@ impl BeaconChain { } self.emit_sse_data_column_sidecar_events( - slot, &block_root, custody_columns.iter().map(|column| column.as_ref()), ); diff --git a/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs b/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs index 71b5872d59..964b526288 100644 --- a/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs +++ b/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs @@ -487,7 +487,7 @@ impl PendingPayloadCache { return ReconstructColumnsDecision::No("block already imported"); }; - let epoch = pending_components.epoch(); + let epoch = pending_components.bid.epoch(); let total_column_count = T::EthSpec::number_of_columns(); let sampling_column_count = self @@ -524,7 +524,7 @@ impl PendingPayloadCache { let mut write_lock = self.availability_cache.write(); let mut keys_to_remove = vec![]; for (key, value) in write_lock.iter() { - if value.epoch() < cutoff_epoch { + if value.bid.epoch() < cutoff_epoch { keys_to_remove.push(*key); } } diff --git a/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs b/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs index de351cd527..b69c897bda 100644 --- a/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs +++ b/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs @@ -10,7 +10,7 @@ use std::sync::Arc; use tracing::{Span, debug, debug_span}; use types::DataColumnSidecar; use types::{ - AbstractExecPayload, BeaconStateError, ColumnIndex, Epoch, EthSpec, Hash256, SignedBeaconBlock, + AbstractExecPayload, BeaconStateError, ColumnIndex, EthSpec, Hash256, SignedBeaconBlock, SignedExecutionPayloadBid, }; @@ -187,11 +187,6 @@ impl PendingComponents { } } - /// Returns the epoch of the bid or first data column, if available. - pub fn epoch(&self) -> Epoch { - self.bid.message.slot.epoch(E::slots_per_epoch()) - } - pub fn status_str(&self, num_expected_columns: usize) -> String { format!( "envelope {}, data_columns {}/{}", diff --git a/consensus/types/src/execution/signed_execution_payload_bid.rs b/consensus/types/src/execution/signed_execution_payload_bid.rs index 48da445332..37ccb9cf79 100644 --- a/consensus/types/src/execution/signed_execution_payload_bid.rs +++ b/consensus/types/src/execution/signed_execution_payload_bid.rs @@ -25,6 +25,14 @@ pub struct SignedExecutionPayloadBid { } impl SignedExecutionPayloadBid { + pub fn epoch(&self) -> crate::Epoch { + self.message.slot.epoch(E::slots_per_epoch()) + } + + pub fn slot(&self) -> crate::Slot { + self.message.slot + } + pub fn empty() -> Self { Self { message: ExecutionPayloadBid::default(),