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}"); } }
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(); }
#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(); }
#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()); } }
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()); }
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); } }
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(); }
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(); }
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(); }
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); }
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(); }
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()); } }
#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}'"); } }
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(); }
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(); }
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(); }
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); } }
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()); } }
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(); }); }