Beispiel #1
0
        static async Task MainAsync(string[] args)
        {
            try
            {
                var nodeSettings = Init.GetNodeSettings(args);

                var builder = new FullNodeBuilder()
                              .UseNodeSettings(nodeSettings)
                              .UseBlockStore()
                              .UsePosConsensus()
                              .UseMempool()
                              .UseX1Wallet()
                              .UseX1WalletApi()
                              .UseSecureApiHost();

                var node = builder.Build();

                Init.PrintWelcomeMessage(nodeSettings, node);

                Init.RunIfDebugModeDelayed(node);

                await node.RunAsync();
            }
            catch (Exception e)
            {
                Console.WriteLine($"An error occured in {Init.GetName()}: {e.Message}");
            }
        }
Beispiel #2
0
        public FullNode BuildFullNode(NodeSettings args)
        {
            FullNode node;

            if (this.Callback != null)
            {
                var builder = new FullNodeBuilder().UseNodeSettings(args);
                this.Callback(builder);
                node = (FullNode)builder.Build();
            }
            else
            {
                node = (FullNode) new FullNodeBuilder()
                       .UseNodeSettings(args)
                       .UsePowConsensus()
                       .UseBlockStore()
                       .UseMempool()
                       .AddMining()
                       .UseWallet()
                       .AddRPC()
                       .MockIBD()
                       .Build();
            }

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

            var builder = new FullNodeBuilder()
                          .UseNodeSettings(settings)
                          .UseBlockStore()
                          .UsePosConsensus()
                          .UseMempool()
                          .UseWallet()
                          .AddPowPosMining()
                          .AddRPC()
                          .UseApi()
                          .UseTestChainedHeaderTree()
                          .MockIBD();

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

            ConfigureInterceptors(builder);

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

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #4
0
#pragma warning disable IDE1006 // Naming Styles

        public static async Task Main(string[] args)
#pragma warning restore IDE1006 // Naming Styles
        {
            try
            {
                var nodeSettings = new NodeSettings(networksSelector: Networks.Xds, args: args);

                IFullNodeBuilder nodeBuilder = new FullNodeBuilder()
                                               .UseNodeSettings(nodeSettings)
                                               .UseBlockStore()
                                               .UsePosConsensus()
                                               .UseMempool()
                                               .UseColdStakingWallet()
                                               .AddPowPosMining()
                                               .UseNodeHost()
                                               .AddRPC()
                                               .UseDiagnosticFeature();

                await nodeBuilder.Build().RunAsync();
            }
            catch (Exception ex)
            {
                Console.WriteLine("There was a problem initializing the node. Details: '{0}'", ex.ToString());
            }
        }
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=poa.conf", "-datadir=" + this.DataFolder });

            IFullNodeBuilder builder = new FullNodeBuilder()
                                       .UseNodeSettings(settings)
                                       .UseBlockStore()
                                       .SetCounterChainNetwork(this.counterChainNetwork)
                                       .UseSmartContractPoAConsensus()
                                       .UseSmartContractCollateralPoAMining()
                                       .CheckForPoAMembersCollateral(true) // This is a mining node so we will check the commitment height data as well as the full set of collateral checks.
                                       .AddDynamicMemberhip()
                                       .UseTransactionNotification()
                                       .UseBlockNotification()
                                       .UseApi()
                                       .UseMempool()
                                       .AddRPC()
                                       .AddSmartContracts(options =>
            {
                options.UseReflectionExecutor();
                options.UsePoAWhitelistedContracts();
            })
                                       .UseSmartContractWallet()
                                       .AddSQLiteWalletRepository()
                                       .MockIBD()
                                       .ReplaceTimeProvider(this.timeProvider)
                                       .AddFastMiningCapability();

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #6
0
#pragma warning disable IDE1006 // Naming Styles

        public static async Task Main(string[] args)
#pragma warning restore IDE1006 // Naming Styles
        {
            try
            {
                var nodeSettings = new NodeSettings(networksSelector: Networks.Stratis,
                                                    protocolVersion: ProtocolVersion.PROVEN_HEADER_VERSION, args: args)
                {
                    MinProtocolVersion = ProtocolVersion.ALT_PROTOCOL_VERSION
                };

                IFullNodeBuilder nodeBuilder = new FullNodeBuilder()
                                               .UseNodeSettings(nodeSettings)
                                               .UseBlockStore()
                                               .UsePosConsensus()
                                               .UseMempool()
                                               .UseColdStakingWallet()
                                               .AddPowPosMining()
                                               .UseNodeHost()
                                               .AddRPC()
                                               .UseDiagnosticFeature();

                IFullNode node = nodeBuilder.Build();

                if (node != null)
                {
                    await node.RunAsync();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("There was a problem initializing the node. Details: '{0}'", ex.ToString());
            }
        }
Beispiel #7
0
        private static IFullNode GetSideChainFullNode(NodeSettings nodeSettings)
        {
            DbType dbType = nodeSettings.GetDbType();

            IFullNodeBuilder nodeBuilder = new FullNodeBuilder()
                                           .UseNodeSettings(nodeSettings, dbType)
                                           .UseBlockStore(dbType)
                                           .UseMempool()
                                           .AddSmartContracts(options =>
            {
                options.UseReflectionExecutor();
                options.UsePoAWhitelistedContracts();
            })
                                           .AddPoAFeature()
                                           .UsePoAConsensus(dbType)
                                           .CheckCollateralCommitment()

                                           // This needs to be set so that we can check the magic bytes during the Strat to Strax changeover.
                                           // Perhaps we can introduce a block height check rather?
                                           .SetCounterChainNetwork(StraxNetwork.MainChainNetworks[nodeSettings.Network.NetworkType]())

                                           .UseSmartContractWallet()
                                           .AddSQLiteWalletRepository()
                                           .UseApi()
                                           .UseUnity3dApi()
                                           .AddRPC()
                                           .AddSignalR(options =>
            {
                DaemonConfiguration.ConfigureSignalRForCirrus(options);
            })
                                           .UseDiagnosticFeature();

            return(nodeBuilder.Build());
        }
Beispiel #8
0
        public static async Task Main(string[] args)
        {
            try
            {
                var nodeSettings = new NodeSettings(networksSelector: Networks.x42, args: args);

                IFullNodeBuilder nodeBuilder = new FullNodeBuilder()
                                               .UseNodeSettings(nodeSettings)
                                               .UseBlockStore()
                                               .UsePosConsensus()
                                               .UseMempool()
                                               .UseColdStakingWallet()
                                               .AddPowPosMining()
                                               .UseNodeHost()
                                               .AddRPC()
                                               .UseDiagnosticFeature();

                IFullNode node = nodeBuilder.Build();

                if (node != null)
                {
                    await node.RunAsync();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("There was a problem initializing the node. Details: '{0}'", ex);
            }
        }
Beispiel #9
0
        public static FullNode BuildFullNode(NodeSettings args, Action <IFullNodeBuilder> callback = null)
        {
            FullNode node;

            if (callback != null)
            {
                var builder = new FullNodeBuilder().UseNodeSettings(args);

                callback(builder);

                node = (FullNode)builder.Build();
            }
            else
            {
                node = (FullNode) new FullNodeBuilder()
                       .UseNodeSettings(args)
                       .UseStratisConsensus()
                       .UseBlockStore()
                       .UseMempool()
                       .UseWallet()
                       .AddPowPosMining()
                       .AddRPC()
                       .Build();
            }

            return(node);
        }
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=poa.conf", "-datadir=" + this.DataFolder });

            IFullNodeBuilder builder = new FullNodeBuilder()
                                       .UseNodeSettings(settings)
                                       .UseBlockStore()
                                       .SetCounterChainNetwork(this.counterChainNetwork)
                                       .AddPoAFeature()
                                       .UsePoAConsensus()
                                       .AddPoACollateralMiningCapability <SmartContractPoABlockDefinition>()
                                       .AddDynamicMemberhip()
                                       .UseTransactionNotification()
                                       .UseBlockNotification()
                                       .UseApi()
                                       .UseMempool()
                                       .AddRPC()
                                       .AddSmartContracts(options =>
            {
                options.UseReflectionExecutor();
                options.UsePoAWhitelistedContracts();
            })
                                       .UseSmartContractWallet()
                                       .AddSQLiteWalletRepository()
                                       .MockIBD()
                                       .ReplaceTimeProvider(this.timeProvider)
                                       .AddFastMiningCapability();

            this.FullNode = (FullNode)builder.Build();
        }
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=poa.conf", "-datadir=" + this.DataFolder, "-displayextendednodestats=true" });

            IFullNodeBuilder builder = new FullNodeBuilder()
                                       .UseNodeSettings(settings)
                                       .UseBlockStore()
                                       .UseMempool()
                                       .AddRPC()
                                       .AddSmartContracts(options =>
            {
                options.UseReflectionExecutor();
            })
                                       .UsePoAConsensus()
                                       .AddPoAFeature()
                                       .AddPoAMiningCapability <SmartContractPoABlockDefinition>()
                                       .SetCounterChainNetwork(new StraxRegTest())
                                       .UseSmartContractWallet()
                                       .AddSQLiteWalletRepository()
                                       .ReplaceTimeProvider(this.timeProvider)
                                       .MockIBD()
                                       .AddFastMiningCapability();

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

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #12
0
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=poa.conf", "-datadir=" + this.DataFolder });

            var builder = new FullNodeBuilder()
                          .UseNodeSettings(settings)
                          .UseBlockStore()
                          .AddSmartContracts()
                          .UseSmartContractWallet()
                          .UseReflectionExecutor()
                          .AddFederationGateway()
                          .UseFederatedPegPoAMining()
                          .UseMempool()
                          .UseTransactionNotification()
                          .UseBlockNotification()
                          .UseApi()
                          .AddRPC()
                          .MockIBD();

            if (!this.testingFederation)
            {
                builder.UseTestFedPegBlockDefinition();
            }

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #13
0
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=poa.conf", "-datadir=" + this.DataFolder });

            IFullNodeBuilder builder = new FullNodeBuilder()
                                       .UseNodeSettings(settings)
                                       .UseBlockStore()
                                       .UseMempool()
                                       .AddRPC()
                                       .AddSmartContracts()
                                       .UseSmartContractPoAConsensus()
                                       .UseSmartContractPoAMining()
                                       .UseSmartContractWallet()
                                       .UseReflectionExecutor()
                                       .ReplaceTimeProvider(this.dateTimeProvider)
                                       .MockIBD();

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

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #14
0
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=stratis.conf", "-datadir=" + this.DataFolder, "-displayextendednodestats=true" });

            IFullNodeBuilder builder = new FullNodeBuilder()
                                       .UseNodeSettings(settings)
                                       .UseBlockStore()
                                       .UseMempool()
                                       .AddRPC()
                                       .AddSmartContracts(options =>
            {
                options.UseReflectionExecutor();
            })
                                       .UseSmartContractPowConsensus()
                                       .UseSmartContractWallet()
                                       .AddSQLiteWalletRepository()
                                       .UseSmartContractPowMining()
                                       .MockIBD()
                                       .UseTestChainedHeaderTree();

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

            this.FullNode = (FullNode)builder.Build();
        }
        public FullNode BuildFullNode(NodeSettings args, Action <IFullNodeBuilder> callback = null)
        {
            FullNode node;

            if (callback != null)
            {
                var builder = new FullNodeBuilder().UseNodeSettings(args);

                callback(builder);

                node = (FullNode)builder.Build();
            }
            else
            {
                node = (FullNode) new FullNodeBuilder()
                       .UseNodeSettings(args)
                       .UsePosConsensus()
                       .UseBlockStore()
                       .UseMempool()
                       .UseWallet()
                       .AddPowPosMining()
                       .AddRPC()
                       .MockIBD()
                       .SubstituteDateTimeProviderFor <MiningFeature>()
                       .Build();
            }

            return(node);
        }
Beispiel #16
0
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=bitcoin.conf", "-datadir=" + this.DataFolder });

            var builder = new FullNodeBuilder()
                          .UseNodeSettings(settings)
                          .UseBlockStore()
                          .UsePowConsensus()
                          .UseMempool()
                          .AddMining()
                          .UseWallet()
                          .AddRPC()
                          .UseApi()
                          .MockIBD();

            if (this.InterceptorDisconnect != null)
            {
                builder = builder.InterceptBlockDisconnected(this.InterceptorDisconnect);
            }

            if (this.ServiceToOverride != null)
            {
                builder.OverrideService <BaseFeature>(this.ServiceToOverride);
            }

            this.FullNode = (FullNode)builder.Build();
        }
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, this.Agent, args: new string[] { "-conf=stratis.conf", "-datadir=" + this.DataFolder });

            // For stratisX tests we need the minimum protocol version to be 70000.
            settings.MinProtocolVersion = ProtocolVersion.POS_PROTOCOL_VERSION;

            var builder = new FullNodeBuilder()
                          .UseNodeSettings(settings)
                          .UseBlockStore()
                          .UsePosConsensus()
                          .UseMempool()
                          .UseWallet()
                          .AddPowPosMining()
                          .AddRPC()
                          .UseNodeHost()
                          .UseTestChainedHeaderTree()
                          .MockIBD();

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

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

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #18
0
        public static async Task Main(string[] args)
        {
            try
            {
                var nodeSettings = new NodeSettings(networksSelector: Networks.Xds,
                                                    protocolVersion: ProtocolVersion.PROVEN_HEADER_VERSION,
                                                    args: args);

                IFullNodeBuilder nodeBuilder = new FullNodeBuilder()
                                               .UseNodeSettings(nodeSettings)
                                               .UseBlockStore()
                                               .UsePosConsensus()
                                               .UseMempool()
                                               .UseColdStakingWallet()
                                               .AddPowPosMining()
                                               .UseApi()
                                               .AddRPC();

                await nodeBuilder.Build().RunAsync();
            }
            catch (Exception ex)
            {
                Console.WriteLine("There was a problem initializing the node. Details: '{0}'", ex.ToString());
            }
        }
