Explorar o código

eth: when triggering a sync, check the head header TD, not block

Péter Szilágyi %!s(int64=5) %!d(string=hai) anos
pai
achega
dc6e98d2a8
Modificáronse 2 ficheiros con 4 adicións e 4 borrados
  1. 2 2
      eth/handler.go
  2. 2 2
      eth/sync.go

+ 2 - 2
eth/handler.go

@@ -727,8 +727,8 @@ func (pm *ProtocolManager) handleMsg(p *peer) error {
 			// Schedule a sync if above ours. Note, this will not fire a sync for a gap of
 			// a single block (as the true TD is below the propagated block), however this
 			// scenario should easily be covered by the fetcher.
-			currentBlock := pm.blockchain.CurrentBlock()
-			if trueTD.Cmp(pm.blockchain.GetTd(currentBlock.Hash(), currentBlock.NumberU64())) > 0 {
+			currentHeader := pm.blockchain.CurrentHeader()
+			if trueTD.Cmp(pm.blockchain.GetTd(currentHeader.Hash(), currentHeader.Number.Uint64())) > 0 {
 				go pm.synchronise(p)
 			}
 		}

+ 2 - 2
eth/sync.go

@@ -189,8 +189,8 @@ func (pm *ProtocolManager) synchronise(peer *peer) {
 		return
 	}
 	// Make sure the peer's TD is higher than our own
-	currentBlock := pm.blockchain.CurrentBlock()
-	td := pm.blockchain.GetTd(currentBlock.Hash(), currentBlock.NumberU64())
+	currentHeader := pm.blockchain.CurrentHeader()
+	td := pm.blockchain.GetTd(currentHeader.Hash(), currentHeader.Number.Uint64())
 
 	pHead, pTd := peer.Head()
 	if pTd.Cmp(td) <= 0 {