예제 #1
0
        public async Task InitRpcModules()
        {
            if (_baselineConfig.Enabled)
            {
                var baselineDbInitializer = new BaselineDbInitializer(_api.DbProvider, _baselineConfig, _api.RocksDbFactory, _api.MemDbFactory);
                await baselineDbInitializer.Init();

                BaselineModuleFactory baselineModuleFactory = new BaselineModuleFactory(
                    _api.TxSender !,
                    _api.StateReader !,
                    _api.CreateBlockchainBridge(),
                    _api.BlockTree !,
                    _api.AbiEncoder,
                    _api.FileSystem,
                    _api.LogManager,
                    _api.MainBlockProcessor,
                    _api.DisposeStack,
                    _api.DbProvider);

                var modulePool = new SingletonModulePool <IBaselineModule>(baselineModuleFactory);
                _api.RpcModuleProvider !.Register(modulePool);

                if (_logger.IsInfo)
                {
                    _logger.Info("Baseline RPC Module has been enabled");
                }
            }
            else
            {
                if (_logger.IsWarn)
                {
                    _logger.Info("Skipping Baseline RPC due to baseline being disabled in config.");
                }
            }
        }
예제 #2
0
        public async Task ProviderInitTests_RocksDbProvider()
        {
            var rocksDbFactory = new RocksDbFactory(new DbConfig(), LimboLogs.Instance, Path.Combine(_folderWithDbs, "rocks"));
            var dbProvider     = new DbProvider(DbModeHint.Persisted);
            var initializer    = new BaselineDbInitializer(dbProvider, new BaselineConfig(), rocksDbFactory, new MemDbFactory());
            await initializer.Init();

            Assert.NotNull(dbProvider.GetDb <IDb>(BaselineDbNames.BaselineTree));
            Assert.NotNull(dbProvider.GetDb <IDb>(BaselineDbNames.BaselineTreeMetadata));
            Assert.AreEqual(2, dbProvider.RegisteredDbs.Count());
            Assert.IsTrue(dbProvider.GetDb <IDb>(BaselineDbNames.BaselineTree) is DbOnTheRocks);
            Assert.IsTrue(dbProvider.GetDb <IDb>(BaselineDbNames.BaselineTreeMetadata) is DbOnTheRocks);
        }
        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);
        }