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)
def report(sample, secs_remaining): main.sendMessage(self._window, 'benchmarking.status', target=target, speeds=sample, time=abs(secs_remaining), warmup=(secs_remaining < 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')
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)
def request(address, target): balance = unpaid_balance(address) main.sendMessage(target, 'nicehash.balance', balance=balance)
def do_requests(address, target): wallet, unpaid = get_balances(self._Settings) main.sendMessage(target, 'nicehash.balances', wallet=wallet, unpaid=unpaid)