diff --git a/core/blockchain.go b/core/blockchain.go index e83dbe1eab..925ec3fa92 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -856,11 +856,12 @@ func (bc *BlockChain) setHeadBeyondRoot(head uint64, time uint64, root common.Ha bc.txLookupCache.Purge() bc.futureBlocks.Purge() // Clear safe block, finalized block if needed - if safe := bc.CurrentSafeBlock(); safe != nil && head < safe.NumberU64() { + headBlock := bc.CurrentBlock() + if safe := bc.CurrentSafeBlock(); safe != nil && headBlock.NumberU64() < safe.NumberU64() { log.Warn("SetHead invalidated safe block") bc.SetSafe(nil) } - if finalized := bc.CurrentFinalizedBlock(); finalized != nil && head < finalized.NumberU64() { + if finalized := bc.CurrentFinalizedBlock(); finalized != nil && headBlock.NumberU64() < finalized.NumberU64() { log.Error("SetHead invalidated finalized block") bc.SetFinalized(nil) }