From 228739240507cc3e5c3472ac62cb7b8161ccaa90 Mon Sep 17 00:00:00 2001 From: "Supernovahs.eth" <91280922+supernovahs@users.noreply.github.com> Date: Mon, 8 Jan 2024 23:22:24 +0530 Subject: [PATCH] feat: Add random lookup for discv4 (#5975) --- crates/net/discv4/Cargo.toml | 1 - crates/net/discv4/src/lib.rs | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/net/discv4/Cargo.toml b/crates/net/discv4/Cargo.toml index 74b6d4786..fa0e284ff 100644 --- a/crates/net/discv4/Cargo.toml +++ b/crates/net/discv4/Cargo.toml @@ -23,7 +23,6 @@ discv5.workspace = true secp256k1 = { workspace = true, features = ["global-context", "rand-std", "recovery", "serde"] } enr = { workspace = true, default-features = false, features = ["rust-secp256k1"] } rlp = "0.5" # needed for enr - # async/futures tokio = { workspace = true, features = ["io-util", "net", "time"] } tokio-stream.workspace = true diff --git a/crates/net/discv4/src/lib.rs b/crates/net/discv4/src/lib.rs index dcaafec1b..378c15987 100644 --- a/crates/net/discv4/src/lib.rs +++ b/crates/net/discv4/src/lib.rs @@ -283,6 +283,12 @@ impl Discv4 { self.lookup_node(Some(node_id)).await } + /// Performs a random lookup for node records. + pub async fn lookup_random(&self) -> Result, Discv4Error> { + let target = PeerId::random(); + self.lookup_node(Some(target)).await + } + /// Sends a message to the service to lookup the closest nodes pub fn send_lookup(&self, node_id: PeerId) { let cmd = Discv4Command::Lookup { node_id: Some(node_id), tx: None };