eth: enable bad block reports

We used to have reporting of bad blocks, but it was disabled
before the Frontier release. We need it back because users
are usually unable to provide the full RLP data of a bad
block when it occurs.

A shortcoming of this particular implementation is that the
origin peer is not tracked for blocks received during eth/63
sync. No origin peer info is still better than no report at
all though.
This commit is contained in:
Felix Lange
2016-05-24 18:49:54 +02:00
parent 5bcdbb1ce4
commit ca18202eb9
7 changed files with 104 additions and 87 deletions

View File

@ -1117,15 +1117,12 @@ func (self *BlockChain) update() {
}
}
// reportBlock reports the given block and error using the canonical block
// reporting tool. Reporting the block to the service is handled in a separate
// goroutine.
// reportBlock logs a bad block error.
func reportBlock(block *types.Block, err error) {
if glog.V(logger.Error) {
glog.Errorf("Bad block #%v (%s)\n", block.Number(), block.Hash().Hex())
glog.Errorf(" %v", err)
}
go ReportBlock(block, err)
}
// InsertHeaderChain attempts to insert the given header chain in to the local