コード例 #1
0
 public DevBlockProducer(
     ITxSource txSource,
     IBlockchainProcessor processor,
     IStateProvider stateProvider,
     IBlockTree blockTree,
     IBlockProcessingQueue blockProcessingQueue,
     ITxPool txPool,
     ITimestamper timestamper,
     ISpecProvider specProvider,
     IMiningConfig miningConfig,
     ILogManager logManager)
     : base(
         txSource,
         processor,
         new NethDevSealEngine(),
         blockTree,
         blockProcessingQueue,
         stateProvider,
         FollowOtherMiners.Instance,
         timestamper,
         specProvider,
         logManager)
 {
     _txPool          = txPool ?? throw new ArgumentNullException(nameof(txPool));
     _miningConfig    = miningConfig ?? throw new ArgumentNullException(nameof(miningConfig));
     _timer           = new Timer(_timeout.TotalMilliseconds);
     _timer.Elapsed  += TimerOnElapsed;
     _timer.AutoReset = false;
 }
コード例 #2
0
 public NdmRpcConsumerModule(
     IConsumerService consumerService,
     IDepositReportService depositReportService,
     IJsonRpcNdmConsumerChannel jsonRpcNdmConsumerChannel,
     IEthRequestService ethRequestService,
     IEthPriceService ethPriceService,
     IDaiPriceService daiPriceService,
     IGasPriceService gasPriceService,
     IConsumerTransactionsService transactionsService,
     IConsumerGasLimitsService gasLimitsService,
     IWallet personalBridge,
     ITimestamper timestamper)
 {
     _consumerService           = consumerService ?? throw new ArgumentNullException(nameof(consumerService));
     _depositReportService      = depositReportService ?? throw new ArgumentNullException(nameof(depositReportService));
     _jsonRpcNdmConsumerChannel = jsonRpcNdmConsumerChannel ?? throw new ArgumentNullException(nameof(jsonRpcNdmConsumerChannel));
     _ethRequestService         = ethRequestService ?? throw new ArgumentNullException(nameof(ethRequestService));
     _ethPriceService           = ethPriceService ?? throw new ArgumentNullException(nameof(ethPriceService));
     _daiPriceService           = daiPriceService ?? throw new ArgumentNullException(nameof(daiPriceService));
     _gasPriceService           = gasPriceService ?? throw new ArgumentNullException(nameof(gasPriceService));
     _transactionsService       = transactionsService ?? throw new ArgumentNullException(nameof(transactionsService));
     _gasLimitsService          = gasLimitsService ?? throw new ArgumentNullException(nameof(gasLimitsService));
     _wallet      = personalBridge ?? throw new ArgumentNullException(nameof(personalBridge));
     _timestamper = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
 }
コード例 #3
0
ファイル: PowBlockValidator.cs プロジェクト: SpenQ/Prototype
 public PowBlockValidator(IBlockFinalizer blockFinalizer, ITransactionValidator transactionValidator, ITimestamper timestamper, ISigner signer)
 {
     _blockFinalizer       = blockFinalizer ?? throw new ArgumentNullException(nameof(blockFinalizer));
     _transactionValidator = transactionValidator ?? throw new ArgumentNullException(nameof(transactionValidator));
     _timestamper          = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _signer = signer ?? throw new ArgumentNullException(nameof(signer));
 }
コード例 #4
0
 public TestAuraProducer(ITxSource transactionSource,
                         IBlockchainProcessor processor,
                         IStateProvider stateProvider,
                         ISealer sealer,
                         IBlockTree blockTree,
                         IBlockProcessingQueue blockProcessingQueue,
                         ITimestamper timestamper,
                         ILogManager logManager,
                         IAuRaStepCalculator auRaStepCalculator,
                         IReportingValidator reportingValidator,
                         IAuraConfig config,
                         ISpecProvider specProvider)
     : base(
         transactionSource,
         processor,
         stateProvider,
         sealer,
         blockTree,
         blockProcessingQueue,
         timestamper,
         auRaStepCalculator,
         reportingValidator,
         config,
         FollowOtherMiners.Instance,
         specProvider,
         logManager)
 {
 }
