Skip to content

Commit c4cab00

Browse files
vasco-santosjacobheun
authored andcommitted
feat: enable dht by default (#313)
BREAKING CHANGE: dht experimental flag was removed and a dht.enabled property was added to the config
1 parent ebaab3e commit c4cab00

13 files changed

+59
-59
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -175,12 +175,12 @@ class Node extends libp2p {
175175
},
176176
dht: {
177177
kBucketSize: 20,
178+
enabled: true,
178179
enabledDiscovery: true // Allows to disable discovery (enabled by default)
179180
},
180181
// Enable/Disable Experimental features
181182
EXPERIMENTAL: { // Experimental features ("behind a flag")
182-
pubsub: false,
183-
dht: false
183+
pubsub: false
184184
}
185185
}
186186
}

src/config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ const OptionsSchema = Joi.object({
3333
}).default(),
3434
dht: Joi.object().keys({
3535
kBucketSize: Joi.number().default(20),
36+
enabled: Joi.boolean().default(true),
3637
enabledDiscovery: Joi.boolean().default(true),
3738
validators: Joi.object().allow(null),
3839
selectors: Joi.object().allow(null)
3940
}).default(),
4041
EXPERIMENTAL: Joi.object().keys({
41-
dht: Joi.boolean().default(false),
4242
pubsub: Joi.boolean().default(false)
4343
}).default()
4444
}).default()
@@ -48,7 +48,7 @@ module.exports.validate = (options) => {
4848
options = Joi.attempt(options, OptionsSchema)
4949

5050
// Ensure dht is correct
51-
if (options.config.EXPERIMENTAL.dht) {
51+
if (options.config.dht.enabled) {
5252
Joi.assert(options.modules.dht, ModuleSchema.required())
5353
}
5454

src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ class Node extends EventEmitter {
102102
}
103103

104104
// dht provided components (peerRouting, contentRouting, dht)
105-
if (this._config.EXPERIMENTAL.dht) {
105+
if (this._config.dht.enabled) {
106106
const DHT = this._modules.dht
107107
const enabledDiscovery = this._config.dht.enabledDiscovery !== false
108108

test/config.spec.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ describe('configuration', () => {
6363
peerInfo,
6464
modules: {
6565
transport: [ WS ],
66-
peerDiscovery: [ Bootstrap ]
66+
peerDiscovery: [ Bootstrap ],
67+
dht: DHT
6768
},
6869
config: {
6970
peerDiscovery: {
@@ -79,7 +80,8 @@ describe('configuration', () => {
7980
peerInfo,
8081
modules: {
8182
transport: [ WS ],
82-
peerDiscovery: [ Bootstrap ]
83+
peerDiscovery: [ Bootstrap ],
84+
dht: DHT
8385
},
8486
config: {
8587
peerDiscovery: {
@@ -89,11 +91,11 @@ describe('configuration', () => {
8991
}
9092
},
9193
EXPERIMENTAL: {
92-
pubsub: false,
93-
dht: false
94+
pubsub: false
9495
},
9596
dht: {
9697
kBucketSize: 20,
98+
enabled: true,
9799
enabledDiscovery: true
98100
},
99101
relay: {
@@ -115,7 +117,8 @@ describe('configuration', () => {
115117
transport: [ WS ],
116118
peerDiscovery: [ Bootstrap ],
117119
peerRouting: [ peerRouter ],
118-
contentRouting: [ contentRouter ]
120+
contentRouting: [ contentRouter ],
121+
dht: DHT
119122
},
120123
config: {
121124
peerDiscovery: {
@@ -160,9 +163,6 @@ describe('configuration', () => {
160163
dht: DHT
161164
},
162165
config: {
163-
EXPERIMENTAL: {
164-
dht: true
165-
},
166166
dht: {
167167
selectors,
168168
validators
@@ -177,14 +177,14 @@ describe('configuration', () => {
177177
},
178178
config: {
179179
EXPERIMENTAL: {
180-
pubsub: false,
181-
dht: true
180+
pubsub: false
182181
},
183182
relay: {
184183
enabled: true
185184
},
186185
dht: {
187186
kBucketSize: 20,
187+
enabled: true,
188188
enabledDiscovery: true,
189189
selectors,
190190
validators

test/content-routing.node.js

+11-11
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,7 @@ describe('.contentRouting', () => {
3030
before(function (done) {
3131
this.timeout(5 * 1000)
3232
const tasks = _times(5, () => (cb) => {
33-
createNode('/ip4/0.0.0.0/tcp/0', {
34-
config: {
35-
EXPERIMENTAL: {
36-
dht: true
37-
}
38-
}
39-
}, (err, node) => {
33+
createNode('/ip4/0.0.0.0/tcp/0', (err, node) => {
4034
expect(err).to.not.exist()
4135
node.start((err) => cb(err, node))
4236
})
@@ -159,6 +153,9 @@ describe('.contentRouting', () => {
159153
contentRouting: [ delegate ]
160154
},
161155
config: {
156+
dht: {
157+
enabled: false
158+
},
162159
relay: {
163160
enabled: true,
164161
hop: {
@@ -320,9 +317,6 @@ describe('.contentRouting', () => {
320317
enabled: true,
321318
active: false
322319
}
323-
},
324-
EXPERIMENTAL: {
325-
dht: true
326320
}
327321
}
328322
})
@@ -387,7 +381,13 @@ describe('.contentRouting', () => {
387381
describe('no routers', () => {
388382
let nodeA
389383
before((done) => {
390-
createNode('/ip4/0.0.0.0/tcp/0', (err, node) => {
384+
createNode('/ip4/0.0.0.0/tcp/0', {
385+
config: {
386+
dht: {
387+
enabled: false
388+
}
389+
}
390+
}, (err, node) => {
391391
expect(err).to.not.exist()
392392
nodeA = node
393393
done()

test/create.spec.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ describe('libp2p creation', () => {
1313
createNode([], {
1414
config: {
1515
EXPERIMENTAL: {
16-
dht: true,
1716
pubsub: true
17+
},
18+
dht: {
19+
enabled: true
1820
}
1921
}
2022
}, (err, node) => {
@@ -69,13 +71,11 @@ describe('libp2p creation', () => {
6971
createNode([], {
7072
config: {
7173
EXPERIMENTAL: {
72-
dht: false,
7374
pubsub: false
7475
}
7576
}
7677
}, (err, node) => {
7778
expect(err).to.not.exist()
78-
expect(node._dht).to.not.exist()
7979
expect(node._floodSub).to.not.exist()
8080
done()
8181
})

test/dht.node.js

+3-8
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ describe('.dht', () => {
1717

1818
before(function (done) {
1919
createNode('/ip4/0.0.0.0/tcp/0', {
20-
datastore,
21-
config: {
22-
EXPERIMENTAL: {
23-
dht: true
24-
}
25-
}
20+
datastore
2621
}, (err, node) => {
2722
expect(err).to.not.exist()
2823
nodeA = node
@@ -124,8 +119,8 @@ describe('.dht', () => {
124119
before(function (done) {
125120
createNode('/ip4/0.0.0.0/tcp/0', {
126121
config: {
127-
EXPERIMENTAL: {
128-
dht: false
122+
dht: {
123+
enabled: false
129124
}
130125
}
131126
}, (err, node) => {

test/fsm.spec.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ describe('libp2p state machine (fsm)', () => {
1313
describe('starting and stopping', () => {
1414
let node
1515
beforeEach((done) => {
16-
createNode([], (err, _node) => {
16+
createNode([], {
17+
config: {
18+
dht: {
19+
enabled: false
20+
}
21+
}
22+
}, (err, _node) => {
1723
node = _node
1824
done(err)
1925
})

test/peer-routing.node.js

+13-13
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,7 @@ describe('.peerRouting', () => {
2424

2525
before('create the outer ring of connections', (done) => {
2626
const tasks = _times(5, () => (cb) => {
27-
createNode('/ip4/0.0.0.0/tcp/0', {
28-
config: {
29-
EXPERIMENTAL: {
30-
dht: true
31-
}
32-
}
33-
}, (err, node) => {
27+
createNode('/ip4/0.0.0.0/tcp/0', (err, node) => {
3428
expect(err).to.not.exist()
3529
node.start((err) => cb(err, node))
3630
})
@@ -112,6 +106,11 @@ describe('.peerRouting', () => {
112106
createNode('/ip4/0.0.0.0/tcp/0', {
113107
modules: {
114108
peerRouting: [ delegate ]
109+
},
110+
config: {
111+
dht: {
112+
enabled: false
113+
}
115114
}
116115
}, (err, node) => {
117116
expect(err).to.not.exist()
@@ -213,11 +212,6 @@ describe('.peerRouting', () => {
213212
createNode('/ip4/0.0.0.0/tcp/0', {
214213
modules: {
215214
peerRouting: [ delegate ]
216-
},
217-
config: {
218-
EXPERIMENTAL: {
219-
dht: true
220-
}
221215
}
222216
}, (err, node) => {
223217
expect(err).to.not.exist()
@@ -270,7 +264,13 @@ describe('.peerRouting', () => {
270264
describe('no routers', () => {
271265
let nodeA
272266
before((done) => {
273-
createNode('/ip4/0.0.0.0/tcp/0', (err, node) => {
267+
createNode('/ip4/0.0.0.0/tcp/0', {
268+
config: {
269+
dht: {
270+
enabled: false
271+
}
272+
}
273+
}, (err, node) => {
274274
expect(err).to.not.exist()
275275
nodeA = node
276276
done()

test/pnet.node.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const PeerId = require('peer-id')
99
const waterfall = require('async/waterfall')
1010
const WS = require('libp2p-websockets')
1111
const defaultsDeep = require('@nodeutils/defaults-deep')
12+
const DHT = require('libp2p-kad-dht')
1213

1314
const Libp2p = require('../src')
1415

@@ -23,7 +24,8 @@ describe('private network', () => {
2324
config = {
2425
peerInfo,
2526
modules: {
26-
transport: [ WS ]
27+
transport: [ WS ],
28+
dht: DHT
2729
}
2830
}
2931
cb()

test/stats.js

-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ describe('libp2p', () => {
1515
mdns: {
1616
enabled: false
1717
}
18-
},
19-
EXPERIMENTAL: {
20-
dht: true
2118
}
2219
}
2320
}, (err, node) => {

test/utils/bundle-browser.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ class Node extends libp2p {
8080
},
8181
dht: {
8282
kBucketSize: 20,
83-
enabledDiscovery: true
83+
enabledDiscovery: true,
84+
enabled: false
8485
},
8586
EXPERIMENTAL: {
86-
dht: false,
8787
pubsub: false
8888
}
8989
}

test/utils/bundle-nodejs.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ class Node extends libp2p {
7373
},
7474
dht: {
7575
kBucketSize: 20,
76-
enabledDiscovery: true
76+
enabledDiscovery: true,
77+
enabled: true
7778
},
7879
EXPERIMENTAL: {
79-
dht: false,
8080
pubsub: false
8181
}
8282
}

0 commit comments

Comments
 (0)