core: Made logging of reorgs more structured, also always log if reorg is > 63 blocks long

This commit is contained in:
Martin Holst Swende 2017-01-16 11:37:55 +01:00
parent b5a100b859
commit 661442886e

View file

@ -1082,8 +1082,6 @@ func (self *BlockChain) reorg(oldBlock, newBlock *types.Block) error {
newChain types.Blocks newChain types.Blocks
oldChain types.Blocks oldChain types.Blocks
commonBlock *types.Block commonBlock *types.Block
oldStart = oldBlock
newStart = newBlock
deletedTxs types.Transactions deletedTxs types.Transactions
deletedLogs []*types.Log deletedLogs []*types.Log
// collectLogs collects the logs that were generated during the // collectLogs collects the logs that were generated during the
@ -1124,7 +1122,6 @@ func (self *BlockChain) reorg(oldBlock, newBlock *types.Block) error {
return fmt.Errorf("Invalid new chain") return fmt.Errorf("Invalid new chain")
} }
numSplit := newBlock.Number()
for { for {
if oldBlock.Hash() == newBlock.Hash() { if oldBlock.Hash() == newBlock.Hash() {
commonBlock = oldBlock commonBlock = oldBlock
@ -1145,9 +1142,24 @@ func (self *BlockChain) reorg(oldBlock, newBlock *types.Block) error {
} }
} }
if glog.V(logger.Debug) { oldLen := len(oldChain)
if glog.V(logger.Debug) || oldLen > 63 {
commonHash := commonBlock.Hash() 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]) commonNumber := commonBlock.Number()
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) from #%v-#%v [%x/%x] in favour of #%v-#%v [%x/%x]",
commonNumber, commonHash[: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 var addedTxs types.Transactions