diff --git a/crates/bsc/engine/src/task.rs b/crates/bsc/engine/src/task.rs index 280a28912..13215d503 100644 --- a/crates/bsc/engine/src/task.rs +++ b/crates/bsc/engine/src/task.rs @@ -267,6 +267,21 @@ impl< if !is_valid_header { continue }; + // check if the header is the same as the block hash + // that probably means the block is not sealed yet + let block_hash = match info.block_hash { + BlockHashOrNumber::Hash(hash) => hash, + BlockHashOrNumber::Number(number) => { + // trigger by the interval tick, can only trust the number + if number != sealed_header.number { + continue; + } + sealed_header.hash() + } + }; + if sealed_header.hash() != block_hash { + continue; + } let mut disconnected_headers = Vec::new(); disconnected_headers.push(sealed_header.clone());