From 6f3288814cef6587f16ffb383e36049721d1702a Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Sat, 19 Sep 2020 23:54:38 -0700 Subject: [PATCH] network: avoid GetPeers timeout to accelerate init The GetPeers requests sent while crawling the network are randomly load-balanced over available peers. But at the very beginning, they may be both routed to the same peer, causing network initialization to be delayed while the second one times out (since zcashd only ever responds to the first addr message). Only sending one GetPeers request per candidate set update means we crawl the network a little more slowly, but avoids hanging on start. --- zebra-network/src/peer_set/candidate_set.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zebra-network/src/peer_set/candidate_set.rs b/zebra-network/src/peer_set/candidate_set.rs index d161f78a..b0f8f049 100644 --- a/zebra-network/src/peer_set/candidate_set.rs +++ b/zebra-network/src/peer_set/candidate_set.rs @@ -106,7 +106,7 @@ where // existing peers, but we don't make too many because update may be // called while the peer set is already loaded. let mut responses = FuturesUnordered::new(); - for _ in 0..2usize { + for _ in 0..1usize { self.peer_service.ready_and().await?; responses.push(self.peer_service.call(Request::Peers)); }