cycling keys every 60 sec

This commit is contained in:
ghe0 2024-08-20 04:01:56 +03:00
parent 4d00b116f4
commit 2f4fa0f4f9
Signed by: ghe0
GPG Key ID: 451028EE56A0FBB4
2 changed files with 11 additions and 18 deletions

@ -73,19 +73,3 @@ impl ConnManager {
Ok(()) Ok(())
} }
} }
// pub async fn init_connections(ds: Arc<Store>, tx: Sender<NodeUpdate>) {
// let mut nodes = load_init_nodes("detee_challenge_nodes");
// // we rotate online and offline nodes, to constantly check new nodes
// let mut only_online_nodes = true;
// loop {
// let mut set = JoinSet::new();
// for node in nodes {
// let conn = ConnManager::init(ds.clone(), tx.clone());
// set.spawn(conn.connect_wrapper(node));
// }
// while let Some(_) = set.join_next().await {}
// nodes = ds.get_random_nodes(only_online_nodes).await;
// only_online_nodes = !only_online_nodes;
// }
// }

@ -1,4 +1,6 @@
mod datastore; mod datastore;
use crate::grpc::challenge::NodeUpdate;
use tokio::sync::broadcast::Sender;
use tokio::task::JoinSet; use tokio::task::JoinSet;
mod grpc; mod grpc;
mod http_server; mod http_server;
@ -7,17 +9,24 @@ use std::fs::File;
use std::io::{BufRead, BufReader}; use std::io::{BufRead, BufReader};
use std::sync::Arc; use std::sync::Arc;
use tokio::sync::broadcast; use tokio::sync::broadcast;
use tokio::time::{sleep, Duration};
async fn cycle_keys(ds: Arc<Store>, tx: Sender<NodeUpdate>) {
loop {
let _ = tx.send(ds.reset_localhost_keys().await);
sleep(Duration::from_secs(60)).await;
}
}
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
let ds: Arc<Store> = Arc::new(Store::init()); let ds: Arc<Store> = Arc::new(Store::init());
let (tx, mut _rx) = broadcast::channel(500); let (tx, mut _rx) = broadcast::channel(500);
ds.reset_localhost_keys().await;
let mut long_term_tasks = JoinSet::new(); let mut long_term_tasks = JoinSet::new();
let mut init_tasks = JoinSet::new(); let mut init_tasks = JoinSet::new();
long_term_tasks.spawn(cycle_keys(ds.clone(), tx.clone()));
long_term_tasks.spawn(http_server::init(ds.clone())); long_term_tasks.spawn(http_server::init(ds.clone()));
long_term_tasks.spawn(grpc::server::MyServer::init(ds.clone(), tx.clone()).start()); long_term_tasks.spawn(grpc::server::MyServer::init(ds.clone(), tx.clone()).start());