Nech mě to vysvětlit nejjednodušším způsobem, jaký umím, protože mě tato část Walruse zpočátku také zmátla. Walrus mi dával smysl až poté, co jsem přestal myslet na úložiště obvyklým způsobem.
Obvykle, když přemýšlíme o serverech, předpokládáme, že je vyžadována stabilita. Jeden server selže a věci se rozpadnou. Dva selžou a lidé panikaří. Infrastruktura je obvykle navržena tak, aby udržela stroje naživu co nejdéle.
Walrus to myšlení převrací.
Zde je normální, že uzly odcházejí do offline režimu. Stroje se odpojují, operátoři restartují hardware, sítě se porouchají, lidé vylepšují nastavení, poskytovatelé odcházejí, noví přicházejí. To vše je očekávané chování, nikoli nouzová situace.
Walrus je tedy postaven na předpokladu, že poskytovatelé úložišť se budou neustále měnit.
A důvod, proč to funguje, je jednoduchý, jakmile vidíte, jak jsou data ukládána.
Když jsou data nahrávána do Walrus, nežijí na jednom uzlu. Blob je rozřezán na fragmenty a rozprostřen napříč mnoha úložnými uzly. Každý uzel drží pouze část dat, ne celé.
A toto je ta část, která je důležitá: abyste získali původní data zpět, nepotřebujete každý fragment. Potřebujete jen dostatek fragmentů.
Takže žádný jednotlivý uzel není kritický.
Pokud některé uzly zítra zmizí, získávání stále funguje. Systém prostě vytahuje fragmenty z jakýchkoli uzlů, které jsou online, a znovu sestavuje blob.
Většinu času si nikdo ani nevšimne, že uzly odcházejí.
Proto síť nepanuje paniku pokaždé, když se něco změní. Uzly nezůstávají online dokonale. Někdy operátoři vypínají stroje, aby něco opravili. Někdy se připojení prostě přeruší. Někdy uzel na chvíli zmizí a pak se znovu objeví.
Ten druh pohybu je pro síť jako je tato zcela normální.
Walrus se tedy nesnaží rychle přeorganizovat data pokaždé, když uzel na chvíli zmizí. Kdyby to udělal, síť by neustále přesouvala fragmenty, což by vlastně zpomalilo a učinilo věci méně stabilními místo bezpečnějšími.
Místo toho zůstává klidný a reaguje pouze, pokud skutečně začnou mizet dostatečné kusy dat.
Místo toho Walrus čeká, dokud dostupnost fragmentů skutečně nezačne být riskantní.
Pokud jsou stále venku dostatečné kusy dat, všechno jen funguje.
Jinými slovy, malé změny uzlů skutečně neruší systém, protože síť už má dostatek kusů na obnovení dat.
Pouze když dostupnost klesne pod bezpečné úrovně, stává se obnova nutnou.
Tato prahová logika je důležitá. Udržuje systém stabilní, místo aby reagoval přehnaně.
Ověření také hraje roli. Úložné uzly pravidelně dokazují, že stále ukládají fragmenty, které se zavázaly uchovat. Uzly, které opakovaně selhávají v testech, pomalu přestávají dostávat nové úložné závazky.
Spolehliví poskytovatelé nadále participují. Nespolehliví přirozeně vymizí. Ale tento posun probíhá postupně, ne jako náhlé odstranění, které narušuje úložiště.
Odpovědnost se pomalu přesouvá napříč sítí, místo aby způsobovala narušení.
Z pohledu aplikace to usnadňuje život. Aplikace ukládající data na Walrus se nemusí obávat pokaždé, když uzel přejde do offline režimu. Pokud financování pokračuje a dostatek fragmentů zůstává uložených, získávání pokračuje normálně.
Ale je důležité být jasný ohledně limitů.
Walrus zaručuje získávání pouze tehdy, když zůstává k dispozici dostatek fragmentů a závazky úložiště zůstávají financovány. Pokud příliš mnoho fragmentů zmizí, protože uzly odcházejí nebo financování vyprší, rekonstrukce nakonec selže.
Redundance toleruje selhání. Nemůže obnovit data, která nikdo už neukládá.
Další realitou je, že poskytovatelé úložišť se potýkají s reálnými provozními omezeními. Místo na disku je omezené. Šířka pásma stojí peníze. Ověřovací kontroly a provoz pro získávání dat spotřebovávají zdroje. Platby WAL kompenzují poskytovatele za nepřetržité ukládání a poskytování fragmentů.
Úložení je trvalá práce, ne jen jednorázové ukládání dat.
V reálném použití dnes se Walrus chová předvídatelně pro týmy, které tyto mechanismy chápou. Nahrávání široce distribuuje fragmenty. Financované úložiště udržuje data dostupná. Získávání pokračuje i při odchodu a příchodu uzlů na pozadí.
Co stále potřebuje zlepšení, je nástroj pro životní cyklus. Tvůrci stále potřebují sledovat, kdy vyprší financování úložiště a obnovit závazky sami. Lepší automatizace pravděpodobně přijde později prostřednictvím nástrojů ekosystému spíše než změnami protokolu.
Jakmile mi to došlo, přerušování uzlů přestalo vypadat jako riziko. Je to jen součást toho, jak se distribuované sítě chovají, a Walrus je navržen tak, aby tiše absorboval tuto nestabilitu.
A proto většinu času aplikace stále normálně získávají data, i když se podkladová úložná síť neustále mění.
