Esempio n. 1
0
        private void StartWorkOnDevice(IMiningDevice device, object[] param, string extranonce1, int extraNonce2Size, int diff)
        {
            string extranonce2 = string.Empty;

            lock (extraNonce2Lock)
            {
                extranonce2 = string.Format("{0:X8}", currentExtraNonce2);

                if (currentExtraNonce2 != int.MaxValue)
                {
                    currentExtraNonce2++;
                }
                else
                {
                    currentExtraNonce2 = 0;
                }
            }

            StratumWork deviceWork = new StratumWork(param, extranonce1, extraNonce2Size, extranonce2, diff);

            #if DEBUG
            string previous = deviceWork.Timestamp;
            #endif

            deviceWork.SetTimestamp(lastReceivedNTime + (uint)DateTime.Now.Subtract(lastWorkRecievedTime).TotalSeconds);

            #if DEBUG
            LogHelper.DebugConsoleLog(string.Format("Update timestamp from {0} to {1}.", previous, deviceWork.Timestamp), ConsoleColor.DarkYellow, LogVerbosity.Quiet);
            #endif

            device.StartWork(deviceWork);
        }
Esempio n. 2
0
        protected override void NoWork(IPoolWork oldWork, IMiningDevice device, bool requested)
        {
            StratumWork stratumWork = oldWork as StratumWork;

            if (stratumWork != null)
            {
                LogHelper.DebugConsoleLog("No new work, making new work.");
                StartWorkOnDevice(stratumWork, device, false, requested);
            }
        }
Esempio n. 3
0
 private void StartWorkOnDevice(StratumWork work, IMiningDevice device, bool restartWork, bool requested)
 {
     if (!restartWork && device != null && requested)
     {
         StartWorkOnDevice(device, work.CommandArray, work.Extranonce1, work.ExtraNonce2Size, work.Diff);
     }
     else if (restartWork)
     {
         StartWorking(work.CommandArray, work.Extranonce1, work.ExtraNonce2Size, work.Diff);
     }
 }
Esempio n. 4
0
        protected override void StartWork(IPoolWork work, IMiningDevice device, bool restartAll, bool requested)
        {
            StratumWork stratumWork = work as StratumWork;

            if (stratumWork != null)
            {
                LogHelper.DebugConsoleLog("Starting new work on devices.");
                currentExtraNonce2 = Random.Next();
                StartWorkOnDevice(stratumWork, device, (restartAll || (AlwaysForceRestart && (mostRecentWork == null || mostRecentWork.JobId != work.JobId))), requested);

                mostRecentWork = stratumWork;
            }
        }