Esempio n. 1
0
        public void Mining_defaults_are_correct(string configFile, bool defaultValue = false)
        {
            ConfigProvider configProvider = GetConfigProviderFromFile(configFile);
            IInitConfig    config         = configProvider.GetConfig <IInitConfig>();

            Assert.AreEqual(config.IsMining, defaultValue);
        }
Esempio n. 2
0
        public void IsMining_enabled_for_ndm_consumer_local(string configFile)
        {
            ConfigProvider configProvider = GetConfigProviderFromFile(configFile);
            IInitConfig    config         = configProvider.GetConfig <IInitConfig>();

            Assert.AreEqual(true, config.IsMining);
        }
Esempio n. 3
0
        private void InitDbApi(IInitConfig initConfig, IDbConfig dbConfig, bool storeReceipts)
        {
            switch (initConfig.DiagnosticMode)
            {
            case DiagnosticMode.RpcDb:
                _api.DbProvider = new DbProvider(DbModeHint.Persisted);
                RocksDbFactory rocksDbFactory = new(dbConfig, _api.LogManager, Path.Combine(initConfig.BaseDbPath, "debug"));
                RpcDbFactory   rpcDbFactory   = new(new MemDbFactory(), rocksDbFactory, _api.EthereumJsonSerializer, new BasicJsonRpcClient(new Uri(initConfig.RpcDbUrl), _api.EthereumJsonSerializer, _api.LogManager), _api.LogManager);
                _api.RocksDbFactory = rpcDbFactory;
                _api.MemDbFactory   = rpcDbFactory;
                break;

            case DiagnosticMode.ReadOnlyDb:
                DbProvider rocksDbProvider = new(DbModeHint.Persisted);
                _api.DbProvider = new ReadOnlyDbProvider(rocksDbProvider, storeReceipts);     // ToDo storeReceipts as createInMemoryWriteStore - bug?
                _api.DisposeStack.Push(rocksDbProvider);
                _api.RocksDbFactory = new RocksDbFactory(dbConfig, _api.LogManager, Path.Combine(initConfig.BaseDbPath, "debug"));
                _api.MemDbFactory   = new MemDbFactory();
                break;

            case DiagnosticMode.MemDb:
                _api.DbProvider     = new DbProvider(DbModeHint.Mem);
                _api.RocksDbFactory = new RocksDbFactory(dbConfig, _api.LogManager, Path.Combine(initConfig.BaseDbPath, "debug"));
                _api.MemDbFactory   = new MemDbFactory();
                break;

            default:
                _api.DbProvider     = new DbProvider(DbModeHint.Persisted);
                _api.RocksDbFactory = new RocksDbFactory(dbConfig, _api.LogManager, initConfig.BaseDbPath);
                _api.MemDbFactory   = new MemDbFactory();
                break;
            }
        }
Esempio n. 4
0
        public EthereumRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider,
                              ILogManager logManager, IGrpcServer grpcServer,
                              INdmConsumerChannelManager ndmConsumerChannelManager, INdmDataPublisher ndmDataPublisher,
                              INdmInitializer ndmInitializer, IWebSocketsManager webSocketsManager,
                              IJsonSerializer ethereumJsonSerializer)
        {
            _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _grpcServer = grpcServer;
            _ndmConsumerChannelManager = ndmConsumerChannelManager;
            _ndmDataPublisher          = ndmDataPublisher;
            _ndmInitializer            = ndmInitializer;
            _webSocketsManager         = webSocketsManager;
            _ethereumJsonSerializer    = ethereumJsonSerializer;
            _logger = _logManager.GetClassLogger();

            InitRlp();
            _configProvider    = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider));
            _initConfig        = configurationProvider.GetConfig <IInitConfig>();
            _txPoolConfig      = configurationProvider.GetConfig <ITxPoolConfig>();
            _perfService       = new PerfService(_logManager);

            _networkConfig            = _configProvider.GetConfig <INetworkConfig>();
            _ipResolver               = new IpResolver(_networkConfig, _logManager);
            _networkConfig.ExternalIp = _ipResolver.ExternalIp.ToString();
            _networkConfig.LocalIp    = _ipResolver.LocalIp.ToString();
        }
