UNPKG

hicon-consensus

Version:

Node.js bindings for HiCon hybrid consensus algorithm

57 lines (54 loc) 1.47 kB
/* tslint:disable */ /* eslint-disable */ /* auto-generated by NAPI-RS */ export const enum NodeState { Follower = 0, Candidate = 1, Leader = 2 } export interface NodeOptions { id: string logPath?: string redundancyFactor?: number enableEncryption?: boolean } export declare class ConsensusResult { success: boolean term: number index: number errorMessage?: string } export declare class LogEntryJs { term: number index: number data: string } export declare class NodeMetrics { messagesReceived: number messagesSent: number consensusTimeMs: number currentTerm: number lastLogIndex: number currentState: NodeState uptime: number } export declare class HiConNode { constructor(options: NodeOptions) start(peerIds: Array<string>): Promise<unknown> propose(value: string): Promise<unknown> getState(): NodeState getLogEntries(startIndex?: number | undefined | null, limit?: number | undefined | null): Array<LogEntryJs> getMetrics(): NodeMetrics stop(): Promise<unknown> on(event: string, callback: (...args: any[]) => any): void } export declare class HiConCluster { constructor() static create(nodeCount: number, redundancyFactor?: number | undefined | null): Promise<unknown> getNodesCount(): number hasLeader(): boolean propose(value: string): Promise<unknown> simulateNodeFailure(nodeIndex: number): Promise<unknown> restoreNode(nodeIndex: number): Promise<unknown> stop(): Promise<unknown> }