Ограничение API Bitfinex

В настоящее время на Bitfinex существует ограничение API в 60 запросов в минуту .

Вопрос в том, связано ли это ограничение с:

  • 1) один IP-адрес ,

Если да, могу ли я иметь больше IP-адресов, связанных с одной учетной записью, каждая из которых имеет лимит 60 запросов в минуту?

  • 2) учетная запись пользователя ,

Если да, могу ли я иметь больше учетных записей с тем же IP-адресом?

  • 3) единый ключ API

Если да, могу ли я иметь больше ключей для одной учетной записи, каждый из которых имеет отдельный лимит запросов?

Ответы (3)

Я написал им по этому поводу:

Лимит измеряется для каждого IP-адреса и для каждой учетной записи . Таким образом, для одного аккаунта (независимо от количества пар ключ/секрет) через наш API можно сделать 60 запросов в минуту. Когда вы используете несколько подключений (IP-адресов), общая сумма всех запросов для рассматриваемой учетной записи будет использоваться для определения того, не превышаете ли вы ограничение в 60 минут в минуту.

Мы надеемся, что этот ответ в достаточной мере ответил на ваши вопросы.

Как вы измеряете количество запросов? Вы делаете это каждую минуту или запускаете минуту и ​​расчет только тогда, когда новый запрос приходит с задержкой? Могу ли я напр. сделать один запрос каждую секунду в течение одной минуты, а затем сделать 60 запросов сразу в течение первой секунды второй минуты?
@Roces Предположительно, они делают это, увеличивая счетчик каждый раз, когда приходит запрос. Или я неправильно истолковываю ваш вопрос?
@NickODell извините, обновил мой вопрос. Нажмите Enter слишком рано.
А как насчет технологии WebSocket от Binance? Есть ли ограничения по скорости?

Мой вывод об ограничении скорости Bitfinex таков: 1 секунда делится на миллисекунды. 60 запросов должны охватывать всю секунду.

Например, если у вас есть цикл foreach, вы получите ошибку ограничения скорости менее чем за 15 запросов, потому что вы запрашиваете слишком быстро. Поэтому добавьте usleep (микросекундный сон в PHP), чтобы охватить ваши запросы на всю секунду и/или иметь несколько IP-адресов, назначенных вашему VPS или выделенному ящику, и используйте эту опцию curl.

  <?php
  $ips = array('1.1.1.1','1.1.1.2','1.1.1.3');

  curl_setopt($ch, CURLOPT_INTERFACE, $ips[array_rand($ips)]);

Я пытался прокомментировать другой ответ, но моя репутация недостаточно высока. Я хотел указать, что предположение Ника об использовании счетчика имеет смысл, но не отвечает на вопрос, который, если предположить, что его предположение верно, оставляет это без ответа: когда счетчик сбрасывается?

Я бы реализовал это таким образом и (на всякий случай) предположил, что они сделали это так: по каждому запросу, если количество запросов, соответствующих вашей учетной записи или вашему IP (или обоим) за последние 60 секунд, превышает 60 , то запрос отклоняется. Это означает, что на один из «60 запросов одновременно в течение первой секунды второй минуты» будет дан ответ, а остальные не будут выполнены. Счетчика не будет, вместо этого будет запись всех запросов (IP, учетная запись, отметка времени), которая очищается от записей старше минуты так часто, как это необходимо для поддержания работоспособности сервера.