Esempio n. 5
0
        public async Task Execute(CancellationToken _)
        {
            ILogger logger = _api.LogManager.GetClassLogger();

            /* sync */
            IDbConfig      dbConfig      = _api.Config <IDbConfig>();
            ISyncConfig    syncConfig    = _api.Config <ISyncConfig>();
            IInitConfig    initConfig    = _api.Config <IInitConfig>();
            IPruningConfig pruningConfig = _api.Config <IPruningConfig>();

            foreach (PropertyInfo propertyInfo in typeof(IDbConfig).GetProperties())
            {
                if (logger.IsDebug)
                {
                    logger.Debug($"DB {propertyInfo.Name}: {propertyInfo.GetValue(dbConfig)}");
                }
            }

            try
            {
                bool useReceiptsDb = initConfig.StoreReceipts || syncConfig.DownloadReceiptsInFastSync;
                InitDbApi(initConfig, dbConfig, initConfig.StoreReceipts || syncConfig.DownloadReceiptsInFastSync);
                StandardDbInitializer dbInitializer = new(_api.DbProvider, _api.RocksDbFactory, _api.MemDbFactory, _api.FileSystem, pruningConfig.Mode.IsFull());
                await dbInitializer.InitStandardDbsAsync(useReceiptsDb);
            }
            catch (TypeInitializationException e)
            {
                if (logger.IsError)
                {
                    logger.Error("RocksDb was not found, please make sure it is installed on your machine. \n On macOs : 'brew install rocksdb'", e);
                }
            }
        }
