private Stratum.Stratum createStratumFromPoolSettings(List <PoolSettingsXml> pPoolSettings, Algorithm pAlgorithm) { Stratum.Stratum result = null; switch (pAlgorithm) { case Algorithm.CryptoNight: default: result = new CryptoNightStratum(pPoolSettings); break; } return(result); }
private Stratum.Stratum createStratumFromPoolSettings(List <PoolSettingsXmlUI> pPoolSettings, int pAlgorithm) { Stratum.Stratum result = null; switch (pAlgorithm) { case (int)SupportedAlgos.CryptoNight: default: result = new CryptoNightStratum(pPoolSettings); break; } return(result); }
public void Start(CryptoNightStratum pStratum, int pRawIntensity, int pLocalWorkSize, bool pNicehashMode = true) { //foreach (ProcessThread pt in Process.GetCurrentProcess().Threads) //{ // int utid = Utils.GetCurrentThreadId(); // if (utid == pt.Id) // { // pt.ProcessorAffinity = (IntPtr)Utils.PriorityThread; // } //} var prevGlobalWorkSize = globalWorkSizeA[0]; _stratum = pStratum; _coin = Consts.Coins.Where(x => x.CoinType == _stratum.ActiveClient.Pool.CoinType).FirstOrDefault(); if ((Utils.MigrateAlgorithm(_stratum.ActiveClient.Pool.Algorithm) == (int)Consts.SupportedAlgos.CryptoNight_Heavy) || (_coin.Algorithm == (int)Consts.SupportedAlgos.CryptoNight_Heavy)) { globalWorkSizeA[0] = globalWorkSizeB[0] = Utils.NearestEven(pRawIntensity * pLocalWorkSize / 2); } else { globalWorkSizeA[0] = globalWorkSizeB[0] = pRawIntensity * pLocalWorkSize; } localWorkSizeA[0] = localWorkSizeB[0] = pLocalWorkSize; NiceHashMode = pNicehashMode; if (statesBuffer == null) { statesBuffer = new ComputeBuffer <byte>(Context, ComputeMemoryFlags.ReadWrite, 200 * globalWorkSizeA[0]); } base.Start(); }