discv5_cli/server/services/
query.rs

1use discv5::{enr, Discv5};
2use std::{sync::Arc, time::Duration};
3
4/// Regularly queries for new peers.
5pub async fn run(discv5: Arc<Discv5>, break_time: Duration) {
6    loop {
7        log::info!("Searching for peers...");
8        let target_random_node_id = enr::NodeId::random();
9        // let unlocked_server = discv5.lock().unwrap();
10        match discv5.find_node(target_random_node_id).await {
11            Err(e) => log::warn!("Find Node result failed: {e:?}"),
12            Ok(found_enrs) => {
13                log::info!("Query Completed. Nodes found: {}", found_enrs.len());
14                for enr in found_enrs {
15                    log::info!("Node: {}", enr.node_id());
16                }
17            }
18        }
19
20        tokio::time::sleep(break_time).await;
21    }
22}