Beispiel #19
0
#pragma warning disable IDE1006 // Naming Styles

        public static async Task Main(string[] args)
#pragma warning restore IDE1006 // Naming Styles
        {
            // If users also run an XDS wallet on their subnet and the wallet is already connected to this node, they'll have difficulties
            // connecting to this node with the messaging client as well, because the clients also connect via the blockchain protocol
            // and not only via the messaging TCP port 38334. Therefore we tweak the settings here:
            var extArgs = args.ToList();

            extArgs.Add("-iprangefiltering=0");
            args = extArgs.ToArray();

            try
            {
                var nodeSettings = new NodeSettings(networksSelector: Networks.Xds, args: args, agent: "xds-mnd");

                IFullNodeBuilder nodeBuilder = new FullNodeBuilder()
                                               .UseNodeSettings(nodeSettings)
                                               .UseBlockStore()
                                               .UsePosConsensus()
                                               .UseMempool()
                                               .UseColdStakingWallet()
                                               .AddPowPosMining()
                                               .UseNodeHost()
                                               .AddRPC()
                                               .UseDiagnosticFeature()
                                               .UseMessagingHost();

                await nodeBuilder.Build().RunAsync();
            }
            catch (Exception e)
            {
                Console.WriteLine($@"There was a problem initializing the node: '{e}'");
            }
        }
