raport wydajności

Raport „Najszybsze łańcuchy” opublikowany przez CoinGecko 17 maja pokazuje, że Solana jest najszybsza spośród dużych blockchainów, z najwyższym dziennym średnim rzeczywistym TPS sięgającym 1054 (usunięto transakcje głosowania), a Sui jest drugim najszybszym Blockchainem, najwyższym średni dzienny realny TPS sięga 854, BSC zajmuje trzecie miejsce, ale osiągnięty realny TPS to mniej niż połowa Sui.

Jak widać z tego raportu, najlepiej działające łańcuchy bloków Solana i Sui to łańcuchy bloków niezgodne z EVM. Co więcej, średni rzeczywisty TPS 8 łańcuchów bloków niekompatybilnych z EVM wynosi 284, 17 łańcuchów bloków zgodnych z EVM, a średni TPS. Ethereum Layer 2 wynosi tylko 74, a wydajność łańcuchów bloków niezgodnych z EVM jest około 4 razy większa niż w przypadku łańcuchów bloków zgodnych z EVM.

W tym artykule przyjrzymy się wąskim gardłom wydajnościowym blockchainów kompatybilnych z EVM i ujawnimy metody wydajnościowe Solany.

Wąskie gardła wydajnościowe blockchainów kompatybilnych z EVM

Po pierwsze, uogólniamy łańcuch bloków EVM na ogólne łańcuchy bloków. Ogólnie rzecz biorąc, jeśli blockchain chce ulepszyć TPS, istnieje kilka następujących metod:

  • Popraw wydajność węzła: Popraw wydajność węzła, łącząc zasoby sprzętowe. Wymagania sprzętowe węzła będą miały wpływ na stopień decentralizacji. Na przykład zalecana konfiguracja Ethereum, procesor 4 rdzenie, pamięć 16 G, przepustowość sieci 25 Mb/s, zwykły użytkownik. poziomie, jaki sprzęt może osiągnąć, wyższy stopień decentralizacji; Solana zaleca stosunkowo wyższą konfigurację z 32 rdzeniami procesora, 128 G pamięci i przepustowością sieci 1 Gb/s, co można osiągnąć jedynie przy użyciu sprzętu profesjonalnej klasy, a stopień decentralizacji jest średni ;

  • Ulepsz podstawowe protokoły: w tym protokoły sieciowe, kryptografię, przechowywanie itp. Ulepszanie podstawowych protokołów łańcucha bloków nie zmienia właściwości samego łańcucha bloków ani nie wpływa na zasady działania łańcucha bloków. Może bezpośrednio poprawić wydajność blockchain, ale leżąca u jego podstaw uwaga techniczna jest niewielka i nie ma większych przełomów w obecnej dziedzinie badań;

  • Rozszerzanie bloków: Zwiększanie rozmiaru bloków może obejmować więcej transakcji, zwiększając w ten sposób przepustowość transakcji w łańcuchu bloków. Na przykład rozszerzone bloki Bitcoin Cash (BCH) z 1 MB do 8 MB, a później do 32 MB. Jednak rozszerzenie bloku zwiększy również opóźnienie propagacji i spowoduje zagrożenia bezpieczeństwa, takie jak zwiększenie możliwości forków i ataków DDoS;

  • Protokół konsensusu: Protokół konsensusu zapewnia, że ​​wszystkie węzły w łańcuchu bloków osiągną porozumienie w sprawie aktualizacji statusu łańcucha bloków. Jest to najważniejsza bramka bezpieczeństwa łańcucha bloków. Mechanizmy konsensusu zastosowane w łańcuchu bloków obejmują PoW, PoS, PBFT itp. Aby sprostać potrzebom skalowalności, wysokowydajne sieci publiczne zazwyczaj ulepszają protokół konsensusu i łączą go z własnymi specjalnymi mechanizmami, takimi jak mechanizm konsensusu oparty na PoH firmy Solana i mechanizm konsensusu oparty na lawinie firmy Avalanche;

  • Wykonanie transakcji: wykonanie transakcji uwzględnia jedynie liczbę transakcji lub zadań obliczeniowych przetwarzanych w jednostce czasu. Łańcuchy bloków, takie jak Ethereum, wykorzystują metodę szeregową do wykonywania transakcji inteligentnych kontraktów w blokach. W przypadku wykonywania transakcji szeregowych wąskie gardło wydajności procesora jest bardzo oczywiste. , poważnie ograniczając przepustowość łańcucha bloków. Ogólnie rzecz biorąc, wysokowydajne łańcuchy publiczne przyjmą wykonanie równoległe, a niektóre zaproponują modele językowe, które bardziej sprzyjają równoległości w celu budowania inteligentnych kontraktów, takie jak Sui Move.

