mokka
Version:
Mokka Consensus Algorithm implementation in Javascript
35 lines (34 loc) • 1.3 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
declare class NodeModel extends EventEmitter {
get state(): number;
get term(): number;
get leaderPublicKey(): string;
get address(): string;
get proof(): string;
heartbeat: number;
proofExpiration: number;
electionTimeout: number;
publicKeysRoot: string;
publicKeysCombinationsInQuorum: string[][];
readonly privateKey: string;
readonly publicKey: string;
readonly nodes: Map<string, NodeModel>;
readonly lastLeadersPublicKeyInTermMap: Map<number, string>;
private _state;
private _term;
private lastTermUpdateTime;
private _proof;
private _leaderPublicKey;
private _proofMintedTime;
private readonly nodeAddress;
private readonly crashModel;
constructor(privateKey: string, multiaddr: string, crashModel?: 'CFT' | 'BFT', state?: number);
majority(): number;
write(address: string, packet: Buffer): void;
setState(state: number, term: number, leaderPublicKey: string, proof?: string, proofMintedTime?: number): void;
getProofMintedTime(): number;
checkPublicKeyCanBeLeaderNextRound(publicKey: string): boolean;
checkTermNumber(term: number): boolean;
}
export { NodeModel };