private static IFullNode GetMainchainFullNode(string[] args) { var nodeSettings = new NodeSettings(networksSelector: Networks.Stratis, protocolVersion: ProtocolVersion.PROVEN_HEADER_VERSION, args: args) { MinProtocolVersion = ProtocolVersion.ALT_PROTOCOL_VERSION }; var fedPegOptions = new FederatedPegOptions( counterChainNetwork: SidechainNetworks[nodeSettings.Network.NetworkType]() ); IFullNode node = new FullNodeBuilder() .AddCommonFeatures(nodeSettings, fedPegOptions) .UsePosConsensus() .UseWallet() .AddPowPosMining() .Build(); return(node); }
private static IFullNode GetSidechainFullNode(string[] args) { var nodeSettings = new NodeSettings(networksSelector: FederatedPegNetwork.NetworksSelector, protocolVersion: ProtocolVersion.ALT_PROTOCOL_VERSION, args: args) { MinProtocolVersion = ProtocolVersion.ALT_PROTOCOL_VERSION }; var fedPegOptions = new FederatedPegOptions( counterChainNetwork: MainChainNetworks[nodeSettings.Network.NetworkType]() ); IFullNode node = new FullNodeBuilder() .AddCommonFeatures(nodeSettings, fedPegOptions) .AddSmartContracts(options => { options.UseReflectionExecutor(); }) .UseSmartContractWallet() .UseFederatedPegPoAMining() .Build(); return(node); }
internal static IFullNodeBuilder AddCommonFeatures(this IFullNodeBuilder fullNodeBuilder, NodeSettings nodeSettings, FederatedPegOptions options) { return(fullNodeBuilder .UseNodeSettings(nodeSettings) .UseBlockStore() .AddFederationGateway(options) .UseTransactionNotification() .UseBlockNotification() .UseApi() .UseMempool() .AddRPC()); }