Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let mut input_timer = time::interval(Duration::from_secs(5));
- let mut heartbeat_timer = time::interval(Duration::from_secs(5));
- let mut kademlia_lookup_timer = time::interval(Duration::from_secs(10));
- let topic = gossipsub::IdentTopic::new("test-net");
- let hb_topic = gossipsub::IdentTopic::new("node-announce");
- loop {
- let input_timer_fused = future::poll_fn(|cx| input_timer.poll_tick(cx)).fuse();
- let heartbeat_timer_fused = future::poll_fn(|cx| heartbeat_timer.poll_tick(cx)).fuse();
- let kademlia_lookup_timer_fused =
- future::poll_fn(|cx| kademlia_lookup_timer.poll_tick(cx)).fuse();
- if shutdown.is_shutdown() {
- info!("😴 Shutting down...");
- break Ok(());
- }
- tokio::select! {
- _ = heartbeat_timer_fused => {
- if let Some(multiaddr) = local_peer_address.clone() {
- let gossipsub = &mut swarm.behaviour_mut().gossipsub;
- let _ = gossipsub.publish(hb_topic.clone(), multiaddr.to_vec());
- }
- // let multiaddr = ;
- },
- _ = kademlia_lookup_timer_fused => {
- let kademlia = &mut swarm.behaviour_mut().kademlia;
- let random_key = generate_random_key();
- kademlia.get_closest_peers(random_key);
- }
- event = swarm.select_next_some() => match event {...}
- // ...
- // Just polling for events and printing the result
Advertisement
Add Comment
Please, Sign In to add comment