Solana опубликовали полный отчет по февральскому сбою
- Остановка сети произошла из-за неисправного валидатора
- Он переслал аномально большой массив данных
- Логика дедупликации справилась с ним, но блок был ретранслирован в сеть
- В итоге это привело к перегрузке служб пересылки блоков
Вчера, 19 апреля, Solana Foundation опубликовали подробный отчет по сбою в работе блокчейна 25 февраля. Причина была в неисправном валидаторе, который отправил аномально большой массив данных.
Что произошло в феврале?
25 февраля Solana в очередной раз «упала». Пропускная способность сети значительно снизилась, что привело к практически полной остановке работы блокчейна.
Проблему удалось устранить после второго перезапуска. Сеть вернулась к работе в штатном режиме только ночью. Спустя несколько дней Solana заявила о том, что планирует улучшить механизм развертывания обновлений в сети.
Причина сбоя
Вот несколько кратких тезисов о том, что же произошло с сетью в феврале:
- несколько служб со встроенным ПО для пересылки блоков ошибочно отправили огромный массив данных;
- логика дедупликации сети обработала блок, но он был ретранслирован в сеть службами переадресации;
- эти повторно перенаправленные блоки перегружали логику и службы пересылки, включая протокол Turbine, что и ухудшило финализацию.
При этом аномальный размер блока, скорее всего, продиктован тем, что доказательство истории было дополнено «виртуальными тиками». Такое бывает, если валидатор отклоняется от консенсуса из-за неправильной настройки, программной ошибки или сбоя оборудования.
При этом анализ события показал, что остановка не была продиктована обновлением 1.14.16. Это лишь усугубило проблему.
Патч, подготовленный инженерами, направлен на устранение сбоя в логике дедупликации. В частности, он нацелен на прерывание реплицированной повторной передачи подобного массива. Также были внесены изменения, чтобы снизить нагрузку на фильтр протокола Turbine.