SUI Основная сеть首次中断问题总结

robot
Генерация тезисов в процессе

Когда проблема возникает, команда SUI быстро диагностирует проблему и выпускает план восстановления, который затем развертывается Узлом проверки, что максимально сокращает время простоя сети.

Обзор событий

По тихоокеанскому времени между приблизительно 1:15 и 3:45 утра 21 ноября 2024 года (время восточного пояса: между 17:15 и 19:45 вечера 21 ноября 2024 года) на главной сети Sui произошла полная сетевая задержка. Все узлы проверки упали в циклический сбой, что привело к полному прекращению обработки транзакций.

Причина проблемы

Код блокировки assert в блоке управления вызвал ошибку: если оценочная стоимость выполнения равна нулю, это приведет к сбою проверки Узла. Для возникновения этой проблемы должны быть выполнены все следующие условия:

  1. Настройка контроля блокировки установлена в режиме TotalGasBudgetWithCap:

Данная модель была введена в кратковременную эксплуатацию в версии 63 Протокола, затем отозвана, и затем снова введена в эксплуатацию вместе с накопителем в версии 68 Протокола.

  1. Сеть получает транзакцию, удовлетворяющую следующим условиям:

Вход изменяемого общего объекта

Нет инструкции MoveCall

Когда сеть получает такие транзакции, все узлы проверки 01928374656574839201 немедленно аварийно завершаются.

Что такое контроль блокировки?

Сеть SUI основана на объектно-ориентированной архитектуре, которая поддерживает параллельную обработку транзакций разных пользователей в масштабах, недостижимых для большинства других сетей. Однако, если несколько транзакций одновременно пишутся в один и тот же общий объект, то эти транзакции должны выполняться последовательно, и существует ограничение на количество транзакций, связанных с этим конкретным объектом.

Система управления блокировками предотвращает перегрузку сети путем ограничения скорости транзакций на запись в один и тот же общий объект, чтобы избежать перегрузки из-за длительного времени выполнения контрольной точки.

Недавно мы обновили систему блокировки для повышения эффективности использования общих объектов путем более точной оценки сложности транзакций. Однако в коде нового режима TotalGasBudgetWithCap была ошибка, что привело к возникновению данной проблемы.

Как решить проблему?

После установления проблемы исправление кода было прямым (см. PR #20365). Это исправление было развернуто на Основной сети (v1.37.4) и тестовой сети (v1.38.1).

PR #20365: изменить bump_object_execution_cost на использование насыщенного сложения и разрешить транзакции с нулевой стоимостью.

🌟 Основная сетьv1.37.4:

Под воздействием активной реакции сообщества Узел, с момента выпуска восстановления до нормализации сети SUI прошло всего 15 минут.

Что мы узнали?

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

Узел сообщества SUI показал отличные результаты: практически сразу после выпуска восстановилась нормальная работа сети Sui.

Превентивные меры

Улучшение системы тестирования: добавление большего количества типов агрессивных сделок, которые могут вызвать сбой, для обнаружения потенциальных проблем.

Оптимизация процесса сборки: увеличение скорости генерации отладочных и выпускных двоичных файлов, дополнительное сокращение времени отклика событий. Часть времени в этом прерывании связана с ожиданием сборки и выпуска версии.

Благодарим сообщество и поддержку Узла проверки, обеспечивая восстановление сети SUI!

Посмотреть Оригинал
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев