aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/blockchain.go7
1 files changed, 3 insertions, 4 deletions
diff --git a/core/blockchain.go b/core/blockchain.go
index 95bada5ee..950804d40 100644
--- a/core/blockchain.go
+++ b/core/blockchain.go
@@ -771,14 +771,13 @@ func (self *BlockChain) WriteBlock(block *types.Block) (status WriteStatus, err
if ptd == nil {
return NonStatTy, ParentError(block.ParentHash())
}
-
- localTd := self.GetTd(self.currentBlock.Hash(), self.currentBlock.NumberU64())
- externTd := new(big.Int).Add(block.Difficulty(), ptd)
-
// Make sure no inconsistent state is leaked during insertion
self.mu.Lock()
defer self.mu.Unlock()
+ localTd := self.GetTd(self.currentBlock.Hash(), self.currentBlock.NumberU64())
+ externTd := new(big.Int).Add(block.Difficulty(), ptd)
+
// If the total difficulty is higher than our known, add it to the canonical chain
// Second clause in the if statement reduces the vulnerability to selfish mining.
// Please refer to http://www.cs.cornell.edu/~ie53/publications/btcProcFC.pdf