Beispiel #20
0
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, args: new string[] { "-conf=poa.conf", "-datadir=" + this.DataFolder });

            var builder = new FullNodeBuilder()
                          .UseNodeSettings(settings)
                          .UseBlockStore()
                          .SetCounterChainNetwork(this.counterChainNetwork)
                          .UseFederatedPegPoAMining()
                          .AddFederatedPeg()
                          .CheckForPoAMembersCollateral()
                          .UseTransactionNotification()
                          .UseBlockNotification()
                          .UseApi()
                          .UseMempool()
                          .AddRPC()
                          .AddSmartContracts(options =>
            {
                options.UseReflectionExecutor();
                options.UsePoAWhitelistedContracts();
            })
                          .UseSmartContractWallet()
                          .MockIBD()
                          .ReplaceTimeProvider(this.timeProvider)
                          .AddFastMiningCapability();

            if (!this.testingFederation)
            {
                builder.UseTestFedPegBlockDefinition();
            }

            this.FullNode = (FullNode)builder.Build();
        }
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.Network, ProtocolVersion.ALT_PROTOCOL_VERSION, args: new string[] { "-conf=stratis.conf", "-datadir=" + this.DataFolder });

            var builder = new FullNodeBuilder()
                          .UseNodeSettings(settings)
                          .UseBlockStore()
                          .UsePosConsensus()
                          .UseMempool()
                          .UseWallet()
                          .AddPowPosMining()
                          .AddRPC()
                          .UseApi()
                          .MockIBD();

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

            if (this.InterceptorDisconnect != null)
            {
                builder = builder.InterceptBlockDisconnected(this.InterceptorDisconnect);
            }

            if (this.InterceptorConnect != null)
            {
                builder = builder.InterceptBlockConnected(this.InterceptorConnect);
            }

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #22
0
        public override void BuildNode()
        {
            var argsAsStringArray = this.configParameters.AsConsoleArgArray();

            NodeSettings settings = null;

            if (string.IsNullOrEmpty(this.Agent))
            {
                settings = new NodeSettings(this.Network, this.protocolVersion, args: argsAsStringArray)
                {
                    MinProtocolVersion = this.minProtocolVersion
                }
            }
            ;
            else
            {
                settings = new NodeSettings(this.Network, this.protocolVersion, this.Agent, argsAsStringArray)
                {
                    MinProtocolVersion = this.minProtocolVersion
                }
            };

            IFullNodeBuilder builder = new FullNodeBuilder().UseNodeSettings(settings);

            this.callback(builder);

            builder.RemoveImplementation <PeerConnectorDiscovery>();
            builder.ReplaceService <IPeerDiscovery>(new PeerDiscoveryDisabled());

            this.FullNode = (FullNode)builder.Build();
        }
    }
        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.EnablePeerDiscovery)
            {
                builder.RemoveImplementation <PeerConnectorDiscovery>();
                builder.ReplaceService <IPeerDiscovery, BaseFeature>(new PeerDiscoveryDisabled());
            }

            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #24
