|
|
@@ -1070,8 +1070,12 @@ func (bc *BlockChain) insertChain(chain types.Blocks) (int, []interface{}, []*ty
|
|
|
}
|
|
|
switch {
|
|
|
case err == ErrKnownBlock:
|
|
|
- stats.ignored++
|
|
|
- continue
|
|
|
+ // Block and state both already known. However if the current block is below
|
|
|
+ // this number we did a rollback and we should reimport it nonetheless.
|
|
|
+ if bc.CurrentBlock().NumberU64() >= block.NumberU64() {
|
|
|
+ stats.ignored++
|
|
|
+ continue
|
|
|
+ }
|
|
|
|
|
|
case err == consensus.ErrFutureBlock:
|
|
|
// Allow up to MaxFuture second in the future blocks. If this limit is exceeded
|