Połączenia Sieć Solana Ostatnią awarię doświadczył 1 czerwca, kiedy klaster Solana Mainnet Beta przestał tworzyć bloki z powodu zablokowania konsensusu. Zostało to spowodowane błędem wykonawczym funkcji trwałych transakcji jednorazowych, która reguluje sposób, w jaki łańcuch bloków obsługuje określoną formę transakcji przeznaczoną do użytku offline.
06-01-22 Raport o awarii Solana Mainnet Beta: Funkcja trwałych transakcji jednorazowych została wyłączona w wersjach 1.9.28/1.10.23, aby zapobiec zatrzymaniu sieci w przypadku ponownego wystąpienia tej samej sytuacji. https://t.co/2HwkSWkLaR
- Wu Blockchain (@WuBlockchain) 5 czerwca 2022 r.
Po wyłączeniu tych „trwałych transakcji jednorazowych” walidatory rozpoczęły ponowne uruchamianie sieci cztery i pół godziny później. Następnego dnia o godzinie 9:00 czasu UTC wznowiono produkcję bloków, a operatorzy sieci przez kilka następnych godzin kontynuowali przywracanie usług klienckich.
Niedawna przerwa w dostawie prądu sugerowała, że Solana nie jest w stanie obsługiwać trwałych przesyłek jednorazowych. Walidatorzy sieci podwójnie liczyli te niszowe wpływy jako pojedynczą transakcję na dwóch odrębnych wysokościach bloków, zamiast traktować je jako pojedynczą transakcję. Mechanizm konsensusu Solany został skutecznie złamany przez tę niemożliwą sytuację.
Solana podejmuje aktywne kroki
Aby zwiększyć przepustowość, Solana wykorzystuje przetwarzanie równoległe nienakładających się transakcji. Rosnąca wartość jednorazowa może być używana w sieciach, które wykonują transakcje szeregowo; Solana stosuje inny mechanizm, aby zapewnić, że transakcje nie będą przetwarzane dwukrotnie. Ponieważ trwałe transakcje jednorazowe nie mają wygasnąć, wymagają innego podejścia, aby uniknąć podwójnego przetwarzania i są obsługiwane sekwencyjnie.
Przetwarzanie trwałej transakcji jednorazowej ujawniło błąd w środowisku wykonawczym, który uniemożliwiał działanie sieci podczas przerwy. Pomyślna transakcja nie spowodowałaby tego problemu, ponieważ trwała transakcja jednorazowa zakończyłaby się niepowodzeniem.
Funkcjonalność trwałych transakcji jednorazowych została wyłączona w wersjach 1.9.28/1.10.23, aby zapobiec zawieszeniu się sieci w przypadku ponownego wystąpienia tej samej okoliczności. Trwałe transakcje jednorazowe nie zostaną wykonane do czasu wdrożenia zabezpieczenia i ponownej aktywacji funkcji w przyszłej wersji.
Źródło: https://u.today/solana-to-prevent-future-network-shutdown-if-runtime-bug-arises-again-details