lisk-framework
Version:
Lisk blockchain application platform
78 lines (77 loc) • 2.48 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { Block, Chain, StateStore, BlockHeader } from '@liskhq/lisk-chain';
import { Database } from '@liskhq/lisk-db';
import { Logger } from '../../logger';
import { Network } from '../network';
import { GenesisConfig, SystemConfig } from '../../types';
import { AggregateCommit } from './types';
import { ValidatorInfo } from './certificate_generation/types';
import { BFTModule } from '../bft';
import { ABI } from '../../abi';
interface ConsensusArgs {
chain: Chain;
network: Network;
genesisConfig: GenesisConfig;
systemConfig: SystemConfig;
abi: ABI;
bft: BFTModule;
}
interface InitArgs {
logger: Logger;
genesisBlock: Block;
db: Database;
legacyDB: Database;
}
export declare class Consensus {
readonly events: EventEmitter;
private readonly _abi;
private readonly _chain;
private readonly _network;
private readonly _mutex;
private readonly _bft;
private readonly _genesisConfig;
private readonly _systemConfig;
private readonly _inclusionProofKeys;
private _logger;
private _db;
private _commitPool;
private _endpoint;
private _legacyEndpoint;
private _synchronizer;
private readonly _metrics;
private _stop;
constructor(args: ConsensusArgs);
init(args: InitArgs): Promise<void>;
syncing(): boolean;
finalizedHeight(): number;
onBlockReceive(data: unknown, peerId: string): Promise<void>;
execute(block: Block): Promise<void>;
start(): Promise<void>;
stop(): Promise<void>;
getAggregateCommit(methodContext: StateStore): Promise<AggregateCommit>;
certifySingleCommit(blockHeader: BlockHeader, validatorInfo: ValidatorInfo): void;
isSynced(height: number, maxHeightPrevoted: number): boolean;
getMaxRemovalHeight(): Promise<number>;
private _execute;
private _executeValidated;
private _verify;
private _verifyTimestamp;
private _verifyPreviousBlockID;
private _verifyBlockHeight;
private _verifyGeneratorAddress;
private _verifyBFTProperties;
private _verifyBlockSignature;
private _verifyAggregateCommit;
private _verifyValidatorsHash;
private _verifyEventRoot;
private _deleteBlock;
private _deleteLastBlock;
private _sync;
private _createBlockExecutor;
private _verifyAssets;
private _executeBlock;
private _commitBlock;
private _executeGenesisBlock;
}
export {};