|
|
@@ -188,6 +188,14 @@ func (pm *ProtocolManager) synchronise(peer *peer) {
|
|
|
atomic.StoreUint32(&pm.fastSync, 1)
|
|
|
mode = downloader.FastSync
|
|
|
}
|
|
|
+
|
|
|
+ if mode == downloader.FastSync {
|
|
|
+ // Make sure the peer's total difficulty we are synchronizing is higher.
|
|
|
+ if pm.blockchain.GetTdByHash(pm.blockchain.CurrentFastBlock().Hash()).Cmp(pTd) >= 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// Run the sync cycle, and disable fast sync if we've went past the pivot block
|
|
|
if err := pm.downloader.Synchronise(peer.id, pHead, pTd, mode); err != nil {
|
|
|
return
|