[][src]Module discv5::discv5

The Discovery v5 protocol. See lib.rs for further details.

Note: Discovered ENR's are not automatically added to the routing table. Only established sessions get added, ensuring only valid ENRs are added. Manual additions can be made using the add_enr() function.

Response to queries return PeerId. Only the trusted (a session has been established with) PeerId's are returned, as ENR's for these PeerId's are stored in the routing table and as such should have an address to connect to. Untrusted PeerId's can be obtained from the Discv5::Discovered event, which is fired as peers get discovered.

Note that although the ENR crate does support Ed25519 keys, these are currently not supported as the ECDH procedure isn't specified in the specification. Therefore, only secp256k1 keys are supported currently.

Modules

ip_vote
query_info

Structs

Discv5
NodesResponse

For multiple responses to a FindNodes request, this struct keeps track of the request count and the nodes that have been received.

RpcRequest

Enums

Discv5Event

Event that can be produced by the Discv5 service.

Functions

ip_limiter

Takes an enr to insert and a list of other enrs to compare against. Returns true if enr can be inserted and false otherwise. enr can be inserted if the count of enrs in others in the same /24 subnet as enr is less than limit.

Type Definitions

Enr
RpcId