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: ConnectedPoint
The 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: KademliaRequestId
Identifier 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
user_data: TUserData
The user data passed to the FindNodeReq
.
Response to an KademliaHandlerIn::FindNodeReq
.
GetProvidersReq
Fields
request_id: KademliaRequestId
Identifier 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
user_data: TUserData
The user data passed to the GetProvidersReq
.
Response to an KademliaHandlerIn::GetProvidersReq
.
QueryError
Fields
error: KademliaHandlerQueryErr
The error that happened.
user_data: TUserData
The user data passed to the query.
An error happened when performing a query.
AddProvider
Fields
The peer announced itself as a provider of a key.
GetRecord
Fields
request_id: KademliaRequestId
Identifier of the request. Needs to be passed back when answering.
Request to get a value from the dht records
GetRecordRes
Fields
user_data: TUserData
The user data passed to the GetValue
.
Response to a KademliaHandlerIn::GetRecord
.
PutRecord
Fields
request_id: KademliaRequestId
Identifier of the request. Needs to be passed back when answering.
Request to put a value in the dht records
PutRecordRes
Fields
user_data: TUserData
The user data passed to the PutValue
.
Response to a request to store a record.