async def mine_loop(self): while True: print("Fetching current challenge") response = await self.get_current_challenge() current_challenge = Challenge() current_challenge.fill_from_challenge(response) self.time_limit = int(time.time()) + int(response['time_left']) print(response) solver = None for s in self.solvers: if s.challenge_name == current_challenge.challenge_name: solver = s break if solver: print("Searching for a hash matching : {0}".format(current_challenge.hash_prefix)) result = solver.solve(current_challenge.parameters, current_challenge.hash_prefix, current_challenge.last_solution_hash) print(result) await self.submit(current_challenge.id, result[1], result[0]) else: print("Solver for {0} not found".format(current_challenge.challenge_name))
async def wait_for_new_challenge(self): msg = await self.socket.recv() response = json.loads(msg) current_challenge = Challenge() try: current_challenge = Challenge() current_challenge.fill_from_challenge(response) self.time_limit = int(time.time()) + int(response['time_left']) print("New challenge received") except: current_challenge = None return current_challenge
async def get_challenge(self): response = await self.get_current_challenge() current_challenge = Challenge() current_challenge.fill_from_challenge(response) self.time_limit = int(time.time()) + int(response['time_left']) return current_challenge