From e7803f3e1ce0a170901ad049a63d00cf756ba2a4 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Thu, 4 Jul 2024 11:32:34 +0200 Subject: [PATCH] perf: resolve trusted nodes concurrently (#9291) --- crates/node/builder/src/launch/common.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/crates/node/builder/src/launch/common.rs b/crates/node/builder/src/launch/common.rs index 804c194f49..d15778666d 100644 --- a/crates/node/builder/src/launch/common.rs +++ b/crates/node/builder/src/launch/common.rs @@ -209,15 +209,16 @@ impl LaunchContextWith { info!(target: "reth::cli", "Adding trusted nodes"); // resolve trusted peers if they use a domain instead of dns - for peer in &self.attachment.config.network.trusted_peers { + let resolved = futures::future::try_join_all( + self.attachment.config.network.trusted_peers.iter().map(|peer| async move { let backoff = ConstantBuilder::default() .with_max_times(self.attachment.config.network.dns_retries); - let resolved = (move || { peer.resolve() }) - .retry(&backoff) - .notify(|err, _| warn!(target: "reth::cli", "Error resolving peer domain: {err}. Retrying...")) - .await?; - self.attachment.toml_config.peers.trusted_nodes.insert(resolved); - } + (move || { peer.resolve() }) + .retry(&backoff) + .notify(|err, _| warn!(target: "reth::cli", "Error resolving peer domain: {err}. Retrying...")) + .await + })).await?; + self.attachment.toml_config.peers.trusted_nodes.extend(resolved); } Ok(self) }