コード例 #5
0
 public AuRaBlockProducer(ITxSource txSource,
                          IBlockchainProcessor processor,
                          IBlockProductionTrigger blockProductionTrigger,
                          IStateProvider stateProvider,
                          ISealer sealer,
                          IBlockTree blockTree,
                          ITimestamper timestamper,
                          IAuRaStepCalculator auRaStepCalculator,
                          IReportingValidator reportingValidator,
                          IAuraConfig config,
                          IGasLimitCalculator gasLimitCalculator,
                          ISpecProvider specProvider,
                          ILogManager logManager)
     : base(
         txSource,
         processor,
         sealer,
         blockTree,
         blockProductionTrigger,
         stateProvider,
         gasLimitCalculator,
         timestamper,
         specProvider,
         logManager,
         new AuraDifficultyCalculator(auRaStepCalculator))
 {
     _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator));
     _reportingValidator = reportingValidator ?? throw new ArgumentNullException(nameof(reportingValidator));
     _config             = config ?? throw new ArgumentNullException(nameof(config));
 }
コード例 #6
0
        public CliqueBlockProducer(ITxPool txPool,
                                   IBlockchainProcessor blockchainProcessor,
                                   IBlockTree blockTree,
                                   ITimestamper timestamper,
                                   ICryptoRandom cryptoRandom,
                                   IStateProvider stateProvider,
                                   ISnapshotManager snapshotManager,
                                   ISealer cliqueSealer,
                                   Address address,
                                   ICliqueConfig config,
                                   ILogManager logManager)
        {
            _logger          = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _txPool          = txPool ?? throw new ArgumentNullException(nameof(txPool));
            _processor       = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree       = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider   = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamper     = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
            _cryptoRandom    = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer          = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _snapshotManager = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config          = config ?? throw new ArgumentNullException(nameof(config));
            _address         = address ?? throw new ArgumentNullException(nameof(address));
            _wiggle          = new WiggleRandomizer(_cryptoRandom, _snapshotManager);

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
コード例 #7
0
 public JsonRpcLocalStats(ITimestamper timestamper, IJsonRpcConfig jsonRpcConfig, ILogManager logManager)
 {
     _timestamper       = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _jsonRpcConfig     = jsonRpcConfig ?? throw new ArgumentNullException(nameof(jsonRpcConfig));
     _logger            = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _reportingInterval = TimeSpan.FromSeconds(jsonRpcConfig.ReportIntervalSeconds);
 }
コード例 #8
0
 public void Setup()
 {
     _configProvider            = Substitute.For <IConfigProvider>();
     _configManager             = Substitute.For <IConfigManager>();
     _ndmConfig                 = new NdmConfig();
     _baseDbPath                = "db";
     _rocksProvider             = Substitute.For <IDbProvider>();
     _mongoProvider             = Substitute.For <IMongoProvider>();
     _logManager                = Substitute.For <ILogManager>();
     _blockTree                 = Substitute.For <IBlockTree>();
     _specProvider              = Substitute.For <ISpecProvider>();
     _transactionPool           = Substitute.For <ITxPool>();
     _receiptStorage            = Substitute.For <IReceiptStorage>();
     _filterStore               = Substitute.For <IFilterStore>();
     _filterManager             = Substitute.For <IFilterManager>();
     _wallet                    = Substitute.For <IWallet>();
     _timestamper               = Substitute.For <ITimestamper>();
     _ecdsa                     = Substitute.For <IEthereumEcdsa>();
     _keyStore                  = Substitute.For <IKeyStore>();
     _rpcModuleProvider         = Substitute.For <IRpcModuleProvider>();
     _jsonSerializer            = Substitute.For <IJsonSerializer>();
     _cryptoRandom              = Substitute.For <ICryptoRandom>();
     _enode                     = Substitute.For <IEnode>();
     _ndmConsumerChannelManager = Substitute.For <INdmConsumerChannelManager>();
     _ndmDataPublisher          = Substitute.For <INdmDataPublisher>();
     _grpcServer                = Substitute.For <IGrpcServer>();
     _ethRequestService         = Substitute.For <IEthRequestService>();
     _notifier                  = Substitute.For <INdmNotifier>();
     _enableUnsecuredDevWallet  = false;
     _blockProcessor            = Substitute.For <IBlockProcessor>();
     _ndmModule                 = new NdmModule();
 }
コード例 #9
0
ファイル: SkusCommandHandler.cs プロジェクト: SpenQ/Prototype
 internal SkusCommandHandler(IBlockchainRepository blockchainRepo, ITimestamper timestamper, ISkuRepository skuRepository, string networkIdentifier)
 {
     _blockchainRepo = blockchainRepo;
     _timestamper    = timestamper;
     _skuRepository  = skuRepository;
     _netId          = networkIdentifier;
 }
コード例 #10
0
        /// <summary>
        /// Fetch the current price and volume metrics.
        ///
        /// We don't do this on every single match since that could become noisy quickly.
        /// Instead we do it on a regular clock interval.
        /// </summary>
        /// <param name="timestampService">Optional - the service used for time-stamping the price and volume updates.</param>
        /// <returns>The current price and volume update events.</returns>
        public (IPriceUpdate lastestPrice, IVolumeUpdate latestVolume) FetchMetrics(ITimestamper timestampService = null)
        {
            var currentTime = timestampService?.Now ?? CurrentUtcTimestamper.Instance.Now;

            return(new PriceChanged(TickerSymbol, AvgPrice.CurrentAvg, currentTime),
                   new VolumeChanged(TickerSymbol, AvgVolume.CurrentAvg, currentTime));
        }
コード例 #11
0
        public BlockchainBridge(IStateReader stateReader,
                                IStateProvider stateProvider,
                                IStorageProvider storageProvider,
                                IBlockTree blockTree,
                                ITxPool txPool,
                                IReceiptFinder receiptStorage,
                                IFilterStore filterStore,
                                IFilterManager filterManager,
                                IWallet wallet,
                                ITransactionProcessor transactionProcessor,
                                IEthereumEcdsa ecdsa,
                                IBloomStorage bloomStorage,
                                ITimestamper timestamper,
                                ILogManager logManager,
                                bool isMining,
                                int findLogBlockDepthLimit = 1000)
        {
            _stateReader          = stateReader ?? throw new ArgumentNullException(nameof(stateReader));
            _stateProvider        = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _storageProvider      = storageProvider ?? throw new ArgumentNullException(nameof(storageProvider));
            _blockTree            = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _txPool               = txPool ?? throw new ArgumentNullException(nameof(_txPool));
            _receiptFinder        = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
            _filterStore          = filterStore ?? throw new ArgumentException(nameof(filterStore));
            _filterManager        = filterManager ?? throw new ArgumentException(nameof(filterManager));
            _wallet               = wallet ?? throw new ArgumentException(nameof(wallet));
            _transactionProcessor = transactionProcessor ?? throw new ArgumentException(nameof(transactionProcessor));
            _ecdsa       = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
            _timestamper = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
            IsMining     = isMining;

            _logFinder = new LogFinder(_blockTree, _receiptFinder, bloomStorage, logManager, new ReceiptsRecovery(), findLogBlockDepthLimit);
        }
コード例 #12
0
 protected LoopBlockProducerBase(
     ITxSource txSource,
     IBlockchainProcessor processor,
     ISealer sealer,
     IBlockTree blockTree,
     IBlockProcessingQueue blockProcessingQueue,
     IStateProvider stateProvider,
     ITimestamper timestamper,
     IGasLimitCalculator gasLimitCalculator,
     ISpecProvider specProvider,
     ILogManager logManager,
     string name)
     : base(
         txSource,
         processor,
         sealer,
         blockTree,
         blockProcessingQueue,
         stateProvider,
         gasLimitCalculator,
         timestamper,
         specProvider,
         logManager)
 {
     _name = name;
 }
コード例 #13
0
 public MinedBlockProducer(ITxSource txSource,
                           IBlockchainProcessor processor,
                           ISealer sealer,
                           IBlockTree blockTree,
                           IBlockProcessingQueue blockProcessingQueue,
                           IStateProvider stateProvider,
                           IGasLimitCalculator gasLimitCalculator,
                           ITimestamper timestamper,
                           ISpecProvider specProvider,
                           ILogManager logManager,
                           IDifficultyCalculator difficultyCalculator)
     : base(
         txSource,
         processor,
         sealer,
         blockTree,
         blockProcessingQueue,
         stateProvider,
         gasLimitCalculator,
         timestamper,
         specProvider,
         logManager)
 {
     _difficultyCalculator = difficultyCalculator ?? throw new ArgumentNullException(nameof(difficultyCalculator));
 }
コード例 #14
0
 public DepositManager(IDepositNodesHandlerFactory depositNodesHandlerFactory, ISessionManager sessionManager,
                       IReceiptsPolicies receiptsPolicies, IWallet wallet, Address providerAddress,
                       IReceiptProcessor receiptProcessor, IPaymentClaimProcessor paymentClaimProcessor,
                       IConsumerRepository consumerRepository, IPaymentClaimRepository paymentClaimRepository,
                       IReceiptRepository receiptRepository, IProviderSessionRepository sessionRepository,
                       ITimestamper timestamper, IGasPriceService gasPriceService, ILogManager logManager)
 {
     _depositNodesHandlerFactory = depositNodesHandlerFactory;
     _sessionManager             = sessionManager;
     _receiptsPolicies           = receiptsPolicies;
     _wallet                  = wallet;
     _providerAddress         = providerAddress;
     _receiptProcessor        = receiptProcessor;
     _paymentClaimProcessor   = paymentClaimProcessor;
     _consumerRepository      = consumerRepository;
     _paymentClaimRepository  = paymentClaimRepository;
     _receiptRepository       = receiptRepository;
     _sessionRepository       = sessionRepository;
     _timestamper             = timestamper;
     _gasPriceService         = gasPriceService;
     _logger                  = logManager.GetClassLogger();
     _wallet.AccountLocked   += OnAccountLocked;
     _wallet.AccountUnlocked += OnAccountUnlocked;
     _accountLocked           = !_wallet.IsUnlocked(_providerAddress);
 }
コード例 #15
0
        public void SetUp()
        {
            _stepDelay = TimeSpan.FromMilliseconds(20);

            _pendingTxSelector   = Substitute.For <IPendingTxSelector>();
            _blockchainProcessor = Substitute.For <IBlockchainProcessor>();
            _sealer               = Substitute.For <ISealer>();
            _blockTree            = Substitute.For <IBlockTree>();
            _blockProcessingQueue = Substitute.For <IBlockProcessingQueue>();
            _stateProvider        = Substitute.For <IStateProvider>();
            _timestamper          = Substitute.For <ITimestamper>();
            _auRaStepCalculator   = Substitute.For <IAuRaStepCalculator>();
            _auraConfig           = Substitute.For <IAuraConfig>();
            _nodeAddress          = TestItem.AddressA;
            _auRaBlockProducer    = new AuRaBlockProducer(
                _pendingTxSelector,
                _blockchainProcessor,
                _stateProvider,
                _sealer,
                _blockTree,
                _blockProcessingQueue,
                _timestamper,
                LimboLogs.Instance, _auRaStepCalculator, _auraConfig, _nodeAddress);

            _auraConfig.ForceSealing.Returns(true);
            _pendingTxSelector.SelectTransactions(Arg.Any <long>()).Returns(Array.Empty <Transaction>());
            _sealer.CanSeal(Arg.Any <long>(), Arg.Any <Keccak>()).Returns(true);
            _sealer.SealBlock(Arg.Any <Block>(), Arg.Any <CancellationToken>()).Returns(c => Task.FromResult(c.Arg <Block>()));
            _blockProcessingQueue.IsEmpty.Returns(true);
            _auRaStepCalculator.TimeToNextStep.Returns(_stepDelay);
            _blockTree.BestKnownNumber.Returns(1);
            _blockTree.Head.Returns(Build.A.BlockHeader.WithAura(10, Bytes.Empty).TestObject);
            _blockchainProcessor.Process(Arg.Any <Block>(), ProcessingOptions.ProducingBlock, Arg.Any <IBlockTracer>()).Returns(c => c.Arg <Block>());
        }
コード例 #16
0
ファイル: DiscoveryApp.cs プロジェクト: vicnaum/nethermind
 public DiscoveryApp(
     INodesLocator nodesLocator,
     IDiscoveryManager discoveryManager,
     INodeTable nodeTable,
     IMessageSerializationService messageSerializationService,
     ICryptoRandom cryptoRandom,
     INetworkStorage discoveryStorage,
     INetworkConfig networkConfig,
     IDiscoveryConfig discoveryConfig,
     ITimestamper timestamper,
     ILogManager logManager,
     IPerfService perfService)
 {
     _logManager                  = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _logger                      = _logManager.GetClassLogger();
     _perfService                 = perfService ?? throw new ArgumentNullException(nameof(perfService));
     _discoveryConfig             = discoveryConfig ?? throw new ArgumentNullException(nameof(discoveryConfig));
     _timestamper                 = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _nodesLocator                = nodesLocator ?? throw new ArgumentNullException(nameof(nodesLocator));
     _discoveryManager            = discoveryManager ?? throw new ArgumentNullException(nameof(discoveryManager));
     _nodeTable                   = nodeTable ?? throw new ArgumentNullException(nameof(nodeTable));
     _messageSerializationService = messageSerializationService ?? throw new ArgumentNullException(nameof(messageSerializationService));
     _cryptoRandom                = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _discoveryStorage            = discoveryStorage ?? throw new ArgumentNullException(nameof(discoveryStorage));
     _networkConfig               = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig));
     _discoveryStorage.StartBatch();
 }