0
        public override void BuildNode()
        {
            var settings = new NodeSettings(this.network, this.protocolVersion, this.agent, new string[] { "-conf=" + this.configFileName, "-datadir=" + this.DataFolder });
            var builder  = new FullNodeBuilder().UseNodeSettings(settings);

            this.callback(builder);
            this.FullNode = (FullNode)builder.Build();
        }
        public override void BuildNode()
        {
            var settings             = new NodeSettings(this.network, this.protocolVersion, this.agent, this.args.ToArray());
            IFullNodeBuilder builder = new FullNodeBuilder().UseNodeSettings(settings);

            this.callback(builder);
            this.FullNode = (FullNode)builder.Build();
        }
Beispiel #26
0
        public override void BuildNode()
        {
            var argsAsStringArray    = this.configParameters.AsConsoleArgArray();
            var settings             = new NodeSettings(this.Network, this.protocolVersion, this.agent, argsAsStringArray);
            IFullNodeBuilder builder = new FullNodeBuilder().UseNodeSettings(settings);

            this.callback(builder);
            this.FullNode = (FullNode)builder.Build();
        }
        public static async Task MainAsync(string[] args)
        {
            try
            {
                // Get the API uri.
                var apiUri    = args.GetValueOf("apiuri");
                var isTestNet = args.Contains("-testnet");
                var isStratis = args.Contains("stratis");
                var agent     = "Breeze";

                NodeSettings nodeSettings;

                if (isStratis)
                {
                    if (NodeSettings.PrintHelp(args, Network.StratisMain))
                    {
                        return;
                    }

                    Network network = isTestNet ? Network.StratisTest : Network.StratisMain;
                    if (isTestNet)
                    {
                        args = args.Append("-addnode=51.141.28.47").ToArray(); // TODO: fix this temp hack
                    }
                    nodeSettings        = new NodeSettings("stratis", network, ProtocolVersion.ALT_PROTOCOL_VERSION, agent).LoadArguments(args);
                    nodeSettings.ApiUri = new Uri(string.IsNullOrEmpty(apiUri) ? DefaultStratisUri : apiUri);
                }
                else
                {
                    nodeSettings        = new NodeSettings(agent: agent).LoadArguments(args);
                    nodeSettings.ApiUri = new Uri(string.IsNullOrEmpty(apiUri) ? DefaultBitcoinUri : apiUri);
                }

                IFullNodeBuilder fullNodeBuilder = new FullNodeBuilder()
                                                   .UseNodeSettings(nodeSettings)
                                                   .UseLightWallet()
                                                   .UseBlockNotification()
                                                   .UseTransactionNotification()
                                                   .UseApi();

                IFullNode node = fullNodeBuilder.Build();

                // Start Full Node - this will also start the API.
                await node.RunAsync();
            }
            catch (Exception ex)
            {
                Console.WriteLine("There was a problem initializing the node. Details: '{0}'", ex.Message);
            }
        }
