mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-03 22:33:07 +00:00
* fix: improve node bootstrapping * implement dns discovery on failed dials * update const to match RFC * up
54 lines
1.1 KiB
TypeScript
54 lines
1.1 KiB
TypeScript
import { PeerStore } from "@libp2p/interface";
|
|
|
|
export const DNS_DISCOVERY_TAG = "@waku/bootstrap";
|
|
|
|
export type SearchContext = {
|
|
domain: string;
|
|
publicKey: string;
|
|
visits: { [key: string]: boolean };
|
|
};
|
|
|
|
export interface DnsClient {
|
|
resolveTXT: (domain: string) => Promise<string[]>;
|
|
}
|
|
|
|
export interface NodeCapabilityCount {
|
|
relay: number;
|
|
store: number;
|
|
filter: number;
|
|
lightPush: number;
|
|
}
|
|
|
|
export interface DnsDiscoveryComponents {
|
|
peerStore: PeerStore;
|
|
}
|
|
|
|
export interface DnsDiscOptions {
|
|
/**
|
|
* ENR URL to use for DNS discovery
|
|
*/
|
|
enrUrls: string | string[];
|
|
/**
|
|
* Specifies what type of nodes are wanted from the discovery process
|
|
*/
|
|
wantedNodeCapabilityCount: Partial<NodeCapabilityCount>;
|
|
/**
|
|
* Tag a bootstrap peer with this name before "discovering" it (default: 'bootstrap')
|
|
*/
|
|
tagName?: string;
|
|
|
|
/**
|
|
* The bootstrap peer tag will have this value (default: 50)
|
|
*/
|
|
tagValue?: number;
|
|
|
|
/**
|
|
* Cause the bootstrap peer tag to be removed after this number of ms (default: 2 minutes)
|
|
*/
|
|
tagTTL?: number;
|
|
}
|
|
|
|
export interface DiscoveryTrigger {
|
|
findPeers: () => Promise<void>;
|
|
}
|