Kiedy po raz pierwszy zacząłem zgłębiać Walrus, jedno stało się dla mnie bardzo jasne, i myślę, że również to poczujesz, jeśli długo pracowałeś z systemami rozproszonymi. Nie chodzi tylko o przechowywanie danych raz i zapomnienie o nich. Prawdziwy problem zaczyna się, gdy upływa czas. Węzły wychodzą z działania, sprzęt się psuje, zwiększają się zainteresowania, a ludzie opuszczają system. W długofalowym sieciowym systemie przechowywania danych typu Walrus, zmiany są nieodzowne, a nie wyjątkowe. Red Stuff istnieje dlatego, że Walrus nie chce ignorować tej rzeczywistości. Nie projektujemy dla idealnego świata; projektujemy dla chaotycznego, długoterminowego, bez upoważnienia świata.

Dlaczego tradycyjne kodowanie psuje się z upływem czasu

Bądźmy szczerzy wobec siebie. Tradycyjne jednoliniowe kodowanie erasure wygląda świetnie na papierze. Niski nadmiar, silne gwarancje, czysta matematyka. Ale nie sądzę, żeby przetrwało w realnym świecie. W dużych systemach węzły ciągle tracą fragmenty danych lub całkowicie znikają. Jeśli za każdym razem, gdy to się zdarza, musimy przenosić dane równoważne całemu blobowi przez sieć, system szybko staje się nieużywalny. Walrus potrzebował czegoś, co nie panikuje, gdy węzły zawodzą. Czerwony materiał to Walrus przyznający, że odzyskiwanie musi być tanie, lokalne i proporcjonalne tylko do tego, co faktycznie zostało utracone.

Walrus i idea samonaprawiającego się przechowywania

To tutaj uważam, że Walrus naprawdę oddziela się od starszych projektów. Celem nie jest tylko redundancja; celem jest samonaprawa. Chcę, abyś wyobraził sobie system, w którym ruch odzyskiwania skaluje się odwrotnie proporcjonalnie do liczby węzłów, a nie liniowo do rozmiaru danych. To nie jest mała optymalizacja, to zmiana filozoficzna. Czerwony materiał jest zbudowany tak, aby gdy węzeł zawiedzie, nie krzyczymy przez całą sieć, prosząc wszystkich o ponowne przesłanie wszystkiego. Zamiast tego, szepczemy do kilku węzłów i naprawiamy tylko to, co brakuje.

Dwuwymiarowe kodowanie jako wybór projektowy

Czerwony materiał wprowadza coś, co wydaje się proste, gdy to widzisz, ale potężne, gdy przemyślisz konsekwencje: dwuwymiarowe kodowanie. Zamiast kroić blob w jednym kierunku, Walrus kroi go w dwóch. Lubię myśleć o tym jako o nadaniu danym zarówno szerokości, jak i wysokości. Blob dzieli się na podstawowe kawałki i wtórne kawałki, tworząc macierz zamiast linii. Nie robimy tego dla elegancji; robimy to, ponieważ odzyskiwanie w dwóch wymiarach jest zasadniczo tańsze i bardziej elastyczne niż w jednym.

Podstawowe kodowanie i jak Walrus rozdziela odpowiedzialność

W podstawowym wymiarze Walrus robi coś znajomego, ale zorganizowanego. Kolumny są kodowane i rozszerzane tak, aby każdy węzeł otrzymał podstawowy kawałek odpowiadający wierszowi w macierzy. To, co uważam za ważne tutaj, to że odpowiedzialność jest równomiernie rozdzielona. Żaden pojedynczy węzeł nie staje się specjalny. Każdy węzeł nosi podstawowy widok danych, który jest wystarczający do rekonstrukcji w połączeniu z innymi. To utrzymuje system symetrycznym, co dokładnie chcesz w sieci bez zezwolenia.

Wtórne kodowanie i efektywne ścieżki naprawy

Teraz to miejsce, gdzie Czerwony materiał zaczyna wydawać się sprytny. Na szczycie podstawowego kodowania, Walrus koduje wzdłuż drugiego wymiaru. Wiersze są rozszerzane na kolumny, a te stają się wtórnymi kawałkami. Każdy węzeł teraz trzyma parę: podstawowy kawałek i wtórny kawałek. Chcę, abyś się tutaj zatrzymał i pomyślał o tym, co to oznacza. Jeśli węzeł traci część swoich danych, odzyskiwanie może nastąpić wzdłuż dowolnego wymiaru. Nie jesteśmy już zamknięci w jednej drogiej strategii naprawy. Walrus ma opcje, a opcje oznaczają odporność.

Dlaczego Czerwony materiał to nie tylko redundancja

Niektórzy mogą powiedzieć: „Czy to nie tylko dodawanie większej redundancji?” Nie zgadzam się z tym ujęciem. Czerwony materiał nie polega na kopiowaniu danych więcej razy; chodzi o wprowadzanie inteligencji do warstwy przechowywania. Nadmiar pozostaje bliski jednoliniowym schematom, ale koszt odzyskiwania spada dramatycznie w warunkach zmiany. To ma znaczenie, ponieważ w aktywnej sieci ruch naprawczy jest stały. Walrus optymalizuje na długi czas, a nie na szczęśliwą ścieżkę.

