pub struct NetworkConfig {
pub max_connections: usize,
pub connection_timeout_ms: u64,
pub request_timeout_ms: u64,
pub enable_relay: bool,
pub enable_dht: bool,
pub bootstrap_peers: Vec<String>,
pub listen_addrs: Vec<String>,
}Expand description
Network configuration for P2P layer
§Examples
Using the default configuration:
use chie_shared::NetworkConfig;
let config = NetworkConfig::default();
assert_eq!(config.max_connections, 100);
assert_eq!(config.connection_timeout_ms, 10_000);
assert!(config.enable_relay);
assert!(config.enable_dht);
assert!(config.validate().is_ok());Building a custom configuration:
use chie_shared::NetworkConfigBuilder;
let config = NetworkConfigBuilder::new()
.max_connections(50)
.connection_timeout_ms(5_000)
.enable_relay(false)
.add_bootstrap_peer("/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ")
.build();
assert_eq!(config.max_connections, 50);
assert_eq!(config.connection_timeout_ms, 5_000);
assert!(!config.enable_relay);
assert_eq!(config.bootstrap_peers.len(), 1);Fields§
§max_connections: usizeMaximum number of concurrent connections
connection_timeout_ms: u64Connection timeout in milliseconds
request_timeout_ms: u64Request timeout in milliseconds
enable_relay: boolEnable relay mode for NAT traversal
enable_dht: boolEnable DHT for peer discovery
bootstrap_peers: Vec<String>Bootstrap peer multiaddrs
listen_addrs: Vec<String>Listen addresses
Implementations§
Source§impl NetworkConfig
impl NetworkConfig
Sourcepub fn validate(&self) -> ChieResult<()>
pub fn validate(&self) -> ChieResult<()>
Trait Implementations§
Source§impl Clone for NetworkConfig
impl Clone for NetworkConfig
Source§fn clone(&self) -> NetworkConfig
fn clone(&self) -> NetworkConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for NetworkConfig
impl Debug for NetworkConfig
Source§impl Default for NetworkConfig
impl Default for NetworkConfig
Source§impl<'de> Deserialize<'de> for NetworkConfig
impl<'de> Deserialize<'de> for NetworkConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for NetworkConfig
impl RefUnwindSafe for NetworkConfig
impl Send for NetworkConfig
impl Sync for NetworkConfig
impl Unpin for NetworkConfig
impl UnwindSafe for NetworkConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more