mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-08 16:53:10 +00:00
* fix: discovery for peer-exchange use the bootstrap node as a starter to send a peer-exchange query to, and emit the response peers received from it for further connection to libp2p using the peer-discovery interface * init: test for libp2p bootstrap/discovery for peer-exchange * temp-add: console.logs for easier debugging * add: peer discovery test & rm: console.logs * chore: rm and redundant spec test * add: interval for peer exchange queries we set an interval to query a peer every 5 minutes for peer exchange, and add new peers if found * address: reviews - add `type` for imports not using values - better handling for peer-exchange query interval * chore: fix tsc for peer-exchange use node16 for module resolution * chore: add extra exports to fix typedoc warnings ref: https://github.com/TypeStrong/typedoc/issues/1739
34 lines
883 B
TypeScript
34 lines
883 B
TypeScript
import type { ConnectionManager } from "@libp2p/interface-connection-manager";
|
|
import type { PeerId } from "@libp2p/interface-peer-id";
|
|
import type { PeerStore } from "@libp2p/interface-peer-store";
|
|
import type { Registrar } from "@libp2p/interface-registrar";
|
|
|
|
import { IEnr } from "./enr.js";
|
|
import { PointToPointProtocol } from "./protocols.js";
|
|
|
|
export interface IPeerExchange extends PointToPointProtocol {
|
|
query(
|
|
params: PeerExchangeQueryParams,
|
|
callback: (response: PeerExchangeResponse) => Promise<void> | void
|
|
): Promise<void>;
|
|
}
|
|
|
|
export interface PeerExchangeQueryParams {
|
|
numPeers: number;
|
|
peerId?: PeerId;
|
|
}
|
|
|
|
export interface PeerExchangeResponse {
|
|
peerInfos: PeerInfo[];
|
|
}
|
|
|
|
export interface PeerInfo {
|
|
ENR?: IEnr;
|
|
}
|
|
|
|
export interface PeerExchangeComponents {
|
|
connectionManager: ConnectionManager;
|
|
peerStore: PeerStore;
|
|
registrar: Registrar;
|
|
}
|