Esempio n. 6
0
        public Task Init(INethermindApi api)
        {
            _api = api;
            var(getFromAPi, _) = _api.ForInit;
            _analyticsConfig   = getFromAPi.Config <IAnalyticsConfig>();

            IInitConfig initConfig = getFromAPi.Config <IInitConfig>();

            _isOn = initConfig.WebSocketsEnabled &&
                    (_analyticsConfig.PluginsEnabled ||
                     _analyticsConfig.StreamBlocks ||
                     _analyticsConfig.StreamTransactions);

            if (!_isOn)
            {
                if (!initConfig.WebSocketsEnabled)
                {
                    getFromAPi.LogManager.GetClassLogger().Warn($"{nameof(AnalyticsPlugin)} disabled due to {nameof(initConfig.WebSocketsEnabled)} set to false");
                }
                else
                {
                    getFromAPi.LogManager.GetClassLogger().Warn($"{nameof(AnalyticsPlugin)} plugin disabled due to {nameof(AnalyticsConfig)} settings set to false");
                }
            }

            return(Task.CompletedTask);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        public async Task Execute()
        {
            ILogger logger = _context.LogManager.GetClassLogger();

            /* sync */
            IDbConfig   dbConfig   = _context.Config <IDbConfig>();
            ISyncConfig syncConfig = _context.Config <ISyncConfig>();
            IInitConfig initConfig = _context.Config <IInitConfig>();

            foreach (PropertyInfo propertyInfo in typeof(IDbConfig).GetProperties())
            {
                if (logger.IsDebug)
                {
                    logger.Debug($"DB {propertyInfo.Name}: {propertyInfo.GetValue(dbConfig)}");
                }
            }

            _context.DbProvider = await GetDbProvider(initConfig, dbConfig, initConfig.StoreReceipts || syncConfig.DownloadReceiptsInFastSync);

            if (syncConfig.BeamSync)
            {
                BeamSyncDbProvider beamSyncProvider = new BeamSyncDbProvider(_context.DbProvider, "processor DB", _context.LogManager);
                _context.DbProvider       = beamSyncProvider;
                _context.NodeDataConsumer = beamSyncProvider.NodeDataConsumer;
            }
        }
Esempio n. 9
0
        public void Genesis_hash_is_correct(string configFile, string genesisHash)
        {
            ConfigProvider configProvider = GetConfigProviderFromFile(configFile);
            IInitConfig    config         = configProvider.GetConfig <IInitConfig>();

            Assert.AreEqual(config.GenesisHash, genesisHash);
        }
Esempio n. 10
0
        public Task Run(string[] args)
        {
            (CommandLineApplication app, var buildConfigProvider, var getDbBasePath) = BuildCommandLineApp();

            ManualResetEventSlim appClosed = new ManualResetEventSlim(true);

            app.OnExecute(async() =>
            {
                appClosed.Reset();
                IConfigProvider configProvider = buildConfigProvider();
                IInitConfig initConfig         = configProvider.GetConfig <IInitConfig>();
                _logger = new NLogLogger(initConfig.LogFileName, initConfig.LogDirectory);
                if (_logger.IsDebug)
                {
                    _logger.Debug($"Nethermind version: {ClientVersion.Description}");
                }
                LogMemoryConfiguration();

                string?pathDbPath = getDbBasePath();
                if (!string.IsNullOrWhiteSpace(pathDbPath))
                {
                    string newDbPath = Path.Combine(pathDbPath, initConfig.BaseDbPath);
                    if (_logger.IsDebug)
                    {
                        _logger.Debug(
                            $"Adding prefix to baseDbPath, new value: {newDbPath}, old value: {initConfig.BaseDbPath}");
                    }
                    initConfig.BaseDbPath =
                        newDbPath ?? Path.Combine(AppDomain.CurrentDomain.BaseDirectory ?? "", "db");
                }

                Console.Title           = initConfig.LogFileName;
                Console.CancelKeyPress += ConsoleOnCancelKeyPress;

                EthereumJsonSerializer serializer = new EthereumJsonSerializer();
                if (_logger.IsDebug)
                {
                    _logger.Debug($"Nethermind config:\n{serializer.Serialize(initConfig, true)}\n");
                }

                _processExit     = new TaskCompletionSource <object?>();
                _cancelKeySource = new TaskCompletionSource <object?>();

                await StartRunners(_processCloseCancellationSource.Token, configProvider);

                await Task.WhenAny(_cancelKeySource.Task, _processExit.Task);

                Console.WriteLine("Closing, please wait until all functions are stopped properly...");
                StopAsync().Wait();
                Console.WriteLine("All done, goodbye!");
                appClosed.Set();

                return(0);
            });

            app.Execute(args);
            appClosed.Wait();
            return(Task.CompletedTask);
        }
Esempio n. 11
0
 public ApplyMemoryHint(EthereumRunnerContext context)
 {
     _context       = context ?? throw new ArgumentNullException(nameof(context));
     _initConfig    = context.Config <IInitConfig>();
     _dbConfig      = context.Config <IDbConfig>();
     _networkConfig = context.Config <INetworkConfig>();
     _syncConfig    = context.Config <ISyncConfig>();
 }
Esempio n. 12
0
 public EthereumRunner(IConfigProvider configurationProvider, INetworkHelper networkHelper,
                       ILogManager logManager)
 {
     _configProvider = configurationProvider;
     _initConfig     = configurationProvider.GetConfig <IInitConfig>();
     _networkHelper  = networkHelper;
     _logManager     = logManager;
 }
Esempio n. 13
0
 public JsonRpcRunner(IConfigProvider configurationProvider, IRpcModuleProvider moduleProvider, Log.ILogManager logManager)
 {
     _jsonRpcConfig  = configurationProvider.GetConfig <IJsonRpcConfig>();
     _initConfig     = configurationProvider.GetConfig <IInitConfig>();
     _moduleProvider = moduleProvider ?? throw new ArgumentNullException(nameof(moduleProvider));
     _logManager     = logManager;
     _logger         = logManager.GetClassLogger();
 }
Esempio n. 14
0
 public ApiBuilder(IConfigProvider configProvider, ILogManager logManager)
 {
     _logManager     = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _logger         = _logManager.GetClassLogger();
     _configProvider = configProvider ?? throw new ArgumentNullException(nameof(configProvider));
     _initConfig     = configProvider.GetConfig <IInitConfig>();
     _jsonSerializer = new EthereumJsonSerializer();
 }
Esempio n. 15
0
 public ApplyMemoryHint(NethermindApi context)
 {
     _api           = context ?? throw new ArgumentNullException(nameof(context));
     _initConfig    = context.Config <IInitConfig>();
     _dbConfig      = context.Config <IDbConfig>();
     _networkConfig = context.Config <INetworkConfig>();
     _syncConfig    = context.Config <ISyncConfig>();
     _txPoolConfig  = context.Config <ITxPoolConfig>();
 }
Esempio n. 16
0
 public void Setup()
 {
     _dbConfig      = new DbConfig();
     _syncConfig    = new SyncConfig();
     _initConfig    = new InitConfig();
     _txPoolConfig  = new TxPoolConfig();
     _networkConfig = new NetworkConfig();
     _memoryHintMan = new MemoryHintMan(LimboLogs.Instance);
 }
Esempio n. 17
0
 public ApplyMemoryHint(INethermindApi api)
 {
     _api           = api ?? throw new ArgumentNullException(nameof(api));
     _initConfig    = api.Config <IInitConfig>();
     _dbConfig      = api.Config <IDbConfig>();
     _networkConfig = api.Config <INetworkConfig>();
     _syncConfig    = api.Config <ISyncConfig>();
     _txPoolConfig  = api.Config <ITxPoolConfig>();
 }
Esempio n. 18
0
        private async Task <RocksDbProvider> GetRocksDbProvider(IDbConfig dbConfig, string basePath, bool useReceiptsDb)
        {
            IInitConfig     initConfig    = _context.Config <IInitConfig>();
            RocksDbProvider debugRecorder = new RocksDbProvider(_context.LogManager, _context.Config <INdmConfig>().Enabled);

            ThisNodeInfo.AddInfo("DB location  :", $"{basePath}");
            await debugRecorder.Init(basePath, dbConfig, useReceiptsDb);

            return(debugRecorder);
        }
Esempio n. 19
0
 public ReceiptMigration(NethermindApi context)
 {
     _logger                   = context.LogManager.GetClassLogger <ReceiptMigration>();
     _receiptStorage           = context.ReceiptStorage ?? throw new StepDependencyException(nameof(context.ReceiptStorage));
     _dbProvider               = context.DbProvider ?? throw new StepDependencyException(nameof(context.DbProvider));
     _disposeStack             = context.DisposeStack ?? throw new StepDependencyException(nameof(context.DisposeStack));
     _blockTree                = context.BlockTree ?? throw new StepDependencyException(nameof(context.BlockTree));
     _syncModeSelector         = context.SyncModeSelector ?? throw new StepDependencyException(nameof(context.SyncModeSelector));
     _chainLevelInfoRepository = context.ChainLevelInfoRepository ?? throw new StepDependencyException(nameof(context.ChainLevelInfoRepository));
     _initConfig               = context.Config <IInitConfig>() ?? throw new StepDependencyException("initConfig");
 }
Esempio n. 20
0
 public ReceiptMigration(IApiWithNetwork api)
 {
     _logger                   = api.LogManager.GetClassLogger <ReceiptMigration>();
     _receiptStorage           = api.ReceiptStorage ?? throw new StepDependencyException(nameof(api.ReceiptStorage));
     _dbProvider               = api.DbProvider ?? throw new StepDependencyException(nameof(api.DbProvider));
     _disposeStack             = api.DisposeStack ?? throw new StepDependencyException(nameof(api.DisposeStack));
     _blockTree                = api.BlockTree ?? throw new StepDependencyException(nameof(api.BlockTree));
     _syncModeSelector         = api.SyncModeSelector ?? throw new StepDependencyException(nameof(api.SyncModeSelector));
     _chainLevelInfoRepository = api.ChainLevelInfoRepository ?? throw new StepDependencyException(nameof(api.ChainLevelInfoRepository));
     _initConfig               = api.Config <IInitConfig>() ?? throw new StepDependencyException("initConfig");
 }
Esempio n. 21
0
 public JsonRpcRunner(IConfigProvider configurationProvider, IRpcModuleProvider moduleProvider,
                      ILogManager logManager, IJsonRpcProcessor jsonRpcProcessor, IWebSocketsManager webSocketsManager)
 {
     _jsonRpcConfig         = configurationProvider.GetConfig <IJsonRpcConfig>();
     _initConfig            = configurationProvider.GetConfig <IInitConfig>();
     _configurationProvider = configurationProvider;
     _moduleProvider        = moduleProvider ?? throw new ArgumentNullException(nameof(moduleProvider));
     _logManager            = logManager;
     _jsonRpcProcessor      = jsonRpcProcessor;
     _webSocketsManager     = webSocketsManager;
     _logger = logManager.GetClassLogger();
 }
Esempio n. 22
0
        public async Task InitNetworkProtocol()
        {
            var(getFromAPi, _) = _api.ForNetwork;
            INetworkConfig networkConfig = _api.Config <INetworkConfig>();
            IInitConfig    initConfig    = _api.Config <IInitConfig>();

            if (_isOn)
            {
                string instanceId = $"{_ethStatsConfig.Name}-{Keccak.Compute(getFromAPi.Enode!.Info)}";
                if (_logger.IsInfo)
                {
                    _logger.Info($"Initializing ETH Stats for the instance: {instanceId}, server: {_ethStatsConfig.Server}");
                }
                MessageSender sender = new(instanceId, _api.LogManager);
                const int     reconnectionInterval = 5000;
                const string  api              = "no";
                const string  client           = "0.1.1";
                const bool    canUpdateHistory = false;
                string        node             = ClientVersion.Description;
                int           port             = networkConfig.P2PPort;
                string        network          = _api.SpecProvider !.ChainId.ToString();
                string        protocol         = $"{P2PProtocolInfoProvider.DefaultCapabilitiesToString()}";

                _ethStatsClient = new EthStatsClient(
                    _ethStatsConfig.Server,
                    reconnectionInterval,
                    sender,
                    _api.LogManager);

                _ethStatsIntegration = new EthStatsIntegration(
                    _ethStatsConfig.Name !,
                    node,
                    port,
                    network,
                    protocol,
                    api,
                    client,
                    _ethStatsConfig.Contact !,
                    canUpdateHistory,
                    _ethStatsConfig.Secret !,
                    _ethStatsClient,
                    sender,
                    getFromAPi.TxPool,
                    getFromAPi.BlockTree,
                    getFromAPi.PeerManager,
                    getFromAPi.GasPriceOracle,
                    getFromAPi.EthSyncingInfo !,
                    initConfig.IsMining,
                    getFromAPi.LogManager);

                await _ethStatsIntegration.InitAsync();
            }
        }
Esempio n. 23
0
        public EthStatsRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager)
        {
            _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _logger     = _logManager.GetClassLogger();

            //InitRlp();
            _configProvider    = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider));
            _initConfig        = configurationProvider.GetConfig <IInitConfig>();
            //_perfService = new PerfService(_logManager) { LogOnDebug = _initConfig.LogPerfStatsOnDebug };
            _networkHelper = new NetworkHelper(_logger);
        }
