Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
 ///<inheritdoc />
 public override void ValidateDependencies(IFullNodeServiceProvider services)
 {
     if (services.ServiceProvider.GetService <PosMinting>() != null)
     {
         services.Features.EnsureFeature <WalletFeature>();
     }
 }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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();
 }
Exemplo n.º 8
0
 /// <inheritdoc />
 public virtual void ValidateDependencies(IFullNodeServiceProvider services)
 {
 }
Exemplo n.º 9
0
 public override void ValidateDependencies(IFullNodeServiceProvider services)
 {
     base.ValidateDependencies(services);
 }