INTEGRITY Dokumentace

Interplanetary File System (IPFS)

Interplanetary File System (IPFS) je síť pro ukládání souborů typu peer-to-peer. Místo ukládání souborů na jediném serveru, jak funguje tradiční webhosting, IPFS distribuuje soubory mezi mnoho počítačů po celém světě.

Kterýkoli počítač se může připojit k síti IPFS instalací softwaru IPFS a začít hostovat a poskytovat soubory.

Pokud někdo nahraje soubor do sítě IPFS, může si ho zobrazit a stáhnout kdokoli jiný, kdo používá IPFS. Žádný centrální server do toho nezasahuje.

Identifikátory obsahu

Každý soubor přidaný do IPFS získá jedinečnou adresu odvozenou z hashe jeho obsahu. Tato adresa se nazývá Content Identifier (CID). CID obsahuje dvě informace: hash souboru a identifikátor použitého hashovacího algoritmu, spojené do jediného řetězce.

Protože se CID odvozuje přímo z obsahu, dva identické soubory vždy vytvoří stejné CID a jakákoli změna souboru vytvoří CID jiné. Právě to dělá z IPFS systém "adresovaný podle obsahu": soubory vyhledáváte podle toho, co obsahují, ne podle toho, kde jsou uloženy.

IPFS používá SHA-256 ↗ ve výchozím nastavení a výsledek kóduje pomocí Base58 ↗, tedy kódovací schéma, které vynechává vizuálně nejednoznačné znaky (například nulu a velké písmeno O), aby se snížil počet chyb při přepisu.

CID obvykle vypadá takto: QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco

IPFS také podporuje jiná kódování (Base32 ↗) a hashovací algoritmy (SHA-3 ↗, BLAKE2 ↗).

Nahrávání do IPFS

IPFS sleduje, které počítače mají které soubory, pomocí Distribuovaná hashovací tabulka (DHT) ↗, tedy vyhledávací systém, který mapuje CID na síťové adresy počítačů hostujících daný obsah. Žádný jednotlivý počítač neuchovává celou vyhledávací tabulku. Místo toho každý počítač v síti uchovává její část a ví, kde najít zbytek.

„Nahrání“ obsahu do IPFS neznamená odeslání souboru na centrální server. Znamená to oznámit síti, že daný obsah máte, a to přidáním záznamu do DHT, který mapuje CID vašeho souboru na vaši síťovou adresu. Když si někdo jiný chce tento soubor stáhnout, vyhledá CID v DHT, najde vaši adresu a stáhne data přímo od vás.

Protože stejný soubor může hostovat více počítačů najednou, stahování se rozkládá mezi všechny z nich. Pokud jeden hostitel přejde offline, ostatní nadále poskytují obsah. Právě tato redundance dává IPFS výhodu rychlosti a spolehlivosti oproti hostování na jediném serveru.

Adresáře

Nahrávat můžete více než jen jednotlivé soubory. Vezměte si například složku s názvem example, který obsahuje přesně jeden soubor, example_text.txt, obsahující řetězec I'm trying out IPFS.

Pokud by byla tato složka nahrána příkazem ipfs add -r ./example, jak složka, tak soubor, který obsahuje, by měly vlastní CID. V tomto případě by složka měla CID QmdbaSQbGU6Wo9i5LyWWVLuU8g6WrYpWh2K4Li4QuuE8Fr zatímco soubor by měl CID QmXnnyufdzAWL5CqZ2RnSNgPbvCc1ALT73s6epPrRnZ1Xy.

Poté můžete k souboru přistupovat dvěma způsoby:

Zatímco CID souboru se změní pouze v případě, že se změní samotný soubor, CID adresáře se změní pokaždé, když any souborů v něm změní nebo pokud jsou nějaké soubory přidány či odebrány.

Adresáře umožňují adresovat celý statický web jediným CID a přistupovat k jednotlivým stránkám webu vyžádáním příslušných souborů v daném adresáři.

Vysvětlení dalších pojmů najdete v IPFS ↗ dokumentace.