From e2b1c7c6811da0bab69dec039dadc08c426a13c2 Mon Sep 17 00:00:00 2001 From: Varun Srinivasan Date: Wed, 17 Jul 2024 19:42:53 -0700 Subject: [PATCH] chore: upgrade libp2p to 0.44.0 (#2191) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Why is this change needed? Upgrades libp2p one minor version up ([Release Notes](https://github.com/libp2p/js-libp2p/releases/tag/v0.44.0) | [Migration Guide](https://github.com/libp2p/js-libp2p/blob/main/doc/migrations/v0.43-v0.44.md)) ### Breaking Change in Autodial + Connection Manager Behavior libp2p's ConnectionManager now has a default minConnection threshold of 50. If the number of active connections is < this number, it will attempt to redial peers that are in the store. Since we only disconnect peers and do not remove them from our store, the naive upgrade causes us to reconnect immediately to peers unexpectedly. We now set the threshold explicitly to 0 to prevent this. We should consider also removing peers from the peer store in a future upgrade. ## Merge Checklist _Choose all relevant options below by adding an `x` now or at any time before submitting for review_ - [x] PR title adheres to the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) standard - [ ] PR has a [changeset](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#35-adding-changesets) - [x] PR has been tagged with a change label(s) (i.e. documentation, feature, bugfix, or chore) - [ ] PR includes [documentation](https://github.com/farcasterxyz/hub-monorepo/blob/main/CONTRIBUTING.md#32-writing-docs) if necessary. --- ## PR-Codex overview This PR upgrades `libp2p` to version 0.44.0, updates `@chainsafe/libp2p-gossipsub` to 6.2.0, and introduces `@libp2p/interface-connection-gater` version 2.0.1. ### Detailed summary - Upgraded `libp2p` to 0.44.0 - Updated `@chainsafe/libp2p-gossipsub` to 6.2.0 - Added `@libp2p/interface-connection-gater` version 2.0.1 > The following files were skipped due to too many changes: `yarn.lock` > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` --- .changeset/stupid-pianos-doubt.md | 5 + apps/hubble/package.json | 9 +- .../src/network/p2p/connectionFilter.test.ts | 6 +- .../src/network/p2p/connectionFilter.ts | 10 +- apps/hubble/src/network/p2p/gossipNode.ts | 2 +- .../src/network/p2p/gossipNodeWorker.ts | 3 + yarn.lock | 127 ++++++++++++------ 7 files changed, 113 insertions(+), 49 deletions(-) create mode 100644 .changeset/stupid-pianos-doubt.md diff --git a/.changeset/stupid-pianos-doubt.md b/.changeset/stupid-pianos-doubt.md new file mode 100644 index 0000000000..87bc094e1a --- /dev/null +++ b/.changeset/stupid-pianos-doubt.md @@ -0,0 +1,5 @@ +--- +"@farcaster/hubble": patch +--- + +- upgrade libp2p to 0.44.0 diff --git a/apps/hubble/package.json b/apps/hubble/package.json index a75b6f1cad..c3a2cff95f 100644 --- a/apps/hubble/package.json +++ b/apps/hubble/package.json @@ -71,7 +71,7 @@ "@aws-sdk/client-s3": "^3.400.0", "@aws-sdk/client-sts": "^3.398.0", "@aws-sdk/lib-storage": "^3.504.0", - "@chainsafe/libp2p-gossipsub": "6.1.0", + "@chainsafe/libp2p-gossipsub": "6.2.0", "@chainsafe/libp2p-noise": "^11.0.0 ", "@datastructures-js/priority-queue": "^6.3.1", "@faker-js/faker": "~7.6.0", @@ -79,9 +79,10 @@ "@fastify/cors": "^8.4.0", "@figma/hot-shots": "^9.0.0-figma.1", "@grpc/grpc-js": "~1.8.22", - "@libp2p/interface-connection": "^3.0.2", + "@libp2p/interface-connection": "^4.0.0", + "@libp2p/interface-connection-gater": "^2.0.1", "@libp2p/interface-peer-id": "^2.0.1", - "@libp2p/mplex": "^7.0.0", + "@libp2p/mplex": "^7.1.6", "@libp2p/peer-id-factory": "^2.0.0", "@libp2p/tcp": "^6.0.0", "@libp2p/utils": "^3.0.2", @@ -94,7 +95,7 @@ "cli-progress": "^3.12.0", "commander": "~10.0.0", "fastify": "^4.22.0", - "libp2p": "0.43.4", + "libp2p": "0.44.0", "neverthrow": "~6.0.0", "node-cron": "~3.0.2", "patch-package": "^8.0.0", diff --git a/apps/hubble/src/network/p2p/connectionFilter.test.ts b/apps/hubble/src/network/p2p/connectionFilter.test.ts index 8a08d9a02a..5206d55052 100644 --- a/apps/hubble/src/network/p2p/connectionFilter.test.ts +++ b/apps/hubble/src/network/p2p/connectionFilter.test.ts @@ -28,7 +28,7 @@ describe("connectionFilter tests", () => { remotePeer: allowedPeerId, }); await expect(filter.denyDialPeer(allowedPeerId)).resolves.toBeTruthy(); - await expect(filter.denyDialMultiaddr(allowedPeerId, multiaddr(allowedMultiAddrStr))).resolves.toBeTruthy(); + await expect(filter.denyDialMultiaddr(multiaddr(allowedMultiAddrStr))).resolves.toBeTruthy(); // Incepient Inbound Connections are always allowed await expect(filter.denyInboundConnection(remoteConnection)).resolves.toBeFalsy(); await expect(filter.denyInboundEncryptedConnection(allowedPeerId, remoteConnection)).resolves.toBeTruthy(); @@ -46,7 +46,7 @@ describe("connectionFilter tests", () => { remotePeer: allowedPeerId, }); await expect(filter.denyDialPeer(allowedPeerId)).resolves.toBeFalsy(); - await expect(filter.denyDialMultiaddr(allowedPeerId, multiaddr(allowedMultiAddrStr))).resolves.toBeFalsy(); + await expect(filter.denyDialMultiaddr(multiaddr(allowedMultiAddrStr))).resolves.toBeFalsy(); // Incepient Inbound Connections are always allowed await expect(filter.denyInboundConnection(remoteConnection)).resolves.toBeFalsy(); await expect(filter.denyInboundEncryptedConnection(allowedPeerId, remoteConnection)).resolves.toBeFalsy(); @@ -92,7 +92,7 @@ describe("connectionFilter tests", () => { remotePeer: blockedPeerId, }); await expect(filter.denyDialPeer(blockedPeerId)).resolves.toBeTruthy(); - await expect(filter.denyDialMultiaddr(blockedPeerId, multiaddr(allowedMultiAddrStr))).resolves.toBeTruthy(); + await expect(filter.denyDialMultiaddr(multiaddr(allowedMultiAddrStr))).resolves.toBeTruthy(); // Incepient Inbound Connections are always allowed await expect(filter.denyInboundConnection(remoteConnection)).resolves.toBeFalsy(); await expect(filter.denyOutboundConnection(blockedPeerId, remoteConnection)).resolves.toBeTruthy(); diff --git a/apps/hubble/src/network/p2p/connectionFilter.ts b/apps/hubble/src/network/p2p/connectionFilter.ts index 15e4871f09..4db02cdf7c 100644 --- a/apps/hubble/src/network/p2p/connectionFilter.ts +++ b/apps/hubble/src/network/p2p/connectionFilter.ts @@ -1,7 +1,8 @@ -import { ConnectionGater, MultiaddrConnection } from "@libp2p/interface-connection"; +import { MultiaddrConnection } from "@libp2p/interface-connection"; import { PeerId } from "@libp2p/interface-peer-id"; import { Multiaddr } from "@multiformats/multiaddr"; import { logger } from "../../utils/logger.js"; +import { ConnectionGater } from "@libp2p/interface-connection-gater"; const log = logger.child({ component: "ConnectionFilter", @@ -42,7 +43,12 @@ export class ConnectionFilter implements ConnectionGater { return deny; }; - denyDialMultiaddr = async (peerId: PeerId, _multiaddr: Multiaddr): Promise => { + denyDialMultiaddr = async (_multiaddr: Multiaddr): Promise => { + const peerId = _multiaddr.getPeerId(); + if (!peerId) { + return true; + } + const deny = this.shouldDeny(peerId.toString()); if (deny) { log.info({ peerId, filter: "denyDialMultiaddr" }, "denied a connection"); diff --git a/apps/hubble/src/network/p2p/gossipNode.ts b/apps/hubble/src/network/p2p/gossipNode.ts index df3b9b43a0..b4947d7ec6 100644 --- a/apps/hubble/src/network/p2p/gossipNode.ts +++ b/apps/hubble/src/network/p2p/gossipNode.ts @@ -468,7 +468,7 @@ export class GossipNode extends TypedEmitter { } } - /** Connects to a peer GossipNode */ + /** Connects to a peer GossipNode through at least one multiaddr */ async connect(peerNode: GossipNode): Promise> { const multiaddrs = peerNode.multiaddrs(); if (!multiaddrs || multiaddr.length === 0) { diff --git a/apps/hubble/src/network/p2p/gossipNodeWorker.ts b/apps/hubble/src/network/p2p/gossipNodeWorker.ts index 482830b713..f911999684 100644 --- a/apps/hubble/src/network/p2p/gossipNodeWorker.ts +++ b/apps/hubble/src/network/p2p/gossipNodeWorker.ts @@ -203,6 +203,9 @@ export class LibP2PNode { // Only set optional fields if defined to avoid errors ...(peerId && { peerId }), connectionGater: this._connectionGater, + connectionManager: { + minConnections: 0, + }, addresses: { listen: [listenMultiAddrStr], announce: announceMultiAddrStrList, diff --git a/yarn.lock b/yarn.lock index b7c5f49f4a..48f5f692dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1021,10 +1021,10 @@ resolved "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz#62cb285669d91f88fd9fa285048dde3882f0993b" integrity sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ== -"@chainsafe/libp2p-gossipsub@6.1.0": - version "6.1.0" - resolved "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-6.1.0.tgz#70b34bb507d365ebc9dcd64071ccb0f4452a57f5" - integrity sha512-+zIPRGf2T+Qd+Hef/XbJx66FL+hbmth9sk6sr3PvQ2eolHGFwPwxSeM7fVdGWoZ7sMndUoGKUNPmO2GzbPsVQg== +"@chainsafe/libp2p-gossipsub@6.2.0": + version "6.2.0" + resolved "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-6.2.0.tgz#1266ae5a10cd57e297bd30edf3b365c907ce78e7" + integrity sha512-b3xEgjaatCmzJgNyE7qbTl/JBIymcNWbLUtW1nGA9a0n9Y0IjnNLyUmHH0y3xe22trVTAf6o7qpAdkbXILU9sg== dependencies: "@libp2p/crypto" "^1.0.3" "@libp2p/interface-connection" "^3.0.1" @@ -2317,10 +2317,10 @@ it-stream-types "^1.0.4" uint8arraylist "^2.1.2" -"@libp2p/interface-connection-gater@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@libp2p/interface-connection-gater/-/interface-connection-gater-1.0.3.tgz#cb8197ad6cd16035ae3b45e8caa93f81d7feb86e" - integrity sha512-KOSJe5SqziojGx5+iF9vcuwevrfU8DbhZjLhbIHOI8H3YhAPRH8s/IY1rohSXGEco8cd0r30FNU903JuKkcFAA== +"@libp2p/interface-connection-gater@^2.0.1": + version "2.0.1" + resolved "https://registry.npmjs.org/@libp2p/interface-connection-gater/-/interface-connection-gater-2.0.1.tgz#7100a31ffb1948741b20fbe37c4c0cc184f2de33" + integrity sha512-GaH0UCknN4epQq6JfKNO2iD77iukorU0t7KfD1dweVTjEQxq/GiX8vxrJvfoavkmpVVHT5Nlt651p/HksNG6HQ== dependencies: "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-peer-id" "^2.0.0" @@ -2329,7 +2329,7 @@ it-stream-types "^1.0.4" uint8arraylist "^2.1.2" -"@libp2p/interface-connection-manager@^1.0.0", "@libp2p/interface-connection-manager@^1.1.1", "@libp2p/interface-connection-manager@^1.3.0": +"@libp2p/interface-connection-manager@^1.0.0", "@libp2p/interface-connection-manager@^1.3.0": version "1.3.7" resolved "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.3.7.tgz#110a3ea0a8e63461e159df7182e6246625e92bd5" integrity sha512-GyRa7FXtwjbch4ucFa/jj6vcaQT2RyhUbH3q0tIOTzjntABTMzQrhn3BWOGU5deRp2K7cVOB/OzrdhHdGUxYQA== @@ -2339,6 +2339,17 @@ "@libp2p/interfaces" "^3.0.0" "@multiformats/multiaddr" "^11.0.0" +"@libp2p/interface-connection-manager@^2.1.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-2.1.1.tgz#b795a0a0eb7bd3ebdaa1a93c4e7148893d6ee8c2" + integrity sha512-cIhSRSQs2iHBI8G3vc7Y7cQY2CMYIQYul05qT+or+wZnHdW6CbR44j9s/pPgKLl5cKJPzdLvaEuIY1fTwqnNag== + dependencies: + "@libp2p/interface-connection" "^5.0.0" + "@libp2p/interface-peer-id" "^2.0.0" + "@libp2p/interfaces" "^3.0.0" + "@libp2p/peer-collections" "^3.0.1" + "@multiformats/multiaddr" "^12.0.0" + "@libp2p/interface-connection@^3.0.0", "@libp2p/interface-connection@^3.0.1", "@libp2p/interface-connection@^3.0.2": version "3.0.8" resolved "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.8.tgz#2c17bcdc53c6951d96a8430bb7dad1cb064cf184" @@ -2361,6 +2372,17 @@ it-stream-types "^1.0.4" uint8arraylist "^2.1.2" +"@libp2p/interface-connection@^5.0.0": + version "5.1.1" + resolved "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.1.tgz#da0572c76da43629d52b8bec6cd092143fae421d" + integrity sha512-ytknMbuuNW72LYMmTP7wFGP5ZTaUSGBCmV9f+uQ55XPcFHtKXLtKWVU/HE8IqPmwtyU8AO7veGoJ/qStMHNRVA== + dependencies: + "@libp2p/interface-peer-id" "^2.0.0" + "@libp2p/interfaces" "^3.0.0" + "@multiformats/multiaddr" "^12.0.0" + it-stream-types "^2.0.1" + uint8arraylist "^2.4.3" + "@libp2p/interface-content-routing@^2.0.0": version "2.0.1" resolved "https://registry.npmjs.org/@libp2p/interface-content-routing/-/interface-content-routing-2.0.1.tgz#e050dc42adc3e9b4f1666eafa889c88f892ba1c4" @@ -2629,18 +2651,18 @@ interface-datastore "^8.2.0" multiformats "^12.0.1" -"@libp2p/mplex@^7.0.0": - version "7.1.1" - resolved "https://registry.npmjs.org/@libp2p/mplex/-/mplex-7.1.1.tgz#557567fb6575c471eaa283175c2305d3ef6045fb" - integrity sha512-0owK1aWgXXtjiohXtjwLV7Ehjdj96eBtsapVt7AzlHA+W8uYnI+x058thq3MisyMDlHiiE3BTh6fEf+t2/0dUw== +"@libp2p/mplex@^7.1.6": + version "7.1.7" + resolved "https://registry.npmjs.org/@libp2p/mplex/-/mplex-7.1.7.tgz#ee14192f5e82aa3710ae4a102875278aea0bb127" + integrity sha512-8eJ6HUL3bM8ck0rb/NJ04+phBUVBMocxH/kuc2Nypn8RX9ezihV7srGGhG5N7muaMwJrRbYkFhIV4GH+8WTZUg== dependencies: - "@libp2p/interface-connection" "^3.0.1" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-stream-muxer" "^3.0.0" + "@libp2p/interfaces" "^3.2.0" "@libp2p/logger" "^2.0.0" abortable-iterator "^4.0.2" - any-signal "^3.0.0" + any-signal "^4.0.1" benchmark "^2.1.4" - err-code "^3.0.1" it-batched-bytes "^1.0.0" it-pushable "^3.1.0" it-stream-types "^1.0.4" @@ -2678,6 +2700,14 @@ "@libp2p/interface-peer-id" "^2.0.0" "@libp2p/peer-id" "^2.0.0" +"@libp2p/peer-collections@^3.0.1": + version "3.0.2" + resolved "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-3.0.2.tgz#a5441108fcf137e822be378e2e3abdd3f22c68d9" + integrity sha512-3vRVMWVRCF6dVs/1/CHbw4YSv83bcqjZuAt9ZQHW85vn6OfHNFQesOHWT1TbRBuL8TSb//IwJkOfTAVLd6Mymw== + dependencies: + "@libp2p/interface-peer-id" "^2.0.0" + "@libp2p/peer-id" "^2.0.0" + "@libp2p/peer-id-factory@^2.0.0": version "2.0.1" resolved "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-2.0.1.tgz#36d92e0ae55f039812224c7dcf42e16aa3bab039" @@ -4554,11 +4584,16 @@ any-promise@^1.0.0: resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== -any-signal@^3.0.0, any-signal@^3.0.1: +any-signal@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6" integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg== +any-signal@^4.0.1, any-signal@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz#928416c355c66899e6b2a91cad4488f0324bae03" + integrity sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA== + anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -7408,11 +7443,6 @@ it-batched-bytes@^1.0.0: p-defer "^4.0.0" uint8arraylist "^2.4.1" -it-drain@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/it-drain/-/it-drain-2.0.0.tgz#724c910720a109916bce0a991cf954e8d7b4fe21" - integrity sha512-oa/5iyBtRs9UW486vPpyDTC0ee3rqx5qlrPI7txIUJcqqtiO5yVozEB6LQrl5ysQYv+P3y/dlKEqwVqlCV0SEA== - it-drain@^3.0.1: version "3.0.2" resolved "https://registry.npmjs.org/it-drain/-/it-drain-3.0.2.tgz#4fb2ab30119072268c68a895fa5b9f2037942c44" @@ -7430,6 +7460,13 @@ it-filter@^3.0.0: dependencies: it-peekable "^3.0.0" +it-filter@^3.0.1: + version "3.1.1" + resolved "https://registry.npmjs.org/it-filter/-/it-filter-3.1.1.tgz#d9f55ecb26200baca41e5e330e5808b3afdfa7b7" + integrity sha512-TOXmVuaSkxlLp2hXKoMTra0WMZMKVFxE3vSsbIA+PbADNCBAHhjJ/lM31vBOUTddHMO34Ku++vU8T9PLlBxQtg== + dependencies: + it-peekable "^3.0.0" + it-first@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" @@ -7440,6 +7477,11 @@ it-first@^2.0.0: resolved "https://registry.npmjs.org/it-first/-/it-first-2.0.0.tgz#b0bba28414caa2b27b807ac15e897d4a9526940d" integrity sha512-fzZGzVf01exFyIZXNjkpSMFr1eW2+J1K0v018tYY26Dd4f/O3pWlBTdrOBfSQRZwtI8Pst6c7eKhYczWvFs6tA== +it-first@^3.0.1: + version "3.0.6" + resolved "https://registry.npmjs.org/it-first/-/it-first-3.0.6.tgz#f532f0f36fe9bf0c291e0162b9d3375d59fe8f05" + integrity sha512-ExIewyK9kXKNAplg2GMeWfgjUcfC1FnUXz/RPfAvIXby+w7U4b3//5Lic0NV03gXT8O/isj5Nmp6KiY0d45pIQ== + it-foreach@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/it-foreach/-/it-foreach-1.0.0.tgz#43b3f04661ef0809a4ce03150ef1f66a3f63ed23" @@ -7490,6 +7532,13 @@ it-map@^3.0.1: dependencies: it-peekable "^3.0.0" +it-map@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/it-map/-/it-map-3.1.1.tgz#637877e93be93a7aa7d7fc103b70a5939fc6f7a1" + integrity sha512-9bCSwKD1yN1wCOgJ9UOl+46NQtdatosPWzxxUk2NdTLwRPXLh+L7iwCC9QKsbgM60RQxT/nH8bKMqm3H/o8IHQ== + dependencies: + it-peekable "^3.0.0" + it-merge@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/it-merge/-/it-merge-2.0.0.tgz#adfcd33199995a503cb37ac73548f65d8a0742db" @@ -7561,7 +7610,7 @@ it-pipe@^2.0.3, it-pipe@^2.0.4: it-pushable "^3.1.0" it-stream-types "^1.0.3" -it-pipe@^3.0.0: +it-pipe@^3.0.0, it-pipe@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/it-pipe/-/it-pipe-3.0.1.tgz#b25720df82f4c558a8532602b5fbc37bbe4e7ba5" integrity sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA== @@ -8184,18 +8233,18 @@ leven@^3.1.0: resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -libp2p@0.43.4: - version "0.43.4" - resolved "https://registry.npmjs.org/libp2p/-/libp2p-0.43.4.tgz#9ec710f82b75cb619703d15d3319c09abe36bd22" - integrity sha512-bDoc9T5Fae03TiKXxeE4/jUWS1SINq5o388m5Fos+imUQlHfa6QF3F7X2os+F1YSiMn+eWB8IrwMihafr5rgAg== +libp2p@0.44.0: + version "0.44.0" + resolved "https://registry.npmjs.org/libp2p/-/libp2p-0.44.0.tgz#ccfe88eae9eec3b7b9255ca8948a0272a958d5b5" + integrity sha512-lDUjzt9uN+fADowW/BEIfQntcru2DwTeHhvoDKT0yxXypxT4SfhlPejmDNrbfCxBF4Rx4eYDeAqEUG7A83KMYw== dependencies: "@achingbrain/nat-port-mapper" "^1.0.3" "@libp2p/crypto" "^1.0.4" "@libp2p/interface-address-manager" "^2.0.0" - "@libp2p/interface-connection" "^3.0.2" + "@libp2p/interface-connection" "^4.0.0" "@libp2p/interface-connection-encrypter" "^3.0.1" - "@libp2p/interface-connection-gater" "^1.0.0" - "@libp2p/interface-connection-manager" "^1.1.1" + "@libp2p/interface-connection-gater" "^2.0.1" + "@libp2p/interface-connection-manager" "^2.1.0" "@libp2p/interface-content-routing" "^2.0.0" "@libp2p/interface-dht" "^2.0.0" "@libp2p/interface-keychain" "^2.0.4" @@ -8226,21 +8275,21 @@ libp2p@0.43.4: "@multiformats/mafmt" "^12.0.0" "@multiformats/multiaddr" "^12.0.0" abortable-iterator "^4.0.2" - any-signal "^3.0.0" + any-signal "^4.1.1" datastore-core "^9.0.0" interface-datastore "^8.0.0" - it-all "^2.0.0" - it-drain "^2.0.0" - it-filter "^2.0.0" - it-first "^2.0.0" + it-all "^3.0.1" + it-drain "^3.0.1" + it-filter "^3.0.1" + it-first "^3.0.1" it-handshake "^4.1.2" - it-length-prefixed "^8.0.2" - it-map "^2.0.0" - it-merge "^2.0.0" + it-length-prefixed "^9.0.0" + it-map "^3.0.2" + it-merge "^3.0.0" it-pair "^2.0.2" it-parallel "^3.0.0" it-pb-stream "^3.2.0" - it-pipe "^2.0.3" + it-pipe "^3.0.1" it-stream-types "^1.0.4" merge-options "^3.0.4" multiformats "^11.0.0"