mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-08 00:03:09 +00:00
57 lines
1.4 KiB
Rust
57 lines
1.4 KiB
Rust
use std::{path::PathBuf, sync::Arc};
|
|
|
|
use anyhow::Result;
|
|
use clap::Parser;
|
|
use consensus::ConsensusManager;
|
|
use log::info;
|
|
use networking::peer_manager::PeerManager;
|
|
use node_core::NodeCore;
|
|
use node_rpc::new_http_server;
|
|
use rpc_primitives::RpcConfig;
|
|
use tokio::sync::Mutex;
|
|
|
|
pub mod config;
|
|
|
|
#[derive(Parser, Debug)]
|
|
#[clap(version)]
|
|
struct Args {
|
|
/// Path to configs
|
|
home_dir: PathBuf,
|
|
}
|
|
|
|
pub async fn main_runner() -> Result<()> {
|
|
env_logger::init();
|
|
|
|
let args = Args::parse();
|
|
let Args { home_dir } = args;
|
|
|
|
let app_config = config::from_file(home_dir.join("node_config.json"))?;
|
|
|
|
let port = app_config.port;
|
|
|
|
let node_core = NodeCore::start_from_config_update_chain(app_config.clone()).await?;
|
|
let wrapped_node_core = Arc::new(Mutex::new(node_core));
|
|
|
|
let http_server = new_http_server(
|
|
RpcConfig::with_port(port),
|
|
app_config.clone(),
|
|
wrapped_node_core.clone(),
|
|
)?;
|
|
info!("HTTP server started");
|
|
let _http_server_handle = http_server.handle();
|
|
tokio::spawn(http_server);
|
|
|
|
let peer_manager = PeerManager::start_peer_manager(4, 0).await?;
|
|
info!("Peer manager mock started");
|
|
|
|
let peer_manager_shared = Arc::new(Mutex::new(peer_manager));
|
|
|
|
let _consensus_manager = ConsensusManager::new(peer_manager_shared.clone());
|
|
info!("Consensus manger mock started");
|
|
|
|
#[allow(clippy::empty_loop)]
|
|
loop {
|
|
//ToDo: Insert activity into main loop
|
|
}
|
|
}
|