From f86111bf9c25f29991b05ef03f82242d288a8356 Mon Sep 17 00:00:00 2001 From: danisharora099 Date: Thu, 7 Mar 2024 19:32:32 +0530 Subject: [PATCH] feat: use yamux instead of mplex --- package-lock.json | 50 ++++++++++++++++++++++++++++++-- packages/sdk/package.json | 5 ++-- packages/sdk/src/utils/libp2p.ts | 4 +-- 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index a9a13deb3f..73b860c9a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1524,6 +1524,20 @@ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" }, + "node_modules/@chainsafe/libp2p-yamux": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-yamux/-/libp2p-yamux-6.0.2.tgz", + "integrity": "sha512-S5OkLHqYhEVMQQ4BTgnRANEIbGTQhaC23glCgBwGdeoTRtMpIozwDiPfljFLCm0RYWdCRJw9oFztO95KUHjptA==", + "dependencies": { + "@libp2p/interface": "^1.1.3", + "@libp2p/utils": "^5.2.5", + "get-iterator": "^2.0.1", + "it-foreach": "^2.0.6", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.3", + "uint8arraylist": "^2.4.8" + } + }, "node_modules/@chainsafe/netmask": { "version": "2.0.0", "license": "MIT", @@ -13744,6 +13758,14 @@ "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.4.tgz", "integrity": "sha512-FtQl84iTNxN5EItP/JgL28V2rzNMkCzTUlNoj41eVdfix2z1DBuLnBqZ0hzYhGGa1rMpbQf0M7CQSA2adlrLJg==" }, + "node_modules/it-foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.0.6.tgz", + "integrity": "sha512-OVosBHJsdXpAyeFlCbe3IGZia+65UykyAznakNsKXK+b99dbhuu/mOnXxTadDEo1GWhKx+WA8RNanKkMf07zQw==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, "node_modules/it-length-prefixed": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.4.tgz", @@ -28536,7 +28558,8 @@ "license": "MIT OR Apache-2.0", "dependencies": { "@chainsafe/libp2p-noise": "^14.1.0", - "@libp2p/bootstrap": "^10.0.11", + "@chainsafe/libp2p-yamux": "^6.0.2", + "@libp2p/bootstrap": "^10", "@libp2p/identify": "^1.0.11", "@libp2p/mplex": "^10.0.12", "@libp2p/ping": "^1.0.11", @@ -29659,6 +29682,20 @@ } } }, + "@chainsafe/libp2p-yamux": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-yamux/-/libp2p-yamux-6.0.2.tgz", + "integrity": "sha512-S5OkLHqYhEVMQQ4BTgnRANEIbGTQhaC23glCgBwGdeoTRtMpIozwDiPfljFLCm0RYWdCRJw9oFztO95KUHjptA==", + "requires": { + "@libp2p/interface": "^1.1.3", + "@libp2p/utils": "^5.2.5", + "get-iterator": "^2.0.1", + "it-foreach": "^2.0.6", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.3", + "uint8arraylist": "^2.4.8" + } + }, "@chainsafe/netmask": { "version": "2.0.0", "requires": { @@ -33000,7 +33037,8 @@ "requires": { "@chainsafe/libp2p-gossipsub": "^12.0.0", "@chainsafe/libp2p-noise": "^14.1.0", - "@libp2p/bootstrap": "^10.0.11", + "@chainsafe/libp2p-yamux": "^6.0.2", + "@libp2p/bootstrap": "^10", "@libp2p/identify": "^1.0.11", "@libp2p/mplex": "^10.0.12", "@libp2p/ping": "^1.0.11", @@ -38571,6 +38609,14 @@ "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.4.tgz", "integrity": "sha512-FtQl84iTNxN5EItP/JgL28V2rzNMkCzTUlNoj41eVdfix2z1DBuLnBqZ0hzYhGGa1rMpbQf0M7CQSA2adlrLJg==" }, + "it-foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.0.6.tgz", + "integrity": "sha512-OVosBHJsdXpAyeFlCbe3IGZia+65UykyAznakNsKXK+b99dbhuu/mOnXxTadDEo1GWhKx+WA8RNanKkMf07zQw==", + "requires": { + "it-peekable": "^3.0.0" + } + }, "it-length-prefixed": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.4.tgz", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 9181543b16..80bfdc6993 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -62,6 +62,8 @@ }, "dependencies": { "@chainsafe/libp2p-noise": "^14.1.0", + "@chainsafe/libp2p-yamux": "^6.0.2", + "@libp2p/bootstrap": "^10", "@libp2p/identify": "^1.0.11", "@libp2p/mplex": "^10.0.12", "@libp2p/ping": "^1.0.11", @@ -73,8 +75,7 @@ "@waku/peer-exchange": "^0.0.20", "@waku/relay": "0.0.10", "@waku/utils": "0.0.15", - "libp2p": "^1.1.2", - "@libp2p/bootstrap": "^10.0.11" + "libp2p": "^1.1.2" }, "devDependencies": { "@chainsafe/libp2p-gossipsub": "^12.0.0", diff --git a/packages/sdk/src/utils/libp2p.ts b/packages/sdk/src/utils/libp2p.ts index 4695b6a033..c6df411666 100644 --- a/packages/sdk/src/utils/libp2p.ts +++ b/packages/sdk/src/utils/libp2p.ts @@ -1,8 +1,8 @@ import type { GossipSub } from "@chainsafe/libp2p-gossipsub"; import { noise } from "@chainsafe/libp2p-noise"; +import { yamux } from "@chainsafe/libp2p-yamux"; import { bootstrap } from "@libp2p/bootstrap"; import { identify } from "@libp2p/identify"; -import { mplex } from "@libp2p/mplex"; import { ping } from "@libp2p/ping"; import { webSockets } from "@libp2p/websockets"; import { all as filterAll } from "@libp2p/websockets/filters"; @@ -63,7 +63,7 @@ export async function defaultLibp2p( minConnections: 1 }, transports: [webSockets({ filter: filterAll })], - streamMuxers: [mplex()], + streamMuxers: [yamux()], connectionEncryption: [noise()], ...options, services: {