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