Skip to content

Commit 9e7a080

Browse files
vasco-santosjacobheun
authored andcommitted
fix: emit peer discovery for dht discovery
1 parent 558e598 commit 9e7a080

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"libp2p-circuit": "~0.3.0",
7373
"libp2p-delegated-content-routing": "~0.2.2",
7474
"libp2p-delegated-peer-routing": "~0.2.2",
75-
"libp2p-kad-dht": "~0.14.2",
75+
"libp2p-kad-dht": "~0.14.5",
7676
"libp2p-mdns": "~0.12.0",
7777
"libp2p-mplex": "~0.8.4",
7878
"libp2p-secio": "~0.11.0",

src/index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,10 @@ class Node extends EventEmitter {
400400
},
401401
(cb) => {
402402
if (this._dht) {
403-
this._dht.start(cb)
403+
this._dht.start(() => {
404+
this._dht.on('peer', (peerInfo) => this.emit('peer:discovery', peerInfo))
405+
cb()
406+
})
404407
} else {
405408
cb()
406409
}

test/peer-discovery.node.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ const signalling = require('libp2p-webrtc-star/src/sig-server')
99
const parallel = require('async/parallel')
1010
const crypto = require('crypto')
1111

12+
const PeerId = require('peer-id')
13+
const PeerInfo = require('peer-info')
14+
1215
const createNode = require('./utils/create-node')
1316
const echo = require('./utils/echo')
1417

@@ -241,6 +244,9 @@ describe('peer discovery', () => {
241244
describe('MulticastDNS', () => {
242245
setup({
243246
config: {
247+
dht: {
248+
enabled: false
249+
},
244250
peerDiscovery: {
245251
mdns: {
246252
enabled: true,
@@ -266,6 +272,9 @@ describe('peer discovery', () => {
266272
describe.skip('WebRTCStar', () => {
267273
setup({
268274
config: {
275+
dht: {
276+
enabled: false
277+
},
269278
peerDiscovery: {
270279
webRTCStar: {
271280
enabled: true
@@ -287,6 +296,9 @@ describe('peer discovery', () => {
287296
describe('MulticastDNS + WebRTCStar', () => {
288297
setup({
289298
config: {
299+
dht: {
300+
enabled: false
301+
},
290302
peerDiscovery: {
291303
mdns: {
292304
enabled: true,
@@ -309,4 +321,37 @@ describe('peer discovery', () => {
309321
})
310322
})
311323
})
324+
325+
describe('dht', () => {
326+
setup({
327+
config: {
328+
peerDiscovery: {
329+
mdns: {
330+
enabled: false
331+
},
332+
webRTCStar: {
333+
enabled: false
334+
}
335+
}
336+
}
337+
})
338+
339+
it('find a peer', function (done) {
340+
this.timeout(15 * 1000)
341+
342+
nodeA.once('peer:discovery', (peerInfo) => {
343+
expect(nodeB.peerInfo.id.toB58String())
344+
.to.eql(peerInfo.id.toB58String())
345+
done()
346+
})
347+
348+
// connect two dhts
349+
const publicPeerId = new PeerId(nodeB._dht.peerInfo.id.id, null, nodeB._dht.peerInfo.id.pubKey)
350+
const target = new PeerInfo(publicPeerId)
351+
target.multiaddrs = nodeB._dht.peerInfo.multiaddrs
352+
nodeA._dht.switch.dial(target, (err) => {
353+
expect(err).to.not.exist()
354+
})
355+
})
356+
})
312357
})

0 commit comments

Comments
 (0)