Beispiel #28
0
        public static void Main(string[] args)
        {
            try
            {
                var nodeSettings = new NodeSettings(networksSelector: Blockcore.Networks.Xds.Networks.Xds, args: args);

                IFullNodeBuilder nodeBuilder = new FullNodeBuilder()
                                               .UseNodeSettings(nodeSettings)
                                               .UseBlockStore()
                                               .UsePosConsensus()
                                               .UseMempool()
                                               .UseColdStakingWallet()
                                               .AddPowPosMining()
                                               .UseNodeHost()
                                               .AddRPC();

                var window = new WebWindow("Blockcore");
                window.NavigateToString("<h1>Blockcore node loading....</h1> ");
                WriteResourceToFile("Xds-ui.favicon.ico", "Xds-ui.favicon.ico");
                window.SetIconFile("Xds-ui.favicon.ico");

                IFullNode node     = null;
                Task      nodeTask = null;

                Task.Run(() =>
                {
                    try
                    {
                        node     = nodeBuilder.Build();
                        nodeTask = node.RunAsync();
                    }
                    catch (Exception ex)
                    {
                        window.NavigateToString("There was a problem initializing the node. <br> see the log file " + nodeSettings.DataFolder.LogPath + " " + ex.ToString());
                        return;
                    }

                    window.Title = node.Network.CoinTicker + " Node";
                    window.NavigateToUrl(node.NodeService <NodeHostSettings>().ApiUri.ToString());
                });

                window.WaitForExit();
                nodeTask.Wait();
            }
            catch (Exception ex)
            {
                Console.WriteLine("There was a problem initializing the node. Details: '{0}'", ex.ToString());
            }
        }