コード例 #17
0
        public void Initialize()
        {
            NetworkNodeDecoder.Init();
            var privateKey = new PrivateKey(TestPrivateKeyHex);

            _publicKey = privateKey.PublicKey;
            var logManager = NullLogManager.Instance;

            IDiscoveryConfig discoveryConfig = new DiscoveryConfig();

            discoveryConfig.PongTimeout = 100;

            IStatsConfig statsConfig = new StatsConfig();

            _messageSender = Substitute.For <IMessageSender>();
            var calculator = new NodeDistanceCalculator(discoveryConfig);

            _networkConfig.ExternalIp = "99.10.10.66";
            _networkConfig.LocalIp    = "10.0.0.5";

            _nodeTable = new NodeTable(calculator, discoveryConfig, _networkConfig, logManager);
            _nodeTable.Initialize(TestItem.PublicKeyA);

            _timestamper = new Timestamper();

            var evictionManager  = new EvictionManager(_nodeTable, logManager);
            var lifecycleFactory = new NodeLifecycleManagerFactory(_nodeTable, new DiscoveryMessageFactory(_timestamper), evictionManager, new NodeStatsManager(statsConfig, logManager), discoveryConfig, logManager);

            _nodes = new[] { new Node("192.168.1.18", 1), new Node("192.168.1.19", 2) };

            IFullDb nodeDb = new SimpleFilePublicKeyDb("Test", "test_db", logManager);

            _discoveryManager = new DiscoveryManager(lifecycleFactory, _nodeTable, new NetworkStorage(nodeDb, logManager), discoveryConfig, logManager);
            _discoveryManager.MessageSender = _messageSender;
        }
