Enum libp2p_kad::handler::KademliaHandlerEvent
source · [−]pub enum KademliaHandlerEvent<TUserData> {
ProtocolConfirmed {
endpoint: ConnectedPoint,
},
FindNodeReq {
key: Vec<u8>,
request_id: KademliaRequestId,
},
FindNodeRes {
closer_peers: Vec<KadPeer>,
user_data: TUserData,
},
GetProvidersReq {
key: Key,
request_id: KademliaRequestId,
},
GetProvidersRes {
closer_peers: Vec<KadPeer>,
provider_peers: Vec<KadPeer>,
user_data: TUserData,
},
QueryError {
error: KademliaHandlerQueryErr,
user_data: TUserData,
},
AddProvider {
key: Key,
provider: KadPeer,
},
GetRecord {
key: Key,
request_id: KademliaRequestId,
},
GetRecordRes {
record: Option<Record>,
closer_peers: Vec<KadPeer>,
user_data: TUserData,
},
PutRecord {
record: Record,
request_id: KademliaRequestId,
},
PutRecordRes {
key: Key,
value: Vec<u8>,
user_data: TUserData,
},
}Expand description
Event produced by the Kademlia handler.
Variants
ProtocolConfirmed
Fields
endpoint: ConnectedPointThe configured protocol name has been confirmed by the peer through a successfully negotiated substream.
This event is only emitted once by a handler upon the first successfully negotiated inbound or outbound substream and indicates that the connected peer participates in the Kademlia overlay network identified by the configured protocol name.
FindNodeReq
Fields
request_id: KademliaRequestIdIdentifier of the request. Needs to be passed back when answering.
Request for the list of nodes whose IDs are the closest to key. The number of nodes
returned is not specified, but should be around 20.
FindNodeRes
Fields
Response to an KademliaHandlerIn::FindNodeReq.
GetProvidersReq
Fields
key: KeyThe key for which providers are requested.
request_id: KademliaRequestIdIdentifier of the request. Needs to be passed back when answering.
Same as FindNodeReq, but should also return the entries of the local providers list for
this key.
GetProvidersRes
Fields
Response to an KademliaHandlerIn::GetProvidersReq.
QueryError
Fields
error: KademliaHandlerQueryErrThe error that happened.
An error happened when performing a query.
AddProvider
Fields
key: KeyThe key for which the peer is a provider of the associated value.
provider: KadPeerThe peer that is the provider of the value for key.
The peer announced itself as a provider of a key.
GetRecord
Fields
key: KeyKey for which we should look in the dht
request_id: KademliaRequestIdIdentifier of the request. Needs to be passed back when answering.
Request to get a value from the dht records
GetRecordRes
Fields
Response to a KademliaHandlerIn::GetRecord.
PutRecord
Fields
record: Recordrequest_id: KademliaRequestIdIdentifier of the request. Needs to be passed back when answering.
Request to put a value in the dht records
PutRecordRes
Fields
key: KeyThe key of the stored record.
Response to a request to store a record.