Lass mich das so erklären, wie ich mir gewünscht hätte, dass es mir beim ersten Mal erklärt wird, als ich versuchte, die Walrus-Speicherung zu verstehen.

Zuerst dachte ich, dass das Speichern von Daten bedeutet, eine Datei irgendwo zu speichern und Kopien zu machen, damit sie nicht verschwinden. So stellen sich die meisten von uns Speicherung vor. Du lädst etwas hoch, mehrere Kopien existieren, und wenn ein Server ausfällt, hat ein anderer es immer noch.

Walrus funktioniert nicht so.

Stattdessen verwandelt Walrus deine Daten in viele kleine Stücke, bei denen kein einzelnes Stück für sich allein von Bedeutung ist. Und das ist der ganze Trick, warum das System Ausfälle übersteht, ohne perfekte Knoten zu benötigen.

Wenn eine App Daten zu Walrus hochlädt, wird die Datei zu dem, was das Protokoll einen Blob nennt. Aber bevor dieser Blob gespeichert wird, durchläuft er einen mathematischen Prozess, der als Erasure-Coding bezeichnet wird. Du musst die Mathematik selbst nicht kennen. Was zählt, ist, was sie erreicht.

Anstatt Kopien derselben Datei zu erstellen, zerlegt Walrus den Blob in Fragmente und erstellt dann zusätzliche kodierte Fragmente daraus. Diese Fragmente werden dann über die Speicherknoten im Netzwerk verteilt.

Hier ist der wichtige Teil.

Um die ursprünglichen Daten zurückzubekommen, benötigst du nicht jedes Fragment. Du benötigst nur genug davon.

Kein Fragment ist besonders.

Wenn einige Knoten offline gehen, funktioniert der Abruf weiterhin, da das System die ursprünglichen Daten mithilfe der verfügbaren Fragmente wiederherstellen kann. Die Fragmente sind austauschbar.

Deshalb hören Menschen manchmal, dass „Walrus-Speicher redundant ist“ und nehmen fälschlicherweise an, dass es nur bedeutet, dass es Duplikate gibt. Aber es ist intelligenter als das. Es speichert keine vollständigen Kopien überall. Es speichert mathematisch verwandte Teile, die das Original wiederherstellen können.

Dieses Design ändert, wie sowohl Schreib- als auch Lesevorgänge funktionieren.

Wenn Daten zuerst hochgeladen werden, muss das System Koordinationsarbeit leisten. Fragmente müssen erstellt, den Speicherknoten zugewiesen werden, und Knoten müssen die Verantwortung für deren Speicherung übernehmen. WAL-Zahlungen müssen auch abdecken, wie lange diese Knoten Fragmente aufbewahren.

Uploads fühlen sich schwerer an, weil das Protokoll die Speicherverantwortung über viele Anbieter organisiert, bevor es sagt: „Okay, deine Daten sind gespeichert.“

Lesen ist anders.

Sobald Fragmente bereits verteilt sind und Knoten sie speichern, wird der Abruf viel einfacher. Der Client fragt einfach Knoten nach Fragmenten und rekonstruiert den Blob, sobald genügend Teile angekommen sind.

Es findet keine Verhandlung während des Lesens statt. Die Koordination fand bereits früher statt.

Deshalb fühlt sich das Lesen leichter an. Es ist nur Rekonstruktion, keine Koordination.

Aber dieses System hat immer noch Grenzen, und hier missverstehen Menschen manchmal Walrus.

Austauschbare Fragmente bedeuten nicht dauerhaften Speicher.

Fragmente bleiben nur verfügbar, solange der Speicher finanziert ist. Knoten werden über WAL bezahlt, um Daten weiter zu speichern. Überprüfungen laufen auch, um zu bestätigen, dass Knoten die Fragmente weiterhin halten, die sie versprochen haben zu speichern.

Wenn Zahlungen ausbleiben oder Verpflichtungen auslaufen, müssen Knoten keine Fragmente mehr aufbewahren. Im Laufe der Zeit können genügend Fragmente verschwinden, und eine Rekonstruktion wird unmöglich.

Die Haltbarkeit hängt von zwei Dingen ab: genügend überlebenden Fragmenten und finanziertem Speicher.

Walrus garantiert Speicherverpflichtungen, solange Zahlungen aktiv sind und die Überprüfung erfolgreich ist. Aber es verwaltet nicht den Speicherlebenszyklus für Anwendungen.

Anwendungen müssen weiterhin überwachen, wann der Speicher abläuft und die Finanzierung erneuern, wenn die Daten weiterhin wichtig sind. Wenn sie das nicht tun, verschwinden Fragmente langsam, wenn die Verpflichtungen enden.

Speicheranbieter haben auch reale Einschränkungen. Speicherplatz und Bandbreite sind begrenzt. Sie können nicht alles für immer ohne Zahlung speichern. Überprüfung und Abruf kosten ebenfalls Ressourcen, sodass der Speicher ein aktiver Dienst bleibt, kein passives Archiv.

In der Praxis funktioniert Walrus gut für Teams, die diesen Lebenszyklus verstehen. Uploads verteilen Fragmente über Knoten, der Abruf rekonstruiert Daten effizient, und Redundanz toleriert Ausfälle.

Aber die Werkzeuge zur Überwachung von Ablauf und Automatisierung von Erneuerungen verbessern sich noch. Viele Entwickler erkennen erst jetzt, dass dezentraler Speicher operative Planung benötigt, genau wie Cloud-Infrastruktur.

Der Teil, der mir ins Auge fällt, ist, wie die Wiederherstellung zu einem mathematischen Problem wird, anstatt zu einem Vertrauensproblem. Du bist nicht auf einen Knoten oder eine überlebende Kopie angewiesen. Du bist darauf angewiesen, dass genügend Fragmente irgendwo existieren.

Und sobald du das siehst, beginnt das System Sinn zu machen.

Walrus-Speicher geht nicht darum, perfekte Kopien für immer am Leben zu halten. Es geht darum, sicherzustellen, dass kein einzelnes Stück von Bedeutung ist, sodass die Daten überleben, selbst wenn Teile des Systems nicht funktionieren.

#walrus $WAL @Walrus 🦭/acc