From 189046bb5d2c871028ac0a0ece7231ed49bfafae Mon Sep 17 00:00:00 2001 From: cloudhead Date: Tue, 16 Jul 2024 17:05:50 +0200 Subject: [PATCH] node: Randomize order of missing inventories --- radicle-node/src/service.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/radicle-node/src/service.rs b/radicle-node/src/service.rs index 1f715ae2..e9b1852b 100644 --- a/radicle-node/src/service.rs +++ b/radicle-node/src/service.rs @@ -1602,6 +1602,12 @@ where } } } + // Since we have limited fetch capacity, it may be that we can't fetch an entire + // inventory from a peer. Therefore we randomize the order of the RIDs to fetch + // different RIDs from different peers in case multiple peers announce the same + // RIDs. + self.rng.shuffle(&mut missing); + for rid in missing { debug!(target: "service", "Missing seeded inventory {rid}; initiating fetch.."); self.fetch(rid, *announcer, FETCH_TIMEOUT, None);