[][src]Struct libp2p::kad::KademliaConfig

pub struct KademliaConfig { /* fields omitted */ }

The configuration for the Kademlia behaviour.

The configuration is consumed by [Kademlia::new].

Methods

impl KademliaConfig[src]

pub fn set_protocol_name(
    &mut self,
    name: impl Into<Cow<'static, [u8]>>
) -> &mut KademliaConfig
[src]

Sets a custom protocol name.

Kademlia nodes only communicate with other nodes using the same protocol name. Using a custom name therefore allows to segregate the DHT from others, if that is desired.

pub fn set_query_timeout(&mut self, timeout: Duration) -> &mut KademliaConfig[src]

Sets the timeout for a single query.

Note: A single query usually comprises at least as many requests as the replication factor, i.e. this is not a request timeout.

The default is 60 seconds.

pub fn set_replication_factor(
    &mut self,
    replication_factor: NonZeroUsize
) -> &mut KademliaConfig
[src]

Sets the replication factor to use.

The replication factor determines to how many closest peers a record is replicated. The default is [K_VALUE].

pub fn set_record_ttl(
    &mut self,
    record_ttl: Option<Duration>
) -> &mut KademliaConfig
[src]

Sets the TTL for stored records.

The TTL should be significantly longer than the (re-)publication interval, to avoid premature expiration of records. The default is 36 hours.

None means records never expire.

Does not apply to provider records.

pub fn set_replication_interval(
    &mut self,
    interval: Option<Duration>
) -> &mut KademliaConfig
[src]

Sets the (re-)replication interval for stored records.

Periodic replication of stored records ensures that the records are always replicated to the available nodes closest to the key in the context of DHT topology changes (i.e. nodes joining and leaving), thus ensuring persistence until the record expires. Replication does not prolong the regular lifetime of a record (for otherwise it would live forever regardless of the configured TTL). The expiry of a record is only extended through re-publication.

This interval should be significantly shorter than the publication interval, to ensure persistence between re-publications. The default is 1 hour.

None means that stored records are never re-replicated.

Does not apply to provider records.

pub fn set_publication_interval(
    &mut self,
    interval: Option<Duration>
) -> &mut KademliaConfig
[src]

Sets the (re-)publication interval of stored records.

Records persist in the DHT until they expire. By default, published records are re-published in regular intervals for as long as the record exists in the local storage of the original publisher, thereby extending the records lifetime.

This interval should be significantly shorter than the record TTL, to ensure records do not expire prematurely. The default is 24 hours.

None means that stored records are never automatically re-published.

Does not apply to provider records.

pub fn set_provider_record_ttl(
    &mut self,
    ttl: Option<Duration>
) -> &mut KademliaConfig
[src]

Sets the TTL for provider records.

None means that stored provider records never expire.

Must be significantly larger than the provider publication interval.

pub fn set_provider_publication_interval(
    &mut self,
    interval: Option<Duration>
) -> &mut KademliaConfig
[src]

Sets the interval at which provider records for keys provided by the local node are re-published.

None means that stored provider records are never automatically re-published.

Must be significantly less than the provider record TTL.

Trait Implementations

impl Clone for KademliaConfig[src]

impl Debug for KademliaConfig[src]

impl Default for KademliaConfig[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Clear for T where
    T: InitializableFromZeroed + ?Sized

impl<T> From<T> for T[src]

impl<T> InitializableFromZeroed for T where
    T: Default

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,