UNPKG

@lodestar/beacon-node

Version:

A Typescript implementation of the beacon chain

64 lines 2.07 kB
import { Discv5 } from "@chainsafe/discv5"; import { ENRData, SignableENRData } from "@chainsafe/enr"; import { Observable } from "@chainsafe/threads/observable"; import { ChainConfig } from "@lodestar/config"; import { LoggerNodeOpts } from "@lodestar/logger/node"; type Discv5Config = Parameters<(typeof Discv5)["create"]>[0]["config"]; type BindAddrs = { ip4: string; ip6?: string; } | { ip4?: string; ip6: string; } | { ip4: string; ip6: string; }; export type LodestarDiscv5Opts = { config?: Discv5Config; enr: string; bindAddrs: BindAddrs; bootEnrs: string[]; }; /** discv5 worker constructor data */ export interface Discv5WorkerData { enr: string; privateKeyProto: Uint8Array; bindAddrs: BindAddrs; config: Discv5Config; bootEnrs: string[]; metrics: boolean; chainConfig: ChainConfig; genesisValidatorsRoot: Uint8Array; loggerOpts: LoggerNodeOpts; genesisTime: number; } /** * API exposed by the discv5 worker * * Note: ENRs are represented as bytes to facilitate message-passing */ export type Discv5WorkerApi = { /** The current host ENR */ enr(): Promise<SignableENRData>; /** Set a key-value of the current host ENR */ setEnrValue(key: string, value: Uint8Array): Promise<void>; /** Return the ENRs currently in the kad table */ kadValues(): Promise<ENRData[]>; /** emit the ENRs currently in the kad table */ discoverKadValues(): Promise<void>; /** Begin a random search through the DHT, return discovered ENRs */ findRandomNode(): Promise<ENRData[]>; /** Stream of discovered ENRs */ discovered(): Observable<ENRData>; /** Prometheus metrics string */ scrapeMetrics(): Promise<string>; /** write profile to disc */ writeProfile(durationMs: number, dirpath: string): Promise<string>; /** write heap snapshot to disc */ writeHeapSnapshot(prefix: string, dirpath: string): Promise<string>; /** tear down discv5 resources */ close(): Promise<void>; }; export {}; //# sourceMappingURL=types.d.ts.map