Beispiel #29
0
        public static void Main(string[] args)
        {
            NodeSettings     nodeSettings;
            IFullNodeBuilder fullNodeBuilder;
            IFullNode        fullNode;

            try
            {
                nodeSettings = new NodeSettings().LoadArguments(args);
            }
            catch (Exception exception)
            {
                Console.WriteLine("There was a problem initializing node settings. Details: '{0}'", exception.Message);
                Console.ReadLine();
                return;
            }

            try
            {
                fullNodeBuilder = new FullNodeBuilder()
                                  .UseNodeSettings(nodeSettings)
                                  .UseConsensus()
                                  .UseBlockStore()
                                  .UseMempool()
                                  .AddMining()
                                  .AddRPC()
                                  .UseWallet();

                fullNode = fullNodeBuilder.Build();
            }
            catch (Exception exception)
            {
                Console.WriteLine("There was a problem initializing the node. Details: '{0}'", exception.Message);
                Console.ReadLine();
                return;
            }

            try
            {
                fullNode.Start();
            }
            catch (Exception exception)
            {
                Console.WriteLine("There was a problem starting the node. Details: '{0}'", exception.Message);
                Console.ReadLine();
                return;
            }
        }
        public void DependencyCheckWithInvalidDependenciesThrowsException()
        {
            IFullNodeBuilder builder = new FullNodeBuilder().UseNodeSettings(NodeSettings.Default(KnownNetworks.StratisRegTest));

            builder.ConfigureFeature(features =>
            {
                features
                .AddFeature <FeatureA>()
                .DependOn <FeatureB>();
            });

            Assert.Throws <MissingDependencyException>(() =>
            {
                builder.Build();
            });
        }