Палантир. Часть 4. Протокол телеграма. #палантир@eshu_coding Помните, раньше говорилось, что телеграм - самый быстрый из мессенджеров и работает на самом убогом интернете? Причина скрыта в реализации протокола обмена данными клиентов и серверов.
Первое знакомство с протоколом вызывает бурю эмоций, но по прошествии времени проникаешься гениальностью замысла. API описано, на основании описания авторы клиентских библиотек генерируют основной код, после чего доводят библиотеку напильником.
Данные передаются через голый TCP, без всяких наворотов.
Принцип работы следующий: любая сущность представляет собой поток байтов. Первые 4 байта описывают тип сущности: канал, чат, человек, сообщение, прикреплённое медиа. Тип сущности и что какие байты значат берется из генерированного по API кода.
Необязательные параметры в документации помечаются степенью двойки. Наличие параметра определяется следующим образом: берутся 4 байта. Если логическое И этих байтов и двойки в степени из документации не равно нулю - значит параметр есть, повторяем вышеописанную процедуру разбора на нем. Если нет - идём дальше.
Жуткая наркомания, но в итоге по сети передаётся только полезная информация.
Палантир. Часть 4. Протокол телеграма. #палантир@eshu_coding Помните, раньше говорилось, что телеграм - самый быстрый из мессенджеров и работает на самом убогом интернете? Причина скрыта в реализации протокола обмена данными клиентов и серверов.
Первое знакомство с протоколом вызывает бурю эмоций, но по прошествии времени проникаешься гениальностью замысла. API описано, на основании описания авторы клиентских библиотек генерируют основной код, после чего доводят библиотеку напильником.
Данные передаются через голый TCP, без всяких наворотов.
Принцип работы следующий: любая сущность представляет собой поток байтов. Первые 4 байта описывают тип сущности: канал, чат, человек, сообщение, прикреплённое медиа. Тип сущности и что какие байты значат берется из генерированного по API кода.
Необязательные параметры в документации помечаются степенью двойки. Наличие параметра определяется следующим образом: берутся 4 байта. Если логическое И этих байтов и двойки в степени из документации не равно нулю - значит параметр есть, повторяем вышеописанную процедуру разбора на нем. Если нет - идём дальше.
Жуткая наркомания, но в итоге по сети передаётся только полезная информация.
“To the extent it is used I fear it’s often for illicit finance. It’s an extremely inefficient way of conducting transactions, and the amount of energy that’s consumed in processing those transactions is staggering,” the former Fed chairwoman said. Yellen’s comments have been cited as a reason for bitcoin’s recent losses. However, Yellen’s assessment of bitcoin as a inefficient medium of exchange is an important point and one that has already been raised in the past by bitcoin bulls. Using a volatile asset in exchange for goods and services makes little sense if the asset can tumble 10% in a day, or surge 80% over the course of a two months as bitcoin has done in 2021, critics argue. To put a finer point on it, over the past 12 months bitcoin has registered 8 corrections, defined as a decline from a recent peak of at least 10% but not more than 20%, and two bear markets, which are defined as falls of 20% or more, according to Dow Jones Market Data.
Traders also expressed uncertainty about the situation with China Evergrande, as the indebted property company has not provided clarification about a key interest payment.In economic news, the Commerce Department reported an unexpected increase in U.S. new home sales in August.Crude oil prices climbed Friday and front-month WTI oil futures contracts saw gains for a fifth straight week amid tighter supplies. West Texas Intermediate Crude oil futures for November rose $0.68 or 0.9 percent at 73.98 a barrel. WTI Crude futures gained 2.8 percent for the week.