From 2674cfd32e4842426f88de7d7716e6fb3f9b225d Mon Sep 17 00:00:00 2001 From: lunar-mining Date: Wed, 17 Jan 2024 15:13:54 +0100 Subject: [PATCH] store: do not shuffle hosts on fetch_address() Previously we were shuffling hosts that we select to avoid trying to connect to them in a deterministic order. However, this contradicts the protocol of ordering hostlists by last_seen. Instead, we should try to connect to addresses stored at the top of the hostlists first, as they are most likely to be active. The problem of multiple slots competing for the same peer should be solved by the various locking checks in check_address_with_lock(). --- src/net/hosts/store.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/net/hosts/store.rs b/src/net/hosts/store.rs index fdd25591d..622eda2f0 100644 --- a/src/net/hosts/store.rs +++ b/src/net/hosts/store.rs @@ -125,10 +125,6 @@ impl Hosts { hosts.push((addr, last_seen)); } - // Randomize hosts list. Do not try to connect in a deterministic order. - // This is healthier for multiple slots to not compete for the same addrs. - hosts.shuffle(&mut OsRng); - hosts } @@ -171,10 +167,6 @@ impl Hosts { trace!(target: "store::whitelist_fetch_address()", "Grabbed hosts, length: {}", hosts.len()); - // Randomize hosts list. Do not try to connect in a deterministic order. - // This is healthier for multiple slots to not compete for the same addrs. - hosts.shuffle(&mut OsRng); - hosts } @@ -217,10 +209,6 @@ impl Hosts { trace!(target: "store::anchorlist_fetch_address()", "Grabbed hosts, length: {}", hosts.len()); - // Randomize hosts list. Do not try to connect in a deterministic order. - // This is healthier for multiple slots to not compete for the same addrs. - hosts.shuffle(&mut OsRng); - hosts }