mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-04-24 18:12:14 +00:00
fix: yield only final peers from dht getClosestPeers (#1380)
* fix: yield final peers from dht getClosestPeers `PEER_RESPONSE` is an intermediate event, we should only yield from `FINAL_PEER` events as we'll only get `K` of those. * chore: fix test
This commit is contained in:
parent
62198414b3
commit
3f57edaf3b
@ -27,8 +27,8 @@ export class DHTPeerRouting implements PeerRouting {
|
||||
|
||||
async * getClosestPeers (key: Uint8Array, options: AbortOptions = {}) {
|
||||
for await (const event of this.dht.getClosestPeers(key, options)) {
|
||||
if (event.name === 'PEER_RESPONSE') {
|
||||
yield * event.closer
|
||||
if (event.name === 'FINAL_PEER') {
|
||||
yield event.peer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -112,16 +112,15 @@ describe('peer-routing', () => {
|
||||
const dhtGetClosestPeersStub = sinon.stub(nodes[0].dht, 'getClosestPeers').callsFake(async function * () {
|
||||
yield {
|
||||
from: nodes[2].peerId,
|
||||
type: EventTypes.PEER_RESPONSE,
|
||||
name: 'PEER_RESPONSE',
|
||||
type: EventTypes.FINAL_PEER,
|
||||
name: 'FINAL_PEER',
|
||||
messageName: 'FIND_NODE',
|
||||
messageType: MessageType.FIND_NODE,
|
||||
closer: [{
|
||||
peer: {
|
||||
id: nodes[1].peerId,
|
||||
multiaddrs: [],
|
||||
protocols: []
|
||||
}],
|
||||
providers: []
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@ -589,26 +588,20 @@ describe('peer-routing', () => {
|
||||
const peerStoreAddressBookAddStub = sinon.spy(node.peerStore.addressBook, 'add')
|
||||
const dhtGetClosestPeersStub = sinon.stub(node.dht, 'getClosestPeers').callsFake(async function * () {
|
||||
yield {
|
||||
name: 'PEER_RESPONSE',
|
||||
type: EventTypes.PEER_RESPONSE,
|
||||
name: 'FINAL_PEER',
|
||||
type: EventTypes.FINAL_PEER,
|
||||
messageName: 'FIND_NODE',
|
||||
messageType: MessageType.FIND_NODE,
|
||||
from: peerIds[0],
|
||||
closer: [
|
||||
results[0]
|
||||
],
|
||||
providers: []
|
||||
peer: results[0]
|
||||
}
|
||||
yield {
|
||||
name: 'PEER_RESPONSE',
|
||||
type: EventTypes.PEER_RESPONSE,
|
||||
name: 'FINAL_PEER',
|
||||
type: EventTypes.FINAL_PEER,
|
||||
messageName: 'FIND_NODE',
|
||||
messageType: MessageType.FIND_NODE,
|
||||
from: peerIds[0],
|
||||
closer: [
|
||||
results[1]
|
||||
],
|
||||
providers: []
|
||||
peer: results[1]
|
||||
}
|
||||
})
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user