Skip to content

Commit 3f57eda

Browse files
authored
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
1 parent 6219841 commit 3f57eda

File tree

2 files changed

+12
-19
lines changed

2 files changed

+12
-19
lines changed

src/dht/dht-peer-routing.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ export class DHTPeerRouting implements PeerRouting {
2727

2828
async * getClosestPeers (key: Uint8Array, options: AbortOptions = {}) {
2929
for await (const event of this.dht.getClosestPeers(key, options)) {
30-
if (event.name === 'PEER_RESPONSE') {
31-
yield * event.closer
30+
if (event.name === 'FINAL_PEER') {
31+
yield event.peer
3232
}
3333
}
3434
}

test/peer-routing/peer-routing.node.ts

+10-17
Original file line numberDiff line numberDiff line change
@@ -112,16 +112,15 @@ describe('peer-routing', () => {
112112
const dhtGetClosestPeersStub = sinon.stub(nodes[0].dht, 'getClosestPeers').callsFake(async function * () {
113113
yield {
114114
from: nodes[2].peerId,
115-
type: EventTypes.PEER_RESPONSE,
116-
name: 'PEER_RESPONSE',
115+
type: EventTypes.FINAL_PEER,
116+
name: 'FINAL_PEER',
117117
messageName: 'FIND_NODE',
118118
messageType: MessageType.FIND_NODE,
119-
closer: [{
119+
peer: {
120120
id: nodes[1].peerId,
121121
multiaddrs: [],
122122
protocols: []
123-
}],
124-
providers: []
123+
}
125124
}
126125
})
127126

@@ -589,26 +588,20 @@ describe('peer-routing', () => {
589588
const peerStoreAddressBookAddStub = sinon.spy(node.peerStore.addressBook, 'add')
590589
const dhtGetClosestPeersStub = sinon.stub(node.dht, 'getClosestPeers').callsFake(async function * () {
591590
yield {
592-
name: 'PEER_RESPONSE',
593-
type: EventTypes.PEER_RESPONSE,
591+
name: 'FINAL_PEER',
592+
type: EventTypes.FINAL_PEER,
594593
messageName: 'FIND_NODE',
595594
messageType: MessageType.FIND_NODE,
596595
from: peerIds[0],
597-
closer: [
598-
results[0]
599-
],
600-
providers: []
596+
peer: results[0]
601597
}
602598
yield {
603-
name: 'PEER_RESPONSE',
604-
type: EventTypes.PEER_RESPONSE,
599+
name: 'FINAL_PEER',
600+
type: EventTypes.FINAL_PEER,
605601
messageName: 'FIND_NODE',
606602
messageType: MessageType.FIND_NODE,
607603
from: peerIds[0],
608-
closer: [
609-
results[1]
610-
],
611-
providers: []
604+
peer: results[1]
612605
}
613606
})
614607

0 commit comments

Comments
 (0)