pub struct P2PConfig {Show 21 fields
pub laddr: Address,
pub external_address: Option<Address>,
pub seeds: Vec<Address>,
pub persistent_peers: Vec<Address>,
pub upnp: bool,
pub addr_book_file: PathBuf,
pub addr_book_strict: bool,
pub max_num_inbound_peers: u64,
pub max_num_outbound_peers: u64,
pub unconditional_peer_ids: Vec<Id>,
pub persistent_peers_max_dial_period: Timeout,
pub flush_throttle_timeout: Timeout,
pub max_packet_msg_payload_size: u64,
pub send_rate: TransferRate,
pub recv_rate: TransferRate,
pub pex: bool,
pub seed_mode: bool,
pub private_peer_ids: Vec<Id>,
pub allow_duplicate_ip: bool,
pub handshake_timeout: Timeout,
pub dial_timeout: Timeout,
}Expand description
peer to peer configuration options
Fields§
§laddr: AddressAddress to listen for incoming connections
external_address: Option<Address>Address to advertise to peers for them to dial If empty, will use the same port as the laddr, and will introspect on the listener or use UPnP to figure out the address.
seeds: Vec<Address>Comma separated list of seed nodes to connect to
persistent_peers: Vec<Address>Comma separated list of nodes to keep persistent connections to
upnp: boolUPNP port forwarding
addr_book_file: PathBufPath to address book
addr_book_strict: boolSet true for strict address routability rules
Set false for private or local networks
max_num_inbound_peers: u64Maximum number of inbound peers
max_num_outbound_peers: u64Maximum number of outbound peers to connect to, excluding persistent peers
unconditional_peer_ids: Vec<Id>List of node IDs, to which a connection will be (re)established ignoring any existing limits
persistent_peers_max_dial_period: TimeoutMaximum pause when redialing a persistent peer (if zero, exponential backoff is used)
flush_throttle_timeout: TimeoutTime to wait before flushing messages out on the connection
max_packet_msg_payload_size: u64Maximum size of a message packet payload, in bytes
send_rate: TransferRateRate at which packets can be sent, in bytes/second
recv_rate: TransferRateRate at which packets can be received, in bytes/second
pex: boolSet true to enable the peer-exchange reactor
seed_mode: boolSeed mode, in which node constantly crawls the network and looks for peers. If another node asks it for addresses, it responds and disconnects.
Does not work if the peer-exchange reactor is disabled.
private_peer_ids: Vec<Id>Comma separated list of peer IDs to keep private (will not be gossiped to other peers)
allow_duplicate_ip: boolToggle to disable guard against peers connecting from the same ip.
handshake_timeout: TimeoutHandshake timeout
dial_timeout: TimeoutTimeout when dialing other peers
Trait Implementations§
Source§impl<'de> Deserialize<'de> for P2PConfig
impl<'de> Deserialize<'de> for P2PConfig
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>,
impl Eq for P2PConfig
impl StructuralPartialEq for P2PConfig
Auto Trait Implementations§
impl Freeze for P2PConfig
impl RefUnwindSafe for P2PConfig
impl Send for P2PConfig
impl Sync for P2PConfig
impl Unpin for P2PConfig
impl UnwindSafe for P2PConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.