Разница во времени с сервером Binance

#python #api #time #unix-timestamp #binance

#python #API #время #unix-временная метка #binance

Вопрос:

Я пытаюсь создать очень простой автоматизированный инструмент на Python, который позволит мне размещать заказы на Binance. На самом деле нужно освоить Python, имея в виду «цель», финишную черту.

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

С этой целью я использую метод get_server_time . Оба времени возвращаются в ЭПОХУ, что нормально, но есть небольшая разница во времени.

Для меня не проблема передавать заказы или продолжать свое путешествие, но я хотел бы понять причину этого; Мне любопытно быть тщательным и понимать все тонкости этого.

Вот мой код:

 # Get Server Time
def get_server_time():
    ts = client.get_server_time()['serverTime']
    server_time = datetime.utcfromtimestamp(ts / 1000).strftime('%Y-%m-%d %H:%M:%S')
    return server_time

print(round(time.time()*1000))
print(client.get_server_time()['serverTime'])

# Check if computer time is the same as server time
if time.time()*1000 != client.get_server_time()['serverTime']:
    print("There is a problem in time sync.")
else:
    print("Your computer time matches server time.")
 

И он возвращает небольшую разницу во времени, как показано здесь:

 1639147119502
1639147120114
There is a problem in time sync.
 

Я пробовал синхронизировать часы своего компьютера различными способами (самый известный, который вы видите в Google; возился со службой времени Windows10).

Есть ли какие-либо причины, о которых вы все могли подумать?

Заранее большое спасибо 😉

Ответ №1:

Есть ли какие-либо причины, о которых вы все могли подумать?

Разница между

 1639147119502
1639147120114
 

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

  1. вы проверяете текущее время на часах вашего компьютера
  2. вы спрашиваете сервер binance: сколько у вас времени, но прежде чем он достигнет его, он должен пройти через сеть, что требует времени
  3. он проверяет время и отправляет ответ

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

Комментарии:

1. Ах, да, вы правы! Я довольно новичок в работе с временными форматами ЭПОХИ, поэтому я не думал, что это может занять такое небольшое количество времени. Вполне логично, что разница составит ~ 1 секунду, что действительно будет временем для выполнения запроса. Большое спасибо за ваш быстрый ответ!