nové vydání decentralizovaného souborového systému (InterPlanetary File System), tvořící globální verzionované úložiště souborů, zřízené ve formě P2P sítě složené ze systémů účastníků. IPFS kombinuje myšlenky, které byly dříve realizovány v takových systémech jako Git, BitTorrent, Kademlia, SFS a Web, a připomíná jediný „roj“ BitTorrent (piry podílející se na sdílení), který si mění Git objekty. Pro přístup k globální FS lze použít protokol HTTP nebo namontovat virtuální FS /ipfs pomocí modulu FUSE. Kód referenční implementace je napsán v jazyce Go a pod licencemi Apache 2.0 a MIT. Navíc je implementace protokolu IPFS v JavaScriptu, která může fungovat v prohlížeči.
Klíčovým IPFS je adresace podle obsahu, při které je odkaz pro přístup k souboru přímo spojen s jeho obsahem (zahrnuje kryptografický hash obsahu). IPFS má vestavěnou podporu verzionování. Odkaz na soubor nelze libovolně přejmenovat, může se změnit pouze po změně obsahu. Podobně není možné provést změnu v souboru bez změny adresy (starý verze zůstane na původní adrese a nový bude přístupný přes jinou adresu, jelikož hash obsahu souboru se změní). Vzhledem k tomu, že identifikátor souboru se mění při každé změně, aby nebylo nutné předávat nové odkazy, jsou poskytovány služby pro propojení trvalých adres, které zohledňují různé verze souboru (), nebo pro přiřazení aliasu analogicky s tradičními FS a DNS ( (Mutable File System) a ).
Podobně jako BitTorrent jsou data přímo uložena na systémech účastníků, kteří si vyměňují informace v režimu P2P, bez vazby na centralizované uzly. V případě potřeby získání souboru s konkrétním obsahem systém najde účastníky, kteří mají tento soubor a poskytne ho z jejich systémů po částech v několika tocích. Po stažení souboru do svého systému se účastník automaticky stává jednou z bodů pro jeho distribuci. Pro určení účastníků sítě, na uzlech kterých je přítomen zajímavý obsah, distribuovaná hash tabulka ().
V podstatě lze IPFS chápat jako distribuovanou reinkarnaci Webu s adresováním podle obsahu, nikoli místa umístění a libovolnými názvy. Kromě ukládání souborů a výměny dat může být IPFS používán jako základ pro vytváření nových služeb, například pro organizaci fungování webových stránek, které nejsou vázány na servery, nebo pro vytváření distribuovaných .
IPFS pomáhá řešit problémy jako je spolehlivost ukládání (pokud je původní úložiště mimo provoz, soubor lze stáhnout z systémů dalších uživatelů), odolnost vůči cenzuře obsahu (pro zablokování je nutné zablokovat všechny systémy uživatelů, na kterých je kopie dat) a organizaci přístupu v případě absence přímého připojení k internetu nebo při špatné kvalitě spojení (data lze stáhnout prostřednictvím nejbližších účastníků v místní síti).
Ve verzi byla výrazně zvýšena výkonnost a spolehlivost provozu. Veřejná síť založená na IPFS překonala hranici 100 tisíc uzlů a změny v IPFS 0.5 odrážejí přizpůsobení protokolu pro práci v takových podmínkách. Optimalizace byly většinou zaměřeny na zlepšení mechanismů směrování obsahu, odpovědných za vyhledávání, oznámení a extrakci dat, stejně jako na zvýšení efektivity realizace (DHT), která poskytuje informace o uzlech, které mají požadovaná data. Související kód DHT byl prakticky úplně přepracovaný, což významně urychlilo operace vyhledávání obsahu a určování záznamů IPNS.
Konkrétně se rychlost provádění operací přidávání dat zvýšila dvakrát, oznámení nové sítě obsahu 2,5krát,
extrakce dat 2 až 5krát a vyhledávání obsahu 2 až 6krát.
Přepracované mechanismy směrování a zasílání oznámení umožnily zrychlit práci sítě 2-3krát díky efektivnějšímu využívání šířky pásma a pozadí přenosu dat. V dalším vydání se plánuje implementace dopravy na bázi protokolu QUIC, což umožní dosáhnout ještě většího nárůstu výkonnosti díky snížení latence.
Byla urychlena práce a zvýšena spolehlivost systému IPNS (Inter-Planetary Name System), používaného pro vytváření trvalých odkazů na měnící se obsah. Nový experimentální transport pubsub umožnil zrychlit dodávku záznamů IPNS 30-40krát při testování v síti s tisíci uzly (pro experimenty byl vyvinut speciální ). Přibližně dvakrát byla zvýšena výkonnost aplikační vrstvy.
Badger, používaný pro interakci s jádrem operačního systému. Díky podpoře asynchronních zápisových operací nyní Badger funguje 25krát rychleji než stará vrstva flatfs. Zlepšení výkonu se také dotklo mechanismu , používaného pro přenos souborů mezi uzly.
Mezi funkčními vylepšeními se zmiňuje zavedení TLS pro šifrování spojení mezi klienty a servery. Byla přidána podpora subdomén v HTTP bráně — vývojáři mohou hostovat decentralizované aplikace (dapps) a webový obsah v izolovaných subdoménách, které lze používat s hash adresami, IPNS, DNSLink, ENS atd. Bylo přidáno nové namespace /p2p, do kterého byly přesunuty údaje související s adresami peerů (/ipfs/peer_id → /p2p/peer_id). Přidána podpora „.eth“ odkazů založených na blockchainu, což rozšíří využití IPFS v decentralizovaných aplikacích.
Start-up Protocol Labs, podporující vývoj IPFS, také paralelně rozvíjí projekt , který je nadstavbou nad IPFS. Zatímco IPFS umožňuje účastníkům uchovávat, požadovat a přenášet data mezi sebou, Filecoin se vyvíjí jako platforma pro trvalé uchovávání založená na technologiích blockchainu. Filecoin umožňuje uživatelům, kteří mají nevyužité diskové místo, nabídnout ho síti za určitou odměnu, zatímco uživatelé, kterým je místo potřeba, si ho mohou koupit. Pokud potřeba místa zmizí, uživatel ho může prodat. Takto se vytváří trh s úložným prostorem, jehož vyrovnání probíhá v tokenech , vytvářených pomocí těžby.
Zdroj: opennet.ru
