@cityofzion/neo-js
Version:
Running NEO blockchain full node with Node.js and MongoDB.
41 lines (40 loc) • 1.4 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { LoggerOptions } from 'node-log-it';
import { Node } from './node';
export interface MeshOptions {
startBenchmarkOnInit?: boolean;
toFetchUserAgent?: boolean;
benchmarkIntervalMs?: number;
fetchMissingUserAgentIntervalMs?: number;
refreshUserAgentIntervalMs?: number;
minActiveNodesRequired?: number;
pendingRequestsThreshold?: number;
loggerOptions?: LoggerOptions;
}
export declare class Mesh extends EventEmitter {
nodes: Node[];
private _isReady;
private benchmarkIntervalId?;
private fetchMissingUserAgentIntervalId?;
private refreshUserAgentIntervalId?;
private options;
private logger;
constructor(nodes: Node[], options?: MeshOptions);
isReady(): boolean;
startBenchmark(): void;
stopBenchmark(): void;
close(): void;
getFastestNode(activeOnly?: boolean): Node | undefined;
getHighestNode(activeOnly?: boolean): Node | undefined;
getRandomNode(activeOnly?: boolean): Node | undefined;
getOptimalNode(height: number, activeOnly?: boolean): Node | undefined;
private validateOptionalParameters;
private performBenchmark;
private getNodeToBenchmark;
private performFetchMissingUserAgent;
private performRefreshUserAgent;
private checkMeshReady;
private setReady;
private listActiveNodes;
}