Metadane: Ukryty koszt, który wszyscy ignorują

Porozmawiajmy o metadanych, ponieważ to tutaj wiele zdecentralizowanych projektów cicho zawodzi. Każdy kawałek wiąże się z zobowiązaniami i dowodami. Gdyby Walrus naiwne replikował wszystkie te metadane do każdego węzła, nadmiar miejsca do przechowywania eksplodowałby kwadratowo. Widziałem, jak systemy umierają z powodu tego samego błędu. Walrus nie popełnia tego błędu. Zamiast tego metadane same w sobie są kodowane i dzielone. Każdy węzeł przechowuje tylko to, czego potrzebuje, a jednak system jako całość może nadal bezpiecznie zrekonstruować wszystko.

Zobowiązania i zaufanie bez zaufania do węzłów

Jedną z rzeczy, które szanuję w Walrusie, jest to, że nigdy nie zakłada, że węzły są uczciwe tylko dlatego, że istnieją. Każdy symbol zwrócony przez węzeł musi być udowodniony jako ten, który był pierwotnie zapisany. Zobowiązania wektorowe pozwalają węzłom udowodnić poprawność, nie ujawniając wszystkiego innego. Ale oto subtelna część: otwarcie pełnego zobowiązania blob wymaga współpracy pomiędzy węzłami. To wymusza zbiorową uczciwość. Żaden pojedynczy węzeł nie może kłamać przekonująco samodzielnie, a to dokładnie to, co chcesz w byzantyńskim środowisku.

Kodowanie metadanych bez centralizacji

Co naprawdę mi się podoba, to to, że klient nie staje się wąskim gardłem dla kodowania metadanych. Węzły magazynowe lokalnie kodują metadane za pomocą prostych jednoliniowych schematów. To utrzymuje klienta lekkim i system skalowalnym. Nadmiar spada z kwadratowego do liniowego w całej sieci. Dla małych blobów szczególnie, to jest różnica między praktycznym systemem a teoretycznym. Walrus wyraźnie optymalizuje dla rzeczywistych obciążeń, a nie dla akademickich benchmarków.

Protokół zapisu i dlaczego ma znaczenie

Protokół zapisu w Czerwonym materiale podąża za znanym, ale starannie dostosowanym wzorem. Autor koduje blob, tworzy pary kawałków i rozdziela je wraz z zobowiązaniami. Węzły weryfikują, co otrzymują, i odpowiadają podpisanymi potwierdzeniami. Gdy zbierze się wystarczająca liczba podpisów, blob jest certyfikowany na łańcuchu. Chcę, abyś zauważył coś tutaj: Walrus nie czeka na perfekcję. Czeka na wystarczalność. Gdy wystarczająca liczba uczciwych węzłów jest gwarantowana do przechowywania danych, system idzie naprzód.

Wczesne zatrzymywanie bez łamania bezpieczeństwa

Teoretycznie autorzy mogli by retransmitować w nieskończoność, aż wszyscy odpowiedzą. W praktyce to nierealistyczne. Walrus pozwala autorowi zatrzymać się po zebraniu wystarczającej liczby podpisów, wiedząc, że przynajmniej minimalna liczba poprawnych węzłów przechowuje zarówno podstawowe, jak i wtórne kawałki. To jest praktyczna decyzja inżynieryjna, a nie skrót. Uznaje rzeczywiste warunki sieciowe, jednocześnie zachowując gwarancje dostępności. Myślę, że ta równowaga jest jedną z najsilniejszych cech Walrusa.

Czerwony materiał jako fundament, a nie funkcja

Nie widzę Czerwonego materiału jako funkcji, którą włączasz lub wyłączasz. Widzę to jako fundament, który pozwala Walrusowi istnieć jako długoterminowa sieć przechowywania. Bez efektywnego odzyskiwania decentralizacja załamuje się pod własnym ciężarem. Z Czerwonym materiałem Walrus zyskuje zdolność przetrwania lat zmiany, awarii i wrogich zachowań bez utraty przepustowości czy zaufania.

Gdzie myślę, że to zostawia Walrusa w przyszłości

Jeśli mnie pytasz, Czerwony materiał to ciche rozwiązanie Walrusa jednego z najtrudniejszych problemów w zdecentralizowanym przechowywaniu: jak przetrwać, nie stając się nieefektywnym. Nie jest to efektowne i nie polega na hype. Opiera się na starannym kodowaniu, dyscyplinowanym zarządzaniu metadanymi i realistycznych założeniach dotyczących sieci i ludzi. Uważam, że to właśnie taki projekt wygrywa w dłuższej perspektywie, nawet jeśli zajmie czas, aby rynek to zauważył.

Co myślisz o tym? Nie zapomnij skomentować 💭

Śledź po więcej treści 🙂

$WAL #Walrus @Walrus 🦭/acc