aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMartin Holst Swende <martin@swende.se>2017-01-17 20:10:26 +0800
committerPéter Szilágyi <peterke@gmail.com>2017-01-17 20:10:26 +0800
commit6fb76443b34ac5797c4b561ec38148eb3868a47e (patch)
tree1016e6108fc1bcc0179a60a185fa8c2b7f2902d3 /core
parent2eefed84c9fc005eec1cb5e7d1a3593aab3e0537 (diff)
downloaddexon-6fb76443b34ac5797c4b561ec38148eb3868a47e.tar.gz
dexon-6fb76443b34ac5797c4b561ec38148eb3868a47e.tar.zst
dexon-6fb76443b34ac5797c4b561ec38148eb3868a47e.zip
core/blockchain: Made logging of reorgs more structured (#3573)
* core: Made logging of reorgs more structured, also always log if reorg is > 63 blocks long * core/blockchain: go fmt * core/blockchain: Minor fixes to the reorg reporting
Diffstat (limited to 'core')
-rw-r--r--core/blockchain.go19
1 files changed, 13 insertions, 6 deletions
diff --git a/core/blockchain.go b/core/blockchain.go
index 2e522d97c..90bb0b5a8 100644
--- a/core/blockchain.go
+++ b/core/blockchain.go
@@ -1088,8 +1088,6 @@ func (self *BlockChain) reorg(oldBlock, newBlock *types.Block) error {
newChain types.Blocks
oldChain types.Blocks
commonBlock *types.Block
- oldStart = oldBlock
- newStart = newBlock
deletedTxs types.Transactions
deletedLogs []*types.Log
// collectLogs collects the logs that were generated during the
@@ -1130,7 +1128,6 @@ func (self *BlockChain) reorg(oldBlock, newBlock *types.Block) error {
return fmt.Errorf("Invalid new chain")
}
- numSplit := newBlock.Number()
for {
if oldBlock.Hash() == newBlock.Hash() {
commonBlock = oldBlock
@@ -1151,9 +1148,19 @@ func (self *BlockChain) reorg(oldBlock, newBlock *types.Block) error {
}
}
- if glog.V(logger.Debug) {
- commonHash := commonBlock.Hash()
- glog.Infof("Chain split detected @ %x. Reorganising chain from #%v %x to %x", commonHash[:4], numSplit, oldStart.Hash().Bytes()[:4], newStart.Hash().Bytes()[:4])
+ if oldLen := len(oldChain); oldLen > 63 || glog.V(logger.Debug) {
+ newLen := len(newChain)
+ newLast := newChain[0]
+ newFirst := newChain[newLen-1]
+ oldLast := oldChain[0]
+ oldFirst := oldChain[oldLen-1]
+ glog.Infof("Chain split detected after #%v [%x…]. Reorganising chain (-%v +%v blocks), rejecting #%v-#%v [%x…/%x…] in favour of #%v-#%v [%x…/%x…]",
+ commonBlock.Number(), commonBlock.Hash().Bytes()[:4],
+ oldLen, newLen,
+ oldFirst.Number(), oldLast.Number(),
+ oldFirst.Hash().Bytes()[:4], oldLast.Hash().Bytes()[:4],
+ newFirst.Number(), newLast.Number(),
+ newFirst.Hash().Bytes()[:4], newLast.Hash().Bytes()[:4])
}
var addedTxs types.Transactions