コード例 #18
0
 /// <summary>
 /// </summary>
 /// <param name="txPool">TX pool / mempool that stores all pending transactions.</param>
 /// <param name="wallet">Wallet for new transactions signing</param>
 /// <param name="timestamper">Timestamper for stamping the arrinving transactions.</param>
 /// <param name="chainId">Chain ID to signing transactions for.</param>
 public TxPoolBridge(ITxPool txPool, IWallet wallet, ITimestamper timestamper, int chainId)
 {
     _txPool      = txPool ?? throw new ArgumentNullException(nameof(txPool));
     _wallet      = wallet ?? throw new ArgumentNullException(nameof(wallet));
     _timestamper = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _chainId     = chainId;
 }
コード例 #19
0
 public SessionManager(IProviderSessionRepository sessionRepository, ITimestamper timestamper,
                       ILogManager logManager)
 {
     _sessionRepository = sessionRepository;
     _timestamper       = timestamper;
     _logger            = logManager.GetClassLogger();
 }
コード例 #20
0
        public void Setup()
        {
            _depositNodesHandlerFactory = Substitute.For <IDepositNodesHandlerFactory>();
            _sessionManager             = Substitute.For <ISessionManager>();
            _receiptsPolicies           = Substitute.For <IReceiptsPolicies>();
            _receiptProcessor           = Substitute.For <IReceiptProcessor>();
            _paymentClaimProcessor      = Substitute.For <IPaymentClaimProcessor>();
            _consumerRepository         = Substitute.For <IConsumerRepository>();
            _paymentClaimRepository     = Substitute.For <IPaymentClaimRepository>();
            _sessionRepository          = Substitute.For <IProviderSessionRepository>();
            _sessionRepository.BrowseAsync(Arg.Any <GetProviderSessions>()).Returns(PagedResult <ProviderSession> .Empty);
            _receiptRepository = Substitute.For <IReceiptRepository>();
            var unixTime = UnixTime.FromSeconds(100);

            _timestamper = Substitute.For <ITimestamper>();
            _timestamper.UnixTime.Returns(unixTime);
            _gasPriceService     = Substitute.For <IGasPriceService>();
            _logManager          = Substitute.For <ILogManager>();
            _wallet              = Substitute.For <IWallet>();
            _address             = Address.Zero;
            _consumer            = Address.Zero;
            _depositNodesHandler = new InMemoryDepositNodesHandler(Keccak.Zero, _consumer, DataAssetUnitType.Unit, 0,
                                                                   100, 0,
                                                                   0, 0, 0, 0, 0, 0, null, null, 0);
            _depositNodesHandlerFactory.CreateInMemory(Arg.Any <Keccak>(), _consumer, Arg.Any <DataAssetUnitType>(),
                                                       Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <UInt256>(), Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <uint>(),
                                                       Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <uint>(), Arg.Any <PaymentClaim>(),
                                                       Arg.Any <IEnumerable <DataDeliveryReceiptDetails> >(), Arg.Any <uint>()).Returns(_depositNodesHandler);
            _depositManager = new DepositManager(_depositNodesHandlerFactory, _sessionManager, _receiptsPolicies,
                                                 _wallet, _address, _receiptProcessor, _paymentClaimProcessor, _consumerRepository,
                                                 _paymentClaimRepository, _receiptRepository, _sessionRepository, _timestamper, _gasPriceService,
                                                 _logManager);
        }
