Struct tari_comms_dht::DhtDiscoveryRequester[][src]

pub struct DhtDiscoveryRequester { /* fields omitted */ }

Implementations

impl DhtDiscoveryRequester[src]

pub fn new(
    sender: Sender<DhtDiscoveryRequest>,
    discovery_timeout: Duration
) -> Self
[src]

pub async fn discover_peer(
    &mut self,
    dest_public_key: Box<CommsPublicKey>,
    destination: NodeDestination
) -> Result<Peer, DhtDiscoveryError>
[src]

Initiate a peer discovery

Arguments

  • dest_public_key - The public key of he recipient used to create a shared ECDH key which in turn is used to encrypt the discovery message
  • destination - The NodeDestination to use in the DhtHeader when sending a discovery message.
    • Unknown destination will maintain complete privacy, the trade off is that discovery needs to propagate the entire network to reach the destination and so may take longer
    • NodeId Instruct propagation nodes to direct the message to peers closer to the given NodeId. The NodeId may be directed to a region close to the real destination (somewhat private) or directed at a particular node (not private)
    • PublicKey if any node on the network knows this public key, the message will be directed to that node. This sacrifices privacy for more efficient discovery in terms of network bandwidth and may result in quicker discovery times.

pub async fn notify_discovery_response_received(
    &mut self,
    response: DiscoveryResponseMessage
) -> Result<(), DhtDiscoveryError>
[src]

Trait Implementations

impl Clone for DhtDiscoveryRequester[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, U> Cast<U> for T where
    U: FromCast<T>, 

impl<'a, T> DefaultFeatures<'a> for T where
    T: 'a + Clone + Send + Sync

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

impl<T> FromBits<T> for T

impl<T> FromCast<T> for T

impl<T> Instrument for T[src]

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

impl<T, U> IntoBits<U> for T where
    U: FromBits<T>, 

impl<T> IntoSql for T[src]

impl<'a, T> NonSyncFeatures<'a> for T where
    T: 'a + Clone

impl<T> SafeBorrow<T> for T where
    T: ?Sized

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>,