. . .

Co tak naprawdę stało się z Solana 14 września?

Rafał   2021-09-21 05:57

14 września Solana przestała działać na 17 godzin. Żadne środki nie zostały stracone, a sieć wróciła do pełnej sprawności w niecały dzień. Pokazuje to w jak wczesnej fazie znajduje się Solana (w końcu nie bez powodu mainnet nazywa się BETA), ale też stawia pytania, czy aby na pewno rozwiązania proponowane przez SOL są odpowiednie?

Sieć

Solana jest specyficznym i bardzo skomplikowanym projektem, o czym mogłeś się przekonać czytając nasz artykuł o tym jak działa Solana, Proof of History i inne jej rozwiązania. Jest to też blockchain, który ma bardzo duże wymagania sprzętowe, prawdopodobnie największe na całym rynku. Wystarczy wspomnieć, że 128 GB RAM i 12-rdzeniowy procesor to minimalne wymagania, nie zalecane... Zobaczymy co mówią nam oficjalne komunikaty, a także dodamy do tego wnioski z mojej rozmowy z jednym z walidatorów Solana.

Co więc zaszło 14 września i doprowadziło do zatrzymania tak bogatej w moc obliczeniową sieci?

Oficjalnym powodem, który doprowadził do zatrzymania Solana był atak typu denial of service, czyli taki, który ma sprawić, że sieć będzie niedostępna dla użytkowników końcowych, co się udało. Ataki DoS osiągają to poprzez zalanie swojego celu ruchem. 

W przypadku Solana wszystko zbiegło się z IDO projektu Grape Protocol odbywającym się na giełdzie Raydium. Boty zalały sieć Solana transakcjami. W przeciwieństwie do innych kryptowalut Solana ma dość dużą tolerancją na przetwarzanie wielu transakcji na sekundę, ale w szczytowym momencie liczba dobiła do 400 000 na sekundę!

 Transakcje te spowodowały przepełnienie pamięci, co spowodowało awarię wielu walidatorów, zmuszając sieć do spowolnienia i ostatecznie do zatrzymania.

Tak brzmi oficjalny komunikat i wydaje się pokrywać z tym co powiedział mi jeden walidatorów Solana (może to zmowa). Walidatorzy Solana głosują na dobrą wersję łańcucha. Te głosy to transakcje, które muszą zostać wysłane do sieci. W momencie gdy sieć jest tak przeciążona głosy są "zagłuszane" przez spam transakcji co powoduje, że walidator nie widzi poprawnej wersji łańcucha Solana. W takim momencie dochodzi do hard forku, nie jednego a wielu. Walidator po hard forku nadal nie widzi właściwego stanu sieci więc znów dochodzi do hard forku i znów. Każdy kolejny hard fork przeciąża pamięć, aż w końcu powoduje przeciążenie i doprowadza do zatrzymania węzła.

Po ponownym uruchomieniu walidator nie był w stanie przetworzyć wszystkich proponowanych rozwidleń na czas, aby nadrobić zaległości.

Po zdiagnozowaniu sytuacji społeczność zaproponowała hard fork sieci z ostatniego potwierdzonego slotu, co wymagało dojścia do konsensusu co najmniej 80% aktywnej stawki. Przez 14 godzin inżynierowie z całego świata pracowali nad poprawką kodu, aby złagodzić problem i ponowne uruchomić sieć wśród ponad 1000 walidatorów. Odbywało się to za pomocą struktury restartu opisanej w dokumentacji protokołu. Solana podziękowała wszystkim za pomoc w swoim komunikacie:

Dziękujemy społeczności walidatorów, inżynierom i całemu ekosystemowi Solana za wspólne rozwiązanie tego problemu. Rzadko zdarzają się takie problemy, ale gdy to następuje jest to destrukcyjne dla wszystkich – a kiedy musisz coś naprawić w zdecentralizowanej sieci, jest to prawdziwe wyzwanie społecznościowe.

Innym problemem, o którym wspomniał mi mój rozmówca, a nie został opisany w publikacji Solana był sprzęt niektórych walidatorów Solana, którzy jak się okazało używali słabszego niż ten zalecany przez Solana. To też doprowadziło do szybszego ich przeciążenia.

Decentralizacja czy nie?

Oczywiście od razu pojawiło się mnóstwo głosów wyśmiewających Solana, mówiących o centralizacji i innych niepopartych niczym "argumentów". O ile większość komentarzy troli można wyrzucić do śmieci, o tyle o komentarz pokusił się nawet Gavin Wood, twórca Polkadot, który stwierdził, że parafrazując, "ilość transakcji na sekundę to nie wszystko".

Taki problem nie jest dobry dla Solana i pokazał jak łatwo zaatakować tę sieć i że duże cyferki i niskie opłaty nie zawsze idą w parze. 

Jednak to walidatorzy Solana podjęli decyzję o tym, aby się zatrzymać, nie zawsze z wyboru, w końcu "wywaliło" im system, to oni pracowali nad rozwiązaniem problemu i aktualizacją, oczywiście razem z Solana Foundation (lub w większości przez fundacje) i to oni musieli zaakceptować stan łańcucha poprzez osiągnięcie konsensusu popartego 80% całkowitej stawki SOL. 

Właśnie dlatego tak długo to trwało, ponieważ decentralizacja nie pozwala jednej osobie stwierdzić "zaczynamy tutaj i jedziemy dalej".  Oczywiście nie wiemy wszystkiego, ale obserwowałem walidatorów Solana na discordzie i nie było tam przejawów zastraszania i nakazów fundacji Solana, no, chyba że wszyscy pracują dla Solana... Wszystko odbywało się w zgodzie z konsensusem, zasadami protokołu i dzięki szybkiej reakcji walidatorów (to prace nad aktualizacją trwały najdłużej), więc mówienie o tym, że Solana wyłączyła blockchain jest... dziwne. Co nie zmienia faktu, że Solana zawiodła i możliwe, że będzie to miało wpływ na jej przyszłość.

Należy także pamiętać, że Solana jest projektem bardzo młodym, skomplikowanym i pewnie będzie miała jeszcze kilka problemów. 

Popularne