0g-storage-node/node/router/src/lib.rs

50 lines
1.2 KiB
Rust
Raw Normal View History

2024-01-03 10:24:52 +00:00
#[macro_use]
extern crate tracing;
mod libp2p_event_handler;
mod metrics;
2024-01-03 10:24:52 +00:00
mod peer_manager;
mod service;
use duration_str::deserialize_duration;
2024-01-03 10:24:52 +00:00
use network::Multiaddr;
use serde::Deserialize;
use std::time::Duration;
2024-01-03 10:24:52 +00:00
pub use crate::service::RouterService;
#[derive(Debug, Clone, Deserialize)]
#[serde(default)]
2024-01-03 10:24:52 +00:00
pub struct Config {
#[serde(deserialize_with = "deserialize_duration")]
pub heartbeat_interval: Duration,
#[serde(deserialize_with = "deserialize_duration")]
pub idle_time: Duration,
2024-01-03 10:24:52 +00:00
pub max_idle_incoming_peers: usize,
pub max_idle_outgoing_peers: usize,
pub libp2p_nodes: Vec<Multiaddr>,
pub private_ip_enabled: bool,
pub check_announced_ip: bool,
2024-01-03 10:24:52 +00:00
}
impl Default for Config {
fn default() -> Self {
Self {
heartbeat_interval: Duration::from_secs(5),
idle_time: Duration::from_secs(180),
2024-01-03 10:24:52 +00:00
max_idle_incoming_peers: 12,
max_idle_outgoing_peers: 20,
libp2p_nodes: vec![],
private_ip_enabled: false,
check_announced_ip: false,
2024-01-03 10:24:52 +00:00
}
}
}
impl Config {
pub fn with_private_ip_enabled(mut self, enabled: bool) -> Self {
self.private_ip_enabled = enabled;
self
}
}