Esempio n. 24
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IJsonRpcProcessor jsonRpcProcessor, IJsonRpcService jsonRpcService)
        {
            _jsonSerializer = CreateJsonSerializer();

            foreach (JsonConverter converter in jsonRpcService.Converters)
            {
                _jsonSerializer.RegisterConverter(converter);
            }

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseCors("Cors");

            IConfigProvider configProvider = app.ApplicationServices.GetService <IConfigProvider>();
            IInitConfig     initConfig     = configProvider.GetConfig <IInitConfig>();
            IJsonRpcConfig  jsonRpcConfig  = configProvider.GetConfig <IJsonRpcConfig>();

            if (initConfig.WebSocketsEnabled)
            {
                app.UseWebSockets();
                app.UseWhen(ctx => ctx.WebSockets.IsWebSocketRequest &&
                            ctx.Connection.LocalPort == jsonRpcConfig.WebSocketsPort,
                            builder => builder.UseWebSocketsModules());
            }

            app.Use(async(ctx, next) =>
            {
                if (ctx.Request.Method == "GET")
                {
                    await ctx.Response.WriteAsync("Nethermind JSON RPC");
                }
                else if (ctx.Connection.LocalPort == jsonRpcConfig.Port && ctx.Request.Method == "POST")
                {
                    using StreamReader reader = new StreamReader(ctx.Request.Body, Encoding.UTF8);
                    string request            = await reader.ReadToEndAsync();
                    JsonRpcResult result      = await jsonRpcProcessor.ProcessAsync(request);

                    if (result.IsCollection)
                    {
                        _jsonSerializer.Serialize(ctx.Response.Body, result.Responses);
                    }
                    else
                    {
                        _jsonSerializer.Serialize(ctx.Response.Body, result.Response);
                    }

                    await ctx.Response.CompleteAsync();
                }
            });
        }
 public ConfigPatcher(
     IInitConfig initConfig,
     IEnvironementDescription environmentDescription,
     IPatchingTemplateProvider templateProvider,
     JsonTransformationEngine transformationEngine,
     ILogMessageSink logMessageSink)
 {
     _initConfig             = initConfig;
     _environmentDescription = environmentDescription;
     _templateProvider       = templateProvider;
     _transformationEngine   = transformationEngine;
     _logMessageSink         = logMessageSink;
 }
        public EthereumRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager)
        {
            _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _logger     = _logManager.GetClassLogger();

            InitRlp();
            _configProvider    = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider));
            _initConfig        = configurationProvider.GetConfig <IInitConfig>();
            _txPoolConfig      = configurationProvider.GetConfig <ITxPoolConfig>();
            _perfService       = new PerfService(_logManager);
            _networkHelper     = new NetworkHelper(_logger);
        }
 public void Setup()
 {
     _ndmModule                = Substitute.For <INdmModule>();
     _ndmConsumersModule       = Substitute.For <INdmConsumersModule>();
     _configProvider           = Substitute.For <IConfigProvider>();
     _enableUnsecuredDevWallet = false;
     _ndmConfig                = new NdmConfig {
         Enabled = true, StoreConfigInDatabase = false
     };
     _initConfig = Substitute.For <IInitConfig>();
     _configProvider.GetConfig <INdmConfig>().Returns(_ndmConfig);
     _ndmInitializer = new NdmInitializer(_ndmModule, _ndmConsumersModule, LimboLogs.Instance);
 }
        public Task Execute(CancellationToken cancellationToken)
        {
            _receiptStorage           = _api.ReceiptStorage ?? throw new StepDependencyException(nameof(_api.ReceiptStorage));
            _blockTree                = _api.BlockTree ?? throw new StepDependencyException(nameof(_api.BlockTree));
            _chainLevelInfoRepository = _api.ChainLevelInfoRepository ?? throw new StepDependencyException(nameof(_api.ChainLevelInfoRepository));

            IInitConfig initConfig = _api.Config <IInitConfig>();

            if (initConfig.StoreReceipts)
            {
                ResetMigrationIndexIfNeeded();
            }

            return(Task.CompletedTask);
        }
