private void StartNode() { string compilerSwitches = ClientAction.Parameters[ActionParameters.CompilerSwitches]; string runtimeSwitches = ClientAction.Parameters[ActionParameters.RuntimeSwitches]; NetworkType network; NetworkType.TryParse(ClientAction.Parameters[ActionParameters.Network], out network); string dataDir = ClientAction.Parameters[ActionParameters.DataDir]; string workingDirectory = ClientAction.Parameters[ActionParameters.WorkingDirectory]; string networkSwitch = $"-{network}"; ProcessStartInfo startInfo = new ProcessStartInfo("dotnet", $"run {compilerSwitches}{networkSwitch} -datadir={dataDir}{runtimeSwitches}"); startInfo.WorkingDirectory = workingDirectory; startInfo.RedirectStandardError = false; startInfo.RedirectStandardOutput = false; Process process = new Process(); process.StartInfo = startInfo; process.Start(); BlockchainNode node = Client.Session.ManagedNodes.GetNode(ClientAction.FullNodeName); string pidFilePath = Path.Combine(node.NodeConfig.NetworkDirectory, "PID"); if (File.Exists(pidFilePath)) { File.Delete(pidFilePath); } File.WriteAllText(pidFilePath, process.Id.ToString()); }