Эх сурвалжийг харах

Merge pull request #2184 from karalabe/fix-fastsync-state-serializer-bug

eth/downloader: raise pending state limit that prevented concurrency
Péter Szilágyi 9 жил өмнө
parent
commit
8b5b635db7

+ 0 - 1
eth/downloader/downloader.go

@@ -59,7 +59,6 @@ var (
 
 	maxQueuedHashes   = 256 * 1024 // [eth/61] Maximum number of hashes to queue for import (DOS protection)
 	maxQueuedHeaders  = 256 * 1024 // [eth/62] Maximum number of headers to queue for import (DOS protection)
-	maxQueuedStates   = 256 * 1024 // [eth/63] Maximum number of state requests to queue (DOS protection)
 	maxResultsProcess = 256        // Number of download results to import at once into the chain
 
 	fsHeaderCheckFrequency = 100  // Verification frequency of the downloaded headers during fast sync

+ 3 - 2
eth/downloader/queue.go

@@ -39,7 +39,8 @@ import (
 )
 
 var (
-	blockCacheLimit = 1024 // Maximum number of blocks to cache before throttling the download
+	blockCacheLimit   = 1024 // Maximum number of blocks to cache before throttling the download
+	maxInFlightStates = 4096 // Maximum number of state downloads to allow concurrently
 )
 
 var (
@@ -464,7 +465,7 @@ func (q *queue) ReserveNodeData(p *peer, count int) *fetchRequest {
 	q.lock.Lock()
 	defer q.lock.Unlock()
 
-	return q.reserveHashes(p, count, q.stateTaskQueue, generator, q.statePendPool, count)
+	return q.reserveHashes(p, count, q.stateTaskQueue, generator, q.statePendPool, maxInFlightStates)
 }
 
 // reserveHashes reserves a set of hashes for the given peer, skipping previously