uvolnění decentralizovaného souborového systému (InterPlanetary File System), který vytváří globální verzionované úložiště souborů, rozvinuté 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á jednotný „roj“ BitTorrent (uživatelé, kteří se podílejí na sdílení), vyměňující si Git objekty. IPFS se liší adresací podle obsahu, nikoli podle místa uložení a libovolnými názvy. Kód referenční implementace je napsán v jazyce Go a je licencován pod licencemi Apache 2.0 a MIT.
Nová verze se vyznačuje zahrnutím výchozího transportu založeného na protokolu , což je nadstavba nad protokolem UDP, podporující multiplexování několika připojení a poskytující šifrovací metody, které jsou ekvivalentní TLS/SSL. V IPFS je socket pro příjem UDP připojení automaticky spuštěn na stejné adrese a síťovém portu jako zpracovatel transportu na bázi TCP. QUIC se používá jak pro příchozí, tak pro odchozí spojení, přičemž při připojování k novým uzlům, v případě nedostupnosti QUIC, dochází k přepnutí na použití TCP.
Druhým významným novinkou byla podpora zabezpečeného transportu , na protokolu a vyvíjeného v rámci , modulárního síťového stacku pro P2P aplikace. Po počátečním dohodnutí spojení je veškerá následující výměna dat mezi účastníky šifrována a chráněna proti odposlechu.
NOISE nahradil transport , avšak jako prioritní metoda šifrování spojení mezi uzly zatím stále pokračuje použití TLS 1.3. NOISE je dostatečně jednoduchý na implementaci a je prezentován jako univerzální multiplatformní transport, který může být realizován v různých programech.
V nové verzi je také zpřístupněna možnost přidání vlastních stránek „404 Not Found“ a byla přidána volitelná podpora pro metodu kódování Base36, která je optimální pro alfanumerická data bez rozdílů v registrech znaků, jako jsou názvy domén (při použití Base32 klíče Ed25519 IPNS přesahují o dva bajty limit na velikost subdomény, zatímco při Base36 se vejdou do limitu). Kromě toho byla do nastavení přidána možnost
««, která určuje seznam uzlů pro připojení, udržování spojení a znovupripojení za účelem určení „lepivých“ vazeb mezi často používanými uzly.
Připomeňme, že ve IPFS je odkaz pro přístup k souboru přímo spojen s jeho obsahem a zahrnuje kryptografický hash obsahu. Adresu souboru nelze náhodně přejmenovat, může se změnit pouze po změně obsahu. Podobně nelze provést změnu v souboru bez změny adresy (starý návrh zůstane na předchozí adrese, zatímco nový bude dostupný pod jinou adresou, protože hash obsahu souboru se změní). Vzhledem k tomu, že identifikátor souboru se mění při každé změně, aby se pokaždé nemusely předávat nové odkazy, jsou k dispozici služby pro přiřazení 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 (). Pro přístup k globální FS může IPFS využívat protokol HTTP nebo může být namontována virtuální FS /ipfs pomocí modulu FUSE.
IPFS pomáhá řešit takové úkoly jako je spolehlivost ukládání (pokud bude původní úložiště mimo provoz, soubor lze stáhnout ze systémů jiných uživatelů), odolnost vůči cenzuře obsahu (pro blokaci je nutné zablokovat všechny systémy uživatelů, na kterých je kopie dat) a organizaci přístupu při absenci přímého připojení k internetu nebo při špatné kvalitě spojení (data lze stáhnout přes nejbližší účastníky v místní síti). Kromě ukládání souborů a výměny dat lze IPFS využít jako základ pro vytváření nových služeb, například pro organizaci provozu webových stránek, které nejsou vázány na servery, nebo pro vytváření distribuovaných. .
Zdroj: opennet.ru
