🔥
Что же случилось с сетью? Повысим прозрачность.Недавно выживших в TON взбудоражило
замедление сети, отложенное после этого
обновление валидаторов, и отсутствие комментариев на этот счет. TON Core отказалось отвечать на наш вопрос, поэтому представим свою версию событий —
и надеемся, что нас поправят там, где мы ошиблись.Совсем недавно в кулуарных девелоперских чатах TON обсуждали
этот пост. Судя по всему, с отправкой сообщений было всё нормально, но, видимо, разработчиков из TON Core
насторожило другое.
В блокчейне есть механизм защиты от спама сообщениями —
так называемый "action fine". Если в результате обработки action фазы после нескольких успешно обработанных сообщений пришёл один неуспешный action, с аккаунта должен взиматься fine за ячейки (cells) исходящих сообщений, которые были обработаны, ведь валидатор совершил некоторые действия — должен получить награду.
Однако баг был в том, что эта комиссия взималась
только за последний, неуспешный action. Получается, что валидатор совершал бесплатную работу —
это и могло привести к DoS всей сети. Было исправлено в коммите
5f454cd.
Кроме фикса TON Core создали
токен PUB5 (его метадата
была опубликована работником TON Core), и зачем то с его помощью заспамили сеть сообщениями,
из-за чего блокчейн и замедлился. Судя по всему, это не связано с конкретным багом. Интересно, что у токена нет холдеров, потому что все jetton wallet-ы стали nonexist, то есть фактически были удалены из блокчейна (mode 128 + 32, ничего криминального).
Также был обнаружен
коммит, вводящий ограничение на общий размер всех сообщений в action фазе (раньше было ограничение только на каждое конкретное сообщение).
Кроме того, в последнем обновлении валидаторов был введён запрет на публикацию library cells в мастерчейн. По словам Анатолия Тонкоровича Макосова, это было сделано, чтобы
"снизить количество векторов атак". Действительно ли была возможна атака, или это просто снижение рисков, нашей редакции неизвестно.
Повысили.
@TheOpenDevBlog