コード例 #21
0
 public BlockchainBridge(
     ReadOnlyTxProcessingEnv processingEnv,
     ITxPool txPool,
     IReceiptFinder receiptStorage,
     IFilterStore filterStore,
     IFilterManager filterManager,
     IEthereumEcdsa ecdsa,
     IBloomStorage bloomStorage,
     ITimestamper timestamper,
     ILogManager logManager,
     bool isMining,
     int findLogBlockDepthLimit          = 1000,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     _processingEnv        = processingEnv ?? throw new ArgumentNullException(nameof(processingEnv));
     _stateReader          = processingEnv.StateReader ?? throw new ArgumentNullException(nameof(processingEnv.StateReader));
     _stateProvider        = processingEnv.StateProvider ?? throw new ArgumentNullException(nameof(processingEnv.StateProvider));
     _blockTree            = processingEnv.BlockTree ?? throw new ArgumentNullException(nameof(processingEnv.BlockTree));
     _transactionProcessor = processingEnv.TransactionProcessor ?? throw new ArgumentException(nameof(processingEnv.TransactionProcessor));
     _txPool        = txPool ?? throw new ArgumentNullException(nameof(_txPool));
     _receiptFinder = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
     _filterStore   = filterStore ?? throw new ArgumentException(nameof(filterStore));
     _filterManager = filterManager ?? throw new ArgumentException(nameof(filterManager));
     _ecdsa         = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
     _timestamper   = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     IsMining       = isMining;
     _logFinder     = new LogFinder(_blockTree, _receiptFinder, bloomStorage, logManager, new ReceiptsRecovery(), findLogBlockDepthLimit);
 }
