예제 #1
0
    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))
예제 #2
0
    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
예제 #3
0
 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