Skip to content

Commit

Permalink
Make getProviders also query the local provider store
Browse files Browse the repository at this point in the history
  • Loading branch information
ianopolous committed Jul 11, 2023
1 parent 325d3fb commit 4ed0f57
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/java/org/peergos/protocol/dht/Kademlia.java
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ public CompletableFuture<List<PeerAddresses>> findProviders(Multihash block, Hos
byte[] key = block.bareMultihash().toBytes();
Id keyId = Id.create(key, 256);
List<PeerAddresses> providers = new ArrayList<>();
providers.addAll(engine.getProviders(block));

SortedSet<RoutingEntry> toQuery = new TreeSet<>((a, b) -> b.key.getSharedPrefixLength(keyId) - a.key.getSharedPrefixLength(keyId));
toQuery.addAll(engine.getKClosestPeers(key).stream()
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/org/peergos/protocol/dht/KademliaEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ public synchronized void addIncomingConnection(PeerId peer, Multiaddr addr) {
addressBook.addAddrs(peer, 0, addr);
}

public Set<PeerAddresses> getProviders(Multihash h) {
return providersStore.getProviders(h);
}

public List<PeerAddresses> getKClosestPeers(byte[] key) {
int k = 20;
List<Node> nodes;
Expand Down

0 comments on commit 4ed0f57

Please sign in to comment.