public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, ProtocolVersion.PROVEN_HEADER_VERSION, this.Agent, args: new string[] { $"-conf={this.Network.DefaultConfigFilename}", "-datadir=" + this.DataFolder });

            var builder = new FullNodeBuilder()
                          .UseNodeSettings(settings)
                          .UseBlockStore()
                          .UsePosConsensus()
                          .UseMempool()
                          .UseWallet()
                          .AddSQLiteWalletRepository()
                          .AddPowPosMining(!(this.Network is StratisMain || this.Network is StratisTest || this.Network is StratisRegTest))
                          .AddRPC()
                          .UseApi()
                          .UseTestChainedHeaderTree()
                          .MockIBD();

            if (this.OverrideDateTimeProvider)
            {
                builder.OverrideDateTimeProviderFor <MiningFeature>();
            }

            if (this.AddRewardClaimer)
            {
                builder.AddService <BaseFeature, RewardClaimer>();
            }

            if (!this.EnablePeerDiscovery)
            {
                builder.RemoveImplementation <PeerConnectorDiscovery>();
                builder.ReplaceService <IPeerDiscovery, BaseFeature>(new PeerDiscoveryDisabled());
            }

            this.FullNode = (FullNode)builder.Build();
        }