Enum libp2p_kad::handler::KademliaHandlerIn
source · [−]pub enum KademliaHandlerIn<TUserData> {
Reset(KademliaRequestId),
FindNodeReq {
key: Vec<u8>,
user_data: TUserData,
},
FindNodeRes {
closer_peers: Vec<KadPeer>,
request_id: KademliaRequestId,
},
GetProvidersReq {
key: Key,
user_data: TUserData,
},
GetProvidersRes {
closer_peers: Vec<KadPeer>,
provider_peers: Vec<KadPeer>,
request_id: KademliaRequestId,
},
AddProvider {
key: Key,
provider: KadPeer,
},
GetRecord {
key: Key,
user_data: TUserData,
},
GetRecordRes {
record: Option<Record>,
closer_peers: Vec<KadPeer>,
request_id: KademliaRequestId,
},
PutRecord {
record: Record,
user_data: TUserData,
},
PutRecordRes {
key: Key,
value: Vec<u8>,
request_id: KademliaRequestId,
},
}
Expand description
Event to send to the handler.
Variants
Reset(KademliaRequestId)
Resets the (sub)stream associated with the given request ID, thus signaling an error to the remote.
Explicitly resetting the (sub)stream associated with a request can be used as an alternative to letting requests simply time out on the remote peer, thus potentially avoiding some delay for the query on the remote.
FindNodeReq
Fields
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
request_id: KademliaRequestId
Identifier of the request that was made by the remote.
It is a logic error to use an id of the handler of a different node.
Response to a FindNodeReq
.
GetProvidersReq
Fields
key: Key
Identifier being searched.
Same as FindNodeReq
, but should also return the entries of the local providers list for
this key.
GetProvidersRes
Fields
request_id: KademliaRequestId
Identifier of the request that was made by the remote.
It is a logic error to use an id of the handler of a different node.
Response to a GetProvidersReq
.
AddProvider
Indicates that this provider is known for this key.
The API of the handler doesn’t expose any event that allows you to know whether this succeeded.
GetRecord
Fields
key: Key
The key of the record.
Request to retrieve a record from the DHT.
GetRecordRes
Fields
request_id: KademliaRequestId
Identifier of the request that was made by the remote.
Response to a GetRecord
request.
PutRecord
Fields
record: Record
Put a value into the dht records.
PutRecordRes
Fields
key: Key
Key of the value that was put.
request_id: KademliaRequestId
Identifier of the request that was made by the remote.
Response to a PutRecord
.