js-waku/packages/sdk/src/create/discovery.ts
Sasha eab8ce81b4
feat!: local peer discovery improvements (#2557)
* update local peer discovery, make it configurable for cache

* move to separate file

* up tests, remove local storage from tests

* pass local peer cache options

* add e2e tests

* add aditional e2e tests for local cache

* rename local-peer-cache into peer-cache

* update tests, ci

* prevent filterign ws addresses
2025-08-15 00:14:32 +02:00

32 lines
883 B
TypeScript

import type { PeerDiscovery } from "@libp2p/interface";
import {
enrTree,
wakuDnsDiscovery,
wakuPeerCacheDiscovery,
wakuPeerExchangeDiscovery
} from "@waku/discovery";
import { CreateNodeOptions, type Libp2pComponents } from "@waku/interfaces";
export function getPeerDiscoveries(
enabled?: CreateNodeOptions["discovery"],
peerCache?: CreateNodeOptions["peerCache"]
): ((components: Libp2pComponents) => PeerDiscovery)[] {
const dnsEnrTrees = [enrTree["SANDBOX"], enrTree["TEST"]];
const discoveries: ((components: Libp2pComponents) => PeerDiscovery)[] = [];
if (enabled?.dns) {
discoveries.push(wakuDnsDiscovery(dnsEnrTrees));
}
if (enabled?.peerCache || peerCache) {
discoveries.push(wakuPeerCacheDiscovery({ cache: peerCache }));
}
if (enabled?.peerExchange) {
discoveries.push(wakuPeerExchangeDiscovery());
}
return discoveries;
}