diff --git a/beacon_node/beacon_chain/src/payload_envelope_verification/import.rs b/beacon_node/beacon_chain/src/payload_envelope_verification/import.rs index 97992a7106..8f8ed3dd5e 100644 --- a/beacon_node/beacon_chain/src/payload_envelope_verification/import.rs +++ b/beacon_node/beacon_chain/src/payload_envelope_verification/import.rs @@ -83,12 +83,7 @@ impl BeaconChain { // about what the function actually does. let executed_envelope = chain .into_executed_payload_envelope(execution_pending) - .await - .inspect_err(|_| { - // If the envelope fails execution for whatever reason (e.g. engine offline), - // and we keep it in the cache, then the node will NOT perform lookup and - // reprocess this envelope until the envelope is evicted from DA checker, causing the - })?; + .await?; // Record the time it took to wait for execution layer verification. if let Some(timestamp) = slot_clock.now_duration() { diff --git a/beacon_node/network/src/network_beacon_processor/gossip_methods.rs b/beacon_node/network/src/network_beacon_processor/gossip_methods.rs index 3a4f782d49..c459bd8dce 100644 --- a/beacon_node/network/src/network_beacon_processor/gossip_methods.rs +++ b/beacon_node/network/src/network_beacon_processor/gossip_methods.rs @@ -1320,10 +1320,12 @@ impl NetworkBeaconProcessor { let data_column_slot = verified_data_column.slot(); let data_column_index = verified_data_column.index(); + // TODO(gloas): implement partial messages if let DataColumnSidecar::Fulu(col) = verified_data_column.as_data_column() && self .chain .data_availability_checker + .pending_block_cache() .partial_assembler() .is_some_and(|a| !a.is_complete(block_root, verified_data_column.index())) { @@ -1380,7 +1382,7 @@ impl NetworkBeaconProcessor { "Processed data column, waiting for other components" ); - self.check_reconstruction_trigger(*slot, block_root).await; + self.check_reconstruction_trigger(slot, &block_root).await; } }, Err(BlockError::DuplicateFullyImported(_)) => { @@ -1570,7 +1572,7 @@ impl NetworkBeaconProcessor { slot, process_fn: Box::pin(async move { cloned_self - .attempt_data_column_reconstruction(block_root) + .attempt_data_column_reconstruction(slot, block_root) .await; }), }, @@ -3871,7 +3873,8 @@ impl NetworkBeaconProcessor { | EnvelopeError::BeaconChainError(_) | EnvelopeError::BeaconStateError(_) | EnvelopeError::BlockProcessingError(_) - | EnvelopeError::InternalError(_) => { + | EnvelopeError::InternalError(_) + | EnvelopeError::AvailabilityCheck(_) => { self.propagate_validation_result( message_id, peer_id, @@ -3985,7 +3988,8 @@ impl NetworkBeaconProcessor { | EnvelopeError::BeaconChainError(_) | EnvelopeError::BeaconStateError(_) | EnvelopeError::BlockProcessingError(_) - | EnvelopeError::InternalError(_) => {} + | EnvelopeError::InternalError(_) + | EnvelopeError::AvailabilityCheck(_) => {} }, } } diff --git a/beacon_node/network/src/network_beacon_processor/mod.rs b/beacon_node/network/src/network_beacon_processor/mod.rs index 7df2f329ef..a39923723d 100644 --- a/beacon_node/network/src/network_beacon_processor/mod.rs +++ b/beacon_node/network/src/network_beacon_processor/mod.rs @@ -998,7 +998,13 @@ impl NetworkBeaconProcessor { } // Publish partial columns without eager send - if let Some(assembler) = self.chain.data_availability_checker.partial_assembler() { + // TODO(gloas): implement + if let Some(assembler) = self + .chain + .data_availability_checker + .pending_block_cache() + .partial_assembler() + { let columns = assembler.get_partials_and_mark_as_local_fetched(block_root, &header); if !columns.is_empty() { debug!(block = %block_root, "Publishing all partials after getBlobs");