выпуск децентрализованной файловой системы (InterPlanetary File System), образующей глобальное версионированное хранилище файлов, развёрнутое в форме P2P-сети, образованной из систем участников. IPFS комбинирует идеи, ранее реализованные в таких системах, как Git, BitTorrent, Kademlia, SFS и Web, и напоминает единый «рой» BitTorrent (пиры, участвующие в раздаче), обменивающийся Git-объектами. IPFS отличается адресацией по содержимому, а не месту размещения и произвольным именам. Код эталонной реализации написан на языке Go и под лицензиями Apache 2.0 и MIT.
Новая версия примечательна включением по умолчанию транспорта на базе протокола , mis on UDP protokolli pealispind, toetades mitmeühenduse multipreksingut ja pakkudes krüpteerimismeetodeid, mis on võrreldavad TLS/SSL-iga. IPFS-i UDP-ühenduste vastuvõtmiseks mõeldud sokkel käivitatakse automaatselt samal aadressil ja võrguporti, nagu ka TCP-põhine transport. QUIC-i kasutatakse nii sisenevate kui ka väljuvate ühenduste jaoks, ja uute sõlmedega ühenduse loomisel lülitub see, kui QUIC ei ole saadaval, tagasi TCP kasutamisele.
Teiseks oluliseks uuenduseks on turvalise transportimise toetamist. , protokollil ja seda arendatakse , modulaarses võrgu stackis P2P rakendustele. Pärast algset ühenduse lepingut krüpteeritakse ja kaitstakse kogu järgneva andmevahetuse osalejate vahel pealtkuulamise eest.
NOISE asendas transpordi , kuid prioriteetse meetodina sõlmede vahelise ühenduse krüptimiseks kasutatakse endiselt TLS 1.3. NOISE on piisavalt lihtne, et seda implementida, ja seda positsioneeritakse universaalseks risti-platvormiliseks transpordiks, mida saab rakendada erinevates programmeerimiskeeltes.
Uues väljaandes on lisatud võimalus lisada oma „404 Not Found” lehti ning lisatud on valikuline Base36 kodeerimise tugi, mis on optimaalsem alfanumeeriliste andmete jaoks, millel ei ole tähe suuruse erinevust, nagu domeeninimed (kasutades Base32, ületavad Ed25519 IPNS võtmed kahe baitiga alamdomeeni suuruse piiri, samas kui Base36 mahub piiridesse). Lisaks on seadistustesse lisatud valik
««, mis määrab sõlmede loendi ühendamiseks, ühenduse hoidmiseks ja uuesti ühendamiseks, et määrata „kleebised” seotud sageli kasutatavate peeride vahel.
Tuletame meelde, et IPFS-is on faili juurdepääsulink otseselt seotud selle sisuga ja sisaldab sisu krüptograafilist räsihd. Faili aadressi ei saa meelevaldselt ümber nimetada, see võib muutuda ainult sisu muutmisel. Samamoodi ei saa faili muuta ilma, et aadress muutuks (vana versioon jääb endisele aadressile ja uus on saadaval teise aadressi kaudu, kuna faili sisu räsihd muutub). Arvestades, et faili identifikaator muutub iga kord, kui toimub muudatus, on kergem pakkuda teenuseid püsivate aadresside sidumiseks, mis arvestavad erinevaid faili versioone (), või kinnitada pseudonüüdide kasutamine sarnasel viisil nagu traditsioonilised FS ja DNS ( (Mutable File System) ja ).
Sarnaselt BitTorrentile salvestatakse andmed otse osalejate süsteemides, kes vahetavad teavet P2P režiimis, ilma tsentraliseeritud sõlmede seotuse vajaduseta. Kui on vaja teatud sisu faili hankida, leiab süsteem osalejad, kellel see fail olemas, ning edastab selle nende süsteemidest osade kaupa mitmesugustes voogudes. Pärast faili oma süsteemi allalaadimist muutub osaleja automaatselt üheks selle jagamise punktiks. Osalejate määramiseks, kelle sõlmedes on huvipakkuv sisu, kasutatakse jaotatud räsi tabelit (). Globaalsetele FAIL- süsteemidele IPFS pääseb juurde HTTP protokolli kaudu või saab ühendada virtuaalse FAIL-i süsteemi /ipfs FUSE mooduli abil.
IPFS aitab lahendada selliseid probleeme nagu andmete usaldusväärne salvestamine (kui algne salvestuskoht on rikutud, saab faili laadida teiste kasutajate süsteemidest), sisu tsensuuri vastane võitlus (sisukeskkonna blokeerimine nõuab kõigi nende süsteemide blokeerimist, mis sisaldavad andmeid) ning juurdepääsu korraldamine otseühenduse puudumisel internetti või halva kanalikvaliteedi korral (andmeid saab laadida kohalike võrgustiku osalejate kaudu). Lisaks failide salvestamisele ja andmete vahetamisele võib IPFS-i kasutada ka uute teenuste loomiseks, näiteks serveritest sõltumatute veebisaitide toimimise korraldamiseks või hajutatud rakenduste loomiseks. .
Allikas: opennet.ru
