Узкое горлышко TON

Вчера я упомянул «колобка», через которого все клеймили токены $PX. Название проекта намеренно не указываю, потому что считаю наглостью брать с пользователей 0.1 TON за клейм, помимо 0.26 TON, которые берет сам смарт-контракт.

Так вот, этот проект вчера парализовал 1 из 16 шардов блокчейна, из-за чего клейм $PX занимал больше часа. Шарды — это технология, которая разделяет блокчейн на более мелкие и управляемые сегменты. Они обрабатывают транзакции пользователей параллельно, но даже в них может образоваться очередь из блоков, которые генерируются каждые 5–6 секунд. Проще говоря, пользователи массово отправили свои транзакции на один адрес и встали в очередь, из-за чего один из шардов оказался перегружен. При этом сам блокчейн продолжал функционировать, но 1/16 его часть была полностью парализована.

Эту ситуацию также прокомментировал Анатолий Макосов из TON Core (что-то он зачистил с извинениями). По его словам, виноваты сами разработчики, которые использовали однопоточный подход вместо масштабируемого, как это делают другие проекты.

После его поста я сразу вспомнил ситуацию с китайцами, которая произошла в конце 2023 года. Тогда блокчейн лежал 5 дней, потому что тысячи пользователей начали массово слать сообщения на один (нулевой) адрес. Об этом можно почитать здесь — весьма занятная история.

Тогда, чтобы решить проблему, разработчики просто попросили китайцев: «Не делайте так больше, пожалуйста», — и выделили им грант (вроде 300K TON) за нахождение уязвимости, а также 20K TON Пескарю, чтобы он тоже больше ничего такого не делал. На этом все закончилось, и про проблему забыли. До вчерашнего дня.

Вчера мы поняли, в очередной раз, что эту проблему никак не решают. Анатолий Макосов и Кирилл Емельяненко ходят по личкам разработчиков, просят «не делать так» и пишут гневные посты в Telegram и Twitter, чтобы обратить внимание на проблему.

Кстати, они еще не вспоминали историю с @kingygmbot первой версии. Тогда десятки тысяч пользователей замедляли работу блокчейна на 40 минут, просто массово клеймя $KINGY, за что бот получил прозвище «шайтан машина», а мне угрожали забанить в блокчейне по IP (шутка, или почти). Или ситуацию со STONfi, когда в августе невозможно было сделать свап, потому что у них роутинг проходил через один контракт.

Если бы китайцы в 2023 году продолжили свои действия, блокчейн лежал бы, пока очередь из транзакций не иссякла, но она бы и не закончилась. В случае с $PX масштаб был в разы меньше, поэтому очередь рассосалась быстрее.

Сейчас блокчейн работает на 4 шардах (вчера их было 9, а максимум 16), но если мы говорим о росте пользователей и проектов, то что если 16 проектов одновременно решат сделать клейм токенов на миллионов кошельков использовав каждый шард под себя? Блокчейн уйдет на обед, а пользователи на Solana?

Анатолий утверждает, что разработчики просто не понимают своей ошибки и делают не правильно. Но, может, это проблема архитектора (TON Core), если система работает не так, как должна?

P.S. Пока искал посты, понял, что мой канал — это кладезь информации по блокчейну TON и его истории. Здесь зафиксированы все важные события и провалы, главное — уметь искать. Не зря же я пишу каждый день уже 3 года.


Подписывайтесь на Telegram канал и страницу во ВКонтакте! Свои комментарии, замечания и предложения пишите мне. Все контакты на странице обо мне.