Dla blockchainu EVM największym wyzwaniem jest realizacja transakcji ze względu na ograniczenia maszyny wirtualnej, która jest środowiskiem realizacji transakcji. EVM ma dwa główne problemy z wydajnością:

  • 256-bitowy: EVM został zaprojektowany jako 256-bitowa maszyna wirtualna, aby ułatwić przetwarzanie algorytmów mieszających Ethereum, które jawnie będą generować 256-bitowe dane wyjściowe. Jednak komputer faktycznie uruchamiający EVM musi zmapować 256-bitowe bajty na architekturę lokalną w celu wykonania. Jeden kod operacji EVM będzie odpowiadał wielu lokalnym kodom operacji, co sprawi, że cały system będzie bardzo nieefektywny i niepraktyczny;

  • Brak standardowej biblioteki: W Solidity nie ma standardowej biblioteki i musisz ją zaimplementować samodzielnie za pomocą kodu Solidity. Chociaż OpenZeppelin w pewnym stopniu poprawił tę sytuację, udostępnia standardową bibliotekę do implementacji Solidity (poprzez dołączenie kodu do umowy lub). w formie delegata Wywołaj wdrożony kontrakt), ale szybkość wykonywania kodu bajtowego EVM jest znacznie niższa niż w przypadku prekompilowanej biblioteki standardowej.

Z punktu widzenia optymalizacji wykonania EVM nadal ma dwie główne wady:

  • Trudność w przeprowadzaniu analizy statycznej: Równoległe wykonanie w łańcuchu bloków oznacza przetwarzanie niepowiązanych transakcji w tym samym czasie, traktowanie niepowiązanych transakcji jako zdarzeń, które na siebie nie wpływają. Głównym wyzwaniem w osiągnięciu równoległego wykonania jest określenie, które transakcje są nieistotne, a które niezależne. Obecnie niektóre wysokowydajne łańcuchy publiczne wykonują z wyprzedzeniem analizę statyczną transakcji. Mechanizm dynamicznych skoków w EVM utrudnia statyczną analizę kodu. ;

  • Kompilator JIT jest niedojrzały: kompilator JIT (Just In Time Compiler) jest powszechnie stosowaną metodą optymalizacji w nowoczesnych maszynach wirtualnych. Głównym celem JIT jest przekształcenie wykonania interpretacji w wykonanie skompilowane. W czasie wykonywania maszyna wirtualna kompiluje gorący kod do kodu maszynowego powiązanego z platformą lokalną i przeprowadza różne poziomy optymalizacji. Chociaż obecnie istnieją projekty EVM JIT, są one nadal w fazie eksperymentalnej i nie są wystarczająco dojrzałe.

Dlatego też, jeśli chodzi o wybór maszyny wirtualnej, wysokowydajne łańcuchy publiczne korzystają z maszyn wirtualnych opartych na kodzie bajtowym WASM, kodzie bajtowym eBPF lub kodzie bajtowym Move, a nie EVM. Solana na przykład korzysta z własnej, unikalnej maszyny wirtualnej SVM i kodu bajtowego SBF opartego na eBPF.

