Переглянути джерело

Merge pull request #1688 from karalabe/fix-double-imports

eth: fix an issue with pulling and inserting blocks twice
Jeffrey Wilcke 10 роки тому
батько
коміт
382d35bf40
1 змінених файлів з 4 додано та 2 видалено
  1. 4 2
      eth/handler.go

+ 4 - 2
eth/handler.go

@@ -413,10 +413,12 @@ func (pm *ProtocolManager) handleMsg(p *peer) error {
 
 		pm.fetcher.Enqueue(p.id, request.Block)
 
-		// TODO: Schedule a sync to cover potential gaps (this needs proto update)
+		// Update the peers total difficulty if needed, schedule a download if gapped
 		if request.TD.Cmp(p.Td()) > 0 {
 			p.SetTd(request.TD)
-			go pm.synchronise(p)
+			if request.TD.Cmp(new(big.Int).Add(pm.chainman.Td(), request.Block.Difficulty())) > 0 {
+				go pm.synchronise(p)
+			}
 		}
 
 	case TxMsg: