UNPKG

@cityofzion/neo-js

Version:

Running NEO blockchain full node with Node.js and MongoDB.

63 lines (62 loc) 2.08 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { LoggerOptions } from 'node-log-it'; import { Mesh } from './mesh'; import { MemoryStorage } from '../storages/memory-storage'; import { MongodbStorage } from '../storages/mongodb-storage'; export interface SyncerOptions { minHeight?: number; maxHeight?: number; blockRedundancy?: number; checkRedundancyBeforeStoreBlock?: boolean; startOnInit?: boolean; toSyncIncremental?: boolean; toSyncForMissingBlocks?: boolean; toPruneRedundantBlocks?: boolean; storeQueueConcurrency?: number; pruneQueueConcurrency?: number; enqueueBlockIntervalMs?: number; verifyBlocksIntervalMs?: number; maxStoreQueueLength?: number; retryEnqueueDelayMs?: number; standardEnqueueBlockPriority?: number; retryEnqueueBlockPriority?: number; missingEnqueueStoreBlockPriority?: number; enqueuePruneBlockPriority?: number; maxPruneChunkSize?: number; loggerOptions?: LoggerOptions; } export declare class Syncer extends EventEmitter { private _isRunning; private storeQueue; private pruneQueue; private blockWritePointer; private mesh; private storage?; private options; private logger; private enqueueStoreBlockIntervalId?; private blockVerificationIntervalId?; private isVerifyingBlocks; constructor(mesh: Mesh, storage?: MemoryStorage | MongodbStorage, options?: SyncerOptions); isRunning(): boolean; start(): void; stop(): void; close(): void; private storeBlockCompleteHandler; private validateOptionalParameters; private getPriorityQueue; private initStoreBlock; private doEnqueueStoreBlock; private isReachedMaxHeight; private isReachedHighestBlock; private isReachedMaxStoreQueueLength; private setBlockWritePointer; private initBlockVerification; private doBlockVerification; private increaseBlockWritePointer; private enqueueStoreBlock; private enqueuePruneBlock; private storeBlock; private pruneBlock; }