Najszybsze łańcuchy: Solana

Solana słynie z mechanizmu PoH (Proof of History) oraz niskich opóźnień i dużej przepustowości. Jest jednym z najbardziej znanych „zabójców Ethereum”.

W swojej istocie PoH jest prostym algorytmem skrótu podobnym do weryfikowalnej funkcji opóźnienia (VDF). Solana jest implementowana przy użyciu funkcji skrótu odpornej na obraz wstępny sekwencji (SHA-256), która działa w sposób ciągły i wykorzystuje dane wyjściowe jednej iteracji jako dane wejściowe dla następnej. Obliczenia te są przeprowadzane na jednym rdzeniu na każdy walidator.

Chociaż generowanie sekwencji jest sekwencyjne i jednowątkowe, weryfikacja może odbywać się równolegle, co umożliwia skuteczną weryfikację w systemach wielordzeniowych. Chociaż istnieje górna granica szybkości mieszania, ulepszenia sprzętu mogą zapewnić dodatkowy wzrost wydajności.

Proces konsensusu w sprawie Solany

Mechanizm PoH pełni funkcję niezawodnego i niezawodnego źródła czasu, tworząc weryfikowalny i uporządkowany zapis zdarzeń w sieci. Czas oparty na PoH umożliwia sieci Solana rotację liderów w zaplanowany i przejrzysty sposób. Rotacja ta następuje w stałych odstępach czasu wynoszących 4 szczeliny, każda szczelina jest obecnie ustawiona na 400 milisekund. Ten mechanizm rotacji liderów zapewnia, że ​​każdy uczestniczący walidator ma równe szanse na zostanie liderem i jest dla sieci Solana ważnym mechanizmem pozwalającym utrzymać decentralizację i bezpieczeństwo, zapobiegając uzyskaniu przez pojedynczego walidatora zbyt dużej władzy w sieci.

W każdym przedziale czasu lider proponuje nowy blok zawierający transakcje otrzymane od użytkowników. Lider sprawdza te transakcje, pakuje je w blok, a następnie rozsyła blok do pozostałych walidatorów w sieci. Ten proces proponowania i rozpowszechniania bloków nazywany jest produkcją bloków i inni walidatorzy w sieci muszą głosować nad ważnością bloku. Walidatory sprawdzają zawartość bloków, aby upewnić się, że transakcje są ważne i zgodne z regułami sieciowymi. Blok uważa się za potwierdzony, jeżeli otrzyma większość głosów w stosunku do wagi stawki. Ten proces potwierdzenia ma kluczowe znaczenie dla utrzymania bezpieczeństwa sieci Solana i zapobiegania podwójnym wydatkom.

Kiedy skończy się okres czasu obecnego lidera, sieć nie zatrzyma się ani nie będzie czekać na potwierdzenie bloku, ale przejdzie do następnego okresu, zapewniając kolejnym liderom możliwość tworzenia bloków i cały proces rozpoczyna się od nowa. Takie podejście gwarantuje, że sieć Solana utrzyma wysoką przepustowość i pozostanie odporna, nawet jeśli niektórzy walidatorzy doświadczą problemów technicznych lub przełączą się w tryb offline.

Solana Performance Tao

Ponieważ sieć Solana z wyprzedzeniem potwierdza liderów, Solana nie wymaga publicznej pamięci do przechowywania transakcji użytkowników. Kiedy użytkownik przesyła transakcję, serwer RPC konwertuje ją na pakiet QUIC i natychmiast przekazuje do walidatora lidera. Takie podejście nazywa się Prądem Zatokowym i pozwala na szybkie przełączanie liderów i wstępne wykonanie transakcji, zmniejszając obciążenie pamięci innych walidatorów.

