mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-07-10 22:31:34 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
760d8b4c3a | |||
7b56f559cb | |||
0fd5188176 | |||
bd7fd0f755 |
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,3 +1,13 @@
|
|||||||
|
<a name="0.27.5"></a>
|
||||||
|
## [0.27.5](https://github.com/libp2p/js-libp2p/compare/v0.27.4...v0.27.5) (2020-04-06)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* await peer discovery start in libp2p start ([#600](https://github.com/libp2p/js-libp2p/issues/600)) ([bd7fd0f](https://github.com/libp2p/js-libp2p/commit/bd7fd0f))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="0.27.4"></a>
|
<a name="0.27.4"></a>
|
||||||
## [0.27.4](https://github.com/libp2p/js-libp2p/compare/v0.27.3...v0.27.4) (2020-03-31)
|
## [0.27.4](https://github.com/libp2p/js-libp2p/compare/v0.27.3...v0.27.4) (2020-03-31)
|
||||||
|
|
||||||
|
18
package.json
18
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "libp2p",
|
"name": "libp2p",
|
||||||
"version": "0.27.4",
|
"version": "0.27.5",
|
||||||
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
|
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
|
||||||
"leadMaintainer": "Jacob Heun <jacobheun@gmail.com>",
|
"leadMaintainer": "Jacob Heun <jacobheun@gmail.com>",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
@ -123,30 +123,30 @@
|
|||||||
"Richard Littauer <richard.littauer@gmail.com>",
|
"Richard Littauer <richard.littauer@gmail.com>",
|
||||||
"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ <victorbjelkholm@gmail.com>",
|
"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ <victorbjelkholm@gmail.com>",
|
||||||
"Andrew Nesbitt <andrewnez@gmail.com>",
|
"Andrew Nesbitt <andrewnez@gmail.com>",
|
||||||
|
"Cayman <caymannava@gmail.com>",
|
||||||
"Elven <mon.samuel@qq.com>",
|
"Elven <mon.samuel@qq.com>",
|
||||||
"Giovanni T. Parra <fiatjaf@gmail.com>",
|
"Giovanni T. Parra <fiatjaf@gmail.com>",
|
||||||
"Ryan Bell <ryan@piing.net>",
|
"Ryan Bell <ryan@piing.net>",
|
||||||
"Thomas Eizinger <thomas@eizinger.io>",
|
"Thomas Eizinger <thomas@eizinger.io>",
|
||||||
"Henrique Dias <hacdias@gmail.com>",
|
"Joel Gustafson <joelg@mit.edu>",
|
||||||
"Kevin Kwok <antimatter15@gmail.com>",
|
"Kevin Kwok <antimatter15@gmail.com>",
|
||||||
|
"Henrique Dias <hacdias@gmail.com>",
|
||||||
"Nuno Nogueira <nunofmn@gmail.com>",
|
"Nuno Nogueira <nunofmn@gmail.com>",
|
||||||
"Florian-Merle <florian.david.merle@gmail.com>",
|
|
||||||
"RasmusErik Voel Jensen <github@solsort.com>",
|
"RasmusErik Voel Jensen <github@solsort.com>",
|
||||||
"Fei Liu <liu.feiwood@gmail.com>",
|
"Florian-Merle <florian.david.merle@gmail.com>",
|
||||||
"Soeren <nikorpoulsen@gmail.com>",
|
"Soeren <nikorpoulsen@gmail.com>",
|
||||||
"Sönke Hahn <soenkehahn@gmail.com>",
|
"Sönke Hahn <soenkehahn@gmail.com>",
|
||||||
"Tiago Alves <alvesjtiago@gmail.com>",
|
"Tiago Alves <alvesjtiago@gmail.com>",
|
||||||
|
"Fei Liu <liu.feiwood@gmail.com>",
|
||||||
"Dmitriy Ryajov <dryajov@gmail.com>",
|
"Dmitriy Ryajov <dryajov@gmail.com>",
|
||||||
"Diogo Silva <fsdiogo@gmail.com>",
|
"Diogo Silva <fsdiogo@gmail.com>",
|
||||||
"Didrik Nordström <didrik.nordstrom@gmail.com>",
|
|
||||||
"Yusef Napora <yusef@napora.org>",
|
"Yusef Napora <yusef@napora.org>",
|
||||||
"Zane Starr <zcstarr@gmail.com>",
|
"Zane Starr <zcstarr@gmail.com>",
|
||||||
|
"Didrik Nordström <didrik.nordstrom@gmail.com>",
|
||||||
"Daijiro Wachi <daijiro.wachi@gmail.com>",
|
"Daijiro Wachi <daijiro.wachi@gmail.com>",
|
||||||
"Chris Bratlien <chrisbratlien@gmail.com>",
|
|
||||||
"ebinks <elizabethjbinks@gmail.com>",
|
"ebinks <elizabethjbinks@gmail.com>",
|
||||||
"Cayman <caymannava@gmail.com>",
|
"Chris Bratlien <chrisbratlien@gmail.com>",
|
||||||
"isan_rivkin <isanrivkin@gmail.com>",
|
"isan_rivkin <isanrivkin@gmail.com>",
|
||||||
"Irakli Gozalishvili <rfobic@gmail.com>",
|
"Irakli Gozalishvili <rfobic@gmail.com>"
|
||||||
"Joel Gustafson <joelg@mit.edu>"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
10
src/index.js
10
src/index.js
@ -399,7 +399,7 @@ class Libp2p extends EventEmitter {
|
|||||||
* Called when libp2p has started and before it returns
|
* Called when libp2p has started and before it returns
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
_onDidStart () {
|
async _onDidStart () {
|
||||||
this._isStarted = true
|
this._isStarted = true
|
||||||
|
|
||||||
this.connectionManager.start()
|
this.connectionManager.start()
|
||||||
@ -410,7 +410,7 @@ class Libp2p extends EventEmitter {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Peer discovery
|
// Peer discovery
|
||||||
this._setupPeerDiscovery()
|
await this._setupPeerDiscovery()
|
||||||
|
|
||||||
// Once we start, emit and dial any peers we may have already discovered
|
// Once we start, emit and dial any peers we may have already discovered
|
||||||
for (const peerInfo of this.peerStore.peers.values()) {
|
for (const peerInfo of this.peerStore.peers.values()) {
|
||||||
@ -458,10 +458,10 @@ class Libp2p extends EventEmitter {
|
|||||||
/**
|
/**
|
||||||
* Initializes and starts peer discovery services
|
* Initializes and starts peer discovery services
|
||||||
*
|
*
|
||||||
|
* @async
|
||||||
* @private
|
* @private
|
||||||
* @returns {Promise<void>}
|
|
||||||
*/
|
*/
|
||||||
_setupPeerDiscovery () {
|
async _setupPeerDiscovery () {
|
||||||
const setupService = (DiscoveryService) => {
|
const setupService = (DiscoveryService) => {
|
||||||
let config = {
|
let config = {
|
||||||
enabled: true // on by default
|
enabled: true // on by default
|
||||||
@ -500,7 +500,7 @@ class Libp2p extends EventEmitter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Promise.all(Array.from(this._discovery.values(), d => d.start()))
|
await Promise.all(Array.from(this._discovery.values(), d => d.start()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,12 +9,12 @@ const sinon = require('sinon')
|
|||||||
const defer = require('p-defer')
|
const defer = require('p-defer')
|
||||||
const mergeOptions = require('merge-options')
|
const mergeOptions = require('merge-options')
|
||||||
|
|
||||||
const MulticastDNS = require('libp2p-mdns')
|
|
||||||
const WebRTCStar = require('libp2p-webrtc-star')
|
const WebRTCStar = require('libp2p-webrtc-star')
|
||||||
|
|
||||||
const Libp2p = require('../../src')
|
const Libp2p = require('../../src')
|
||||||
const baseOptions = require('../utils/base-options.browser')
|
const baseOptions = require('../utils/base-options.browser')
|
||||||
const { createPeerInfo } = require('../utils/creators/peer')
|
const { createPeerInfo } = require('../utils/creators/peer')
|
||||||
|
const { EventEmitter } = require('events')
|
||||||
|
|
||||||
describe('peer discovery', () => {
|
describe('peer discovery', () => {
|
||||||
describe('basic functions', () => {
|
describe('basic functions', () => {
|
||||||
@ -51,17 +51,22 @@ describe('peer discovery', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('should ignore self on discovery', async () => {
|
it('should ignore self on discovery', async () => {
|
||||||
|
const mockDiscovery = new EventEmitter()
|
||||||
|
mockDiscovery.tag = 'mock'
|
||||||
|
mockDiscovery.start = () => {}
|
||||||
|
mockDiscovery.stop = () => {}
|
||||||
|
|
||||||
libp2p = new Libp2p(mergeOptions(baseOptions, {
|
libp2p = new Libp2p(mergeOptions(baseOptions, {
|
||||||
peerInfo,
|
peerInfo,
|
||||||
modules: {
|
modules: {
|
||||||
peerDiscovery: [MulticastDNS]
|
peerDiscovery: [mockDiscovery]
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
await libp2p.start()
|
await libp2p.start()
|
||||||
const discoverySpy = sinon.spy()
|
const discoverySpy = sinon.spy()
|
||||||
libp2p.on('peer:discovery', discoverySpy)
|
libp2p.on('peer:discovery', discoverySpy)
|
||||||
libp2p._discovery.get('mdns').emit('peer', libp2p.peerInfo)
|
libp2p._discovery.get('mock').emit('peer', libp2p.peerInfo)
|
||||||
|
|
||||||
expect(discoverySpy.called).to.eql(false)
|
expect(discoverySpy.called).to.eql(false)
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user