From 6365d5128bd67de8d4f49d4d6c059256b12ba79e Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 2 Feb 2023 12:14:05 -0500 Subject: [PATCH 01/14] feat: added method to get the map of connections --- packages/interface-connection-manager/src/index.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index 50954988b..7a009faf7 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -49,6 +49,17 @@ export interface ConnectionManager extends EventEmitter */ getConnections: (peerId?: PeerId) => Connection[] + /** + * Return a map of all connections with their associated PeerIds + * + * @example + * + * ```js + * const connectionsMap = libp2p.connectionManager.getConnectionsMap() + * ``` + */ + getConnectionsMap: () => Map + /** * Open a connection to a remote peer * From 6087fb366a254ab0870bada0e3547eec3c5fc22e Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 6 Feb 2023 14:14:13 -0500 Subject: [PATCH 02/14] updated linting + mocks for interface --- .../interface-connection-manager/src/index.ts | 2 +- .../interface-mocks/src/connection-manager.ts | 45 ++++++++++--------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index 7a009faf7..6e648eca0 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -58,7 +58,7 @@ export interface ConnectionManager extends EventEmitter * const connectionsMap = libp2p.connectionManager.getConnectionsMap() * ``` */ - getConnectionsMap: () => Map + getConnectionsMap: () => Map /** * Open a connection to a remote peer diff --git a/packages/interface-mocks/src/connection-manager.ts b/packages/interface-mocks/src/connection-manager.ts index 53d955ce6..a70264735 100644 --- a/packages/interface-mocks/src/connection-manager.ts +++ b/packages/interface-mocks/src/connection-manager.ts @@ -41,7 +41,7 @@ class MockNetwork { export const mockNetwork = new MockNetwork() class MockConnectionManager extends EventEmitter implements ConnectionManager, Startable { - private connections: Connection[] = [] + private readonly connections: Map = new Map() private readonly components: MockNetworkComponents private started = false @@ -51,6 +51,10 @@ class MockConnectionManager extends EventEmitter implem this.components = components } + getConnectionsMap (): Map { + return this.connections + } + isStarted (): boolean { return this.started } @@ -60,8 +64,10 @@ class MockConnectionManager extends EventEmitter implem } async stop (): Promise { - for (const connection of this.connections) { - await this.closeConnections(connection.remotePeer) + for (const connectionList of this.connections.values()) { + for (const connection of connectionList) { + await connection.close() + } } this.started = false @@ -69,11 +75,16 @@ class MockConnectionManager extends EventEmitter implem getConnections (peerId?: PeerId): Connection[] { if (peerId != null) { - return this.connections - .filter(c => c.remotePeer.toString() === peerId.toString()) + return this.connections.get(peerId.toString()) ?? [] } - return this.connections + let conns: Connection[] = [] + + for (const c of this.connections.values()) { + conns = conns.concat(c) + } + + return conns } async openConnection (peerId: PeerId | Multiaddr): Promise { @@ -96,8 +107,8 @@ class MockConnectionManager extends EventEmitter implem const [aToB, bToA] = connectionPair(this.components, componentsB) // track connections - this.connections.push(aToB) - ;(componentsB.connectionManager as MockConnectionManager).connections.push(bToA) + this.connections.set(peerId.toString(), [aToB]) + this.connections.set(componentsB.peerId.toString(), [bToA]) this.components.connectionManager.safeDispatchEvent('peer:connect', { detail: aToB @@ -133,21 +144,11 @@ class MockConnectionManager extends EventEmitter implem return } - const componentsB = mockNetwork.getNode(peerId) - - for (const protocol of this.components.registrar.getProtocols()) { - this.components.registrar.getTopologies(protocol).forEach(topology => { - topology.onDisconnect(componentsB.peerId) + await Promise.all( + connections.map(async connection => { + await connection.close() }) - } - - for (const conn of connections) { - await conn.close() - } - - this.connections = this.connections.filter(c => c.remotePeer.equals(peerId)) - - await componentsB.connectionManager?.closeConnections(this.components.peerId) + ) } async acceptIncomingConnection (): Promise { From 9434f804aa356408b53c8d62d5f07973edec4112 Mon Sep 17 00:00:00 2001 From: chad Date: Mon, 6 Feb 2023 20:13:04 -0500 Subject: [PATCH 03/14] added pending dial methods to Dialer interface --- packages/interface-connection-manager/src/index.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index 6e648eca0..9070c7af8 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -105,4 +105,14 @@ export interface Dialer { * After a dial attempt succeeds or fails, return the passed token to the pool */ releaseToken: (token: number) => void + + /** + * Get the current dial targets which are pending + */ + getPendingDialTargets: () => Map + + /** + * Returns true if the peer id is in the pending dials + */ + isPendingDial: (peer: PeerId | Multiaddr) => boolean } From 3f8dff4b553f39265cf45a951df810b891b209cf Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Tue, 14 Feb 2023 17:03:45 -0500 Subject: [PATCH 04/14] fix: update naming for pending dials Co-authored-by: Alex Potsides --- packages/interface-connection-manager/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index 9070c7af8..1919727cc 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -114,5 +114,5 @@ export interface Dialer { /** * Returns true if the peer id is in the pending dials */ - isPendingDial: (peer: PeerId | Multiaddr) => boolean + hasPendingDial: (peer: PeerId | Multiaddr) => boolean } From a05b0595c4db8fce214d2238ef84da90b847f717 Mon Sep 17 00:00:00 2001 From: chad Date: Tue, 14 Feb 2023 17:14:50 -0500 Subject: [PATCH 05/14] feat: updated method for pending dial targets --- packages/interface-connection-manager/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index 1919727cc..f9db4a68c 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -109,7 +109,7 @@ export interface Dialer { /** * Get the current dial targets which are pending */ - getPendingDialTargets: () => Map + getPendingDialTargets: () => Map /** * Returns true if the peer id is in the pending dials From 39e00b287fc512a2a94fa83464682773e25b52db Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 22 Feb 2023 17:02:55 -0500 Subject: [PATCH 06/14] updated Connection manager interface and dialer interface to include configs --- .../interface-connection-manager/src/index.ts | 148 +++++++++++++++++- 1 file changed, 146 insertions(+), 2 deletions(-) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index f9db4a68c..36367366e 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -1,8 +1,75 @@ import type { AbortOptions } from '@libp2p/interfaces' import type { EventEmitter } from '@libp2p/interfaces/events' -import type { Connection, MultiaddrConnection } from '@libp2p/interface-connection' +import type { Connection, ConnectionGater, MultiaddrConnection } from '@libp2p/interface-connection' import type { PeerId } from '@libp2p/interface-peer-id' -import type { Multiaddr } from '@multiformats/multiaddr' +import type { Multiaddr, Resolver } from '@multiformats/multiaddr' +import type { Metrics } from '@libp2p/interface-metrics' +import type { AddressSorter, PeerStore } from '@libp2p/interface-peer-store' +import type { TransportManager, Upgrader } from '@libp2p/interface-transport' +export interface ConnectionManagerComponents { + peerId: PeerId + metrics?: Metrics + upgrader: Upgrader + peerStore: PeerStore + dialer: Dialer +} + +export interface ConnectionManagerConfig { + /** + * The maximum number of connections libp2p is willing to have before it starts disconnecting. Defaults to `Infinity` + */ + maxConnections: number + + /** + * The minimum number of connections below which libp2p not activate preemptive disconnections. Defaults to `0`. + */ + minConnections: number + + /** + * Sets the maximum event loop delay (measured in milliseconds) this node is willing to endure before it starts disconnecting peers. Defaults to `Infinity`. + */ + maxEventLoopDelay?: number + + /** + * Sets the poll interval (in milliseconds) for assessing the current state and determining if this peer needs to force a disconnect. Defaults to `2000` (2 seconds). + */ + pollInterval?: number + + /** + * Multiaddr resolvers to use when dialing + */ + resolvers?: Record + + /** + * On startup we try to dial any peer that has previously been + * tagged with KEEP_ALIVE up to this timeout in ms. (default: 60000) + */ + startupReconnectTimeout?: number + + /** + * A list of multiaddrs that will always be allowed (except if they are in the + * deny list) to open connections to this node even if we've reached maxConnections + */ + allow?: string[] + + /** + * A list of multiaddrs that will never be allowed to open connections to + * this node under any circumstances + */ + deny?: string[] + + /** + * If more than this many connections are opened per second by a single + * host, reject subsequent connections + */ + inboundConnectionThreshold?: number + + /** + * The maximum number of parallel incoming connections allowed that have yet to + * complete the connection upgrade - e.g. choosing connection encryption, muxer, etc + */ + maxIncomingPendingConnections?: number +} export interface ConnectionManagerEvents { /** @@ -88,6 +155,73 @@ export interface ConnectionManager extends EventEmitter * Invoked after upgrading a multiaddr connection has finished */ afterUpgradeInbound: () => void + + /** + * Return the components of the connection manager + */ + getComponents: () => ConnectionManagerComponents + + /** + * Return the configuration of the connection manager + */ + getConfig: () => ConnectionManagerConfig +} + +export interface DialerConfig { + /** + * Sort the known addresses of a peer before trying to dial + */ + addressSorter?: AddressSorter + + /** + * If true, try to connect to all discovered peers up to the connection manager limit + */ + autoDial?: boolean + + /** + * How long to wait between attempting to keep our number of concurrent connections + * above minConnections + */ + autoDialInterval: number + + /** + * How long a dial attempt is allowed to take + */ + dialTimeout?: number + + /** + * When a new inbound connection is opened, the upgrade process (e.g. protect, + * encrypt, multiplex etc) must complete within this number of ms. + */ + inboundUpgradeTimeout: number + + /** + * Number of max concurrent dials + */ + maxParallelDials?: number + + /** + * Number of max addresses to dial for a given peer + */ + maxAddrsToDial?: number + + /** + * Number of max concurrent dials per peer + */ + maxDialsPerPeer?: number + + /** + * Multiaddr resolvers to use when dialing + */ + resolvers?: Record +} + +export interface DialerComponents { + peerId: PeerId + metrics?: Metrics + peerStore: PeerStore + transportManager: TransportManager + connectionGater: ConnectionGater } export interface Dialer { @@ -115,4 +249,14 @@ export interface Dialer { * Returns true if the peer id is in the pending dials */ hasPendingDial: (peer: PeerId | Multiaddr) => boolean + + /** + * Return the components of the dialer + */ + getComponents: () => DialerComponents + + /** + * Return the configuration of the dialer + */ + getConfig: () => DialerConfig } From fa42c191c3ba20ec6fdd667881199550ec0c2b11 Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 22 Feb 2023 17:53:22 -0500 Subject: [PATCH 07/14] updated mocks and test utils --- .../interface-mocks/src/connection-manager.ts | 29 ++++++++++++++++--- .../src/utils.ts | 8 ++++- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/packages/interface-mocks/src/connection-manager.ts b/packages/interface-mocks/src/connection-manager.ts index 2c15fe427..5d2308a33 100644 --- a/packages/interface-mocks/src/connection-manager.ts +++ b/packages/interface-mocks/src/connection-manager.ts @@ -2,18 +2,30 @@ import { EventEmitter } from '@libp2p/interfaces/events' import type { Startable } from '@libp2p/interfaces/startable' import type { Connection } from '@libp2p/interface-connection' import type { PeerId } from '@libp2p/interface-peer-id' -import type { ConnectionManager, ConnectionManagerEvents } from '@libp2p/interface-connection-manager' +import type { ConnectionManager, ConnectionManagerComponents, ConnectionManagerConfig, ConnectionManagerEvents, Dialer } from '@libp2p/interface-connection-manager' import { connectionPair } from './connection.js' import { CodeError } from '@libp2p/interfaces/errors' import type { Registrar } from '@libp2p/interface-registrar' import type { PubSub } from '@libp2p/interface-pubsub' import { isMultiaddr, Multiaddr } from '@multiformats/multiaddr' +import type { Metrics } from '@libp2p/interface-metrics' +import type { PeerStore } from '@libp2p/interface-peer-store' +import type { Upgrader } from '@libp2p/interface-transport' export interface MockNetworkComponents { peerId: PeerId registrar: Registrar connectionManager: ConnectionManager pubsub?: PubSub + metrics?: Metrics + upgrader: Upgrader + peerStore: PeerStore + dialer: Dialer +} + +export interface MockConnectionManagerConfig { + maxConnections: number + minConnections: number } class MockNetwork { @@ -41,14 +53,23 @@ class MockNetwork { export const mockNetwork = new MockNetwork() class MockConnectionManager extends EventEmitter implements ConnectionManager, Startable { + private readonly config: ConnectionManagerConfig private readonly connections: Map = new Map() private readonly components: MockNetworkComponents private started = false - constructor (components: MockNetworkComponents) { + constructor (components: MockNetworkComponents, config: ConnectionManagerConfig) { super() this.components = components + this.config = config + } + getComponents(): ConnectionManagerComponents { + return this.components + } + + getConfig (): ConnectionManagerConfig { + return this.config } getConnectionsMap (): Map { @@ -160,6 +181,6 @@ class MockConnectionManager extends EventEmitter implem } } -export function mockConnectionManager (components: MockNetworkComponents): ConnectionManager { - return new MockConnectionManager(components) +export function mockConnectionManager (components: MockNetworkComponents, config: MockConnectionManagerConfig): ConnectionManager { + return new MockConnectionManager(components, config) } diff --git a/packages/interface-pubsub-compliance-tests/src/utils.ts b/packages/interface-pubsub-compliance-tests/src/utils.ts index 1b5ab8f6e..dd85438ad 100644 --- a/packages/interface-pubsub-compliance-tests/src/utils.ts +++ b/packages/interface-pubsub-compliance-tests/src/utils.ts @@ -19,7 +19,13 @@ export async function createComponents (): Promise { peerId: await createEd25519PeerId(), registrar: mockRegistrar() } - components.connectionManager = mockConnectionManager(components) + + const config: any = { + maxConnections: 10, + minConnections: 10 + } + + components.connectionManager = mockConnectionManager(components, config) mockNetwork.addNode(components) From b3cf324407c4af543972bf5cae5ec0fb48b644f0 Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 22 Feb 2023 18:09:38 -0500 Subject: [PATCH 08/14] chore: fix linting errors --- packages/interface-mocks/src/connection-manager.ts | 3 ++- packages/interface-pubsub-compliance-tests/src/utils.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/interface-mocks/src/connection-manager.ts b/packages/interface-mocks/src/connection-manager.ts index 5d2308a33..6505a134b 100644 --- a/packages/interface-mocks/src/connection-manager.ts +++ b/packages/interface-mocks/src/connection-manager.ts @@ -64,7 +64,8 @@ class MockConnectionManager extends EventEmitter implem this.components = components this.config = config } - getComponents(): ConnectionManagerComponents { + + getComponents (): ConnectionManagerComponents { return this.components } diff --git a/packages/interface-pubsub-compliance-tests/src/utils.ts b/packages/interface-pubsub-compliance-tests/src/utils.ts index dd85438ad..c3aacf81d 100644 --- a/packages/interface-pubsub-compliance-tests/src/utils.ts +++ b/packages/interface-pubsub-compliance-tests/src/utils.ts @@ -21,8 +21,8 @@ export async function createComponents (): Promise { } const config: any = { - maxConnections: 10, - minConnections: 10 + maxConnections: 10, + minConnections: 10 } components.connectionManager = mockConnectionManager(components, config) From 545b2e4c08d8044655a634a9925cb3a117bfa22e Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 22 Feb 2023 20:49:27 -0500 Subject: [PATCH 09/14] chore: added missing deps --- packages/interface-connection-manager/package.json | 3 +++ packages/interface-mocks/package.json | 1 + 2 files changed, 4 insertions(+) diff --git a/packages/interface-connection-manager/package.json b/packages/interface-connection-manager/package.json index 68f075fd7..77adc0fe6 100644 --- a/packages/interface-connection-manager/package.json +++ b/packages/interface-connection-manager/package.json @@ -133,7 +133,10 @@ }, "dependencies": { "@libp2p/interface-connection": "^3.0.0", + "@libp2p/interface-metrics": "^4.0.5", "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interface-peer-store": "^1.2.8", + "@libp2p/interface-transport": "^2.1.1", "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^11.0.0" }, diff --git a/packages/interface-mocks/package.json b/packages/interface-mocks/package.json index 9c015b110..41a28acf4 100644 --- a/packages/interface-mocks/package.json +++ b/packages/interface-mocks/package.json @@ -146,6 +146,7 @@ "@libp2p/interface-peer-discovery": "^1.0.0", "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-info": "^1.0.0", + "@libp2p/interface-peer-store": "^1.2.8", "@libp2p/interface-pubsub": "^3.0.0", "@libp2p/interface-registrar": "^2.0.0", "@libp2p/interface-stream-muxer": "^3.0.0", From c5299650f8b75edc7d29bc36248214f728767092 Mon Sep 17 00:00:00 2001 From: chad Date: Sat, 25 Feb 2023 13:29:18 -0500 Subject: [PATCH 10/14] feat: added outgoingDialTimeout to connection manager config --- packages/interface-connection-manager/src/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index 36367366e..b2ee940a9 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -69,6 +69,11 @@ export interface ConnectionManagerConfig { * complete the connection upgrade - e.g. choosing connection encryption, muxer, etc */ maxIncomingPendingConnections?: number + + /** + * The abort signal to use for timeouts when opening connections to peers + */ + outgoingDialTimeout?: number } export interface ConnectionManagerEvents { From 258c658c593247625d520d28d5d8f823de960666 Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 9 Mar 2023 10:52:50 -0500 Subject: [PATCH 11/14] fix: removed config from interface to be less opinionated (#342) --- .../interface-connection-manager/src/index.ts | 125 +----------------- 1 file changed, 2 insertions(+), 123 deletions(-) diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index b2ee940a9..0aee8f36c 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -2,9 +2,9 @@ import type { AbortOptions } from '@libp2p/interfaces' import type { EventEmitter } from '@libp2p/interfaces/events' import type { Connection, ConnectionGater, MultiaddrConnection } from '@libp2p/interface-connection' import type { PeerId } from '@libp2p/interface-peer-id' -import type { Multiaddr, Resolver } from '@multiformats/multiaddr' +import type { Multiaddr } from '@multiformats/multiaddr' import type { Metrics } from '@libp2p/interface-metrics' -import type { AddressSorter, PeerStore } from '@libp2p/interface-peer-store' +import type { PeerStore } from '@libp2p/interface-peer-store' import type { TransportManager, Upgrader } from '@libp2p/interface-transport' export interface ConnectionManagerComponents { peerId: PeerId @@ -14,68 +14,6 @@ export interface ConnectionManagerComponents { dialer: Dialer } -export interface ConnectionManagerConfig { - /** - * The maximum number of connections libp2p is willing to have before it starts disconnecting. Defaults to `Infinity` - */ - maxConnections: number - - /** - * The minimum number of connections below which libp2p not activate preemptive disconnections. Defaults to `0`. - */ - minConnections: number - - /** - * Sets the maximum event loop delay (measured in milliseconds) this node is willing to endure before it starts disconnecting peers. Defaults to `Infinity`. - */ - maxEventLoopDelay?: number - - /** - * Sets the poll interval (in milliseconds) for assessing the current state and determining if this peer needs to force a disconnect. Defaults to `2000` (2 seconds). - */ - pollInterval?: number - - /** - * Multiaddr resolvers to use when dialing - */ - resolvers?: Record - - /** - * On startup we try to dial any peer that has previously been - * tagged with KEEP_ALIVE up to this timeout in ms. (default: 60000) - */ - startupReconnectTimeout?: number - - /** - * A list of multiaddrs that will always be allowed (except if they are in the - * deny list) to open connections to this node even if we've reached maxConnections - */ - allow?: string[] - - /** - * A list of multiaddrs that will never be allowed to open connections to - * this node under any circumstances - */ - deny?: string[] - - /** - * If more than this many connections are opened per second by a single - * host, reject subsequent connections - */ - inboundConnectionThreshold?: number - - /** - * The maximum number of parallel incoming connections allowed that have yet to - * complete the connection upgrade - e.g. choosing connection encryption, muxer, etc - */ - maxIncomingPendingConnections?: number - - /** - * The abort signal to use for timeouts when opening connections to peers - */ - outgoingDialTimeout?: number -} - export interface ConnectionManagerEvents { /** * This event will be triggered anytime a new Connection is established to another peer. @@ -165,60 +103,6 @@ export interface ConnectionManager extends EventEmitter * Return the components of the connection manager */ getComponents: () => ConnectionManagerComponents - - /** - * Return the configuration of the connection manager - */ - getConfig: () => ConnectionManagerConfig -} - -export interface DialerConfig { - /** - * Sort the known addresses of a peer before trying to dial - */ - addressSorter?: AddressSorter - - /** - * If true, try to connect to all discovered peers up to the connection manager limit - */ - autoDial?: boolean - - /** - * How long to wait between attempting to keep our number of concurrent connections - * above minConnections - */ - autoDialInterval: number - - /** - * How long a dial attempt is allowed to take - */ - dialTimeout?: number - - /** - * When a new inbound connection is opened, the upgrade process (e.g. protect, - * encrypt, multiplex etc) must complete within this number of ms. - */ - inboundUpgradeTimeout: number - - /** - * Number of max concurrent dials - */ - maxParallelDials?: number - - /** - * Number of max addresses to dial for a given peer - */ - maxAddrsToDial?: number - - /** - * Number of max concurrent dials per peer - */ - maxDialsPerPeer?: number - - /** - * Multiaddr resolvers to use when dialing - */ - resolvers?: Record } export interface DialerComponents { @@ -259,9 +143,4 @@ export interface Dialer { * Return the components of the dialer */ getComponents: () => DialerComponents - - /** - * Return the configuration of the dialer - */ - getConfig: () => DialerConfig } From e5fd99800f068c1147e728667976f76f988fe07d Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 9 Mar 2023 11:11:01 -0500 Subject: [PATCH 12/14] chore: updated imports (#342) --- packages/interface-connection-manager/package.json | 1 + packages/interface-connection-manager/src/index.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/interface-connection-manager/package.json b/packages/interface-connection-manager/package.json index 77adc0fe6..a3a4b9f61 100644 --- a/packages/interface-connection-manager/package.json +++ b/packages/interface-connection-manager/package.json @@ -133,6 +133,7 @@ }, "dependencies": { "@libp2p/interface-connection": "^3.0.0", + "@libp2p/interface-connection-gater": "^1.0.0", "@libp2p/interface-metrics": "^4.0.5", "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-store": "^1.2.8", diff --git a/packages/interface-connection-manager/src/index.ts b/packages/interface-connection-manager/src/index.ts index 0aee8f36c..e2464273b 100644 --- a/packages/interface-connection-manager/src/index.ts +++ b/packages/interface-connection-manager/src/index.ts @@ -1,6 +1,7 @@ import type { AbortOptions } from '@libp2p/interfaces' import type { EventEmitter } from '@libp2p/interfaces/events' -import type { Connection, ConnectionGater, MultiaddrConnection } from '@libp2p/interface-connection' +import type { Connection, MultiaddrConnection } from '@libp2p/interface-connection' +import type { ConnectionGater } from '@libp2p/interface-connection-gater' import type { PeerId } from '@libp2p/interface-peer-id' import type { Multiaddr } from '@multiformats/multiaddr' import type { Metrics } from '@libp2p/interface-metrics' From 23f0436ba590e481b7d87850e1323f1aee3d15b7 Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 9 Mar 2023 11:34:58 -0500 Subject: [PATCH 13/14] chore: remove config from interface methods (#342) --- packages/interface-pubsub-compliance-tests/src/utils.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/interface-pubsub-compliance-tests/src/utils.ts b/packages/interface-pubsub-compliance-tests/src/utils.ts index c3aacf81d..52d98d555 100644 --- a/packages/interface-pubsub-compliance-tests/src/utils.ts +++ b/packages/interface-pubsub-compliance-tests/src/utils.ts @@ -20,12 +20,7 @@ export async function createComponents (): Promise { registrar: mockRegistrar() } - const config: any = { - maxConnections: 10, - minConnections: 10 - } - - components.connectionManager = mockConnectionManager(components, config) + components.connectionManager = mockConnectionManager(components) mockNetwork.addNode(components) From 17f4227ddcc9d19449636eb5d01601aa5cd3c6eb Mon Sep 17 00:00:00 2001 From: chad Date: Thu, 9 Mar 2023 11:48:46 -0500 Subject: [PATCH 14/14] chore: linting --- packages/interface-mocks/src/connection-manager.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/interface-mocks/src/connection-manager.ts b/packages/interface-mocks/src/connection-manager.ts index 7f86c2557..30f2df9ed 100644 --- a/packages/interface-mocks/src/connection-manager.ts +++ b/packages/interface-mocks/src/connection-manager.ts @@ -62,15 +62,12 @@ export interface MockConnectionManagerComponents { } class MockConnectionManager extends EventEmitter implements ConnectionManager, Startable { - private readonly connections: Map = new Map() private readonly components: MockConnectionManagerComponents private started = false - constructor (components: MockConnectionManagerComponents) { super() - this.components = components }