dont switch off fast sync unless we have enough peers to know

This commit is contained in:
Ethan Buchman 2015-04-23 14:01:21 -07:00 committed by Jae Kwon
parent fcc26d7355
commit d8d619811e
1 changed files with 7 additions and 1 deletions

View File

@ -197,7 +197,13 @@ FOR_LOOP:
// not thread safe access for peerless and numPending but should be fine
log.Debug("Consensus ticker", "peerless", bcR.pool.peerless, "pending", bcR.pool.numPending, "total", bcR.pool.numTotal)
// NOTE: this condition is very strict right now. may need to weaken
if bcR.pool.numPending == maxPendingRequests && bcR.pool.peerless == bcR.pool.numPending {
// if the max amount of requests are pending and peerless
// and we have some peers (say > 5), then we're caught up
maxPending := bcR.pool.numPending == maxPendingRequests
maxPeerless := bcR.pool.peerless == bcR.pool.numPending
o, i, _ := bcR.sw.NumPeers()
enoughPeers := o+i > 5
if maxPending && maxPeerless && enoughPeers {
log.Warn("Time to switch to consensus reactor!", "height", bcR.pool.height)
bcR.pool.Stop()
stateDB := dbm.GetDB("state")