Салана прадухіліць адключэнне сеткі ў будучыні, калі памылка падчас выканання зноў паўстане: падрабязнасці

,en Сетка Solana апошні збой адбыўся 1 чэрвеня, калі кластар Solana Mainnet Beta перастаў ствараць блокі з-за спынення кансенсусу. Гэта было створана з-за памылкі падчас выканання ў функцыі даўгавечных бесперапынных транзакцый, якая рэгулюе, як блокчейн апрацоўвае пэўную форму транзакцыі, прызначанай для выкарыстання ў аўтаномным рэжыме.

Пасля адключэння гэтых «трывалых аднаразовых транзакцый» валідатары пачалі перазапускаць сетку праз чатыры з паловай гадзіны. На наступны дзень, у 9:00 UTC, вытворчасць блокаў аднавілася, і сеткавыя аператары працягвалі аднаўляць кліенцкія паслугі на працягу наступных некалькіх гадзін.

Нядаўні збой указаў на тое, што Салана ня здолеў апрацоўваць трывалыя аднаразовыя нумары. Сеткавыя валідатары двойчы падлічвалі гэтыя нішавыя ўваходы як адну транзакцыю на двух асобных вышынях блокаў, а не разглядалі іх як адну транзакцыю. Механізм кансенсусу Саланы быў фактычна парушаны гэтай немагчымай цяжкасцю.

Салана робіць актыўны крок

Каб павялічыць прапускную здольнасць, Салана выкарыстоўвае паралельную апрацоўку транзакцый, якія не перакрываюцца. Інкрэментны nonce можа выкарыстоўвацца сеткамі, якія выконваюць транзакцыі паслядоўна; Solana выкарыстоўвае іншы механізм, каб гарантаваць, што транзакцыі не апрацоўваюцца двойчы. Паколькі працяглыя транзакцыі nonce не павінны мінаць, яны патрабуюць іншага падыходу, каб пазбегнуць падвойнай апрацоўкі, і апрацоўваюцца паслядоўна.

Аб'явы

Апрацоўка доўгатэрміновай бесперапыннай транзакцыі выявіла памылку ў асяроддзі выканання, якая спыніла працу сеткі на працягу ўсяго адключэння. Паспяховая транзакцыя не выклікала б гэтую праблему, таму што працяглая аднаразовая транзакцыя была б няўдалай.

Функцыя доўгатэрміновай аднаразовай транзакцыі была адключана ў версіях v1.9.28/v1.10.23, каб прадухіліць прыпынак сеткі, калі такая ж акалічнасць узнікне зноў. Даўгавечныя аднаразовыя транзакцыі не будуць выконвацца, пакуль не будзе разгорнута змякчэнне наступстваў і функцыя зноў не актывавана ў будучай версіі.

Крыніца: https://u.today/solana-to-prevent-future-network-shutdown-if-runtime-bug-arises-again-details