コード例 #22
0
        public UserOperationSimulator(
            IUserOperationTxBuilder userOperationTxBuilder,
            IStateProvider stateProvider,
            IStateReader stateReader,
            AbiDefinition entryPointContractAbi,
            Address create2FactoryAddress,
            Address entryPointContractAddress,
            ISpecProvider specProvider,
            IBlockTree blockTree,
            IDbProvider dbProvider,
            IReadOnlyTrieStore trieStore,
            ITimestamper timestamper,
            ILogManager logManager)
        {
            _userOperationTxBuilder    = userOperationTxBuilder;
            _stateProvider             = stateProvider;
            _stateReader               = stateReader;
            _entryPointContractAbi     = entryPointContractAbi;
            _create2FactoryAddress     = create2FactoryAddress;
            _entryPointContractAddress = entryPointContractAddress;
            _specProvider              = specProvider;
            _blockTree   = blockTree;
            _dbProvider  = dbProvider.AsReadOnly(false);
            _trieStore   = trieStore;
            _timestamper = timestamper;
            _logManager  = logManager;

            _abiEncoder = new AbiEncoder();
        }
コード例 #23
0
 public PostMergeBlockProducer(
     ITxSource txSource,
     IBlockchainProcessor processor,
     IBlockTree blockTree,
     IBlockProductionTrigger blockProductionTrigger,
     IStateProvider stateProvider,
     IGasLimitCalculator gasLimitCalculator,
     ISealEngine sealEngine,
     ITimestamper timestamper,
     ISpecProvider specProvider,
     ILogManager logManager)
     : base(
         txSource,
         processor,
         sealEngine,
         blockTree,
         blockProductionTrigger,
         stateProvider,
         gasLimitCalculator,
         timestamper,
         specProvider,
         logManager,
         ConstantDifficulty.Zero)
 {
 }
