Пример #1
0
 def _read_status(self):
     running_algorithms = self._assignments.values()
     speeds = {
         algorithm: algorithm.current_speeds()
         for algorithm in running_algorithms
     }
     revenue = {
         algorithm: sum([
             self._current_payrates[multialgorithm] * speeds[algorithm][i]
             for i, multialgorithm in enumerate(algorithm.algorithms)
         ])
         for algorithm in running_algorithms
     }
     devices = {
         algorithm: [
             device for device, this_algorithm in self._assignments.items()
             if this_algorithm == algorithm
         ]
         for algorithm in running_algorithms
     }
     main.sendMessage(self._window,
                      'mining.status',
                      speeds=speeds,
                      revenue=revenue,
                      devices=devices)
     self._scheduler.enter(MINING_UPDATE_SECS, MiningThread.STATUS_PRIORITY,
                           self._read_status)
Пример #2
0
 def report(sample, secs_remaining):
     main.sendMessage(self._window,
                      'benchmarking.status',
                      target=target,
                      speeds=sample,
                      time=abs(secs_remaining),
                      warmup=(secs_remaining < 0))
Пример #3
0
    def run(self):
        for miner in self._miners:
            miner.load()

        for target in self._targets:

            def report(sample, secs_remaining):
                main.sendMessage(self._window,
                                 'benchmarking.status',
                                 target=target,
                                 speeds=sample,
                                 time=abs(secs_remaining),
                                 warmup=(secs_remaining < 0))

            device, algorithm = target
            speeds = utils.run_benchmark(algorithm,
                                         device,
                                         algorithm.warmup_secs,
                                         BENCHMARK_SECS,
                                         sample_callback=report,
                                         abort_signal=self._abort)
            if self._abort.is_set():
                break
            main.sendMessage(self._window,
                             'benchmarking.set',
                             target=target,
                             speeds=speeds)

        for miner in self._miners:
            miner.unload()

        main.sendMessage(self._window, 'benchmarking.stop')
Пример #4
0
 def _read_status(self):
     running_algorithms = self._assignments.values()
     # Check miner status.
     for algorithm in running_algorithms:
         if not algorithm.parent.is_running():
             logging.error('Detected %s crash, restarting miner'
                           % algorithm.name)
             algorithm.parent.reload()
     speeds = {algorithm: algorithm.current_speeds()
               for algorithm in running_algorithms}
     revenue = {algorithm: sum([self._current_payrates[multialgorithm]
                                *speeds[algorithm][i]
                                for i, multialgorithm
                                in enumerate(algorithm.algorithms)])
                 for algorithm in running_algorithms}
     devices = {algorithm: [device for device, this_algorithm
                            in self._assignments.items()
                            if this_algorithm == algorithm]
                for algorithm in running_algorithms}
     main.sendMessage(self._window, 'mining.status',
                      speeds=speeds, revenue=revenue, devices=devices)
     self._scheduler.enter(MINING_UPDATE_SECS, MiningThread.STATUS_PRIORITY,
                           self._read_status)
Пример #5
0
 def request(address, target):
     balance = unpaid_balance(address)
     main.sendMessage(target, 'nicehash.balance', balance=balance)
Пример #6
0
 def do_requests(address, target):
     wallet, unpaid = get_balances(self._Settings)
     main.sendMessage(target,
                      'nicehash.balances',
                      wallet=wallet,
                      unpaid=unpaid)