public static string ParseForMiningSetup(MiningSetup miningSetup, DeviceType deviceType, bool showLog = true) { return(ParseForMiningPairs( miningSetup.MiningPairs, miningSetup.CurrentAlgorithmType, deviceType, miningSetup.MinerPath, showLog)); }
virtual public void InitMiningSetup(MiningSetup miningSetup) { MiningSetup = miningSetup; IsInit = MiningSetup.IsInit; SetAPIPort(); SetWorkingDirAndProgName(MiningSetup.MinerPath); }
public static void Stop() { _cachedSetup = null; if (_process == null) { return; } try { _process.CloseMainWindow(); if (!_process.WaitForExit(10 * 1000)) { _process.Kill(); } _process.Close(); } catch (Exception e) { Helpers.ConsolePrint("ETHLARGEMENT", e.Message); } _process = null; }
public override void InitMiningSetup(MiningSetup miningSetup) { base.InitMiningSetup(miningSetup); var cpus = new List <MiningPair>(); var nvidias = new List <MiningPair>(); var amds = new List <MiningPair>(); foreach (var pairs in MiningSetup.MiningPairs) { switch (pairs.Device.DeviceType) { case DeviceType.CPU: cpus.Add(pairs); break; case DeviceType.NVIDIA: nvidias.Add(pairs); break; case DeviceType.AMD: amds.Add(pairs); break; } } // reinit CpuSetup = new MiningSetup(cpus); NvidiaSetup = new MiningSetup(nvidias); AmdSetup = new MiningSetup(amds); }
public override void InitMiningSetup(MiningSetup miningSetup) { base.InitMiningSetup(miningSetup); List <MiningPair> CPUs = new List <MiningPair>(); List <MiningPair> NVIDIAs = new List <MiningPair>(); List <MiningPair> AMDs = new List <MiningPair>(); foreach (var pairs in MiningSetup.MiningPairs) { if (pairs.Device.DeviceType == DeviceType.CPU) { CPUs.Add(pairs); } if (pairs.Device.DeviceType == DeviceType.NVIDIA) { NVIDIAs.Add(pairs); } if (pairs.Device.DeviceType == DeviceType.AMD) { AMDs.Add(pairs); } } // reinit CPU_Setup = new MiningSetup(CPUs); NVIDIA_Setup = new MiningSetup(NVIDIAs); AMD_Setup = new MiningSetup(AMDs); }
protected Miner(string minerDeviceName) { ConectionType = NhmConectionType.STRATUM_TCP; MiningSetup = new MiningSetup(null); IsInit = false; MinerID = MinerIDCount++; MinerDeviceName = minerDeviceName; WorkingDirectory = ""; IsRunning = false; PreviousTotalMH = 0.0; LastCommandLine = ""; IsApiReadException = false; // Only set minimize if hide is false (specific miners will override true after) IsNeverHideMiningWindow = ConfigManager.GeneralConfig.MinimizeMiningWindows && !ConfigManager.GeneralConfig.HideMiningWindows; IsKillAllUsedMinerProcs = false; _maxCooldownTimeInMilliseconds = GetMaxCooldownTimeInMilliseconds(); // Helpers.ConsolePrint(MinerTag(), "NEW MINER CREATED"); }
public override void InitMiningSetup(MiningSetup miningSetup) { base.InitMiningSetup(miningSetup); // now find the fastest for DAG generation double fastestSpeed = double.MinValue; foreach (var mPair in MiningSetup.MiningPairs) { double compareSpeed = mPair.Device.DeviceBenchmarkConfig.AlgorithmSettings[AlgorithmType.DaggerHashimoto].BenchmarkSpeed; if (fastestSpeed < compareSpeed) { DaggerHashimotoGenerateDevice = mPair.Device; fastestSpeed = compareSpeed; } } }
/// <summary> /// The InitMiningSetup /// </summary> /// <param name="miningSetup">The <see cref="MiningSetup"/></param> public override void InitMiningSetup(MiningSetup miningSetup) { base.InitMiningSetup(miningSetup); // now find the fastest for DAG generation double fastestSpeed = double.MinValue; foreach (var mPair in MiningSetup.MiningPairs) { double compareSpeed = mPair.Algorithm.AvaragedSpeed; if (fastestSpeed < compareSpeed) { DaggerHashimotoGenerateDevice = mPair.Device; fastestSpeed = compareSpeed; } } }
public static void CheckAndStart(MiningSetup setup) { lock (Lock) { _cachedSetup = setup; if (!ShouldRun(setup)) { return; } _process = new Process { StartInfo = { FileName = MinerPaths.Data.EthLargement, //CreateNoWindow = false } }; if (ConfigManager.GeneralConfig.HideMiningWindows || ConfigManager.GeneralConfig.MinimizeMiningWindows) { _process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; //_process.StartInfo.UseShellExecute = true; } //e.StartInfo.UseShellExecute = false; _process.EnableRaisingEvents = true; _process.Exited += ExitEvent; try { if (_process.Start()) { Helpers.ConsolePrint("ETHLARGEMENT", "Starting ethlargement..."); } else { Helpers.ConsolePrint("ETHLARGEMENT", "Couldn't start ethlargement"); } } catch (Exception ex) { Helpers.ConsolePrint("ETHLARGEMENT", ex.Message); } } }
public override void InitMiningSetup(MiningSetup miningSetup) { base.InitMiningSetup(miningSetup); List<MiningPair> CPUs = new List<MiningPair>(); List<MiningPair> NVIDIAs = new List<MiningPair>(); List<MiningPair> AMDs = new List<MiningPair>(); foreach (var pairs in MiningSetup.MiningPairs) { if (pairs.Device.DeviceType == DeviceType.CPU) { CPUs.Add(pairs); } if (pairs.Device.DeviceType == DeviceType.NVIDIA) { NVIDIAs.Add(pairs); } if (pairs.Device.DeviceType == DeviceType.AMD) { AMDs.Add(pairs); } } // reinit CPU_Setup = new MiningSetup(CPUs); NVIDIA_Setup = new MiningSetup(NVIDIAs); AMD_Setup = new MiningSetup(AMDs); }
protected override string GetDevicesCommandString() { var ctMiningPairs = new List <MiningPair>(); var deviceStringCommand = " -cd "; var defaultCT = 1; if (MiningSetup.CurrentAlgorithmType == AlgorithmType.Equihash) { defaultCT = 2; } foreach (var nvidiaPair in MiningSetup.MiningPairs) { if (nvidiaPair.CurrentExtraLaunchParameters.Contains("-ct")) { for (var i = 0; i < ExtraLaunchParametersParser.GetEqmCudaThreadCount(nvidiaPair); ++i) { deviceStringCommand += nvidiaPair.Device.ID + " "; ctMiningPairs.Add(nvidiaPair); } } else { // use default default_CT for best performance for (var i = 0; i < defaultCT; ++i) { deviceStringCommand += nvidiaPair.Device.ID + " "; ctMiningPairs.Add(nvidiaPair); } } } var ctMiningSetup = new MiningSetup(ctMiningPairs); //deviceStringCommand += " " + ExtraLaunchParametersParser.ParseForMiningSetup(this.MiningSetup, DeviceType.NVIDIA); deviceStringCommand += " " + ExtraLaunchParametersParser.ParseForMiningSetup(ctMiningSetup, DeviceType.NVIDIA); return(deviceStringCommand); }
public Miner(string minerDeviceName) { ConectionType = NHMConectionType.STRATUM_TCP; MiningSetup = new MiningSetup(null); IsInit = false; MINER_ID = MINER_ID_COUNT++; MinerDeviceName = minerDeviceName; WorkingDirectory = ""; IsRunning = false; PreviousTotalMH = 0.0; LastCommandLine = ""; IsAPIReadException = false; IsNeverHideMiningWindow = false; IsKillAllUsedMinerProcs = false; _MAX_CooldownTimeInMilliseconds = GET_MAX_CooldownTimeInMilliseconds(); // Helpers.ConsolePrint(MinerTAG(), "NEW MINER CREATED"); }
private static bool ShouldRun(MiningSetup setup) { if (Running || setup == null || !ConfigManager.GeneralConfig.UseEthlargement) { return(false); } Helpers.ConsolePrint("ETHLARGEMENT", "Checking if should run ethlargement..."); if (ConfigManager.GeneralConfig.Use3rdPartyMiners != Use3rdPartyMiners.YES) { Helpers.ConsolePrint("ETHLARGEMENT", "Ethlargement not started because 3rd party miners not enabled"); return(false); } if (!Helpers.IsElevated) { Helpers.ConsolePrint("ETHLARGEMENT", "Ethlargement not started because NHML is not running as admin"); return(false); } //return setup.MiningPairs.Any(p => p.CurrentExtraLaunchParameters.Contains("--ethlargement")); foreach (var p in setup.MiningPairs) { if (p.Algorithm.NiceHashID == AlgorithmType.DaggerHashimoto && p.Device is CudaComputeDevice cuda && cuda.ShouldRunEthlargement) { return(true); } } Helpers.ConsolePrint("ETHLARGEMENT", "No ethlargement algorithm/device combos found. Not running"); return(false); }
public Miner(string minerDeviceName) { MiningSetup = new MiningSetup(null); IsInit = false; MINER_ID = MINER_ID_COUNT++; MinerDeviceName = minerDeviceName; //WorkingDirectory = @"bin\dlls"; WorkingDirectory = ""; IsRunning = false; PreviousTotalMH = 0.0; LastCommandLine = ""; APIPort = MinersApiPortsManager.Instance.GetAvaliablePort(); IsAPIReadException = false; IsNHLocked = false; IsKillAllUsedMinerProcs = false; _MAX_CooldownTimeInMilliseconds = GET_MAX_CooldownTimeInMilliseconds(); // Helpers.ConsolePrint(MinerTAG(), "NEW MINER CREATED"); }
public virtual void InitMiningSetup(MiningSetup miningSetup) { MiningSetup = miningSetup; IsInit = MiningSetup.IsInit; }
public static string ParseForMiningSetup(MiningSetup miningSetup, DeviceType deviceType, bool showLog = true) { return ParseForMiningPairs( miningSetup.MiningPairs, miningSetup.CurrentAlgorithmType, deviceType, miningSetup.MinerPath, showLog); }
public override void InitMiningSetup(MiningSetup miningSetup) { base.InitMiningSetup(miningSetup); }
virtual public void InitMiningSetup(MiningSetup miningSetup) { MiningSetup = miningSetup; IsInit = MiningSetup.IsInit; }
public override void InitMiningSetup(MiningSetup miningSetup) { base.InitMiningSetup(miningSetup); // now find the fastest for DAG generation double fastestSpeed = double.MinValue; foreach (var mPair in MiningSetup.MiningPairs) { double compareSpeed = mPair.Algorithm.AvaragedSpeed; if (fastestSpeed < compareSpeed) { DaggerHashimotoGenerateDevice = mPair.Device; fastestSpeed = compareSpeed; } } }
public Miner(string minerDeviceName) { MiningSetup = new MiningSetup(null); IsInit = false; MINER_ID = MINER_ID_COUNT++; MinerDeviceName = minerDeviceName; //WorkingDirectory = @"bin\dlls"; WorkingDirectory = ""; IsRunning = false; PreviousTotalMH = 0.0; LastCommandLine = ""; APIPort = MinersApiPortsManager.GetAvaliablePort(); IsAPIReadException = false; IsNHLocked = false; IsKillAllUsedMinerProcs = false; _MAX_CooldownTimeInMilliseconds = GET_MAX_CooldownTimeInMilliseconds(); // Helpers.ConsolePrint(MinerTAG(), "NEW MINER CREATED"); }
private async void btn_startTest_Click(object sender, EventArgs e) { //var miningTime = TimeSpan.FromSeconds(30); int minM, minS, minMS; int.TryParse(tbx_minTimeM.Text, out minM); int.TryParse(tbx_minTimeS.Text, out minS); int.TryParse(tbx_minTimeMS.Text, out minMS); int minTime = (60 * minM * 1000) + (1000 * minS) + minMS; var miningTime = TimeSpan.FromMilliseconds(minTime); int delayM, delayS, delayMS; int.TryParse(tbx_stopDelayM.Text, out delayM); int.TryParse(tbx_stopDelayS.Text, out delayS); int.TryParse(tbx_stopDelayMS.Text, out delayMS); int delayTime = (60 * delayM * 1000) + (1000 * delayS) + delayMS; var stopDelayTime = TimeSpan.FromMilliseconds(delayTime); //TimeSpan.FromSeconds(1); var enabledDevs = AvailableDevices.Devices.Where(dev => dev.Enabled); var testSteps = enabledDevs.Select(dev => dev.GetAlgorithmSettings().Where(algo => algo.Enabled).Count()).Sum(); var step = 0; foreach (var device in enabledDevs) { var enabledAlgorithms = device.GetAlgorithmSettings().Where(algo => algo.Enabled); foreach (var algorithm in enabledAlgorithms) { step++; try { var miner = NiceHashMiner.Miners.MinerFactory.CreateMiner(device.DeviceType, algorithm); var pair = new List <MiningPair> { new MiningPair(device, algorithm) }; var miningSetup = new MiningSetup(pair); miner.InitMiningSetup(miningSetup); var url = StratumHelpers.GetLocationUrl(algorithm.NiceHashID, "eu", miner.ConectionType); tbx_info.Text += $"TESTING: {Environment.NewLine}"; tbx_info.Text += $"Device: {device.GetFullName()} {Environment.NewLine}"; tbx_info.Text += $"Miner path: {algorithm.MinerBinaryPath}" + Environment.NewLine; tbx_info.Text += $"Miner base: {algorithm.MinerBaseTypeName}" + Environment.NewLine; tbx_info.Text += $"Algorithm: {algorithm.AlgorithmName}" + Environment.NewLine; label1.Text = $"{step} / {testSteps}"; tbx_info.Text += $"Starting miner running for {miningTime.ToString()}" + Environment.NewLine; miner.Start(url, Globals.DemoUser, "test"); await Task.Delay(miningTime); tbx_info.Text += $"Stopping" + Environment.NewLine; var checkedButton = gb_stopMiningBy.Controls.OfType <RadioButton>() .FirstOrDefault(r => r.Checked); if (checkedButton.Name == "rb_endMining") { miner.End(); } else { miner.Stop(); } tbx_info.Text += $"Delay after stop {stopDelayTime.ToString()}" + Environment.NewLine; await Task.Delay(stopDelayTime); tbx_info.Text += $"DONE" + Environment.NewLine + Environment.NewLine; } catch (Exception ex) { tbx_info.Text += $"Exception {ex}" + Environment.NewLine; } } } }
public static string ParseForMiningSetup(MiningSetup miningSetup, DeviceType deviceType, bool showLog = true) { return ParseForMiningPairs( miningSetup.MiningPairs, deviceType, showLog); }
virtual public void InitMiningSetup(MiningSetup miningSetup) { MiningSetup = miningSetup; IsInit = MiningSetup.IsInit; SetAPIPort(); }