- Два сбоя возникли из-за ошибки, связанной с зарядкой газа, которая вызывала сбои валидаторов при сбоях транзакций, приводящих к ошибкам баланса.
- Отдельный баг состояния случайности вызвал третью остановку, препятствуя корректному завершению эпохи сети валидаторами.
- Sui заявил, что средства пользователей не пострадали, внедрил исправления и добавил меры защиты для повышения устойчивости сети.
Sui Foundation в воскресенье описала причины трех сбоев мейннета, которые нарушали работу сети в четверг и пятницу, связав инциденты с двумя отдельными ошибками, внесенными в обновление программного обеспечения v1.72. Сбои произошли, когда валидаторы устраняли проблемы, связанные с новой функцией балансов адресов и отдельной проблемой состояния случайности. Согласно фонду, средства пользователей не были под угрозой, и ни одна из зафиксированных транзакций не была отменена во время восстановления.
Ошибки зарядки газа вызвали первые два сбоя
Первый сбой начался примерно в 7:00 по тихоокеанскому времени в четверг и продолжался до примерно 13:30 по тихоокеанскому времени. Однако утром в пятницу последовал второй сбой после того, как валидаторы развернули промежуточное исправление.
Согласно Sui Foundation, оба сбоя возникли из-за ошибки, связанной с взиманием газа и новой функцией балансов адресов. Проблема возникла, когда транзакции, конкурирующие за одни и те же средства, вызвали ошибку InsufficientFundsForWithdraw.
Хотя транзакция была отменена, последующие этапы обработки газа попытались снова потратить тот же баланс. В результате валидаторы столкнулись с отрицательным балансом при расчетах, что привело к сбоям нод.
Для быстрого восстановления работы команда Sui Core предложила временное решение в четверг. Однако команда признала, что в этом временном решении сохраняется известный риск с низкой вероятностью.
В результате сеть столкнулась с вариантом той же проблемы в пятницу утром, что привело ко второму сбою до того, как валидаторы внедрили более комплексное исправление.
Ошибки в генерации случайных чисел вызвали третью остановку
После второго восстановления сеть работала нормально до следующего запланированного изменения эпохи в пятницу днем. В этот момент отдельный баг вызвал третью остановку.
Согласно фонду, валидаторы возобновили установку исправления на пятницу, но не смогли выполнить требования к участию в распределённой генерации ключей. Как и задумано, процесс отключил случайность для эпохи.
Однако скрытый баг препятствовал сохранению этого статуса перезагрузками валидаторов. В результате транзакции, зависящие от случайности, оставались неразрешенными, что вызвало накопление очереди и помешало завершению эпохи.
Отказ в работе длился примерно с 1:30 по тихоокеанскому времени до 7:20 по тихоокеанскому времени в пятницу.
Foundation описывает исправления и уроки
После инцидентов валидаторы устранили обе ошибки: связанную с взиманием газа и ошибку состояния случайности. Кроме того, фонд внедрил механизм, позволяющий валидаторам принудительно завершать застрявший эпоху при необходимости.
Отчет также выделил области для улучшения, включая логику взимания газа, устойчивость в конце эпохи и ограничение сбоев. Кроме того, Sui Foundation сообщила, что ИИ-агенты помогли инженерам быстрее диагностировать инциденты, анализируя логи валидаторов, производственные данные и сетевые метрики во время отключений.