Dane blokowe Solany są przenoszone do przestrzeni jądra, a następnie przekazywane do procesora graficznego w celu równoległej weryfikacji podpisu. Po zweryfikowaniu podpisu na procesorze graficznym dane zostaną przesłane do procesora w celu wykonania transakcji, a na koniec zwrócone do przestrzeni jądra w celu wykonania transakcji. trwałość danych. Ten proces wielokrotnego przetwarzania polegający na dzieleniu danych na różne komponenty sprzętowe, zwany technologią potokową, może zmaksymalizować wykorzystanie sprzętu oraz przyspieszyć weryfikację i transmisję bloków.

Ponieważ transakcje Solany wyraźnie określają, do których kont uzyskiwany jest dostęp, moduł planujący transakcje Solany może wykorzystać mechanizmy blokowania odczytu i zapisu w celu równoległego wykonywania transakcji. Każdy wątek harmonogramu transakcji Solana ma własną zarządzaną kolejkę, przetwarza transakcje sekwencyjnie i niezależnie, podejmuje próby zablokowania (blokady odczytu i zapisu) konta transakcji i wykonania transakcji. Transakcje z konfliktami kont zostaną wykonane później. Ta wielowątkowa technologia wykonywania równoległego nazywa się Sealevel.

Proces propagowania bloków przez lidera, dzielenia pakietów QUIC (opcjonalnie przy użyciu kodowania kasującego) na mniejsze pakiety i dystrybucji ich do walidatorów w strukturze hierarchicznej. Technika ta nazywa się Turbine i ogranicza głównie wykorzystanie pasma lidera.

Podczas procesu głosowania walidatorzy korzystają z mechanizmu konsensusu w przypadku głosowania typu fork. Walidatorzy nie muszą czekać na głosy, aby kontynuować produkcję bloku; producenci bloków stale monitorują, czy nowe głosy są ważne i uwzględniają je w bieżącym bloku w czasie rzeczywistym. Ten mechanizm konsensusu nazywa się TowerBFT i łącząc głosy za forkiem w czasie rzeczywistym, Solana zapewnia bardziej wydajny i usprawniony proces konsensusu, poprawiając w ten sposób ogólną wydajność.

Na potrzeby procesu utrwalania bloków Solana opracowała bazę danych Cloudbreak, aby zmaksymalizować wydajność dysku SSD poprzez partycjonowanie struktury danych konta w określony sposób, aby skorzystać z szybkości operacji sekwencyjnych i wykorzystania plików mapowanych w pamięci.

Aby zmniejszyć obciążenie walidatorów, Solana przenosi przechowywanie danych z walidatorów do sieci węzłów zwanej Archiver. Historia statusu transakcji jest dzielona na wiele fragmentów i wykorzystywana jest technologia kasowania kodów. Archiwizator służy do przechowywania fragmentów stanu, ale nie uczestniczy w konsensusie.

Podsumować

Wizją Solany jest bycie blockchainem, którego oprogramowanie skaluje się z szybkością sprzętu, więc Solana w pełni wykorzystuje wszystkie możliwości procesora, procesora graficznego i przepustowości dostępne w dzisiejszych komputerach, aby zmaksymalizować wydajność przy teoretycznej maksymalnej prędkości 65 000 TPS.

To właśnie dzięki wysokiej wydajności i skalowalności Solana stała się preferowaną platformą blockchain do przetwarzania transakcji o wysokiej częstotliwości i złożonych inteligentnych kontraktów, niezależnie od tego, czy jest to ścieżka DePIN/AI na początku roku, czy ostatnia popularna ścieżka Meme. Solana pokazała ogromny potencjał.

Po uruchomieniu ETF-u Ethereum Solana stała się również kryptowalutą z największą liczbą wezwań do utworzenia kolejnego ETF-u. Chociaż SEC nadal wymienia Solana jako papier wartościowy, inne kryptowalutowe ETF-y nie zostaną zatwierdzone w najbliższej perspektywie. Ale na rynku kryptowalut konsensus jest wartością, a konsensus Solany może stać się równie niezniszczalny jak Bitcoin i Ethereum.