-
Notifications
You must be signed in to change notification settings - Fork 905
Open
Labels
blockeddasData Availability SamplingData Availability SamplingoptimizationSomething to make Lighthouse run more efficiently.Something to make Lighthouse run more efficiently.
Description
Description
See this comment for context.
Currently we allow for reconstruction and multiple column computation for the same block to happen at the same time, this is wasteful and we can avoid this.
In PendingComponents
, we track reconstruction with a bool reconstruction_started
and we track blob to column computation with a data_column_recv
. We should be able to replace the reconstruction_started
usage with data_column_recv
as well, and check if data_column_recv
is Some
before triggering either 1/ blob to column computation or 2/ column reconstruction.
lighthouse/beacon_node/beacon_chain/src/data_availability_checker/overflow_lru_cache.rs
Lines 23 to 39 in 4173135
/// This represents the components of a partially available block | |
/// | |
/// The blobs are all gossip and kzg verified. | |
/// The block has completed all verifications except the availability check. | |
pub struct PendingComponents<E: EthSpec> { | |
pub block_root: Hash256, | |
pub verified_blobs: FixedVector<Option<KzgVerifiedBlob<E>>, E::MaxBlobsPerBlock>, | |
pub verified_data_columns: Vec<KzgVerifiedCustodyDataColumn<E>>, | |
pub executed_block: Option<DietAvailabilityPendingExecutedBlock<E>>, | |
pub reconstruction_started: bool, | |
/// Receiver for data columns that are computed asynchronously; | |
/// | |
/// If `data_column_recv` is `Some`, it means data column computation or reconstruction has been | |
/// started. This can happen either via engine blobs fetching or data column reconstruction | |
/// (triggered when >= 50% columns are received via gossip). | |
pub data_column_recv: Option<oneshot::Receiver<DataColumnSidecarList<E>>>, | |
} |
Metadata
Metadata
Assignees
Labels
blockeddasData Availability SamplingData Availability SamplingoptimizationSomething to make Lighthouse run more efficiently.Something to make Lighthouse run more efficiently.