В статье в блоге разработчики объяснили, что баг заключался в функции постоянных одноразовых транзакций. При определенном стечении обстоятельств ошибка позволяла дважды обрабатывать неудачную одноразовую транзакцию. Это приводило к отсутствию консенсуса – одни валидаторы отклоняли последующий блок, а другие принимали его.
«Функция постоянных одноразовых транзакций была отключена в релизах v1.9.28/v1.10.23, чтобы сеть не останавливалась в случае появления соответствующих обстоятельств. Мы проработаем решение проблемы и включим данную функцию в грядущих релизах», – подчеркнули разработчики.
Постоянные одноразовые транзакции – это транзакции, которые не имеют срока давности. Обычная транзакция в сети Solana «живет» около двух минут, и отбрасывается, если за это время не была обработана валидатором. Постоянные транзакции такого срока не имеют. Они используются для различных целей, например, в кастодиальных сервисах, когда сервису требуется больше времени.
Напомним, что отключение сети в начале июня было уже пятым таким случаем в этом году. Основатель Cardano Чарльз Хоскинсон (Charles Hoskinson) даже высмеял руководство Solana в связи с нестабильностью этой сети.