👁 Что такое «тик-ток-транзакции»?
⚫️ Вчера блокчейн TON приостановился примерно на час, и после срочного исправления ошибки снова заработал. А теперь опубликован официальный отчёт «в чём заключалась проблема и как всё чинили».
⚫️ Сам отчёт написан техническим языком:
Коллаторы пытались создавать блоки с избыточно высоким значением lt у tick-транзакции...
Попробуем объяснить всё понятнее для обычного пользователя. Многие сейчас впервые услышали о «#tick-tock">тик-ток-транзакциях», и некоторые зацепились взглядом: «Что это вообще, мы же не тиктокеры какие-то!» Вот и расскажем.
⚫️ Есть привычные всем транзакции: например, когда пользователь отправляет немного Toncoin другому или пользуется DEX. Время их появления заранее не спрогнозировать: когда пользователь решит нажать кнопку, тогда и возникнут.
⚫️ Но есть ещё и специальные технические транзакции, которые происходят «по расписанию», причём два варианта постоянно сменяют друг друга. Поэтому они и названы «тик-ток»: происходит «tick-транзакция», затем «tock-транзакция», потом снова «tick»...
⚫️ Зачем они нужны? В TON каждые несколько секунд генерируются новые блоки. При создании каждого требуются некоторые технические действия. Вот их так и осуществляют: в начале каждого блока происходит «tick-транзакция», а в конце «tock-транзакция». В общем, обычно блокчейн «работает, как часы».
⚫️ И вчера возникла ошибка с tick-транзакциями. Оказалось, что при определённых условиях у них неверно указывался параметр logical time (о нём расскажем в другой раз). А из-за этого блокчейн отвергал новые блоки, созданные с помощью таких транзакций, как ошибочные.
💡 Что можно сказать по итогам истории? С одной стороны, жаль, что в код изначально вкралась ошибка. А с другой — хорошо, что когда она проявилась, её быстро исправили. Как говорится, «систему характеризует не ошибка, а реакция на ошибку».
@thedailytonrus