From 3dd6be37b023c51838cd2f8889b7a9828813f1d7 Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Mon, 15 Jun 2026 14:25:27 +0300 Subject: [PATCH] Clean up --- beacon_node/beacon_chain/src/beacon_chain.rs | 19 +++++++++---------- .../beacon_chain/src/block_verification.rs | 2 +- .../src/payload_envelope_verification/mod.rs | 6 +++--- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index 9de17c9ed9..0b47e27415 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -3001,16 +3001,15 @@ impl BeaconChain { } } - let is_envelope_relevant = if let Some(envelope) = block.as_envelope() { - // If the envelope is relevant we skip the duplicate import check in - // `check_block_relevancy` - match check_envelope_relevancy(block.as_block(), envelope, self) { - Ok(_) => true, - Err(_) => false, - } - } else { - false - }; + // If the envelope is relevant we skip the duplicate import check in + // `check_block_relevancy`. A verification error or an already-received payload + // both leave the envelope irrelevant. + let is_envelope_relevant = block + .as_envelope() + .and_then(|envelope| { + check_envelope_relevancy(block.as_block(), envelope, self).ok() + }) + .unwrap_or(false); match check_block_relevancy(block.as_block(), block_root, is_envelope_relevant, self) { // If the block is relevant, add it to the filtered chain segment. diff --git a/beacon_node/beacon_chain/src/block_verification.rs b/beacon_node/beacon_chain/src/block_verification.rs index 4caa934d83..71a0b03651 100644 --- a/beacon_node/beacon_chain/src/block_verification.rs +++ b/beacon_node/beacon_chain/src/block_verification.rs @@ -1881,7 +1881,7 @@ pub fn check_block_relevancy( // Check if the block is already known. We know it is post-finalization, so it is // sufficient to check the fork choice. This check can optionally be skipped. - if skip_import_check + if !skip_import_check && chain .canonical_head .fork_choice_read_lock() diff --git a/beacon_node/beacon_chain/src/payload_envelope_verification/mod.rs b/beacon_node/beacon_chain/src/payload_envelope_verification/mod.rs index 6f24744e2c..41f003a2f8 100644 --- a/beacon_node/beacon_chain/src/payload_envelope_verification/mod.rs +++ b/beacon_node/beacon_chain/src/payload_envelope_verification/mod.rs @@ -293,10 +293,10 @@ pub(crate) fn load_snapshot_from_state_root( /// Performs simple, cheap checks to ensure that the envelope is relevant to be imported. /// -/// `Ok(block_root` is returned if the envelope passes these checks and should progress with -/// verification. +/// Returns `Ok(true)` if the envelope passes these checks and should progress with verification, +/// or `Ok(false)` if its payload has already been received and is no longer relevant. /// -/// Returns an error if the envelope is not relevant or if an error occurs during a verification step. +/// Returns an error if a verification step fails. pub fn check_envelope_relevancy( block: &SignedBeaconBlock, signed_envelope: &SignedExecutionPayloadEnvelope,