public BlockManager( ITransactionManager transactionManager, IGenesisBuilder genesisBuilder, IMultisigVerifier multisigVerifier, IStateManager stateManager, ISnapshotIndexRepository snapshotIndexRepository, IConfigManager configManager, ILocalTransactionRepository localTransactionRepository ) { _transactionManager = transactionManager; _genesisBuilder = genesisBuilder; _multisigVerifier = multisigVerifier; _stateManager = stateManager; _snapshotIndexRepository = snapshotIndexRepository; _configManager = configManager; _localTransactionRepository = localTransactionRepository; _transactionManager.OnSystemContractInvoked += TransactionManagerOnSystemContractInvoked; var cacheConfig = _configManager.GetConfig <CacheConfig>("cache"); if (cacheConfig != null && cacheConfig.BlockHeight != null && cacheConfig.BlockHeight.SizeLimit != null) { _blockSizeLimit = cacheConfig.BlockHeight.SizeLimit.Value; } _heightCache = new Dictionary <ulong, Block?>(_blockSizeLimit); _heightCacheQueue = new Queue <ulong>(_blockSizeLimit); }
/// <summary> /// Constructor /// </summary> /// <param name="blockProcessor">Block Processor</param> /// <param name="blockchainContext">Block chain context class.</param> /// <param name="genesisBuilder">Genesis block generator.</param> /// <param name="blockRepository">The block model.</param> public Blockchain( IBlockProcessor blockProcessor, IBlockchainContext blockchainContext, IGenesisBuilder genesisBuilder, IBlockRepository blockRepository) { _blockProcessor = blockProcessor ?? throw new ArgumentNullException(nameof(blockProcessor)); _blockchainContext = blockchainContext ?? throw new ArgumentNullException(nameof(blockchainContext)); _genesisBuilder = genesisBuilder ?? throw new ArgumentNullException(nameof(genesisBuilder)); _blockRepository = blockRepository; }
public BlockHeaderValidator(IBlockchainContext blockchainContext, IGenesisBuilder genesisBuilder) { this._blockchainContext = blockchainContext; this._genesisBuilder = genesisBuilder; }