UNPKG

lisk-framework

Version:

Lisk blockchain application platform

78 lines (77 loc) 2.48 kB
/// <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 {};