iroh_net::discovery::pkarr

Struct PkarrPublisher

Source
pub struct PkarrPublisher { /* private fields */ }
Expand description

Publisher of node discovery information to a pkarr relay.

This publisher uses HTTP to publish node discovery information to a pkarr relay server, see the module docs for details.

This implements the Discovery trait to be used as a node discovery service. Note that it only publishes node discovery information, for the corresponding resolver use the PkarrResolver together with ConcurrentDiscovery.

This publisher will only publish the RelayUrl if the AddrInfo contains a RelayUrl. If the AddrInfo does not contain a RelayUrl the direct addresses are published instead.

Implementations§

Source§

impl PkarrPublisher

Source

pub fn new(secret_key: SecretKey, pkarr_relay: Url) -> Self

Creates a new publisher for the SecretKey.

This publisher will be able to publish pkarr records for SecretKey. It will use DEFAULT_PKARR_TTL as the time-to-live value for the published packets. Will republish discovery information every DEFAULT_REPUBLISH_INTERVAL, even if the information is unchanged.

Source

pub fn with_options( secret_key: SecretKey, pkarr_relay: Url, ttl: u32, republish_interval: Duration, ) -> Self

Creates a new PkarrPublisher with a custom TTL and republish intervals.

This allows creating the publisher with custom time-to-live values of the pkarr::SignedPackets and well as a custom republish interval.

Source

pub fn n0_dns(secret_key: SecretKey) -> Self

Creates a pkarr publisher which uses the number 0 pkarr relay server.

This uses the pkarr relay server operated by number 0, at N0_DNS_PKARR_RELAY_PROD.

When running with the environment variable IROH_FORCE_STAGING_RELAYS set to any non empty value N0_DNS_PKARR_RELAY_STAGING server is used instead.

Source

pub fn update_addr_info(&self, info: &AddrInfo)

Publishes AddrInfo about this node to a pkarr relay.

This is a nonblocking function, the actual update is performed in the background.

Trait Implementations§

Source§

impl Clone for PkarrPublisher

Source§

fn clone(&self) -> PkarrPublisher

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 PkarrPublisher

Source§

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

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

impl Discovery for PkarrPublisher

Source§

fn publish(&self, info: &AddrInfo)

Publishes the given AddrInfo to the discovery mechanism. Read more
Source§

fn resolve( &self, _endpoint: Endpoint, _node_id: NodeId, ) -> Option<BoxStream<Result<DiscoveryItem>>>

Resolves the AddrInfo for the given NodeId. Read more
Source§

fn subscribe(&self) -> Option<BoxStream<DiscoveryItem>>

Subscribe to all addresses that get passively discovered. Read more
Source§

impl Drop for PkarrPublisher

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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

Source§

type Output = T

Should always be Self
Source§

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

Source§

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

Source§

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

Source§

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T