Остановка Solana: как это было
На днях сеть Solana в очередной раз “упала” на несколько часов. Один из валидаторов сети, Everstake, опубликовал небольшой тред. В нем он рассказал как восстанавливали сеть и почему она остановилась. Перевод:
Solana сломалась, но мы её починили. Возможно это был самый быстрый хардфорк в истории экосистемы. Всего за 4.5 часа, работа блокчейна вернулась в прежний режим.
В 19:35 по Киеву, наши системы предупредили нас, что что-то не так. Все узлы остановились на блоке 135986379. Однако не только наши узлы, но и вся сеть.
Мы не сразу поняли в чем причина, но уже через 6 минут предупредили сообщество и принялись исправлять ошибки.
На следующее утро команда Solana выявила источник проблемы. Как оказалось, в функции устойчивых однократных транзакций произошла ошибка. Это привело к недетерминизму, когда узлы генерировали разные результаты для одного и того же блока.
В любом случае решение было только одно — провести хардфорк сети из последнего успешного блока. Мы сделали снэпшот и проверили версию хэша вместе с сообществом. Затем мы проверили нашу ноду, и хвала богам интернета, это сработало
Спустя два часа, после остановки сети, мы опубликовали наш снэпшот, чтобы все желающие могли его скачать. К утру было 217 раз, и это впечатляющее, ведь он весит 25 ГБ. Дальше нам оставалось дождаться выход новой версии клиента и наличие кворума.
Версии 1.9.28 и 1.10.23 вскоре были выпущены, но потребовалось два часа, для того чтобы 80% вычислительной мощности сети объединились. Ожидание было мучительным, хотя 8 из 10 наших лучших валидаторов уже подключились. И наконец-то, около 23:51 по Киеву, хардфорк был запущен.
На все это ушло около 4.5 часов, и мы считаем что это был самый быстрый хардфорк за всю историю Solana.
Сбои в работе сети не являются чем-то новым. Но мы уверены, что если что-то подобное случится вновь, мы восстановим все также быстро как в этот раз, или даже быстрее.