From ee176d814a9f4a2633786f20a2966cd8a450d875 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 10:14:54 +0100 Subject: [PATCH 01/10] fix: use default ws filters instead of connecting to everything Fixes configuration regression, use the default websocket transport filters, e.g. only connect to wss and/or DNS addresses in the browser and anything goes in node. --- packages/ipfs-core/src/components/libp2p.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/ipfs-core/src/components/libp2p.js b/packages/ipfs-core/src/components/libp2p.js index 41285e232e..90dd8af089 100644 --- a/packages/ipfs-core/src/components/libp2p.js +++ b/packages/ipfs-core/src/components/libp2p.js @@ -124,9 +124,7 @@ function getLibp2pOptions ({ options, config, datastore, keychainConfig, peerId, peerRouters: [], peerDiscovery: [], transports: [ - new WebSockets({ - filter: WebSocketsFilters.all - }) + new WebSockets() ], streamMuxers: [ new Mplex({ From 818530aa605e5b153408c18b04b83fde4f295337 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 10:24:09 +0100 Subject: [PATCH 02/10] chore: linting --- packages/ipfs-core/src/components/libp2p.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/ipfs-core/src/components/libp2p.js b/packages/ipfs-core/src/components/libp2p.js index 90dd8af089..f828cde81a 100644 --- a/packages/ipfs-core/src/components/libp2p.js +++ b/packages/ipfs-core/src/components/libp2p.js @@ -14,7 +14,6 @@ import { Bootstrap } from '@libp2p/bootstrap' import { ipnsValidator } from 'ipns/validator' import { ipnsSelector } from 'ipns/selector' import { WebSockets } from '@libp2p/websockets' -import * as WebSocketsFilters from '@libp2p/websockets/filters' import { Mplex } from '@libp2p/mplex' import { NOISE } from '@chainsafe/libp2p-noise' From 4ca0dda66d27dd37a3dc967f820ad7d03f4f11cd Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 11:04:59 +0100 Subject: [PATCH 03/10] chore: fix ws filters --- packages/ipfs-core/src/components/libp2p.js | 13 ++++++++++--- packages/ipfs/test/utils/factory.js | 9 ++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/ipfs-core/src/components/libp2p.js b/packages/ipfs-core/src/components/libp2p.js index f828cde81a..fa2d4f0d7a 100644 --- a/packages/ipfs-core/src/components/libp2p.js +++ b/packages/ipfs-core/src/components/libp2p.js @@ -122,9 +122,7 @@ function getLibp2pOptions ({ options, config, datastore, keychainConfig, peerId, contentRouters: [], peerRouters: [], peerDiscovery: [], - transports: [ - new WebSockets() - ], + transports: [], streamMuxers: [ new Mplex({ // temporary fix until we can limit streams on a per-protocol basis @@ -218,5 +216,14 @@ function getLibp2pOptions ({ options, config, datastore, keychainConfig, peerId, }) } + if (libp2pFinalConfig.transports == null) { + libp2pFinalConfig.transports = [] + } + + // add WebSocket transport if not overridden by user config + if (libp2pFinalConfig.transports.find(t => t[Symbol.toStringTag] === '@libp2p/websockets') == null) { + libp2pFinalConfig.transports.push(new WebSockets()) + } + return libp2pFinalConfig } diff --git a/packages/ipfs/test/utils/factory.js b/packages/ipfs/test/utils/factory.js index f2a7385533..9d3ec48789 100644 --- a/packages/ipfs/test/utils/factory.js +++ b/packages/ipfs/test/utils/factory.js @@ -7,6 +7,8 @@ import * as ipfsModule from 'ipfs-core' import goIpfs from 'go-ipfs' import path, { dirname } from 'path' import { fileURLToPath } from 'url' +import { WebSockets } from '@libp2p/websockets' +import { all as WebSocketsFiltersAll } from '@libp2p/websockets/filters' const merge = mergeOpts.bind({ ignoreUndefined: true }) let __dirname = '' @@ -25,7 +27,12 @@ const commonOptions = { libp2p: { dialer: { dialTimeout: 60e3 // increase timeout because travis is slow - } + }, + transports: [ + new WebSockets({ + filter: WebSocketsFiltersAll + }) + ] } }, endpoint: process.env.IPFSD_SERVER From ba25f32ed31859e80f71c670d1f10b65e29e58ba Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 11:40:55 +0100 Subject: [PATCH 04/10] chore: add missing dep --- packages/ipfs/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ipfs/package.json b/packages/ipfs/package.json index 6ef0f3b144..8c6c9f31c9 100644 --- a/packages/ipfs/package.json +++ b/packages/ipfs/package.json @@ -75,6 +75,7 @@ }, "devDependencies": { "@libp2p/webrtc-star-signalling-server": "^1.0.3", + "@libp2p/websockets": "^1.0.8", "@types/semver": "^7.3.4", "@types/update-notifier": "^5.0.0", "aegir": "^37.0.11", From 24fea047d821ea38535c0e039e98041aeae5b8d6 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 14:24:35 +0100 Subject: [PATCH 05/10] chore: increase timeout for ff --- packages/ipfs-core/test/block-storage.spec.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ipfs-core/test/block-storage.spec.js b/packages/ipfs-core/test/block-storage.spec.js index 5549da294a..ed30381488 100644 --- a/packages/ipfs-core/test/block-storage.spec.js +++ b/packages/ipfs-core/test/block-storage.spec.js @@ -20,7 +20,9 @@ class MockBitswap extends MemoryBlockstore { } } -describe('block-storage', () => { +describe('block-storage', function () { + this.timeout(540000) + describe('interface-blockstore (bitswap online)', () => { interfaceBlockstoreTests({ setup: () => { From 849a1fe121ecd3d0b0f0591062a563909bbbcde9 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 15:41:29 +0100 Subject: [PATCH 06/10] chore: update deps --- packages/ipfs-core-config/package.json | 2 +- packages/ipfs-core-types/package.json | 2 +- packages/ipfs-core/package.json | 4 ++-- packages/ipfs-core/test/block-storage.spec.js | 4 +--- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/ipfs-core-config/package.json b/packages/ipfs-core-config/package.json index d459b98f4d..45f44fe076 100644 --- a/packages/ipfs-core-config/package.json +++ b/packages/ipfs-core-config/package.json @@ -92,7 +92,7 @@ "datastore-level": "^8.0.0", "err-code": "^3.0.1", "hashlru": "^2.3.0", - "interface-datastore": "^6.0.2", + "interface-datastore": "^6.1.2", "ipfs-repo": "^14.0.1", "ipfs-utils": "^9.0.6", "is-ipfs": "^6.0.1", diff --git a/packages/ipfs-core-types/package.json b/packages/ipfs-core-types/package.json index f8d37b1c5a..1b8ced8ab6 100644 --- a/packages/ipfs-core-types/package.json +++ b/packages/ipfs-core-types/package.json @@ -47,7 +47,7 @@ "license": "(Apache-2.0 OR MIT)", "dependencies": { "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.0.2", + "interface-datastore": "^6.1.2", "ipfs-unixfs": "^6.0.9", "@multiformats/multiaddr": "^10.0.0", "multiformats": "^9.5.1" diff --git a/packages/ipfs-core/package.json b/packages/ipfs-core/package.json index fee90ada2b..69d76181b5 100644 --- a/packages/ipfs-core/package.json +++ b/packages/ipfs-core/package.json @@ -98,7 +98,7 @@ "hamt-sharding": "^2.0.1", "hashlru": "^2.3.0", "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.0.2", + "interface-datastore": "^6.1.2", "ipfs-bitswap": "^11.0.0", "ipfs-core-config": "^0.4.0", "ipfs-core-types": "^0.11.0", @@ -143,7 +143,7 @@ "blockstore-datastore-adapter": "^2.0.2", "delay": "^5.0.0", "go-ipfs": "^0.12.1", - "interface-blockstore-tests": "^2.0.2", + "interface-blockstore-tests": "^2.0.4", "interface-ipfs-core": "^0.155.0", "ipfsd-ctl": "^11.0.0", "iso-url": "^1.0.0", diff --git a/packages/ipfs-core/test/block-storage.spec.js b/packages/ipfs-core/test/block-storage.spec.js index ed30381488..5549da294a 100644 --- a/packages/ipfs-core/test/block-storage.spec.js +++ b/packages/ipfs-core/test/block-storage.spec.js @@ -20,9 +20,7 @@ class MockBitswap extends MemoryBlockstore { } } -describe('block-storage', function () { - this.timeout(540000) - +describe('block-storage', () => { describe('interface-blockstore (bitswap online)', () => { interfaceBlockstoreTests({ setup: () => { From 66495d30cd95ff1ab3dcc2820c1e1b813b89f385 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 15:52:26 +0100 Subject: [PATCH 07/10] chore: deps --- packages/ipfs-core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ipfs-core/package.json b/packages/ipfs-core/package.json index 69d76181b5..31addaaafa 100644 --- a/packages/ipfs-core/package.json +++ b/packages/ipfs-core/package.json @@ -143,7 +143,7 @@ "blockstore-datastore-adapter": "^2.0.2", "delay": "^5.0.0", "go-ipfs": "^0.12.1", - "interface-blockstore-tests": "^2.0.4", + "interface-blockstore-tests": "^2.0.3", "interface-ipfs-core": "^0.155.0", "ipfsd-ctl": "^11.0.0", "iso-url": "^1.0.0", From 3f8b85dde96ec0ca523d99f8ddc37d5d56a0f87e Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 15:55:39 +0100 Subject: [PATCH 08/10] chore: deps --- packages/ipfs-core-config/package.json | 2 +- packages/ipfs-core-types/package.json | 2 +- packages/ipfs-core/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ipfs-core-config/package.json b/packages/ipfs-core-config/package.json index 45f44fe076..0289bd1ce3 100644 --- a/packages/ipfs-core-config/package.json +++ b/packages/ipfs-core-config/package.json @@ -92,7 +92,7 @@ "datastore-level": "^8.0.0", "err-code": "^3.0.1", "hashlru": "^2.3.0", - "interface-datastore": "^6.1.2", + "interface-datastore": "^6.1.1", "ipfs-repo": "^14.0.1", "ipfs-utils": "^9.0.6", "is-ipfs": "^6.0.1", diff --git a/packages/ipfs-core-types/package.json b/packages/ipfs-core-types/package.json index 1b8ced8ab6..f504851a58 100644 --- a/packages/ipfs-core-types/package.json +++ b/packages/ipfs-core-types/package.json @@ -47,7 +47,7 @@ "license": "(Apache-2.0 OR MIT)", "dependencies": { "@ipld/dag-pb": "^2.1.3", - "interface-datastore": "^6.1.2", + "interface-datastore": "^6.1.1", "ipfs-unixfs": "^6.0.9", "@multiformats/multiaddr": "^10.0.0", "multiformats": "^9.5.1" diff --git a/packages/ipfs-core/package.json b/packages/ipfs-core/package.json index 31addaaafa..f07b102c34 100644 --- a/packages/ipfs-core/package.json +++ b/packages/ipfs-core/package.json @@ -98,7 +98,7 @@ "hamt-sharding": "^2.0.1", "hashlru": "^2.3.0", "interface-blockstore": "^2.0.2", - "interface-datastore": "^6.1.2", + "interface-datastore": "^6.1.1", "ipfs-bitswap": "^11.0.0", "ipfs-core-config": "^0.4.0", "ipfs-core-types": "^0.11.0", From 894e75442d4ac77112e838ffd326376089c023ca Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 15:55:56 +0100 Subject: [PATCH 09/10] chore: deps --- packages/ipfs-core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ipfs-core/package.json b/packages/ipfs-core/package.json index f07b102c34..8b70956237 100644 --- a/packages/ipfs-core/package.json +++ b/packages/ipfs-core/package.json @@ -97,7 +97,7 @@ "err-code": "^3.0.1", "hamt-sharding": "^2.0.1", "hashlru": "^2.3.0", - "interface-blockstore": "^2.0.2", + "interface-blockstore": "^2.0.3", "interface-datastore": "^6.1.1", "ipfs-bitswap": "^11.0.0", "ipfs-core-config": "^0.4.0", From 6858c8103c98c0bdaaf104462074bab8732378bc Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 22 Jun 2022 17:17:28 +0100 Subject: [PATCH 10/10] chore: update deps --- packages/ipfs-core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ipfs-core/package.json b/packages/ipfs-core/package.json index 8b70956237..7bf06361ac 100644 --- a/packages/ipfs-core/package.json +++ b/packages/ipfs-core/package.json @@ -143,7 +143,7 @@ "blockstore-datastore-adapter": "^2.0.2", "delay": "^5.0.0", "go-ipfs": "^0.12.1", - "interface-blockstore-tests": "^2.0.3", + "interface-blockstore-tests": "^2.0.4", "interface-ipfs-core": "^0.155.0", "ipfsd-ctl": "^11.0.0", "iso-url": "^1.0.0",