コード例 #24
0
 public BlockchainBridge(ReadOnlyTxProcessingEnv processingEnv,
                         ITxPool?txPool,
                         IReceiptFinder?receiptStorage,
                         IFilterStore?filterStore,
                         IFilterManager?filterManager,
                         IEthereumEcdsa?ecdsa,
                         ITimestamper?timestamper,
                         ILogFinder?logFinder,
                         ISpecProvider specProvider,
                         bool isMining)
 {
     _processingEnv        = processingEnv ?? throw new ArgumentNullException(nameof(processingEnv));
     _stateReader          = processingEnv.StateReader ?? throw new ArgumentNullException(nameof(processingEnv.StateReader));
     _stateProvider        = processingEnv.StateProvider ?? throw new ArgumentNullException(nameof(processingEnv.StateProvider));
     _blockTree            = processingEnv.BlockTree ?? throw new ArgumentNullException(nameof(processingEnv.BlockTree));
     _transactionProcessor = processingEnv.TransactionProcessor ?? throw new ArgumentNullException(nameof(processingEnv.TransactionProcessor));
     _txPool        = txPool ?? throw new ArgumentNullException(nameof(_txPool));
     _receiptFinder = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
     _filterStore   = filterStore ?? throw new ArgumentNullException(nameof(filterStore));
     _filterManager = filterManager ?? throw new ArgumentNullException(nameof(filterManager));
     _ecdsa         = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
     _timestamper   = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _logFinder     = logFinder ?? throw new ArgumentNullException(nameof(logFinder));
     _specProvider  = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     IsMining       = isMining;
 }
コード例 #25
0
        public CliqueBlockProducer(
            ITxSource txSource,
            IBlockchainProcessor blockchainProcessor,
            IStateProvider stateProvider,
            IBlockTree blockTree,
            ITimestamper timestamper,
            ICryptoRandom cryptoRandom,
            ISnapshotManager snapshotManager,
            ISealer cliqueSealer,
            IGasLimitCalculator gasLimitCalculator,
            ISpecProvider?specProvider,
            ICliqueConfig config,
            ILogManager logManager)
        {
            _logger             = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _txSource           = txSource ?? throw new ArgumentNullException(nameof(txSource));
            _processor          = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree          = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider      = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamper        = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
            _cryptoRandom       = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer             = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _gasLimitCalculator = gasLimitCalculator ?? throw new ArgumentNullException(nameof(gasLimitCalculator));
            _specProvider       = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
            _snapshotManager    = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config             = config ?? throw new ArgumentNullException(nameof(config));
            _wiggle             = new WiggleRandomizer(_cryptoRandom, _snapshotManager);

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
コード例 #26
0
 public AuRaBlockProducer(ITxSource txSource,
                          IBlockchainProcessor processor,
                          IStateProvider stateProvider,
                          ISealer sealer,
                          IBlockTree blockTree,
                          IBlockProcessingQueue blockProcessingQueue,
                          ITimestamper timestamper,
                          IAuRaStepCalculator auRaStepCalculator,
                          IReportingValidator reportingValidator,
                          IAuraConfig config,
                          IGasLimitCalculator gasLimitCalculator,
                          ISpecProvider specProvider,
                          ILogManager logManager)
     : base(
         new ValidatedTxSource(txSource, logManager),
         processor,
         sealer,
         blockTree,
         blockProcessingQueue,
         stateProvider,
         timestamper,
         gasLimitCalculator,
         specProvider,
         logManager,
         "AuRa")
 {
     _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator));
     _reportingValidator = reportingValidator ?? throw new ArgumentNullException(nameof(reportingValidator));
     _config             = config ?? throw new ArgumentNullException(nameof(config));
     _canProduce         = _config.AllowAuRaPrivateChains ? 1 : 0;
 }
