mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-04-08 10:28:05 +00:00
fix: start kad dht random walk (#251)
* fix: start kad dht random walk * chore: added tests and stop random walk * chore: allows to disable discovery for dht * chore: upgrade kad-dht version
This commit is contained in:
parent
cef3c8b5cc
commit
dd934b9690
@ -162,7 +162,8 @@ class Node extends libp2p {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
dht: {
|
dht: {
|
||||||
kBucketSize: 20
|
kBucketSize: 20,
|
||||||
|
enabledDiscovery: true // Allows to disable discovery (enabled by default)
|
||||||
},
|
},
|
||||||
// Enable/Disable Experimental features
|
// Enable/Disable Experimental features
|
||||||
EXPERIMENTAL: { // Experimental features ("behind a flag")
|
EXPERIMENTAL: { // Experimental features ("behind a flag")
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"electron-webrtc": "~0.3.0",
|
"electron-webrtc": "~0.3.0",
|
||||||
"libp2p-circuit": "~0.2.1",
|
"libp2p-circuit": "~0.2.1",
|
||||||
"libp2p-kad-dht": "~0.10.3",
|
"libp2p-kad-dht": "~0.10.5",
|
||||||
"libp2p-mdns": "~0.12.0",
|
"libp2p-mdns": "~0.12.0",
|
||||||
"libp2p-mplex": "~0.8.2",
|
"libp2p-mplex": "~0.8.2",
|
||||||
"libp2p-bootstrap": "~0.9.3",
|
"libp2p-bootstrap": "~0.9.3",
|
||||||
|
@ -29,7 +29,8 @@ const OptionsSchema = Joi.object({
|
|||||||
})
|
})
|
||||||
}).default(),
|
}).default(),
|
||||||
dht: Joi.object().keys({
|
dht: Joi.object().keys({
|
||||||
kBucketSize: Joi.number().allow(null)
|
kBucketSize: Joi.number().allow(null),
|
||||||
|
enabledDiscovery: Joi.boolean().default(true)
|
||||||
}),
|
}),
|
||||||
EXPERIMENTAL: Joi.object().keys({
|
EXPERIMENTAL: Joi.object().keys({
|
||||||
dht: Joi.boolean().default(false),
|
dht: Joi.boolean().default(false),
|
||||||
|
@ -85,8 +85,11 @@ class Node extends EventEmitter {
|
|||||||
// dht provided components (peerRouting, contentRouting, dht)
|
// dht provided components (peerRouting, contentRouting, dht)
|
||||||
if (this._config.EXPERIMENTAL.dht) {
|
if (this._config.EXPERIMENTAL.dht) {
|
||||||
const DHT = this._modules.dht
|
const DHT = this._modules.dht
|
||||||
|
const enabledDiscovery = this._config.dht.enabledDiscovery !== false
|
||||||
|
|
||||||
this._dht = new DHT(this._switch, {
|
this._dht = new DHT(this._switch, {
|
||||||
kBucketSize: this._config.dht.kBucketSize || 20,
|
kBucketSize: this._config.dht.kBucketSize || 20,
|
||||||
|
enabledDiscovery,
|
||||||
// TODO make datastore an option of libp2p itself so
|
// TODO make datastore an option of libp2p itself so
|
||||||
// that other things can use it as well
|
// that other things can use it as well
|
||||||
datastore: dht.datastore
|
datastore: dht.datastore
|
||||||
|
@ -28,10 +28,12 @@ describe('libp2p creation', () => {
|
|||||||
sinon.spy(sw, 'start')
|
sinon.spy(sw, 'start')
|
||||||
sinon.spy(cm, 'start')
|
sinon.spy(cm, 'start')
|
||||||
sinon.spy(dht, 'start')
|
sinon.spy(dht, 'start')
|
||||||
|
sinon.spy(dht.randomWalk, 'start')
|
||||||
sinon.spy(pub, 'start')
|
sinon.spy(pub, 'start')
|
||||||
sinon.spy(sw, 'stop')
|
sinon.spy(sw, 'stop')
|
||||||
sinon.spy(cm, 'stop')
|
sinon.spy(cm, 'stop')
|
||||||
sinon.spy(dht, 'stop')
|
sinon.spy(dht, 'stop')
|
||||||
|
sinon.spy(dht.randomWalk, 'stop')
|
||||||
sinon.spy(pub, 'stop')
|
sinon.spy(pub, 'stop')
|
||||||
sinon.spy(node, 'emit')
|
sinon.spy(node, 'emit')
|
||||||
|
|
||||||
@ -41,6 +43,7 @@ describe('libp2p creation', () => {
|
|||||||
expect(sw.start.calledOnce).to.equal(true)
|
expect(sw.start.calledOnce).to.equal(true)
|
||||||
expect(cm.start.calledOnce).to.equal(true)
|
expect(cm.start.calledOnce).to.equal(true)
|
||||||
expect(dht.start.calledOnce).to.equal(true)
|
expect(dht.start.calledOnce).to.equal(true)
|
||||||
|
expect(dht.randomWalk.start.calledOnce).to.equal(true)
|
||||||
expect(pub.start.calledOnce).to.equal(true)
|
expect(pub.start.calledOnce).to.equal(true)
|
||||||
expect(node.emit.calledWith('start')).to.equal(true)
|
expect(node.emit.calledWith('start')).to.equal(true)
|
||||||
|
|
||||||
@ -53,6 +56,7 @@ describe('libp2p creation', () => {
|
|||||||
expect(sw.stop.calledOnce).to.equal(true)
|
expect(sw.stop.calledOnce).to.equal(true)
|
||||||
expect(cm.stop.calledOnce).to.equal(true)
|
expect(cm.stop.calledOnce).to.equal(true)
|
||||||
expect(dht.stop.calledOnce).to.equal(true)
|
expect(dht.stop.calledOnce).to.equal(true)
|
||||||
|
expect(dht.randomWalk.stop.called).to.equal(true)
|
||||||
expect(pub.stop.calledOnce).to.equal(true)
|
expect(pub.stop.calledOnce).to.equal(true)
|
||||||
expect(node.emit.calledWith('stop')).to.equal(true)
|
expect(node.emit.calledWith('stop')).to.equal(true)
|
||||||
|
|
||||||
|
@ -79,7 +79,8 @@ class Node extends libp2p {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
dht: {
|
dht: {
|
||||||
kBucketSize: 20
|
kBucketSize: 20,
|
||||||
|
enabledDiscovery: true
|
||||||
},
|
},
|
||||||
EXPERIMENTAL: {
|
EXPERIMENTAL: {
|
||||||
dht: false,
|
dht: false,
|
||||||
|
@ -72,7 +72,8 @@ class Node extends libp2p {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
dht: {
|
dht: {
|
||||||
kBucketSize: 20
|
kBucketSize: 20,
|
||||||
|
enabledDiscovery: true
|
||||||
},
|
},
|
||||||
EXPERIMENTAL: {
|
EXPERIMENTAL: {
|
||||||
dht: false,
|
dht: false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user