Skip to content

Commit 046ebdf

Browse files
authored
Revert "kad: Implement put_record_to and try_put_record_to (#77)"
This reverts commit c5238d6.
1 parent c5238d6 commit 046ebdf

File tree

5 files changed

+6
-189
lines changed

5 files changed

+6
-189
lines changed

src/protocol/libp2p/kademlia/handle.rs

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -90,20 +90,6 @@ pub(crate) enum KademliaCommand {
9090
query_id: QueryId,
9191
},
9292

93-
/// Store record to DHT to the given peers.
94-
///
95-
/// Similar to [`KademliaCommand::PutRecord`] but allows user to specify the peers.
96-
PutRecordToPeers {
97-
/// Record.
98-
record: Record,
99-
100-
/// Query ID for the query.
101-
query_id: QueryId,
102-
103-
/// Use the following peers for the put request.
104-
peers: Vec<PeerId>,
105-
},
106-
10793
/// Get record from DHT.
10894
GetRecord {
10995
/// Record key.
@@ -221,21 +207,6 @@ impl KademliaHandle {
221207
query_id
222208
}
223209

224-
/// Store record to DHT to the given peers.
225-
pub async fn put_record_to_peers(&mut self, record: Record, peers: Vec<PeerId>) -> QueryId {
226-
let query_id = self.next_query_id();
227-
let _ = self
228-
.cmd_tx
229-
.send(KademliaCommand::PutRecordToPeers {
230-
record,
231-
query_id,
232-
peers,
233-
})
234-
.await;
235-
236-
query_id
237-
}
238-
239210
/// Get record from DHT.
240211
pub async fn get_record(&mut self, key: RecordKey, quorum: Quorum) -> QueryId {
241212
let query_id = self.next_query_id();
@@ -276,24 +247,6 @@ impl KademliaHandle {
276247
.map_err(|_| ())
277248
}
278249

279-
/// Try to initiate `PUT_VALUE` query to the given peers and if the channel is clogged,
280-
/// return an error.
281-
pub fn try_put_record_to_peers(
282-
&mut self,
283-
record: Record,
284-
peers: Vec<PeerId>,
285-
) -> Result<QueryId, ()> {
286-
let query_id = self.next_query_id();
287-
self.cmd_tx
288-
.try_send(KademliaCommand::PutRecordToPeers {
289-
record,
290-
query_id,
291-
peers,
292-
})
293-
.map(|_| query_id)
294-
.map_err(|_| ())
295-
}
296-
297250
/// Try to initiate `GET_VALUE` query and if the channel is clogged, return an error.
298251
pub fn try_get_record(&mut self, key: RecordKey, quorum: Quorum) -> Result<QueryId, ()> {
299252
let query_id = self.next_query_id();

src/protocol/libp2p/kademlia/mod.rs

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -741,34 +741,15 @@ impl Kademlia {
741741
Some(KademliaCommand::PutRecord { record, query_id }) => {
742742
tracing::debug!(target: LOG_TARGET, ?query_id, key = ?record.key, "store record to DHT");
743743

744-
let key = Key::new(record.key.clone());
745-
746744
self.store.put(record.clone());
745+
let key = Key::new(record.key.clone());
747746

748747
self.engine.start_put_record(
749748
query_id,
750749
record,
751750
self.routing_table.closest(key, self.replication_factor).into(),
752751
);
753752
}
754-
Some(KademliaCommand::PutRecordToPeers { record, query_id, peers }) => {
755-
tracing::debug!(target: LOG_TARGET, ?query_id, key = ?record.key, "store record to DHT to specified peers");
756-
757-
// Put the record to the specified peers.
758-
let peers = peers.into_iter().filter_map(|peer| {
759-
match self.routing_table.entry(Key::from(peer)) {
760-
KBucketEntry::Occupied(entry) => Some(entry.clone()),
761-
KBucketEntry::Vacant(entry) if !entry.addresses.is_empty() => Some(entry.clone()),
762-
_ => None,
763-
}
764-
}).collect();
765-
766-
self.engine.start_put_record_to_peers(
767-
query_id,
768-
record,
769-
peers,
770-
);
771-
}
772753
Some(KademliaCommand::GetRecord { key, quorum, query_id }) => {
773754
tracing::debug!(target: LOG_TARGET, ?key, "get record from DHT");
774755

src/protocol/libp2p/kademlia/query/find_many_nodes.rs

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/protocol/libp2p/kademlia/query/mod.rs

Lines changed: 4 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ use bytes::Bytes;
3333

3434
use std::collections::{HashMap, VecDeque};
3535

36-
use self::find_many_nodes::FindManyNodesContext;
37-
38-
mod find_many_nodes;
3936
mod find_node;
4037
mod get_record;
4138

@@ -66,15 +63,6 @@ enum QueryType {
6663
context: FindNodeContext<RecordKey>,
6764
},
6865

69-
/// `PUT_VALUE` query to specified peers.
70-
PutRecordToPeers {
71-
/// Record that needs to be stored.
72-
record: Record,
73-
74-
/// Context for finding peers.
75-
context: FindManyNodesContext,
76-
},
77-
7866
/// `GET_VALUE` query.
7967
GetRecord {
8068
/// Context for the `GET_VALUE` query.
@@ -239,32 +227,6 @@ impl QueryEngine {
239227
query_id
240228
}
241229

242-
/// Start `PUT_VALUE` query to specified peers.
243-
pub fn start_put_record_to_peers(
244-
&mut self,
245-
query_id: QueryId,
246-
record: Record,
247-
peers_to_report: Vec<KademliaPeer>,
248-
) -> QueryId {
249-
tracing::debug!(
250-
target: LOG_TARGET,
251-
?query_id,
252-
target = ?record.key,
253-
num_peers = ?peers_to_report.len(),
254-
"start `PUT_VALUE` query to peers"
255-
);
256-
257-
self.queries.insert(
258-
query_id,
259-
QueryType::PutRecordToPeers {
260-
record,
261-
context: FindManyNodesContext::new(query_id, peers_to_report),
262-
},
263-
);
264-
265-
query_id
266-
}
267-
268230
/// Start `GET_VALUE` query.
269231
pub fn start_get_record(
270232
&mut self,
@@ -318,9 +280,6 @@ impl QueryEngine {
318280
Some(QueryType::PutRecord { context, .. }) => {
319281
context.register_response_failure(peer);
320282
}
321-
Some(QueryType::PutRecordToPeers { context, .. }) => {
322-
context.register_response_failure(peer);
323-
}
324283
Some(QueryType::GetRecord { context }) => {
325284
context.register_response_failure(peer);
326285
}
@@ -348,12 +307,6 @@ impl QueryEngine {
348307
}
349308
_ => unreachable!(),
350309
},
351-
Some(QueryType::PutRecordToPeers { context, .. }) => match message {
352-
KademliaMessage::FindNode { peers, .. } => {
353-
context.register_response(peer, peers);
354-
}
355-
_ => unreachable!(),
356-
},
357310
Some(QueryType::GetRecord { context }) => match message {
358311
KademliaMessage::GetRecord { record, peers, .. } => {
359312
context.register_response(peer, record, peers);
@@ -370,12 +323,11 @@ impl QueryEngine {
370323
match self.queries.get_mut(query) {
371324
None => {
372325
tracing::trace!(target: LOG_TARGET, ?query, ?peer, "response failure for a stale query");
373-
None
326+
return None;
374327
}
375-
Some(QueryType::FindNode { context }) => context.next_peer_action(peer),
376-
Some(QueryType::PutRecord { context, .. }) => context.next_peer_action(peer),
377-
Some(QueryType::PutRecordToPeers { context, .. }) => context.next_peer_action(peer),
378-
Some(QueryType::GetRecord { context }) => context.next_peer_action(peer),
328+
Some(QueryType::FindNode { context }) => return context.next_peer_action(peer),
329+
Some(QueryType::PutRecord { context, .. }) => return context.next_peer_action(peer),
330+
Some(QueryType::GetRecord { context }) => return context.next_peer_action(peer),
379331
}
380332
}
381333

@@ -392,10 +344,6 @@ impl QueryEngine {
392344
record,
393345
peers: context.responses.into_iter().map(|(_, peer)| peer).collect::<Vec<_>>(),
394346
},
395-
QueryType::PutRecordToPeers { record, context } => QueryAction::PutRecordToFoundNodes {
396-
record,
397-
peers: context.peers_to_report,
398-
},
399347
QueryType::GetRecord { context } => QueryAction::GetRecordQueryDone {
400348
query_id: context.query,
401349
record: context.found_record(),
@@ -417,7 +365,6 @@ impl QueryEngine {
417365
let action = match state {
418366
QueryType::FindNode { context } => context.next_action(),
419367
QueryType::PutRecord { context, .. } => context.next_action(),
420-
QueryType::PutRecordToPeers { context, .. } => context.next_action(),
421368
QueryType::GetRecord { context } => context.next_action(),
422369
};
423370

src/protocol/libp2p/kademlia/routing_table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ impl RoutingTable {
176176
}
177177
}
178178

179-
/// Get `limit` closest peers to `target` from the k-buckets.
179+
/// Get `limit` closests peers to `target` from the k-buckets.
180180
pub fn closest<K: Clone>(&mut self, target: Key<K>, limit: usize) -> Vec<KademliaPeer> {
181181
ClosestBucketsIter::new(self.local_key.distance(&target))
182182
.map(|index| self.buckets[index.get()].closest_iter(&target))

0 commit comments

Comments
 (0)