private void StartBeamSyncComponents() { // so bad BeamSyncDbProvider beamSyncDbProvider = _dbProvider as BeamSyncDbProvider; ISyncFeed <StateSyncBatch> beamSyncFeed = beamSyncDbProvider.BeamSyncFeed; StateSyncDispatcher dispatcher = new StateSyncDispatcher(beamSyncFeed, _syncPeerPool, new StateSyncAllocationStrategyFactory(), _logManager); dispatcher.Start(_syncCancellation.Token).ContinueWith(t => { if (t.IsFaulted) { if (_logger.IsError) { _logger.Error("Beam sync failed", t.Exception); } } else { if (_logger.IsInfo) { _logger.Info("Beam sync completed."); } } }); }
public async Task Execute(CancellationToken _) { 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) { _context.SyncModeSelector = new PendingSyncModeSelector(); BeamSyncDbProvider beamSyncProvider = new BeamSyncDbProvider(_context.SyncModeSelector, _context.DbProvider, _context.Config <ISyncConfig>(), _context.LogManager); _context.DbProvider = beamSyncProvider; } }
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; } }
public async Task ProviderInitTests_BeamSyncDbProvider() { var syncModeSelector = Substitute.For <ISyncModeSelector>(); var dbProvider = TestMemDbProvider.Init(); var rocksDbFactory = new RocksDbFactory(new DbConfig(), LimboLogs.Instance, Path.Combine(_folderWithDbs, "beam")); IDbProvider beamSyncDbProvider = new BeamSyncDbProvider(syncModeSelector, dbProvider, new SyncConfig(), LimboLogs.Instance); var initializer = new BaselineDbInitializer(beamSyncDbProvider, new BaselineConfig(), rocksDbFactory, new MemDbFactory()); await initializer.Init(); Assert.NotNull(beamSyncDbProvider.GetDb <IDb>(BaselineDbNames.BaselineTree)); Assert.NotNull(beamSyncDbProvider.GetDb <IDb>(BaselineDbNames.BaselineTreeMetadata)); Assert.IsTrue(beamSyncDbProvider.GetDb <IDb>(BaselineDbNames.BaselineTree) is MemDb); Assert.IsTrue(beamSyncDbProvider.GetDb <IDb>(BaselineDbNames.BaselineTreeMetadata) is MemDb); }
public async Task ProviderInitTests_BeamSyncDbProvider() { var syncModeSelector = Substitute.For <ISyncModeSelector>(); var dbProvider = await TestMemDbProvider.InitAsync(); var rocksDbFactory = new RocksDbFactory(new DbConfig(), LimboLogs.Instance, Path.Combine(_folderWithDbs, "beam")); IDbProvider beamSyncDbProvider = new BeamSyncDbProvider(syncModeSelector, dbProvider, new SyncConfig(), LimboLogs.Instance); var initializer = new ConsumerNdmDbInitializer(beamSyncDbProvider, new NdmConfig(), rocksDbFactory, new MemDbFactory()); initializer.Reset(); await initializer.InitAsync(); Assert.IsTrue(beamSyncDbProvider.GetDb <IDb>(ConsumerNdmDbNames.ConsumerDepositApprovals) is MemDb); Assert.IsTrue(beamSyncDbProvider.GetDb <IDb>(ConsumerNdmDbNames.ConsumerReceipts) is MemDb); Assert.IsTrue(beamSyncDbProvider.GetDb <IDb>(ConsumerNdmDbNames.ConsumerSessions) is MemDb); Assert.IsTrue(beamSyncDbProvider.GetDb <IDb>(ConsumerNdmDbNames.Deposits) is MemDb); }
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)}"); } } if (initConfig.UseMemDb) { _context.DbProvider = new MemDbProvider(); } else { RocksDbProvider rocksDbProvider = new RocksDbProvider(_context.LogManager); await rocksDbProvider.Init(initConfig.BaseDbPath, dbConfig, initConfig.StoreReceipts || syncConfig.DownloadReceiptsInFastSync); _context.DbProvider = rocksDbProvider; } if (syncConfig.BeamSync) { BeamSyncDbProvider beamSyncProvider = new BeamSyncDbProvider(_context.DbProvider, "processor DB", _context.LogManager); _context.DbProvider = beamSyncProvider; _context.NodeDataConsumer = beamSyncProvider.NodeDataConsumer; } // IDbProvider debugRecorder = new RocksDbProvider(Path.Combine(_context._initConfig.BaseDbPath, "debug"), dbConfig, _context._logManager, _context._initConfig.StoreTraces, _context._initConfig.StoreReceipts); // _context._dbProvider = new RpcDbProvider(_context._jsonSerializer, new BasicJsonRpcClient(KnownRpcUris.Localhost, _context._jsonSerializer, _context._logManager), _context._logManager, debugRecorder); // IDbProvider debugReader = new ReadOnlyDbProvider(new RocksDbProvider(Path.Combine(_context._initConfig.BaseDbPath, "debug"), dbConfig, _context._logManager, _context._initConfig.StoreTraces, _context._initConfig.StoreReceipts), false); // _context._dbProvider = debugReader; }
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>(); foreach (PropertyInfo propertyInfo in typeof(IDbConfig).GetProperties()) { if (logger.IsDebug) { logger.Debug($"DB {propertyInfo.Name}: {propertyInfo.GetValue(dbConfig)}"); } } try { var useReceiptsDb = initConfig.StoreReceipts || syncConfig.DownloadReceiptsInFastSync; InitDbApi(initConfig, dbConfig, initConfig.StoreReceipts || syncConfig.DownloadReceiptsInFastSync); var dbInitializer = new StandardDbInitializer(_api.DbProvider, _api.RocksDbFactory, _api.MemDbFactory); await dbInitializer.InitStandardDbsAsync(useReceiptsDb); if (syncConfig.BeamSync) { _api.SyncModeSelector = new PendingSyncModeSelector(); BeamSyncDbProvider beamSyncProvider = new BeamSyncDbProvider(_api.SyncModeSelector, _api.DbProvider, _api.Config <ISyncConfig>(), _api.LogManager); _api.DbProvider = beamSyncProvider; } } catch (TypeInitializationException) { if (logger.IsError) { logger.Error("RocksDb was not found, please make sure it is installed on your machine. \n On macOs : 'brew install rocksdb'"); } } }