def add_response(self, public_key, response_tuple):
        # Only allow 1 response per peer
        if public_key in self.public_keys:
            return False
        self.public_keys.append(public_key)

        self.responses[response_tuple] = self.responses.get(response_tuple, 0) + 1

        # If we already have all responses there is not need to wait for the timeout
        if sum(self.responses.values()) >= self.max_responses:
            self.callback()
            return True
        return False