Exemplo n.º 1
0
        private void NetworkInterface_OnGetMiningParameterStatusEvent(NetworkInterface.INetworkInterface sender,
                                                                      bool success, NetworkInterface.MiningParameters miningParameters)
        {
            try
            {
                if (m_instance != null && m_instance.ToInt64() != 0)
                {
                    if (success)
                    {
                        var isPause = false;
                        Solver.IsPaused(m_instance, ref isPause);

                        if (!NetworkInterface.IsPool &&
                            ((NetworkInterface.Web3Interface)NetworkInterface).IsChallengedSubmitted(miningParameters.ChallengeNumberByte32String))
                        {
                            isPause = true;
                        }
                        else if (isPause)
                        {
                            if (m_failedScanCount > m_pauseOnFailedScan)
                            {
                                m_failedScanCount = 0;
                            }

                            isPause = false;
                        }
                        Solver.PauseFinding(m_instance, isPause);
                    }
                    else
                    {
                        m_failedScanCount += 1;

                        var isMining = false;
                        Solver.IsMining(m_instance, ref isMining);

                        if (m_failedScanCount > m_pauseOnFailedScan && IsMining)
                        {
                            Solver.PauseFinding(m_instance, true);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Program.Print(string.Format("[ERROR] {0}", ex.Message));
            }
        }
Exemplo n.º 2
0
        private void NetworkInterface_OnGetMiningParameterStatus(NetworkInterface.INetworkInterface sender, bool success, NetworkInterface.MiningParameters miningParameters)
        {
            try
            {
                if (m_instance != null && m_instance.ToInt64() != 0)
                {
                    if (success)
                    {
                        var isPause = false;
                        Solver.IsPaused(m_instance, ref isPause);

                        if (m_isCurrentChallengeStopSolving)
                        {
                            isPause = true;
                        }
                        else if (isPause)
                        {
                            if (m_failedScanCount > m_pauseOnFailedScan)
                            {
                                m_failedScanCount = 0;
                            }

                            isPause = false;
                        }
                        Solver.PauseFinding(m_instance, isPause);
                    }
                    else
                    {
                        m_failedScanCount += 1;

                        var isMining = false;
                        Solver.IsMining(m_instance, ref isMining);

                        if (m_failedScanCount > m_pauseOnFailedScan && IsMining)
                        {
                            Solver.PauseFinding(m_instance, true);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Program.Print(string.Format("OpenCL [ERROR] {0}", ex.Message));
            }
        }