public static void RunCommand(string commandName, string input) { blockchain = NetworkFileProvider <Blockchain.Blockchain> .GetModel(Constants.BlockchainStoragePath); if (commandName == "connect") { string template = "{0} -ip {1} -p {2}"; var args = ReverseStringFormat(template, input); int port = int.Parse(args[2]); IPAddress clientIp; if (IPAddress.TryParse(args[1], out clientIp)) { blockchain.RegisterNode($"{clientIp}:{port}"); AsynchronousClient.Connect(clientIp, port); } else { Logger.LogLine("incorect command parameters", ConsoleColor.Red); } } if (commandName == "peers") { if (blockchain.Nodes.Count > 0) { foreach (var node in blockchain.Nodes) { Logger.LogLine(node.Address, ConsoleColor.Green); } } else { Logger.LogLine("no peers", ConsoleColor.Red); } } if (commandName == "start-wallet") { WalletProvider.Initialize(); } if (commandName == "sync") { var result = blockchain.ResolveConflicts(); if (result) { Logger.LogLine("successfully sync network", ConsoleColor.Green); } else { Logger.LogLine("error while sync network", ConsoleColor.Red); } } }
public string RegisterNode([FromBody] NodeModel node) { return(_blockchain.RegisterNode(node.Name, node.Address)); }