Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.

Commit 01ce4ec

Browse files
authoredApr 21, 2020
Merge pull request #103 from libp2p/chore/peer-discovery-not-using-peer-info
chore: peer-discovery not using peer-info
2 parents a87c1f7 + 3a9200e commit 01ce4ec

File tree

4 files changed

+43
-17
lines changed

4 files changed

+43
-17
lines changed
 

‎package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@
3030
"devDependencies": {
3131
"aegir": "^21.2.0",
3232
"chai": "^4.2.0",
33-
"dirty-chai": "^2.0.1"
33+
"dirty-chai": "^2.0.1",
34+
"libp2p-interfaces": "^0.3.0"
3435
},
3536
"dependencies": {
3637
"debug": "^4.1.1",
3738
"mafmt": "^7.0.0",
3839
"multiaddr": "^7.2.1",
39-
"peer-id": "^0.13.5",
40-
"peer-info": "^0.17.0"
40+
"peer-id": "^0.13.5"
4141
},
4242
"pre-push": [
4343
"lint",

‎src/index.js

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict'
22

33
const PeerId = require('peer-id')
4-
const PeerInfo = require('peer-info')
54
const multiaddr = require('multiaddr')
65
const mafmt = require('mafmt')
76
const { EventEmitter } = require('events')
@@ -50,7 +49,11 @@ class Bootstrap extends EventEmitter {
5049
* Emit each address in the list as a PeerInfo.
5150
*/
5251
_discoverBootstrapPeers () {
53-
this._list.forEach(async (candidate) => {
52+
if (!this._timer) {
53+
return
54+
}
55+
56+
this._list.forEach((candidate) => {
5457
if (!mafmt.P2P.matches(candidate)) {
5558
return log.error('Invalid multiaddr')
5659
}
@@ -60,9 +63,10 @@ class Bootstrap extends EventEmitter {
6063
const peerId = PeerId.createFromB58String(ma.getPeerId())
6164

6265
try {
63-
const peerInfo = await PeerInfo.create(peerId)
64-
peerInfo.multiaddrs.add(ma)
65-
this.emit('peer', peerInfo)
66+
this.emit('peer', {
67+
id: peerId,
68+
multiaddrs: [ma]
69+
})
6670
} catch (err) {
6771
log.error('Invalid bootstrap peer id', err)
6872
}
@@ -73,10 +77,8 @@ class Bootstrap extends EventEmitter {
7377
* Stop emitting events.
7478
*/
7579
stop () {
76-
if (this._timer) {
77-
clearInterval(this._timer)
78-
this._timer = null
79-
}
80+
clearInterval(this._timer)
81+
this._timer = null
8082
}
8183
}
8284

‎test/bootstrap.spec.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@ const chai = require('chai')
55
chai.use(require('dirty-chai'))
66
const { expect } = chai
77

8+
const mafmt = require('mafmt')
9+
const PeerId = require('peer-id')
10+
811
const Bootstrap = require('../src')
912
const peerList = require('./default-peers')
1013
const partialValidPeerList = require('./some-invalid-peers')
11-
const mafmt = require('mafmt')
1214

1315
describe('bootstrap', () => {
1416
it('should throw if no peer list is provided', () => {
@@ -42,10 +44,11 @@ describe('bootstrap', () => {
4244
})
4345

4446
const p = new Promise((resolve) => {
45-
r.once('peer', (peer) => {
46-
const peerList = peer.multiaddrs.toArray()
47-
expect(peerList.length).to.eq(1)
48-
expect(mafmt.IPFS.matches(peerList[0].toString())).equals(true)
47+
r.once('peer', ({ id, multiaddrs }) => {
48+
expect(id).to.exist()
49+
expect(PeerId.isPeerId(id)).to.eql(true)
50+
expect(multiaddrs.length).to.eq(1)
51+
expect(mafmt.IPFS.matches(multiaddrs[0].toString())).equals(true)
4952
resolve()
5053
})
5154
})

‎test/compliance.spec.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict'
2+
3+
/* eslint-env mocha */
4+
5+
const tests = require('libp2p-interfaces/src/peer-discovery/tests')
6+
7+
const Bootstrap = require('../src')
8+
const peerList = require('./default-peers')
9+
10+
describe('compliance tests', () => {
11+
tests({
12+
setup () {
13+
const bootstrap = new Bootstrap({
14+
list: peerList,
15+
interval: 2000
16+
})
17+
18+
return bootstrap
19+
}
20+
})
21+
})

0 commit comments

Comments
 (0)
This repository has been archived.