Struct tendermint_config::P2PConfig

source ·
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: Address

Address 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: bool

UPNP port forwarding

§addr_book_file: PathBuf

Path to address book

§addr_book_strict: bool

Set true for strict address routability rules Set false for private or local networks

§max_num_inbound_peers: u64

Maximum number of inbound peers

§max_num_outbound_peers: u64

Maximum 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: Timeout

Maximum pause when redialing a persistent peer (if zero, exponential backoff is used)

§flush_throttle_timeout: Timeout

Time to wait before flushing messages out on the connection

§max_packet_msg_payload_size: u64

Maximum size of a message packet payload, in bytes

§send_rate: TransferRate

Rate at which packets can be sent, in bytes/second

§recv_rate: TransferRate

Rate at which packets can be received, in bytes/second

§pex: bool

Set true to enable the peer-exchange reactor

§seed_mode: bool

Seed 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: bool

Toggle to disable guard against peers connecting from the same ip.

§handshake_timeout: Timeout

Handshake timeout

§dial_timeout: Timeout

Timeout when dialing other peers

Trait Implementations§

source§

impl Clone for P2PConfig

source§

fn clone(&self) -> P2PConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for P2PConfig

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for P2PConfig

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for P2PConfig

source§

fn eq(&self, other: &P2PConfig) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for P2PConfig

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for P2PConfig

source§

impl StructuralPartialEq for P2PConfig

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,