Parcourir la source

core: avoid write existing block again (#14849)

Mark il y a 8 ans
Parent
commit
4f9789b28d
1 fichiers modifiés avec 5 ajouts et 0 suppressions
  1. 5 0
      core/blockchain.go

+ 5 - 0
core/blockchain.go

@@ -827,6 +827,11 @@ func (bc *BlockChain) WriteBlock(block *types.Block) (status WriteStatus, err er
 	bc.mu.Lock()
 	defer bc.mu.Unlock()
 
+	if bc.HasBlock(block.Hash()) {
+		log.Trace("Block existed", "hash", block.Hash())
+		return
+	}
+
 	localTd := bc.GetTd(bc.currentBlock.Hash(), bc.currentBlock.NumberU64())
 	externTd := new(big.Int).Add(block.Difficulty(), ptd)