hicon-consensus
Version:
Node.js bindings for HiCon hybrid consensus algorithm
57 lines (54 loc) • 1.47 kB
TypeScript
/* 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>
}