コード例 #27
0
 public AuRaStepCalculator(IDictionary <long, long> stepDurations, ITimestamper timestamper, ILogManager logManager)
 {
     _logger = logManager?.GetClassLogger <AuRaStepCalculator>() ?? throw new ArgumentNullException(nameof(logManager));
     ValidateStepDurations(stepDurations);
     _stepDurations = CreateStepDurations(stepDurations);
     _timestamper   = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
 }
コード例 #28
0
ファイル: NdmInitializer.cs プロジェクト: phahulin/nethermind
        public virtual async Task<INdmCapabilityConnector> InitAsync(IConfigProvider configProvider,
            IDbProvider dbProvider, string baseDbPath, IBlockTree blockTree,
            ITxPool txPool, ISpecProvider specProvider, IReceiptStorage receiptStorage, IWallet wallet,
            IFilterStore filterStore, IFilterManager filterManager,
            ITimestamper timestamper, IEthereumEcdsa ecdsa, IRpcModuleProvider rpcModuleProvider, IKeyStore keyStore,
            IJsonSerializer jsonSerializer, ICryptoRandom cryptoRandom, IEnode enode,
            INdmConsumerChannelManager consumerChannelManager, INdmDataPublisher dataPublisher, IGrpcServer grpcServer,
            INodeStatsManager nodeStatsManager, IProtocolsManager protocolsManager,
            IProtocolValidator protocolValidator, IMessageSerializationService messageSerializationService,
            bool enableUnsecuredDevWallet, IWebSocketsManager webSocketsManager, ILogManager logManager,
            IBlockProcessor blockProcessor)
        {
            var (config, services, faucet, accountService, consumerService, consumerAddress, providerAddress) =
                await PreInitAsync(configProvider, dbProvider, baseDbPath, blockTree, txPool, specProvider,
                    receiptStorage, wallet, filterStore, filterManager, timestamper, ecdsa, rpcModuleProvider, keyStore,
                    jsonSerializer, cryptoRandom, enode, consumerChannelManager, dataPublisher, grpcServer,
                    enableUnsecuredDevWallet, webSocketsManager, logManager, blockProcessor);
            if (!config.Enabled)
            {
                return default;
            }

            var subprotocolFactory = new NdmSubprotocolFactory(messageSerializationService, nodeStatsManager,
                logManager, accountService, consumerService, consumerChannelManager, ecdsa, wallet, faucet,
                enode.PublicKey, providerAddress, consumerAddress, config.VerifyP2PSignature);
            var protocolHandlerFactory = new ProtocolHandlerFactory(subprotocolFactory, protocolValidator,
                services.RequiredServices.EthRequestService, logManager);
            var capabilityConnector = new NdmCapabilityConnector(protocolsManager, protocolHandlerFactory,
                accountService, logManager);

            return capabilityConnector;
        }
コード例 #29
0
 public PowBlockCreator(ITimestamper timestamper, IBlockValidator validator, IBlockFinalizer blockFinalizer, ITransactionValidator transactionValidator)
 {
     _timestamper          = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _validator            = validator ?? throw new ArgumentNullException(nameof(validator));
     _blockFinalizer       = blockFinalizer ?? throw new ArgumentNullException(nameof(blockFinalizer));
     _transactionValidator = transactionValidator ?? throw new ArgumentNullException(nameof(transactionValidator));
     EventPublisher.GetInstance().OnValidatedBlockCreated += OnValidatedBlockCreated;
 }
コード例 #30
0
 public NettyDiscoveryHandler(IDiscoveryManager discoveryManager, IDatagramChannel channel, IMessageSerializationService messageSerializationService, ITimestamper timestamper, ILogManager logManager)
 {
     _logger                      = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _discoveryManager            = discoveryManager ?? throw new ArgumentNullException(nameof(discoveryManager));
     _channel                     = channel ?? throw new ArgumentNullException(nameof(channel));
     _messageSerializationService = messageSerializationService ?? throw new ArgumentNullException(nameof(messageSerializationService));
     _timestamper                 = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
 }