core: avoid write existing block again (#14849)

This commit is contained in:
Mark 2017-07-31 04:59:07 -05:00 committed by Felix Lange
parent ee748d1451
commit 4f9789b28d
1 changed files with 5 additions and 0 deletions

View File

@ -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)