headers := make([]*types.BlockHeader, 0)
stopHeader, err := bk.chain.GetHeaderByHash(stopHash)
if err != nil {
- return headers, nil
+ return headers, err
}
if !bk.chain.InMainChain(*stopHash) || stopHeader.Height < startHeader.Height {
}
func (bk *blockKeeper) checkSyncType() int {
- peer := bk.peers.BestIrreversiblePeer(consensus.SFFullNode | consensus.SFFastSync)
- if peer == nil {
- log.WithFields(log.Fields{"module": logModule}).Debug("can't find fast sync peer")
- return noNeedSync
- }
-
bestHeight := bk.chain.BestBlockHeight()
- if peerIrreversibleHeight := peer.IrreversibleHeight(); peerIrreversibleHeight >= bestHeight+minGapStartFastSync {
- bk.fastSync.setSyncPeer(peer)
- return fastSyncType
+ peer := bk.peers.BestIrreversiblePeer(consensus.SFFullNode | consensus.SFFastSync)
+ if peer != nil {
+ if peerIrreversibleHeight := peer.IrreversibleHeight(); peerIrreversibleHeight >= bestHeight+minGapStartFastSync {
+ bk.fastSync.setSyncPeer(peer)
+ return fastSyncType
+ }
}
peer = bk.peers.BestPeer(consensus.SFFullNode)
return noNeedSync
}
- peerHeight := peer.Height()
- if peerHeight > bestHeight {
+ if peer.Height() > bestHeight {
bk.syncPeer = peer
return regularSyncType
}
log.WithFields(log.Fields{"module": logModule, "err": err}).Warning("fail on regularBlockSync")
return false
}
+ default:
+ return false
}
return true