From ff829fc43e30ab7e0082a60e4adcc974121dc1e9 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:21:51 +1000 Subject: [PATCH 1/5] Ensure node address is returned for Object type responses --- src/lib/discovery.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/discovery.ts b/src/lib/discovery.ts index 327bb236ee..b7be798778 100644 --- a/src/lib/discovery.ts +++ b/src/lib/discovery.ts @@ -61,7 +61,7 @@ export async function getBootstrapNodes( if (typeof nodes === 'object') { nodes = Object.values(nodes); - getPseudoRandomSubset(nodes, wantedNumber); + return getPseudoRandomSubset(nodes, wantedNumber); } throw `Failed to retrieve bootstrap nodes: response format is not supported: ${JSON.stringify( From d18c6eca834e032d51208d002b0c23325e223a8b Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:22:23 +1000 Subject: [PATCH 2/5] Do not setup libp2p discovery module if we fail to retrieve node addrs --- src/lib/waku.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/waku.ts b/src/lib/waku.ts index 55833a6350..286cd3487e 100644 --- a/src/lib/waku.ts +++ b/src/lib/waku.ts @@ -202,14 +202,14 @@ export class Waku { } if (bootstrap !== undefined) { - // Note: this overrides any other peer discover - libp2pOpts.modules = Object.assign(libp2pOpts.modules, { - peerDiscovery: [Bootstrap], - }); - try { const list = await bootstrap(); + // Note: this overrides any other peer discover + libp2pOpts.modules = Object.assign(libp2pOpts.modules, { + peerDiscovery: [Bootstrap], + }); + libp2pOpts.config.peerDiscovery = { [Bootstrap.tag]: { list, From 48bed9d2a2d379855d60717e55f5806906e7c469 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:22:35 +1000 Subject: [PATCH 3/5] Test default discovery as part of the CI --- src/lib/waku.spec.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/lib/waku.spec.ts b/src/lib/waku.spec.ts index 528d7649df..d822c8bae3 100644 --- a/src/lib/waku.spec.ts +++ b/src/lib/waku.spec.ts @@ -31,6 +31,25 @@ describe('Waku Dial', function () { }); describe('Bootstrap', function () { + it('Passing a boolean', async function () { + // This test depends on fleets.status.im being online. + // This dependence must be removed once DNS discovery is implemented + this.timeout(20_000); + + waku = await Waku.create({ + staticNoiseKey: NOISE_KEY_1, + bootstrap: true, + }); + + const connectedPeerID: PeerId = await new Promise((resolve) => { + waku.libp2p.connectionManager.on('peer:connect', (connection) => { + resolve(connection.remotePeer); + }); + }); + + expect(connectedPeerID).to.not.be.undefined; + }); + it('Passing an array', async function () { this.timeout(10_000); From ff8f151fbd41112cc9274a6699408ac91f139a6c Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:24:56 +1000 Subject: [PATCH 4/5] Update Changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09b0f4fa4b..86ce413215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- `Error: Bootstrap requires a list of peer addresses` error when using `bootstrap: true` in `Waku.create`. + ## [0.13.0] - 2021-09-16 ### Changed From e3dce12ae83a8dd3fe45ae4568dbc9de02661abc Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 15:24:38 +1000 Subject: [PATCH 5/5] Release 0.12.2 --- CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86ce413215..c30cc86a41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Upgrade libp2p libraries: @chainsafe/libp2p-noise@4.1.1, libp2p@0.32.4, libp2p-gossipsub@0.11.1. - Connects to a limited number of bootstrap nodes, defaults to 1. +## [0.12.2] - 2021-09-21 + +### Fixed + +- **hot fix**: `Error: Bootstrap requires a list of peer addresses` error when using `bootstrap: true` in `Waku.create`. + ## [0.12.1] - 2021-09-16 ### Changed diff --git a/package-lock.json b/package-lock.json index 65bed8019e..936751a6ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "js-waku", - "version": "0.13.0", + "version": "0.12.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "js-waku", - "version": "0.13.0", + "version": "0.12.2", "license": "MIT OR Apache-2.0", "dependencies": { "@chainsafe/libp2p-noise": "^4.1.1", diff --git a/package.json b/package.json index 84211eb4f3..779f20cb72 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "js-waku", - "version": "0.13.0", + "version": "0.12.2", "description": "TypeScript implementation of the Waku v2 protocol", "main": "build/main/index.js", "typings": "build/main/index.d.ts",