public ActionStatus SetUpBuilder(NodeDownloadData data, Network net) { builder = NodeBuilder.Create(data, net); builder.ConfigParameters.Add("printtoconsole", "0"); return(new ActionStatus { Status = "Setup", Success = true }); }
public ServerTester(string directory) { nodeDownloadData = bitcoinDownloadData; var networkString = "regtest"; try { var rootTestData = "TestData"; directory = Path.Combine(rootTestData, directory); _Directory = directory; if (!Directory.Exists(rootTestData)) { Directory.CreateDirectory(rootTestData); } NodeBuilder = CreateNodeBuilder(directory); User1 = NodeBuilder.CreateNode(); User2 = NodeBuilder.CreateNode(); Explorer = NodeBuilder.CreateNode(); foreach (var node in NodeBuilder.Nodes) { node.WhiteBind = true; } NodeBuilder.StartAll(); User1.CreateRPCClient().Generate(1); User1.Sync(Explorer, true); Explorer.CreateRPCClient().Generate(1); Explorer.Sync(User2, true); User2.CreateRPCClient().Generate(101); User1.Sync(User2, true); var creds = RPCCredentialString.Parse(Explorer.AuthenticationString).UserPassword; var datadir = Path.Combine(directory, "explorer"); DeleteRecursivelyWithMagicDust(datadir); List <(string key, string value)> keyValues = new List <(string key, string value)>(); keyValues.Add(("conf", Path.Combine(directory, "explorer", "settings.config"))); keyValues.Add(("datadir", datadir)); keyValues.Add(("network", networkString)); keyValues.Add(("verbose", "1")); keyValues.Add(("btcrpcuser", creds.UserName)); keyValues.Add(("btcrpcpassword", creds.Password)); keyValues.Add(("btcrpcurl", Explorer.CreateRPCClient().Address.AbsoluteUri)); keyValues.Add(("cachechain", "0")); keyValues.Add(("rpcnotest", "1")); keyValues.Add(("mingapsize", "2")); keyValues.Add(("maxgapsize", "4")); keyValues.Add(("btcstartheight", Explorer.CreateRPCClient().GetBlockCount().ToString())); keyValues.Add(("btcnodeendpoint", $"{Explorer.Endpoint.Address}:{Explorer.Endpoint.Port}")); var args = keyValues.SelectMany(kv => new[] { $"--{kv.key}", kv.value }).ToArray(); Host = new WebHostBuilder() .UseConfiguration(new DefaultConfiguration().CreateConfiguration(args)) .UseKestrel() .ConfigureLogging(l => { l.SetMinimumLevel(LogLevel.Information) .AddFilter("Microsoft", LogLevel.Error) .AddFilter("Hangfire", LogLevel.Error) .AddFilter("NBXplorer.Authentication.BasicAuthenticationHandler", LogLevel.Critical) .AddProvider(Logs.LogProvider); }) .UseStartup <Startup>() .Build(); string cryptoCode = "BTC"; RPC = ((RPCClientProvider)Host.Services.GetService(typeof(RPCClientProvider))).GetRPCClient(cryptoCode); var nbxnetwork = ((NBXplorerNetworkProvider)Host.Services.GetService(typeof(NBXplorerNetworkProvider))).GetFromCryptoCode(cryptoCode); Network = nbxnetwork.NBitcoinNetwork; var conf = (ExplorerConfiguration)Host.Services.GetService(typeof(ExplorerConfiguration)); Host.Start(); _Client = new ExplorerClient(nbxnetwork, Address); _Client.SetCookieAuth(Path.Combine(conf.DataDir, ".cookie")); } catch { Dispose(); throw; } }