diff --git a/packages/core/src/lib/base_protocol.ts b/packages/core/src/lib/base_protocol.ts index e9d21ae79c..eec9bdce82 100644 --- a/packages/core/src/lib/base_protocol.ts +++ b/packages/core/src/lib/base_protocol.ts @@ -90,12 +90,14 @@ export class BaseProtocol implements IBaseProtocolCore { * @returns A list of peers that support the protocol sorted by latency. */ public async getPeers( - { prioritizeLatency, numPeers, maxBootstrapPeers }: GetPeersOptions = { + options: GetPeersOptions = { prioritizeLatency: true, maxBootstrapPeers: 1, numPeers: 0 } ): Promise { + const { maxBootstrapPeers, numPeers, prioritizeLatency } = options; + const activeConnections = this.components.connectionManager.getConnections(); diff --git a/packages/interfaces/src/protocols.ts b/packages/interfaces/src/protocols.ts index 6d0a051513..cb9252cecb 100644 --- a/packages/interfaces/src/protocols.ts +++ b/packages/interfaces/src/protocols.ts @@ -120,6 +120,10 @@ export type ProtocolCreateOptions = { * Defaults to 3. */ numPeersToUse?: number; + /** + * Prioritize latency over decentralization when selecting peers. + */ + prioritizeLatency?: boolean; /** * Byte array used as key for the noise protocol used for connection encryption * by [`Libp2p.create`](https://github.com/libp2p/js-libp2p/blob/master/doc/API.md#create)