Esempio n. 29
0
        public Task InitRpcModules()
        {
            if (_healthChecksConfig.Enabled)
            {
                IInitConfig initConfig = _api.Config <IInitConfig>();
                _nodeHealthService = new NodeHealthService(_api.SyncServer, new ReadOnlyBlockTree(_api.BlockTree), _api.BlockchainProcessor, _api.BlockProducer, _healthChecksConfig, _api.HealthHintService, initConfig.IsMining);
                HealthModule healthModule = new HealthModule(_nodeHealthService);
                _api.RpcModuleProvider !.Register(new SingletonModulePool <IHealthModule>(healthModule, true));
                if (_logger.IsInfo)
                {
                    _logger.Info("Health RPC Module has been enabled");
                }
            }

            return(Task.CompletedTask);
        }
Esempio n. 30
0
 public JsonRpcRunner(
     IJsonRpcProcessor jsonRpcProcessor,
     IWebSocketsManager webSocketsManager,
     IConfigProvider configurationProvider,
     ILogManager logManager,
     INethermindApi api)
 {
     _jsonRpcConfig         = configurationProvider.GetConfig <IJsonRpcConfig>();
     _initConfig            = configurationProvider.GetConfig <IInitConfig>();
     _configurationProvider = configurationProvider;
     _logManager            = logManager;
     _jsonRpcProcessor      = jsonRpcProcessor;
     _webSocketsManager     = webSocketsManager;
     _logger = logManager.GetClassLogger();
     _api    = api;
 }