public FullNode Initialize(IFullNodeServiceProvider serviceProvider) { Guard.NotNull(serviceProvider, nameof(serviceProvider)); this.Services = serviceProvider; this.DataFolder = this.Services.ServiceProvider.GetService <DataFolder>(); this.DateTimeProvider = this.Services.ServiceProvider.GetService <IDateTimeProvider>(); this.Network = this.Services.ServiceProvider.GetService <Network>(); this.Settings = this.Services.ServiceProvider.GetService <NodeSettings>(); this.ChainBehaviorState = this.Services.ServiceProvider.GetService <ChainBehavior.ChainState>(); this.CoinView = this.Services.ServiceProvider.GetService <CoinView>(); this.Chain = this.Services.ServiceProvider.GetService <ConcurrentChain>(); this.GlobalCancellation = this.Services.ServiceProvider.GetService <CancellationProvider>(); this.MempoolManager = this.Services.ServiceProvider.GetService <MempoolManager>(); this.Signals = this.Services.ServiceProvider.GetService <Signals>(); this.ConnectionManager = this.Services.ServiceProvider.GetService <ConnectionManager>(); this.BlockStoreManager = this.Services.ServiceProvider.GetService <BlockStoreManager>(); this.ConsensusLoop = this.Services.ServiceProvider.GetService <ConsensusLoop>(); this.WalletManager = this.Services.ServiceProvider.GetService <IWalletManager>() as WalletManager; this.logger.LogInformation("Full node initialized on {0}", this.Network.Name); return(this); }
/// <inheritdoc /> public IFullNode Initialize(IFullNodeServiceProvider serviceProvider) { this.State = FullNodeState.Initializing; Guard.NotNull(serviceProvider, nameof(serviceProvider)); this.Services = serviceProvider; this.logger = this.Services.ServiceProvider.GetService <ILoggerFactory>().CreateLogger(this.GetType().FullName); this.DataFolder = this.Services.ServiceProvider.GetService <DataFolder>(); this.DateTimeProvider = this.Services.ServiceProvider.GetService <IDateTimeProvider>(); this.Network = this.Services.ServiceProvider.GetService <Network>(); this.Settings = this.Services.ServiceProvider.GetService <NodeSettings>(); this.ChainBehaviorState = this.Services.ServiceProvider.GetService <IChainState>(); this.ChainIndexer = this.Services.ServiceProvider.GetService <ChainIndexer>(); this.Signals = this.Services.ServiceProvider.GetService <Signals.ISignals>(); this.InitialBlockDownloadState = this.Services.ServiceProvider.GetService <IInitialBlockDownloadState>(); this.NodeStats = this.Services.ServiceProvider.GetService <INodeStats>(); this.ConnectionManager = this.Services.ServiceProvider.GetService <IConnectionManager>(); this.loggerFactory = this.Services.ServiceProvider.GetService <NodeSettings>().LoggerFactory; this.AsyncLoopFactory = this.Services.ServiceProvider.GetService <IAsyncLoopFactory>(); this.logger.LogInformation(Properties.Resources.AsciiLogo); this.logger.LogInformation("Full node initialized on {0}.", this.Network.Name); this.State = FullNodeState.Initialized; this.StartTime = this.DateTimeProvider.GetUtcNow(); return(this); }
///<inheritdoc /> public override void ValidateDependencies(IFullNodeServiceProvider services) { if (services.ServiceProvider.GetService <PosMinting>() != null) { services.Features.EnsureFeature <WalletFeature>(); } }
/// <summary> /// Initializes DI services that the node needs. /// </summary> /// <param name="serviceProvider">Provider of DI services.</param> /// <returns>Full node itself to allow fluent code.</returns> public FullNode Initialize(IFullNodeServiceProvider serviceProvider) { Guard.NotNull(serviceProvider, nameof(serviceProvider)); this.Services = serviceProvider; this.logger = this.Services.ServiceProvider.GetService <ILoggerFactory>().CreateLogger(this.GetType().FullName); this.DataFolder = this.Services.ServiceProvider.GetService <DataFolder>(); this.DateTimeProvider = this.Services.ServiceProvider.GetService <IDateTimeProvider>(); this.Network = this.Services.ServiceProvider.GetService <Network>(); this.Settings = this.Services.ServiceProvider.GetService <NodeSettings>(); this.ChainBehaviorState = this.Services.ServiceProvider.GetService <ChainState>(); this.CoinView = this.Services.ServiceProvider.GetService <CoinView>(); this.Chain = this.Services.ServiceProvider.GetService <ConcurrentChain>(); this.MempoolManager = this.Services.ServiceProvider.GetService <MempoolManager>(); this.Signals = this.Services.ServiceProvider.GetService <Signals.Signals>(); this.ConnectionManager = this.Services.ServiceProvider.GetService <IConnectionManager>(); this.BlockStoreManager = this.Services.ServiceProvider.GetService <BlockStoreManager>(); this.ConsensusLoop = this.Services.ServiceProvider.GetService <ConsensusLoop>(); this.WalletManager = this.Services.ServiceProvider.GetService <IWalletManager>() as WalletManager; this.WalletTransactionHandler = this.Services.ServiceProvider.GetService <IWalletTransactionHandler>(); this.AsyncLoopFactory = this.Services.ServiceProvider.GetService <IAsyncLoopFactory>(); this.logger.LogInformation($"Full node initialized on {this.Network.Name}"); return(this); }
/// <summary> /// Initializes DI services that the node needs. /// </summary> /// <param name="serviceProvider">Provider of DI services.</param> /// <returns>Full node itself to allow fluent code.</returns> public FullNode Initialize(IFullNodeServiceProvider serviceProvider) { Guard.NotNull(serviceProvider, nameof(serviceProvider)); this.Services = serviceProvider; this.logger = this.Services.ServiceProvider.GetService <ILoggerFactory>().CreateLogger(this.GetType().FullName); this.DataFolder = this.Services.ServiceProvider.GetService <DataFolder>(); this.DateTimeProvider = this.Services.ServiceProvider.GetService <IDateTimeProvider>(); this.Network = this.Services.ServiceProvider.GetService <Network>(); this.Settings = this.Services.ServiceProvider.GetService <NodeSettings>(); this.ChainBehaviorState = this.Services.ServiceProvider.GetService <IChainState>(); this.Chain = this.Services.ServiceProvider.GetService <ConcurrentChain>(); this.Signals = this.Services.ServiceProvider.GetService <Signals.Signals>(); this.InitialBlockDownloadState = this.Services.ServiceProvider.GetService <IInitialBlockDownloadState>(); this.ConnectionManager = this.Services.ServiceProvider.GetService <IConnectionManager>(); this.loggerFactory = this.Services.ServiceProvider.GetService <NodeSettings>().LoggerFactory; this.AsyncLoopFactory = this.Services.ServiceProvider.GetService <IAsyncLoopFactory>(); this.logger.LogInformation($"Full node initialized on {this.Network.Name}"); return(this); }
/// <inheritdoc /> public override void ValidateDependencies(IFullNodeServiceProvider services) { if (services.ServiceProvider.GetService <IPosMinting>() != null) { services.Features.EnsureFeature <BaseWalletFeature>(); } // Mining and staking require block store feature. if (this.minerSettings.Mine || this.minerSettings.Stake) { services.Features.EnsureFeature <BlockStoreFeature>(); var storeSettings = services.ServiceProvider.GetService <StoreSettings>(); if (storeSettings.PruningEnabled) { throw new ConfigurationException("BlockStore prune mode is incompatible with mining and staking."); } } }
public void ValidateDependencies(IFullNodeServiceProvider services) { throw new NotImplementedException(); }
/// <inheritdoc /> public virtual void ValidateDependencies(IFullNodeServiceProvider services) { }
public override void ValidateDependencies(IFullNodeServiceProvider services) { base.ValidateDependencies(services); }