From 7e252224bc64e75952fb4cee24ff08a8e9319457 Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Fri, 22 Jun 2018 10:54:08 +0100 Subject: [PATCH 1/4] feat: expose libp2p connection manager configuration options License: MIT Signed-off-by: Alan Shaw --- src/core/components/libp2p.js | 7 ++++++- src/core/config.js | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/core/components/libp2p.js b/src/core/components/libp2p.js index 0ed6847d2f..29ae0a9494 100644 --- a/src/core/components/libp2p.js +++ b/src/core/components/libp2p.js @@ -48,7 +48,12 @@ module.exports = function libp2p (self) { dht: get(self._options, 'EXPERIMENTAL.dht', false), pubsub: get(self._options, 'EXPERIMENTAL.pubsub', false) } - } + }, + connectionManager: get( + self._options, + 'EXPERIMENTAL.connectionManager', + get(config, 'EXPERIMENTAL.connectionManager') + ) } const libp2pOptions = defaultsDeep( diff --git a/src/core/config.js b/src/core/config.js index 9051dd9816..5a31ffb9ee 100644 --- a/src/core/config.js +++ b/src/core/config.js @@ -23,7 +23,8 @@ const schema = Joi.object().keys({ EXPERIMENTAL: Joi.object().keys({ pubsub: Joi.boolean(), sharding: Joi.boolean(), - dht: Joi.boolean() + dht: Joi.boolean(), + connectionManager: Joi.object().allow(null) }).allow(null), config: Joi.object().keys({ Addresses: Joi.object().keys({ From 0eaaf4f88a2dd18f6458c5d0e2c3ea3ac1df61d5 Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Tue, 3 Jul 2018 15:51:15 +0100 Subject: [PATCH 2/4] fix: move connection manager config out of experimental License: MIT Signed-off-by: Alan Shaw --- README.md | 2 ++ src/core/components/libp2p.js | 7 ++----- src/core/config.js | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index cf4d930802..3c6141043a 100644 --- a/README.md +++ b/README.md @@ -247,6 +247,8 @@ Creates and returns an instance of an IPFS node. Use the `options` argument to s - `enabled` (boolean): whether this module is enabled or disabled - `[custom config]` (any): other keys are specific to the module +- `connectionManager` (object): Configure the libp2p connection manager, see the [documentation for available options](https://github.com/libp2p/js-libp2p-connection-manager#create-a-connectionmanager). + #### Events IPFS instances are Node.js [EventEmitters](https://nodejs.org/dist/latest-v8.x/docs/api/events.html#events_class_eventemitter). You can listen for events by calling `node.on('event', handler)`: diff --git a/src/core/components/libp2p.js b/src/core/components/libp2p.js index 29ae0a9494..1e0fa79030 100644 --- a/src/core/components/libp2p.js +++ b/src/core/components/libp2p.js @@ -49,11 +49,8 @@ module.exports = function libp2p (self) { pubsub: get(self._options, 'EXPERIMENTAL.pubsub', false) } }, - connectionManager: get( - self._options, - 'EXPERIMENTAL.connectionManager', - get(config, 'EXPERIMENTAL.connectionManager') - ) + connectionManager: get(self._options, 'connectionManager', + get(config, 'connectionManager', false)) } const libp2pOptions = defaultsDeep( diff --git a/src/core/config.js b/src/core/config.js index 5a31ffb9ee..fe79374ee1 100644 --- a/src/core/config.js +++ b/src/core/config.js @@ -23,9 +23,9 @@ const schema = Joi.object().keys({ EXPERIMENTAL: Joi.object().keys({ pubsub: Joi.boolean(), sharding: Joi.boolean(), - dht: Joi.boolean(), - connectionManager: Joi.object().allow(null) + dht: Joi.boolean() }).allow(null), + connectionManager: Joi.object().allow(null), config: Joi.object().keys({ Addresses: Joi.object().keys({ Swarm: Joi.array().items(Joi.multiaddr().options({ convert: false })), From a1cb4e07df65908c8cedbe1446edaf6ccb29f13b Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Tue, 3 Jul 2018 15:52:35 +0100 Subject: [PATCH 3/4] fix: default for connecitonManager if not specified License: MIT Signed-off-by: Alan Shaw --- src/core/components/libp2p.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/components/libp2p.js b/src/core/components/libp2p.js index 1e0fa79030..1ad0d1ecac 100644 --- a/src/core/components/libp2p.js +++ b/src/core/components/libp2p.js @@ -50,7 +50,7 @@ module.exports = function libp2p (self) { } }, connectionManager: get(self._options, 'connectionManager', - get(config, 'connectionManager', false)) + get(config, 'connectionManager', {})) } const libp2pOptions = defaultsDeep( From 0419ca79f2211689952c96600f0152decff8317a Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Wed, 4 Jul 2018 16:26:03 +0100 Subject: [PATCH 4/4] chore: update interface-ipfs-core dependency License: MIT Signed-off-by: Alan Shaw --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 864dc977a7..3c32ca819a 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "expose-loader": "~0.7.5", "form-data": "^2.3.2", "hat": "0.0.3", - "interface-ipfs-core": "~0.70.3", + "interface-ipfs-core": "~0.71.0", "ipfsd-ctl": "~0.37.3", "mocha": "^5.1.1", "ncp": "^2.0.0",