public ReadOnlyChainProcessingEnv( ReadOnlyTxProcessingEnv txEnv, IBlockValidator blockValidator, IBlockPreprocessorStep recoveryStep, IRewardCalculator rewardCalculator, IReceiptStorage receiptStorage, IReadOnlyDbProvider dbProvider, ISpecProvider specProvider, ILogManager logManager) { _txEnv = txEnv; BlockProcessor = new BlockProcessor( specProvider, blockValidator, rewardCalculator, _txEnv.TransactionProcessor, StateProvider, _txEnv.StorageProvider, NullTxPool.Instance, receiptStorage, NullWitnessCollector.Instance, logManager); _blockProcessingQueue = new BlockchainProcessor(_txEnv.BlockTree, BlockProcessor, recoveryStep, logManager, BlockchainProcessor.Options.NoReceipts); BlockProcessingQueue = _blockProcessingQueue; ChainProcessor = new OneTimeChainProcessor(dbProvider, _blockProcessingQueue); }
public DebugModuleFactory( IDbProvider dbProvider, IBlockTree blockTree, IJsonRpcConfig jsonRpcConfig, IBlockValidator blockValidator, IBlockPreprocessorStep recoveryStep, IRewardCalculatorSource rewardCalculator, IReceiptStorage receiptStorage, IReceiptsMigration receiptsMigration, IConfigProvider configProvider, ISpecProvider specProvider, ILogManager logManager) { _dbProvider = dbProvider ?? throw new ArgumentNullException(nameof(dbProvider)); _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _jsonRpcConfig = jsonRpcConfig ?? throw new ArgumentNullException(nameof(jsonRpcConfig)); _blockValidator = blockValidator ?? throw new ArgumentNullException(nameof(blockValidator)); _recoveryStep = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep)); _rewardCalculatorSource = rewardCalculator ?? throw new ArgumentNullException(nameof(rewardCalculator)); _receiptStorage = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage)); _receiptsMigration = receiptsMigration ?? throw new ArgumentNullException(nameof(receiptsMigration)); _configProvider = configProvider ?? throw new ArgumentNullException(nameof(configProvider)); _specProvider = specProvider ?? throw new ArgumentNullException(nameof(specProvider)); _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _logger = logManager.GetClassLogger(); }
public BeamBlockchainProcessor( IReadOnlyDbProvider readOnlyDbProvider, IBlockTree blockTree, ISpecProvider specProvider, ILogManager logManager, IBlockValidator blockValidator, IBlockPreprocessorStep recoveryStep, IRewardCalculatorSource rewardCalculatorSource, IBlockProcessingQueue processingQueue, ISyncModeSelector syncModeSelector) { _readOnlyDbProvider = readOnlyDbProvider ?? throw new ArgumentNullException(nameof(readOnlyDbProvider)); _blockValidator = blockValidator ?? throw new ArgumentNullException(nameof(blockValidator)); _recoveryStep = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep)); _rewardCalculatorSource = rewardCalculatorSource ?? throw new ArgumentNullException(nameof(rewardCalculatorSource)); _standardProcessorQueue = processingQueue ?? throw new ArgumentNullException(nameof(processingQueue)); _syncModeSelector = syncModeSelector ?? throw new ArgumentNullException(nameof(syncModeSelector)); _specProvider = specProvider ?? throw new ArgumentNullException(nameof(specProvider)); _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _readOnlyBlockTree = new ReadOnlyBlockTree(blockTree); blockTree.NewBestSuggestedBlock += OnNewBlock; _logger = logManager.GetClassLogger(); _blockAction = BeamProcess; _syncModeSelector.Preparing += SyncModeSelectorOnPreparing; _syncModeSelector.Changing += SyncModeSelectorOnChanging; _syncModeSelector.Changed += SyncModeSelectorOnChanged; }
public BlockProducerEnvFactory( IDbProvider dbProvider, IBlockTree blockTree, IReadOnlyTrieStore readOnlyTrieStore, ISpecProvider specProvider, IBlockValidator blockValidator, IRewardCalculatorSource rewardCalculatorSource, IReceiptStorage receiptStorage, IBlockPreprocessorStep blockPreprocessorStep, ITxPool txPool, ITransactionComparerProvider transactionComparerProvider, IMiningConfig miningConfig, ILogManager logManager) { _dbProvider = dbProvider; _blockTree = blockTree; _readOnlyTrieStore = readOnlyTrieStore; _specProvider = specProvider; _blockValidator = blockValidator; _rewardCalculatorSource = rewardCalculatorSource; _receiptStorage = receiptStorage; _blockPreprocessorStep = blockPreprocessorStep; _txPool = txPool; _transactionComparerProvider = transactionComparerProvider; _miningConfig = miningConfig; _logManager = logManager; TransactionsExecutorFactory = new BlockProducerTransactionsExecutorFactory(specProvider, logManager); }
public MulticallModuleFactory(IDbProvider dbProvider, IBlockTree blockTree, IJsonRpcConfig jsonRpcConfig, IReadOnlyTrieStore trieNodeResolver, IBlockPreprocessorStep recoveryStep, IRewardCalculatorSource rewardCalculatorSource, IReceiptStorage receiptFinder, ISpecProvider specProvider, ILogManager logManager) { this.dbProvider = dbProvider.AsReadOnly(false); this.blockTree = blockTree.AsReadOnly(); this.jsonRpcConfig = jsonRpcConfig; this.trieNodeResolver = trieNodeResolver; this.recoveryStep = recoveryStep; this.rewardCalculatorSource = rewardCalculatorSource; this.receiptFinder = receiptFinder; this.specProvider = specProvider; this.logManager = logManager; }
public ProofModuleFactory( IDbProvider dbProvider, IBlockTree blockTree, IBlockPreprocessorStep recoveryStep, IReceiptFinder receiptFinder, ISpecProvider specProvider, ILogManager logManager) { _recoveryStep = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep)); _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder)); _specProvider = specProvider ?? throw new ArgumentNullException(nameof(specProvider)); _dbProvider = dbProvider ?? throw new ArgumentNullException(nameof(dbProvider)); _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); }
protected BlockProducerContext GetProducerChain(IBlockTree blockTree, IDbProvider dbProvider, IReadOnlyTrieStore readOnlyTrieStore, IBlockPreprocessorStep blockPreprocessor, ITxPool txPool, IBlockValidator blockValidator, IRewardCalculatorSource rewardCalculatorSource, IReceiptStorage receiptStorage, ISpecProvider specProvider, IMiningConfig miningConfig, ILogManager logManager) { ReadOnlyDbProvider readOnlyDbProvider = dbProvider.AsReadOnly(false); ReadOnlyBlockTree readOnlyBlockTree = blockTree.AsReadOnly(); ReadOnlyTxProcessingEnv txProcessingEnv = new(readOnlyDbProvider, readOnlyTrieStore, readOnlyBlockTree, specProvider, logManager); ITransactionComparerProvider transactionComparerProvider = new TransactionComparerProvider(specProvider, blockTree); BlockProcessor blockProcessor = CreateBlockProcessor(txProcessingEnv, specProvider, blockValidator, rewardCalculatorSource, txPool, receiptStorage, logManager); IBlockchainProcessor blockchainProcessor = new BlockchainProcessor( readOnlyBlockTree, blockProcessor, blockPreprocessor, logManager, BlockchainProcessor.Options.NoReceipts); OneTimeChainProcessor chainProcessor = new( readOnlyDbProvider, blockchainProcessor); return(new BlockProducerContext { ChainProcessor = chainProcessor, ReadOnlyStateProvider = txProcessingEnv.StateProvider, TxSource = CreateTxSourceForProducer(txProcessingEnv, txPool, specProvider, logManager, miningConfig, transactionComparerProvider), ReadOnlyTxProcessingEnv = txProcessingEnv }); }
public ProofModuleFactory( IDbProvider dbProvider, IBlockTree blockTree, IReadOnlyTrieStore trieStore, IBlockPreprocessorStep recoveryStep, IReceiptFinder receiptFinder, ISpecProvider specProvider, ILogManager logManager) { _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _recoveryStep = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep)); _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder)); _specProvider = specProvider ?? throw new ArgumentNullException(nameof(specProvider)); _dbProvider = dbProvider.AsReadOnly(false); _blockTree = blockTree.AsReadOnly(); _trieStore = trieStore; }
public TracerFactory( IDbProvider dbProvider, IBlockTree blockTree, IReadOnlyTrieStore trieStore, IBlockPreprocessorStep recoveryStep, ISpecProvider specProvider, ILogManager logManager, ProcessingOptions processingOptions = ProcessingOptions.Trace) { _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _processingOptions = processingOptions; _recoveryStep = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep)); _specProvider = specProvider ?? throw new ArgumentNullException(nameof(specProvider)); _dbProvider = dbProvider.AsReadOnly(false); _blockTree = blockTree.AsReadOnly(); _trieStore = trieStore; }
public TraceModuleFactory( IDbProvider dbProvider, IBlockTree blockTree, IJsonRpcConfig jsonRpcConfig, IBlockPreprocessorStep recoveryStep, IRewardCalculatorSource rewardCalculatorSource, IReceiptStorage receiptFinder, ISpecProvider specProvider, ILogManager logManager) { _dbProvider = dbProvider ?? throw new ArgumentNullException(nameof(dbProvider)); _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _jsonRpcConfig = jsonRpcConfig ?? throw new ArgumentNullException(nameof(jsonRpcConfig)); _recoveryStep = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep)); _rewardCalculatorSource = rewardCalculatorSource ?? throw new ArgumentNullException(nameof(rewardCalculatorSource)); _receiptStorage = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder)); _specProvider = specProvider ?? throw new ArgumentNullException(nameof(specProvider)); _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager)); _logger = logManager.GetClassLogger(); }
/// <summary> /// /// </summary> /// <param name="blockTree"></param> /// <param name="blockProcessor"></param> /// <param name="recoveryStep"></param> /// <param name="logManager"></param> /// <param name="options"></param> public BlockchainProcessor( IBlockTree blockTree, IBlockProcessor blockProcessor, IBlockPreprocessorStep recoveryStep, ILogManager logManager, Options options) { _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _blockProcessor = blockProcessor ?? throw new ArgumentNullException(nameof(blockProcessor)); _recoveryStep = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep)); _options = options; if (_options.AutoProcess) { _blockTree.NewBestSuggestedBlock += OnNewBestBlock; } _stats = new ProcessingStats(_logger); }
public override Eth2BlockProducer Create( IBlockTree blockTree, IDbProvider dbProvider, IReadOnlyTrieStore readOnlyTrieStore, IBlockPreprocessorStep blockPreprocessor, ITxPool txPool, IBlockValidator blockValidator, IRewardCalculatorSource rewardCalculatorSource, IReceiptStorage receiptStorage, IBlockProcessingQueue blockProcessingQueue, ISpecProvider specProvider, ISigner engineSigner, IMiningConfig miningConfig, ILogManager logManager) { BlockProducerContext producerContext = GetProducerChain( blockTree, dbProvider, readOnlyTrieStore, blockPreprocessor, txPool, blockValidator, rewardCalculatorSource, receiptStorage, specProvider, miningConfig, logManager); return(new Eth2TestBlockProducer( producerContext.TxSource, producerContext.ChainProcessor, blockTree, blockProcessingQueue, producerContext.ReadOnlyStateProvider, new TargetAdjustedGasLimitCalculator(specProvider, miningConfig), engineSigner, specProvider, logManager)); }
public void AddLast(IBlockPreprocessorStep blockPreprocessorStep) { _recoverySteps.AddLast(blockPreprocessorStep); }