From e9e3dbad0d2fe2e42799cefca2aca0e8cea3d3b7 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 6 Dec 2023 10:20:48 -0800 Subject: [PATCH] Updated to libp2p 1.0.9, added @libp2p/identify --- package-lock.json | 1167 +++++++++++++++++++++++++++++++------ package.json | 5 +- src/adapters/ipfs/ipfs.js | 4 +- 3 files changed, 986 insertions(+), 190 deletions(-) diff --git a/package-lock.json b/package-lock.json index 00ec44a..e2b6f9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@chainsafe/libp2p-noise": "13.0.1", "@chainsafe/libp2p-yamux": "5.0.0", "@libp2p/bootstrap": "9.0.8", + "@libp2p/identify": "1.0.5", "@libp2p/tcp": "8.0.9", "axios": "0.27.2", "bcryptjs": "2.4.3", @@ -20,7 +21,7 @@ "datastore-fs": "9.1.5", "glob": "7.1.6", "helia": "2.1.0", - "helia-coord": "1.2.21", + "helia-coord": "1.2.22", "jsonrpc-lite": "2.2.0", "jsonwebtoken": "8.5.1", "jwt-bch-lib": "1.3.0", @@ -35,7 +36,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", - "libp2p": "0.46.21", + "libp2p": "1.0.9", "line-reader": "0.4.0", "minimal-slp-wallet": "5.11.1", "mongoose": "5.13.14", @@ -1120,6 +1121,67 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/identify": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-1.0.5.tgz", + "integrity": "sha512-xzF9YxmYkLs+ZvoIYHZ5Psyf9kZ+v2kWM9ldMODLBx06ZVs78uZniYausHSiR03SF3pcQXCj3zfis3OylXswcw==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^1.0.2", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-record": "^7.0.0", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", + "it-length-prefixed": "^9.0.3", + "it-protobuf-stream": "^1.0.2", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6", + "wherearewe": "^2.0.1" + } + }, + "node_modules/@libp2p/identify/node_modules/@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/identify/node_modules/@libp2p/interface-internal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-1.0.2.tgz", + "integrity": "sha512-dXcGapwhrFp78NJbRBYi07qxp8Gfb2Z611zkWURApIx3PQc4r8kzftqCOCaZ9lnWYzutf0Eo4mPGuU0Ysm3MPA==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@multiformats/multiaddr": "^12.1.10", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/identify/node_modules/@libp2p/peer-collections": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.1.0.tgz", + "integrity": "sha512-JWXbzAmXxiB4ioK5J4SX41XxOaXReqcn5p705mWhrLt63Mwwu6CCkCOH1/CstydeKetU8yMz+vDOnPpXLk2W9w==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, + "node_modules/@libp2p/identify/node_modules/@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + }, "node_modules/@libp2p/interface": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz", @@ -1257,26 +1319,33 @@ } }, "node_modules/@libp2p/multistream-select": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.10.tgz", - "integrity": "sha512-f0BDv96L2yF9SZ0YXdg41JcGWwPBGZNAoeFGkna38SMFtj00NQWBOwAjqVdhrYVF58ymB0Ci6OfMzYv1XHVj/A==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-5.0.1.tgz", + "integrity": "sha512-c5e9PdUQmz1ZFGuE5nuGmb996GtffMmOjm4lzW4kt7VrcLo1uAFwjThuqot+KjRtWC1NlEIc47G6vPRRL/mc0w==", "dependencies": { - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "abortable-iterator": "^5.0.1", - "it-first": "^3.0.1", - "it-handshake": "^4.1.3", - "it-length-prefixed": "^9.0.1", - "it-merge": "^3.0.0", + "@libp2p/interface": "^1.0.1", + "it-length-prefixed": "^9.0.3", + "it-length-prefixed-stream": "^1.1.1", "it-pipe": "^3.0.1", - "it-pushable": "^3.2.0", - "it-reader": "^6.0.1", "it-stream-types": "^2.0.1", - "uint8-varint": "^2.0.0", + "p-defer": "^4.0.0", + "uint8-varint": "^2.0.2", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/multistream-select/node_modules/@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, "node_modules/@libp2p/peer-collections": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.11.tgz", @@ -1297,56 +1366,179 @@ } }, "node_modules/@libp2p/peer-id-factory": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.11.tgz", - "integrity": "sha512-BmXKgeyAGezPyoY/uni95t439+AE0eqEKMxjfkfy2Hv/LcJ9gdR3zjRl7Hzci1O12b+yeVFtYVU8DZtBCcsZjQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-4.0.0.tgz", + "integrity": "sha512-dFbQOpxqEw4CqV+ZalMc5UABqts+hskMoaqytjmR55pXgL4KDamOyg7hBT/HrHRp2sStf8E2vwQ5wnjv1W9uFQ==", "dependencies": { - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-id": "^3.0.6", - "multiformats": "^12.0.1", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1", + "multiformats": "^12.1.3", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/peer-record": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.12.tgz", - "integrity": "sha512-8IItsbcPeIaFC5QMZD+gGl/dDbwLjE9nrmL7ZAOvMwcfZx+2AVZPN/6nubahO/wQrchpvBYiK3TxaWGnOH8sIA==", + "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/crypto": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.1.tgz", + "integrity": "sha512-CvqzsWvAYaga/Du3gDRChN9d8PUnOoCQg3VlugKf6tfw5+1pd7sMDhyMLajXqFsWqQUY6FojgB1TS4izpODMpw==", "dependencies": { - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/utils": "^4.0.7", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/interface": "^1.0.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "multiformats": "^12.1.3", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-record": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-7.0.0.tgz", + "integrity": "sha512-Kr5XgyRzqJjK4rBu+QA2e2zGT59rp2OKD8kviwpE4NwKWyDs85JaRduorso9KujJG/F0uZI8tOhPjadO1Lwatw==", + "dependencies": { + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/utils": "^5.0.2", + "@multiformats/multiaddr": "^12.1.10", "protons-runtime": "^5.0.0", "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/peer-store": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.12.tgz", - "integrity": "sha512-rYpUUhvDI7GTfMFWNJ+HQoEOAVOxfp3t0bgJWLvUFKNtULojEk0znKHa6da7hX2KE06wM7ZEMfF23jZCmrwk1g==", + "node_modules/@libp2p/peer-record/node_modules/@libp2p/crypto": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.1.tgz", + "integrity": "sha512-CvqzsWvAYaga/Du3gDRChN9d8PUnOoCQg3VlugKf6tfw5+1pd7sMDhyMLajXqFsWqQUY6FojgB1TS4izpODMpw==", "dependencies": { - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "@libp2p/peer-collections": "^4.0.8", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/peer-id-factory": "^3.0.8", - "@libp2p/peer-record": "^6.0.9", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/interface": "^1.0.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "multiformats": "^12.1.3", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-record/node_modules/@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/peer-record/node_modules/@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-record/node_modules/@libp2p/utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-5.0.2.tgz", + "integrity": "sha512-PcDAH8pwtXq0pfoO9arHtg3CsqF+reheUd0OaQ9/Fn0YjjNpqcpseQyByBiwhiuQsauWo5RU+CKqRaRdvXKemA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.2", + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", + "get-iterator": "^2.0.1", + "is-loopback-addr": "^2.0.1", + "it-pushable": "^3.2.2", + "it-stream-types": "^2.0.1", + "p-queue": "^7.4.1", + "private-ip": "^3.0.1", + "race-signal": "^1.0.1", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/peer-store": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-10.0.1.tgz", + "integrity": "sha512-IrCbUwUFpQs1seUdFERwpHRBTpf1Xy9E+Q174nVCmJR6JfmZiQaHulXhIvfGXLfJpXqMDZqz/vmblm9UrlDBfg==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-id-factory": "^4.0.0", + "@libp2p/peer-record": "^7.0.0", + "@multiformats/multiaddr": "^12.1.10", "interface-datastore": "^8.2.0", "it-all": "^3.0.2", "mortice": "^3.0.1", - "multiformats": "^12.0.1", + "multiformats": "^12.1.3", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/peer-collections": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.1.0.tgz", + "integrity": "sha512-JWXbzAmXxiB4ioK5J4SX41XxOaXReqcn5p705mWhrLt63Mwwu6CCkCOH1/CstydeKetU8yMz+vDOnPpXLk2W9w==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + }, "node_modules/@libp2p/pubsub": { "version": "8.0.14", "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-8.0.14.tgz", @@ -7127,9 +7319,9 @@ } }, "node_modules/helia-coord": { - "version": "1.2.21", - "resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.2.21.tgz", - "integrity": "sha512-7ihW/zx0nhDMMvconG6y9DLxIYacSOVmNxFtJAJJw9RaJJ7SKCWnTRL+9AWGYNAYL2/3Pzd2ZN7+6QErgOSMzg==", + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.2.22.tgz", + "integrity": "sha512-Hz0G2UbVTSE1Mujc9TMpfyA5S7+PqsvXyeYkLnqq+SwrweJNqZwmHKTKwBR7FyGraliX16ZAJ6sAIT8TG9UyDA==", "dependencies": { "@chris.troutner/retry-queue": "1.0.8", "@multiformats/multiaddr": "12.1.8", @@ -7420,6 +7612,151 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/helia/node_modules/@libp2p/multistream-select": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.10.tgz", + "integrity": "sha512-f0BDv96L2yF9SZ0YXdg41JcGWwPBGZNAoeFGkna38SMFtj00NQWBOwAjqVdhrYVF58ymB0Ci6OfMzYv1XHVj/A==", + "dependencies": { + "@libp2p/interface": "^0.1.6", + "@libp2p/logger": "^3.1.0", + "abortable-iterator": "^5.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-merge": "^3.0.0", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/helia/node_modules/@libp2p/peer-id-factory": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.11.tgz", + "integrity": "sha512-BmXKgeyAGezPyoY/uni95t439+AE0eqEKMxjfkfy2Hv/LcJ9gdR3zjRl7Hzci1O12b+yeVFtYVU8DZtBCcsZjQ==", + "dependencies": { + "@libp2p/crypto": "^2.0.8", + "@libp2p/interface": "^0.1.6", + "@libp2p/peer-id": "^3.0.6", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/helia/node_modules/@libp2p/peer-record": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.12.tgz", + "integrity": "sha512-8IItsbcPeIaFC5QMZD+gGl/dDbwLjE9nrmL7ZAOvMwcfZx+2AVZPN/6nubahO/wQrchpvBYiK3TxaWGnOH8sIA==", + "dependencies": { + "@libp2p/crypto": "^2.0.8", + "@libp2p/interface": "^0.1.6", + "@libp2p/peer-id": "^3.0.6", + "@libp2p/utils": "^4.0.7", + "@multiformats/multiaddr": "^12.1.5", + "protons-runtime": "^5.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/helia/node_modules/@libp2p/peer-store": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.12.tgz", + "integrity": "sha512-rYpUUhvDI7GTfMFWNJ+HQoEOAVOxfp3t0bgJWLvUFKNtULojEk0znKHa6da7hX2KE06wM7ZEMfF23jZCmrwk1g==", + "dependencies": { + "@libp2p/interface": "^0.1.6", + "@libp2p/logger": "^3.1.0", + "@libp2p/peer-collections": "^4.0.8", + "@libp2p/peer-id": "^3.0.6", + "@libp2p/peer-id-factory": "^3.0.8", + "@libp2p/peer-record": "^6.0.9", + "@multiformats/multiaddr": "^12.1.5", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "mortice": "^3.0.1", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/helia/node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, + "node_modules/helia/node_modules/libp2p": { + "version": "0.46.21", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.21.tgz", + "integrity": "sha512-p/3vCpw+ciizhlBofpzuez+4Fs8EeVFaVQZUQPwnQwycuOFcWLBhcqkOtv4KlqImFKOk+9TuyW1Xofjmr/wPnA==", + "dependencies": { + "@achingbrain/nat-port-mapper": "^1.0.9", + "@libp2p/crypto": "^2.0.8", + "@libp2p/interface": "^0.1.6", + "@libp2p/interface-internal": "^0.1.9", + "@libp2p/keychain": "^3.0.8", + "@libp2p/logger": "^3.1.0", + "@libp2p/multistream-select": "^4.0.6", + "@libp2p/peer-collections": "^4.0.8", + "@libp2p/peer-id": "^3.0.6", + "@libp2p/peer-id-factory": "^3.0.8", + "@libp2p/peer-record": "^6.0.9", + "@libp2p/peer-store": "^9.0.9", + "@libp2p/utils": "^4.0.7", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.0", + "any-signal": "^4.1.1", + "datastore-core": "^9.0.1", + "delay": "^6.0.0", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "it-drain": "^3.0.2", + "it-filter": "^3.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-map": "^3.0.3", + "it-merge": "^3.0.0", + "it-pair": "^2.0.6", + "it-parallel": "^3.0.0", + "it-pipe": "^3.0.1", + "it-protobuf-stream": "^1.0.0", + "it-stream-types": "^2.0.1", + "merge-options": "^3.0.4", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4", + "p-retry": "^6.0.0", + "private-ip": "^3.0.0", + "protons-runtime": "^5.0.0", + "rate-limiter-flexible": "^3.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6", + "wherearewe": "^2.0.1", + "xsalsa20": "^1.1.0" + } + }, + "node_modules/helia/node_modules/p-retry": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", + "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -9428,26 +9765,23 @@ } }, "node_modules/libp2p": { - "version": "0.46.21", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.21.tgz", - "integrity": "sha512-p/3vCpw+ciizhlBofpzuez+4Fs8EeVFaVQZUQPwnQwycuOFcWLBhcqkOtv4KlqImFKOk+9TuyW1Xofjmr/wPnA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-1.0.9.tgz", + "integrity": "sha512-giPpVfxWOdcoGH2S9bRcUMZi1LsAngYNngNpS5QP6op+hUbybBHRtwZEub0v7OudoK4uNTsAoUdlvDEM0dM19w==", "dependencies": { - "@achingbrain/nat-port-mapper": "^1.0.9", - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/interface-internal": "^0.1.9", - "@libp2p/keychain": "^3.0.8", - "@libp2p/logger": "^3.1.0", - "@libp2p/multistream-select": "^4.0.6", - "@libp2p/peer-collections": "^4.0.8", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/peer-id-factory": "^3.0.8", - "@libp2p/peer-record": "^6.0.9", - "@libp2p/peer-store": "^9.0.9", - "@libp2p/utils": "^4.0.7", - "@multiformats/mafmt": "^12.1.2", - "@multiformats/multiaddr": "^12.1.5", - "@multiformats/multiaddr-matcher": "^1.0.0", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^1.0.2", + "@libp2p/logger": "^4.0.1", + "@libp2p/multistream-select": "^5.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-id-factory": "^4.0.0", + "@libp2p/peer-store": "^10.0.1", + "@libp2p/utils": "^5.0.2", + "@multiformats/mafmt": "^12.1.6", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", "any-signal": "^4.1.1", "datastore-core": "^9.0.1", "delay": "^6.0.0", @@ -9455,49 +9789,107 @@ "it-all": "^3.0.2", "it-drain": "^3.0.2", "it-filter": "^3.0.1", - "it-first": "^3.0.1", - "it-handshake": "^4.1.3", - "it-length-prefixed": "^9.0.1", - "it-map": "^3.0.3", + "it-first": "^3.0.3", + "it-map": "^3.0.4", "it-merge": "^3.0.0", - "it-pair": "^2.0.6", - "it-parallel": "^3.0.0", "it-pipe": "^3.0.1", - "it-protobuf-stream": "^1.0.0", "it-stream-types": "^2.0.1", "merge-options": "^3.0.4", - "multiformats": "^12.0.1", + "multiformats": "^12.1.3", "p-defer": "^4.0.0", - "p-queue": "^7.3.4", - "p-retry": "^6.0.0", - "private-ip": "^3.0.0", - "protons-runtime": "^5.0.0", + "p-queue": "^7.4.1", + "private-ip": "^3.0.1", "rate-limiter-flexible": "^3.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.6", - "wherearewe": "^2.0.1", - "xsalsa20": "^1.1.0" + "uint8arrays": "^4.0.6" } }, - "node_modules/libp2p/node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" - }, - "node_modules/libp2p/node_modules/p-retry": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", - "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", + "node_modules/libp2p/node_modules/@libp2p/crypto": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.1.tgz", + "integrity": "sha512-CvqzsWvAYaga/Du3gDRChN9d8PUnOoCQg3VlugKf6tfw5+1pd7sMDhyMLajXqFsWqQUY6FojgB1TS4izpODMpw==", "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@libp2p/interface": "^1.0.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "multiformats": "^12.1.3", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/libp2p/node_modules/@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/libp2p/node_modules/@libp2p/interface-internal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-1.0.2.tgz", + "integrity": "sha512-dXcGapwhrFp78NJbRBYi07qxp8Gfb2Z611zkWURApIx3PQc4r8kzftqCOCaZ9lnWYzutf0Eo4mPGuU0Ysm3MPA==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@multiformats/multiaddr": "^12.1.10", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/libp2p/node_modules/@libp2p/logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.1.tgz", + "integrity": "sha512-d7kJmbkphNvEI3Da4so+4nxUJhwW/T/d8Pd+aQIuT27RYNeVoRfkFkjYwPIP+NvJXtU4LDju7VDPLbPbU2zFGA==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.1.3" + } + }, + "node_modules/libp2p/node_modules/@libp2p/peer-collections": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.1.0.tgz", + "integrity": "sha512-JWXbzAmXxiB4ioK5J4SX41XxOaXReqcn5p705mWhrLt63Mwwu6CCkCOH1/CstydeKetU8yMz+vDOnPpXLk2W9w==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, + "node_modules/libp2p/node_modules/@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/libp2p/node_modules/@libp2p/utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-5.0.2.tgz", + "integrity": "sha512-PcDAH8pwtXq0pfoO9arHtg3CsqF+reheUd0OaQ9/Fn0YjjNpqcpseQyByBiwhiuQsauWo5RU+CKqRaRdvXKemA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.2", + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", + "get-iterator": "^2.0.1", + "is-loopback-addr": "^2.0.1", + "it-pushable": "^3.2.2", + "it-stream-types": "^2.0.1", + "p-queue": "^7.4.1", + "private-ip": "^3.0.1", + "race-signal": "^1.0.1", + "uint8arraylist": "^2.4.3" } }, "node_modules/line-reader": { @@ -18536,6 +18928,69 @@ "uint8arrays": "^4.0.6" } }, + "@libp2p/identify": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-1.0.5.tgz", + "integrity": "sha512-xzF9YxmYkLs+ZvoIYHZ5Psyf9kZ+v2kWM9ldMODLBx06ZVs78uZniYausHSiR03SF3pcQXCj3zfis3OylXswcw==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^1.0.2", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-record": "^7.0.0", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", + "it-length-prefixed": "^9.0.3", + "it-protobuf-stream": "^1.0.2", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6", + "wherearewe": "^2.0.1" + }, + "dependencies": { + "@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "requires": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "@libp2p/interface-internal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-1.0.2.tgz", + "integrity": "sha512-dXcGapwhrFp78NJbRBYi07qxp8Gfb2Z611zkWURApIx3PQc4r8kzftqCOCaZ9lnWYzutf0Eo4mPGuU0Ysm3MPA==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@multiformats/multiaddr": "^12.1.10", + "uint8arraylist": "^2.4.3" + } + }, + "@libp2p/peer-collections": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.1.0.tgz", + "integrity": "sha512-JWXbzAmXxiB4ioK5J4SX41XxOaXReqcn5p705mWhrLt63Mwwu6CCkCOH1/CstydeKetU8yMz+vDOnPpXLk2W9w==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, + "@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "requires": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + } + } + }, "@libp2p/interface": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz", @@ -18675,24 +19130,33 @@ } }, "@libp2p/multistream-select": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.10.tgz", - "integrity": "sha512-f0BDv96L2yF9SZ0YXdg41JcGWwPBGZNAoeFGkna38SMFtj00NQWBOwAjqVdhrYVF58ymB0Ci6OfMzYv1XHVj/A==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-5.0.1.tgz", + "integrity": "sha512-c5e9PdUQmz1ZFGuE5nuGmb996GtffMmOjm4lzW4kt7VrcLo1uAFwjThuqot+KjRtWC1NlEIc47G6vPRRL/mc0w==", "requires": { - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "abortable-iterator": "^5.0.1", - "it-first": "^3.0.1", - "it-handshake": "^4.1.3", - "it-length-prefixed": "^9.0.1", - "it-merge": "^3.0.0", + "@libp2p/interface": "^1.0.1", + "it-length-prefixed": "^9.0.3", + "it-length-prefixed-stream": "^1.1.1", "it-pipe": "^3.0.1", - "it-pushable": "^3.2.0", - "it-reader": "^6.0.1", "it-stream-types": "^2.0.1", - "uint8-varint": "^2.0.0", + "p-defer": "^4.0.0", + "uint8-varint": "^2.0.2", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "requires": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + } } }, "@libp2p/peer-collections": { @@ -18715,54 +19179,183 @@ } }, "@libp2p/peer-id-factory": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.11.tgz", - "integrity": "sha512-BmXKgeyAGezPyoY/uni95t439+AE0eqEKMxjfkfy2Hv/LcJ9gdR3zjRl7Hzci1O12b+yeVFtYVU8DZtBCcsZjQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-4.0.0.tgz", + "integrity": "sha512-dFbQOpxqEw4CqV+ZalMc5UABqts+hskMoaqytjmR55pXgL4KDamOyg7hBT/HrHRp2sStf8E2vwQ5wnjv1W9uFQ==", "requires": { - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-id": "^3.0.6", - "multiformats": "^12.0.1", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1", + "multiformats": "^12.1.3", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/crypto": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.1.tgz", + "integrity": "sha512-CvqzsWvAYaga/Du3gDRChN9d8PUnOoCQg3VlugKf6tfw5+1pd7sMDhyMLajXqFsWqQUY6FojgB1TS4izpODMpw==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "multiformats": "^12.1.3", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "requires": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "requires": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + } } }, "@libp2p/peer-record": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.12.tgz", - "integrity": "sha512-8IItsbcPeIaFC5QMZD+gGl/dDbwLjE9nrmL7ZAOvMwcfZx+2AVZPN/6nubahO/wQrchpvBYiK3TxaWGnOH8sIA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-7.0.0.tgz", + "integrity": "sha512-Kr5XgyRzqJjK4rBu+QA2e2zGT59rp2OKD8kviwpE4NwKWyDs85JaRduorso9KujJG/F0uZI8tOhPjadO1Lwatw==", "requires": { - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/utils": "^4.0.7", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/utils": "^5.0.2", + "@multiformats/multiaddr": "^12.1.10", "protons-runtime": "^5.0.0", "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/crypto": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.1.tgz", + "integrity": "sha512-CvqzsWvAYaga/Du3gDRChN9d8PUnOoCQg3VlugKf6tfw5+1pd7sMDhyMLajXqFsWqQUY6FojgB1TS4izpODMpw==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "multiformats": "^12.1.3", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "requires": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "requires": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-5.0.2.tgz", + "integrity": "sha512-PcDAH8pwtXq0pfoO9arHtg3CsqF+reheUd0OaQ9/Fn0YjjNpqcpseQyByBiwhiuQsauWo5RU+CKqRaRdvXKemA==", + "requires": { + "@chainsafe/is-ip": "^2.0.2", + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", + "get-iterator": "^2.0.1", + "is-loopback-addr": "^2.0.1", + "it-pushable": "^3.2.2", + "it-stream-types": "^2.0.1", + "p-queue": "^7.4.1", + "private-ip": "^3.0.1", + "race-signal": "^1.0.1", + "uint8arraylist": "^2.4.3" + } + } } }, "@libp2p/peer-store": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.12.tgz", - "integrity": "sha512-rYpUUhvDI7GTfMFWNJ+HQoEOAVOxfp3t0bgJWLvUFKNtULojEk0znKHa6da7hX2KE06wM7ZEMfF23jZCmrwk1g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-10.0.1.tgz", + "integrity": "sha512-IrCbUwUFpQs1seUdFERwpHRBTpf1Xy9E+Q174nVCmJR6JfmZiQaHulXhIvfGXLfJpXqMDZqz/vmblm9UrlDBfg==", "requires": { - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "@libp2p/peer-collections": "^4.0.8", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/peer-id-factory": "^3.0.8", - "@libp2p/peer-record": "^6.0.9", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-id-factory": "^4.0.0", + "@libp2p/peer-record": "^7.0.0", + "@multiformats/multiaddr": "^12.1.10", "interface-datastore": "^8.2.0", "it-all": "^3.0.2", "mortice": "^3.0.1", - "multiformats": "^12.0.1", + "multiformats": "^12.1.3", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "requires": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "@libp2p/peer-collections": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.1.0.tgz", + "integrity": "sha512-JWXbzAmXxiB4ioK5J4SX41XxOaXReqcn5p705mWhrLt63Mwwu6CCkCOH1/CstydeKetU8yMz+vDOnPpXLk2W9w==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, + "@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "requires": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + } } }, "@libp2p/pubsub": { @@ -23374,12 +23967,153 @@ "p-queue": "^7.3.4", "progress-events": "^1.0.0", "uint8arrays": "^4.0.3" + }, + "dependencies": { + "@libp2p/multistream-select": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.10.tgz", + "integrity": "sha512-f0BDv96L2yF9SZ0YXdg41JcGWwPBGZNAoeFGkna38SMFtj00NQWBOwAjqVdhrYVF58ymB0Ci6OfMzYv1XHVj/A==", + "requires": { + "@libp2p/interface": "^0.1.6", + "@libp2p/logger": "^3.1.0", + "abortable-iterator": "^5.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-merge": "^3.0.0", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/peer-id-factory": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.11.tgz", + "integrity": "sha512-BmXKgeyAGezPyoY/uni95t439+AE0eqEKMxjfkfy2Hv/LcJ9gdR3zjRl7Hzci1O12b+yeVFtYVU8DZtBCcsZjQ==", + "requires": { + "@libp2p/crypto": "^2.0.8", + "@libp2p/interface": "^0.1.6", + "@libp2p/peer-id": "^3.0.6", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/peer-record": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.12.tgz", + "integrity": "sha512-8IItsbcPeIaFC5QMZD+gGl/dDbwLjE9nrmL7ZAOvMwcfZx+2AVZPN/6nubahO/wQrchpvBYiK3TxaWGnOH8sIA==", + "requires": { + "@libp2p/crypto": "^2.0.8", + "@libp2p/interface": "^0.1.6", + "@libp2p/peer-id": "^3.0.6", + "@libp2p/utils": "^4.0.7", + "@multiformats/multiaddr": "^12.1.5", + "protons-runtime": "^5.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/peer-store": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.12.tgz", + "integrity": "sha512-rYpUUhvDI7GTfMFWNJ+HQoEOAVOxfp3t0bgJWLvUFKNtULojEk0znKHa6da7hX2KE06wM7ZEMfF23jZCmrwk1g==", + "requires": { + "@libp2p/interface": "^0.1.6", + "@libp2p/logger": "^3.1.0", + "@libp2p/peer-collections": "^4.0.8", + "@libp2p/peer-id": "^3.0.6", + "@libp2p/peer-id-factory": "^3.0.8", + "@libp2p/peer-record": "^6.0.9", + "@multiformats/multiaddr": "^12.1.5", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "mortice": "^3.0.1", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, + "libp2p": { + "version": "0.46.21", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.21.tgz", + "integrity": "sha512-p/3vCpw+ciizhlBofpzuez+4Fs8EeVFaVQZUQPwnQwycuOFcWLBhcqkOtv4KlqImFKOk+9TuyW1Xofjmr/wPnA==", + "requires": { + "@achingbrain/nat-port-mapper": "^1.0.9", + "@libp2p/crypto": "^2.0.8", + "@libp2p/interface": "^0.1.6", + "@libp2p/interface-internal": "^0.1.9", + "@libp2p/keychain": "^3.0.8", + "@libp2p/logger": "^3.1.0", + "@libp2p/multistream-select": "^4.0.6", + "@libp2p/peer-collections": "^4.0.8", + "@libp2p/peer-id": "^3.0.6", + "@libp2p/peer-id-factory": "^3.0.8", + "@libp2p/peer-record": "^6.0.9", + "@libp2p/peer-store": "^9.0.9", + "@libp2p/utils": "^4.0.7", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.0", + "any-signal": "^4.1.1", + "datastore-core": "^9.0.1", + "delay": "^6.0.0", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "it-drain": "^3.0.2", + "it-filter": "^3.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-map": "^3.0.3", + "it-merge": "^3.0.0", + "it-pair": "^2.0.6", + "it-parallel": "^3.0.0", + "it-pipe": "^3.0.1", + "it-protobuf-stream": "^1.0.0", + "it-stream-types": "^2.0.1", + "merge-options": "^3.0.4", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4", + "p-retry": "^6.0.0", + "private-ip": "^3.0.0", + "protons-runtime": "^5.0.0", + "rate-limiter-flexible": "^3.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6", + "wherearewe": "^2.0.1", + "xsalsa20": "^1.1.0" + } + }, + "p-retry": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", + "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", + "requires": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + } + } } }, "helia-coord": { - "version": "1.2.21", - "resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.2.21.tgz", - "integrity": "sha512-7ihW/zx0nhDMMvconG6y9DLxIYacSOVmNxFtJAJJw9RaJJ7SKCWnTRL+9AWGYNAYL2/3Pzd2ZN7+6QErgOSMzg==", + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.2.22.tgz", + "integrity": "sha512-Hz0G2UbVTSE1Mujc9TMpfyA5S7+PqsvXyeYkLnqq+SwrweJNqZwmHKTKwBR7FyGraliX16ZAJ6sAIT8TG9UyDA==", "requires": { "@chris.troutner/retry-queue": "1.0.8", "@multiformats/multiaddr": "12.1.8", @@ -25132,26 +25866,23 @@ } }, "libp2p": { - "version": "0.46.21", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.21.tgz", - "integrity": "sha512-p/3vCpw+ciizhlBofpzuez+4Fs8EeVFaVQZUQPwnQwycuOFcWLBhcqkOtv4KlqImFKOk+9TuyW1Xofjmr/wPnA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-1.0.9.tgz", + "integrity": "sha512-giPpVfxWOdcoGH2S9bRcUMZi1LsAngYNngNpS5QP6op+hUbybBHRtwZEub0v7OudoK4uNTsAoUdlvDEM0dM19w==", "requires": { - "@achingbrain/nat-port-mapper": "^1.0.9", - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/interface-internal": "^0.1.9", - "@libp2p/keychain": "^3.0.8", - "@libp2p/logger": "^3.1.0", - "@libp2p/multistream-select": "^4.0.6", - "@libp2p/peer-collections": "^4.0.8", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/peer-id-factory": "^3.0.8", - "@libp2p/peer-record": "^6.0.9", - "@libp2p/peer-store": "^9.0.9", - "@libp2p/utils": "^4.0.7", - "@multiformats/mafmt": "^12.1.2", - "@multiformats/multiaddr": "^12.1.5", - "@multiformats/multiaddr-matcher": "^1.0.0", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^1.0.2", + "@libp2p/logger": "^4.0.1", + "@libp2p/multistream-select": "^5.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-id-factory": "^4.0.0", + "@libp2p/peer-store": "^10.0.1", + "@libp2p/utils": "^5.0.2", + "@multiformats/mafmt": "^12.1.6", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", "any-signal": "^4.1.1", "datastore-core": "^9.0.1", "delay": "^6.0.0", @@ -25159,43 +25890,107 @@ "it-all": "^3.0.2", "it-drain": "^3.0.2", "it-filter": "^3.0.1", - "it-first": "^3.0.1", - "it-handshake": "^4.1.3", - "it-length-prefixed": "^9.0.1", - "it-map": "^3.0.3", + "it-first": "^3.0.3", + "it-map": "^3.0.4", "it-merge": "^3.0.0", - "it-pair": "^2.0.6", - "it-parallel": "^3.0.0", "it-pipe": "^3.0.1", - "it-protobuf-stream": "^1.0.0", "it-stream-types": "^2.0.1", "merge-options": "^3.0.4", - "multiformats": "^12.0.1", + "multiformats": "^12.1.3", "p-defer": "^4.0.0", - "p-queue": "^7.3.4", - "p-retry": "^6.0.0", - "private-ip": "^3.0.0", - "protons-runtime": "^5.0.0", + "p-queue": "^7.4.1", + "private-ip": "^3.0.1", "rate-limiter-flexible": "^3.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.6", - "wherearewe": "^2.0.1", - "xsalsa20": "^1.1.0" + "uint8arrays": "^4.0.6" }, "dependencies": { - "@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" - }, - "p-retry": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", - "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", + "@libp2p/crypto": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.1.tgz", + "integrity": "sha512-CvqzsWvAYaga/Du3gDRChN9d8PUnOoCQg3VlugKf6tfw5+1pd7sMDhyMLajXqFsWqQUY6FojgB1TS4izpODMpw==", "requires": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" + "@libp2p/interface": "^1.0.1", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "multiformats": "^12.1.3", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "requires": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "@libp2p/interface-internal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-1.0.2.tgz", + "integrity": "sha512-dXcGapwhrFp78NJbRBYi07qxp8Gfb2Z611zkWURApIx3PQc4r8kzftqCOCaZ9lnWYzutf0Eo4mPGuU0Ysm3MPA==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.1.0", + "@multiformats/multiaddr": "^12.1.10", + "uint8arraylist": "^2.4.3" + } + }, + "@libp2p/logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.1.tgz", + "integrity": "sha512-d7kJmbkphNvEI3Da4so+4nxUJhwW/T/d8Pd+aQIuT27RYNeVoRfkFkjYwPIP+NvJXtU4LDju7VDPLbPbU2zFGA==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.1.3" + } + }, + "@libp2p/peer-collections": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.1.0.tgz", + "integrity": "sha512-JWXbzAmXxiB4ioK5J4SX41XxOaXReqcn5p705mWhrLt63Mwwu6CCkCOH1/CstydeKetU8yMz+vDOnPpXLk2W9w==", + "requires": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, + "@libp2p/peer-id": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", + "requires": { + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", + "uint8arrays": "^4.0.6" + } + }, + "@libp2p/utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-5.0.2.tgz", + "integrity": "sha512-PcDAH8pwtXq0pfoO9arHtg3CsqF+reheUd0OaQ9/Fn0YjjNpqcpseQyByBiwhiuQsauWo5RU+CKqRaRdvXKemA==", + "requires": { + "@chainsafe/is-ip": "^2.0.2", + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", + "get-iterator": "^2.0.1", + "is-loopback-addr": "^2.0.1", + "it-pushable": "^3.2.2", + "it-stream-types": "^2.0.1", + "p-queue": "^7.4.1", + "private-ip": "^3.0.1", + "race-signal": "^1.0.1", + "uint8arraylist": "^2.4.3" } } } diff --git a/package.json b/package.json index d17bf3b..66f42f0 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@chainsafe/libp2p-noise": "13.0.1", "@chainsafe/libp2p-yamux": "5.0.0", "@libp2p/bootstrap": "9.0.8", + "@libp2p/identify": "1.0.5", "@libp2p/tcp": "8.0.9", "axios": "0.27.2", "bcryptjs": "2.4.3", @@ -35,7 +36,7 @@ "datastore-fs": "9.1.5", "glob": "7.1.6", "helia": "2.1.0", - "helia-coord": "1.2.21", + "helia-coord": "1.2.22", "jsonrpc-lite": "2.2.0", "jsonwebtoken": "8.5.1", "jwt-bch-lib": "1.3.0", @@ -50,7 +51,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", - "libp2p": "0.46.21", + "libp2p": "1.0.9", "line-reader": "0.4.0", "minimal-slp-wallet": "5.11.1", "mongoose": "5.13.14", diff --git a/src/adapters/ipfs/ipfs.js b/src/adapters/ipfs/ipfs.js index b36c8b8..f2a16ba 100644 --- a/src/adapters/ipfs/ipfs.js +++ b/src/adapters/ipfs/ipfs.js @@ -18,7 +18,7 @@ import { tcp } from '@libp2p/tcp' import { noise } from '@chainsafe/libp2p-noise' import { yamux } from '@chainsafe/libp2p-yamux' // import { bootstrap } from '@libp2p/bootstrap' -import { identifyService } from 'libp2p/identify' +import { identify } from '@libp2p/identify' import { circuitRelayServer, circuitRelayTransport } from 'libp2p/circuit-relay' import { gossipsub } from '@chainsafe/libp2p-gossipsub' import { webSockets } from '@libp2p/websockets' @@ -110,7 +110,7 @@ class IpfsAdapter { // Configure services const services = { - identify: identifyService(), + identify: identify(), pubsub: gossipsub({ allowPublishToZeroPeers: true }) } if (this.config.isCircuitRelay) {