Enum HandlerRequest

Source
pub enum HandlerRequest {
    Metrics(Sender<Metrics>),
    PeerCount(Sender<usize>),
    AddEnr(Enr),
    RequestEnr {
        out: Sender<Result<Enr, RequestError>>,
        addr: String,
    },
    LocalEnr(Sender<Enr>),
    TableEnrs(Sender<Vec<Enr>>),
    TableInfos(Sender<Vec<(NodeId, Enr, NodeStatus)>>),
    BanAddrs {
        addrs_to_ban: Arc<HashSet<Multiaddr>>,
        ban_duration: Duration,
    },
}
Expand description

Request message for communicating with the Discv5 discovery service.

These requests are sent from the main application thread to the discovery service running in a separate task, enabling asynchronous operations on the discovery table and peer management.

Variants§

§

Metrics(Sender<Metrics>)

Request current metrics from the discovery service.

Returns performance and operational statistics including query counts, success rates, and table population metrics.

§

PeerCount(Sender<usize>)

Get the current number of connected peers in the discovery table.

Returns the count of peers currently maintained in the routing table, which indicates the health and connectivity of the discovery service.

§

AddEnr(Enr)

Add an ENR to the discovery service’s routing table.

Manually inserts a peer record into the table, typically used for adding bootstrap nodes or peers discovered through other channels.

§

RequestEnr

Request an ENR from a specific network address.

Initiates a discovery query to retrieve the ENR for a peer at the given address. Used for peer verification and metadata retrieval.

Fields

§out: Sender<Result<Enr, RequestError>>

Channel to receive the result of the ENR request.

§addr: String

Network address to query for the ENR.

§

LocalEnr(Sender<Enr>)

Get the local node’s ENR.

Returns the ENR that represents this node in the discovery network, including its network address, capabilities, and cryptographic identity.

§

TableEnrs(Sender<Vec<Enr>>)

Get all ENRs currently stored in the routing table.

Returns a complete dump of peer records known to the discovery service, useful for debugging and network analysis.

§

TableInfos(Sender<Vec<(NodeId, Enr, NodeStatus)>>)

Get detailed information about nodes in the routing table.

Returns comprehensive information including node IDs, ENRs, and status for all peers in the discovery table.

§

BanAddrs

Ban specific network addresses for a duration.

Prevents the discovery service from interacting with the specified addresses, useful for blocking malicious or problematic peers.

Fields

§addrs_to_ban: Arc<HashSet<Multiaddr>>

Set of network addresses to ban.

§ban_duration: Duration

Duration for which the addresses should be banned.

Trait Implementations§

Source§

impl Debug for HandlerRequest

Source§

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

Formats the value using the given formatter. 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<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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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,