def fair_use_delay(self):
        if self._error_count == 1:
            delay = 60
        elif self._error_count > 1:
            delay = 60 * min(480, random.randint(30, 60) * (2 ** (self._error_count - 2)))
        else:
            delay = self._next_call_timestamp - int(time.time())
        if delay > 0 and not self.discard_fair_use_policy:
            log.info('Sleeping for %s seconds' % delay)
            time.sleep(delay)
Delay server query according to Request Frequency policy
dataset/ETHPy150Open afilipovich/gglsbl/gglsbl/protocol.py/BaseProtocolClient.fair_use_delay