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.
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.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HandlerRequest
impl !RefUnwindSafe for HandlerRequest
impl Send for HandlerRequest
impl Sync for HandlerRequest
impl Unpin for HandlerRequest
impl !UnwindSafe for HandlerRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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