Esitatud on detsentraliseeritud failisüsteemi IPFS 0.8 (InterPlanetary File System) väljaanne, mis loob globaalne versioonitud failide ladustamise, mis on üles seatud P2P-võrguna, mis koosneb osalejate süsteemidest. IPFS ühendab ideid, mis on juba varem rakendatud sellistes süsteemides nagu Git, BitTorrent, Kademlia, SFS ja Web, ning meenutab ühte «parve» BitTorrentis (peerid, kes osalevad jagamises), jagades Git-objekte. IPFS erineb sisupõhisest adresseerimisest, mitte asukohapõhisest ja suvalistest nimedest. Standardne rakenduse kood on kirjutatud Go keeles ja jagatakse litsentside Apache 2.0 ja MIT alusel.
Uues versioonis:
- Töötati välja võimalus luua väliseid teenuseid kasutajate andmete kinnitamiseks (pinning — andmete sidumine sõlmega, et tagada oluliste andmete säilitamine). Teenusele kinnitatud andmed võivad omada eraldi nimesid, mis erinevad sisu identifikaatorist (CID). Andmeid saab otsida nii nime kui ka CID järgi. Andmete kinnitamise päringute töötlemiseks on soovitatud IPFS Pinning Service API, mida saab kasutada otse go-ipfs-is. Käsklusliideses on kinnitumiseks ette nähtud käsk „ipfs pin remote“: ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafymydata —service=mysrv —name=myfile ipfs pin remote ls —service=mysrv —name=myfile ipfs pin remote rm —service=mysrv —name=myfile
- Andmete kinnitamine (pinning) ja lahti ühendamine (unpinning) kohaliku sõlme juures on kiirenud. Suurenenud jõudlus ja vähenenud mälutarbimine on eriti märgatavad süsteemides, kus on suur arv kinnitusi, andmete väljund- või muutmisoperatsioonide ajal.
- Linkide loomisel "https://" jaoks on lisatud võimalus edastada DNSLink nimesid alamdomeenide kaudu. Näiteks IPNS nime "ipns://en.wikipedia-on-ipfs.org" laadimiseks saab nüüd kasutada lisaks varem toetatud linkidele "https://dweb.link/ipns/en.wikipedia-on-ipfs.org" ka linke "https://en-wikipedia-on-ipfs-org.ipns.dweb.link", kus algsetes nimedes olevad punktid on asendatud sümboliga "-", ning olemasolevad sümbolid "-" on veel ühe sarnase sümboliga varjatud.
- QUIC protokolli tugi on laiendatud. Suurenenud jõudluse tagamiseks on pakutud võimalus suurendada vastuvõtva UDP puhverdusi.
Tuletame meelde, et IPFS-is on faili juurde pääsemiseks link otseselt seotud selle sisuga ja sisaldab sisu krüptograafilist räsiväärtust. Faili aadressi ei saa juhuslikult ümber nimetada; see võib muutuda ainult sisu muutmisel. Samuti ei ole võimalik faili muuta ilma aadressi muutmata (vana versioon jääb oma aadressile, uus versioon on kättesaadav uue aadressi kaudu, kuna faili sisu räsiväärtus muutub). Arvestades, et faili identifikaator muutub iga kord muutmise korral, et mitte iga kord uusi linke edastada, pakuvad teenused püsivate aadresside sidumist, arvestades erinevaid faili versioone (IPNS), või pseudonüümi kinnitamist sarnasel viisil traditsiooniliste FS ja DNS-iga (MFS (Muudetav Failisüsteem) ja DNSLink).
Nagu BitTorreni puhul, salvestatakse andmed otse osalejate süsteemides, kes vahetavad teavet P2P-režiimis, ilma tsentraliseeritud sõlmedele tuginemiseta. Kui on vaja teatud sisuga faili saada, leiab süsteem osalejad, kellel see fail olemas on, ja edastab selle nende süsteemidest tükkidena mitme voogude kaudu. Pärast faili oma süsteemi allalaadimist muutub osaleja automaatselt selle jagamise punktiks. Võrgus osalejate määramiseks, kelle sõlmedes on huvipakkuv sisu, kasutatakse jaotatud räsimistabelit (DHT). Globaalset IPFS-i failisüsteemi saab kasutada HTTP-protokolli kaudu või mountida virtuaalse failisüsteemina /ipfs FUSE mooduli abil.
IPFS aitab lahendada selliseid probleeme nagu salvestamise usaldusväärsus (kui algne salvestus seadme rikki läheb, saab failide alla laadida teiste kasutajate süsteemidest), sisuruumi tsenseerimise vastu (sisu blokeerimiseks tuleb blokeerida kõik süsteemid, kus andmed on olemas) ja ligipääsu korraldamine, kui otsest internetiühendust ei ole või kanali kvaliteet on halb (andmeid saab alla laadida lähimalt kohaliku võrgu osaliselt). Lisaks failide salvestamisele ja andmete vahetamisele võib IPFS-i kasutada ka uute teenuste loomiseks, näiteks serveritest sõltumatute veebisaitide opereerimiseks või jaotatud rakenduste loomise aluseks.

Allikas: opennet.ru
