Lasciami spiegare questo nel modo in cui avrei voluto che qualcuno me lo spiegasse la prima volta che ho cercato di capire l'archiviazione Walrus.

All'inizio, pensavo che archiviare dati significasse salvare un file da qualche parte e fare copie in modo che non scomparisse. È così che la maggior parte di noi immagina l'archiviazione. Carichi qualcosa, esistono copie multiple, e se un server fallisce, un altro ce l'ha ancora.

Walrus non funziona in questo modo.

Invece, Walrus trasforma i tuoi dati in molti piccoli pezzi dove nessun singolo pezzo conta da solo. E questo è il trucco dietro il motivo per cui il sistema sopravvive ai guasti senza bisogno di nodi perfetti.

Quando un'app carica dati su Walrus, il file diventa ciò che il protocollo chiama un blob. Ma prima che quel blob venga memorizzato, passa attraverso un processo matematico chiamato codifica di cancellazione. Non è necessario conoscere la matematica stessa. Ciò che conta è ciò che ottiene.

Invece di fare copie dello stesso file, Walrus suddivide il blob in frammenti e poi crea frammenti codificati extra da essi. Questi frammenti vengono poi distribuiti tra i nodi di storage nella rete.

Ecco la parte importante.

Per recuperare i dati originali, non è necessario ogni frammento. È sufficiente averne abbastanza.

Quindi nessun frammento è speciale.

Se alcuni nodi vanno offline, il recupero funziona ancora perché il sistema può ricostruire i dati originali utilizzando i frammenti che rimangono disponibili. I frammenti sono intercambiabili.

Ecco perché a volte le persone sentono dire “Lo storage di Walrus è ridondante” e assumono che significhi solo duplicazione. Ma è più intelligente di così. Non sta memorizzando copie complete ovunque. Sta memorizzando pezzi matematicamente correlati che possono ricostruire l'originale.

Quel design cambia il modo in cui sia le scritture che le letture si comportano.

Quando i dati vengono caricati per la prima volta, il sistema deve svolgere un lavoro di coordinamento. I frammenti devono essere creati, assegnati ai nodi di storage e i nodi devono accettare la responsabilità di memorizzarli. I pagamenti WAL devono anche coprire per quanto tempo quei nodi manterranno i frammenti.

Quindi i caricamenti sembrano più pesanti perché il protocollo sta organizzando la responsabilità dello storage tra molti fornitori prima di dire: “Ok, i tuoi dati sono memorizzati.”

Le letture sono diverse.

Una volta che i frammenti sono già distribuiti e i nodi li stanno memorizzando, il recupero diventa molto più semplice. Il client chiede semplicemente ai nodi i frammenti e ricostruisce il blob una volta che arrivano abbastanza pezzi.

Non c'è alcuna negoziazione in corso durante le letture. La coordinazione è già avvenuta in precedenza.

Ecco perché la lettura sembra più leggera. È solo ricostruzione, non coordinazione.

Ma questo sistema ha comunque dei limiti, ed è qui che a volte le persone fraintendono Walrus.

Frammenti intercambiabili non significano storage permanente.

I frammenti restano disponibili solo finché lo storage è finanziato. I nodi vengono pagati tramite WAL per continuare a memorizzare i dati. Anche i controlli di verifica vengono eseguiti per confermare che i nodi detengano ancora i frammenti che hanno promesso di memorizzare.

Se i pagamenti si fermano o gli impegni scadono, i nodi non sono più tenuti a mantenere i frammenti. Col tempo, abbastanza frammenti possono scomparire e la ricostruzione diventa impossibile.

Quindi la durabilità dipende da due cose: abbastanza frammenti che sopravvivono e lo storage rimane finanziato.

Walrus garantisce impegni di storage mentre i pagamenti sono attivi e le verifiche passano. Ma non gestisce il ciclo di vita dello storage per le applicazioni.

Le applicazioni devono ancora monitorare quando lo storage scade e rinnovare il finanziamento se i dati sono ancora importanti. Se non lo fanno, i frammenti scompaiono lentamente man mano che gli obblighi scadono.

I fornitori di storage hanno anche vincoli reali. Lo spazio su disco e la larghezza di banda sono limitati. Non possono memorizzare tutto per sempre senza pagamento. La verifica e il recupero costano anche risorse, quindi lo storage rimane un servizio attivo, non un'archiviazione passiva.

In pratica, Walrus funziona bene per i team che comprendono questo ciclo di vita. I caricamenti distribuiscono frammenti tra i nodi, il recupero ricostruisce i dati in modo efficiente e la ridondanza tollera i guasti.

Ma gli strumenti per monitorare la scadenza e automatizzare i rinnovi stanno ancora migliorando. Molti costruttori stanno solo ora realizzando che lo storage decentralizzato ha bisogno di pianificazione operativa, proprio come fa l'infrastruttura cloud.

La parte che mi colpisce è come il recupero diventa un problema matematico invece di un problema di fiducia. Non dipendi da un nodo o una copia che sopravvive. Dipendi dall'esistenza di abbastanza frammenti da qualche parte.

E una volta che vedi ciò, il sistema inizia a avere senso.

Lo storage di Walrus non riguarda il mantenere copie perfette in vita per sempre. Si tratta di garantire che nessun singolo pezzo sia importante, in modo che i dati sopravvivano anche quando parti del sistema non lo fanno.

#walrus $WAL @Walrus 🦭/acc