Guest User

Untitled

a guest
Oct 13th, 2023
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 1.54 KB | Source Code | 0 0
  1. let mut input_timer = time::interval(Duration::from_secs(5));
  2.     let mut heartbeat_timer = time::interval(Duration::from_secs(5));
  3.     let mut kademlia_lookup_timer = time::interval(Duration::from_secs(10));
  4.  
  5.     let topic = gossipsub::IdentTopic::new("test-net");
  6.     let hb_topic = gossipsub::IdentTopic::new("node-announce");
  7.  
  8.     loop {
  9.         let input_timer_fused = future::poll_fn(|cx| input_timer.poll_tick(cx)).fuse();
  10.         let heartbeat_timer_fused = future::poll_fn(|cx| heartbeat_timer.poll_tick(cx)).fuse();
  11.         let kademlia_lookup_timer_fused =
  12.             future::poll_fn(|cx| kademlia_lookup_timer.poll_tick(cx)).fuse();
  13.  
  14.         if shutdown.is_shutdown() {
  15.             info!("😴 Shutting down...");
  16.             break Ok(());
  17.         }
  18.         tokio::select! {
  19.                 _ = heartbeat_timer_fused => {
  20.                     if let Some(multiaddr) = local_peer_address.clone() {
  21.                         let gossipsub = &mut swarm.behaviour_mut().gossipsub;
  22.                         let _ = gossipsub.publish(hb_topic.clone(), multiaddr.to_vec());
  23.                     }
  24.                     // let multiaddr = ;
  25.                 },
  26.                 _ = kademlia_lookup_timer_fused => {
  27.                     let kademlia = &mut swarm.behaviour_mut().kademlia;
  28.                     let random_key = generate_random_key();
  29.                     kademlia.get_closest_peers(random_key);
  30.                 }
  31.                 event = swarm.select_next_some() => match event {...}
  32.  
  33. // ...
  34. // Just polling for events and printing the result
Advertisement
Add Comment
Please, Sign In to add comment