public Task Execute(CancellationToken cancellationToken) { IInitConfig initConfig = _get.Config <IInitConfig>(); IBloomConfig bloomConfig = _get.Config <IBloomConfig>(); IFileStoreFactory fileStoreFactory = initConfig.DiagnosticMode == DiagnosticMode.MemDb ? new InMemoryDictionaryFileStoreFactory() : new FixedSizeFileStoreFactory(Path.Combine(initConfig.BaseDbPath, DbNames.Bloom), DbNames.Bloom, Bloom.ByteLength); IBloomStorage bloomStorage = _set.BloomStorage = bloomConfig.Index ? new BloomStorage(bloomConfig, _get.DbProvider !.BloomDb, fileStoreFactory) : NullBloomStorage.Instance; _get.DisposeStack.Push(bloomStorage); IChainLevelInfoRepository chainLevelInfoRepository = _set.ChainLevelInfoRepository = new ChainLevelInfoRepository(_get.DbProvider !.BlockInfosDb); IBlockTree blockTree = _set.BlockTree = new BlockTree( _get.DbProvider, chainLevelInfoRepository, _get.SpecProvider, bloomStorage, _get.Config <ISyncConfig>(), _get.LogManager); ISigner signer = NullSigner.Instance; ISignerStore signerStore = NullSigner.Instance; if (_get.Config <IMiningConfig>().Enabled) { Signer signerAndStore = new(_get.SpecProvider !.ChainId, _get.OriginalSignerKey !, _get.LogManager); signer = signerAndStore; signerStore = signerAndStore; } _set.EngineSigner = signer; _set.EngineSignerStore = signerStore; ReceiptsRecovery receiptsRecovery = new(_get.EthereumEcdsa, _get.SpecProvider); IReceiptStorage receiptStorage = _set.ReceiptStorage = initConfig.StoreReceipts ? new PersistentReceiptStorage(_get.DbProvider.ReceiptsDb, _get.SpecProvider !, receiptsRecovery) : NullReceiptStorage.Instance; IReceiptFinder receiptFinder = _set.ReceiptFinder = new FullInfoReceiptFinder(receiptStorage, receiptsRecovery, blockTree); LogFinder logFinder = new( blockTree, receiptFinder, receiptStorage, bloomStorage, _get.LogManager, new ReceiptsRecovery(_get.EthereumEcdsa, _get.SpecProvider), 1024); _set.LogFinder = logFinder; return(Task.CompletedTask); }
public ParityModule( IEcdsa ecdsa, ITxPool txPool, IBlockFinder blockFinder, IReceiptFinder receiptFinder, IEnode enode, ISignerStore signerStore, IKeyStore keyStore, ILogManager logManager) { _ecdsa = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa)); _txPool = txPool ?? throw new ArgumentNullException(nameof(txPool)); _blockFinder = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder)); _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder)); _enode = enode ?? throw new ArgumentNullException(nameof(enode)); _signerStore = signerStore ?? throw new ArgumentNullException(nameof(signerStore)); _keyStore = keyStore ?? throw new ArgumentNullException(nameof(keyStore)); }