Skip to content

Commit 5536779

Browse files
Juhyung Parkmergify[bot]
authored andcommitted
Send header request to a random peer at every timeout
Currently, nodes in a network request the same headers to multiple nodes. To reduce network usage, send a header request to a random node at every timeout.
1 parent fe59007 commit 5536779

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

sync/src/block/extension.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,12 +290,15 @@ impl NetworkExtension<Event> for Extension {
290290
let mut peer_ids: Vec<_> = self.header_downloaders.keys().cloned().collect();
291291
peer_ids.shuffle(&mut thread_rng());
292292

293-
for id in peer_ids {
294-
let request = self.header_downloaders.get_mut(&id).and_then(HeaderDownloader::create_request);
293+
for id in &peer_ids {
294+
let request = self.header_downloaders.get_mut(id).and_then(HeaderDownloader::create_request);
295295
if let Some(request) = request {
296-
self.send_header_request(&id, request);
296+
self.send_header_request(id, request);
297+
break
297298
}
299+
}
298300

301+
for id in peer_ids {
299302
let peer_score = if let Some(peer) = self.header_downloaders.get(&id) {
300303
peer.total_score()
301304
} else {

0 commit comments

Comments
 (0)