Predstavljena je verzija decentraliziranog sustava datoteka IPFS 0.9 (InterPlanetary File System), koja čini globalnu verzioniranu pohranu datoteka, implementiranu kao P2P mreža oblikovana iz sustava sudionika. IPFS kombinira ideje ranije implementirane u sustavima kao što su Git, BitTorrent, Kademlia, SFS i Web, a podsjeća na jedinstveni 'rojen' BitTorrent-a (čvorovi koji sudjeluju u dijeljenju), razmjenjujući Git objekte. IPFS se razlikuje po adresiranju temeljenom na sadržaju, a ne na mjestu pohrane i proizvoljnim imenima. Kod referentne implementacije napisan je na Go jeziku i distribuira se pod licencama Apache 2.0 i MIT.
U novoj verziji:
- U gateway-ima je implementirana mogućnost učitavanja proizvoljnih grafova IPLD (InterPlanetary Linked Data, prostor imenskog adresiranja resursa temeljenih na hash-ima) putem procesora '/api/v0/dag/export', koji ima funkciju sličnu naredbi 'ipfs dag export'. Izvoz se vrši u formatu DAG arhive (Orijentirani aciklički graf). Dobiveni IPLD omogućava korisniku da provjeri da li podaci učitani s javnog gateway-a odgovaraju zatraženom simboličkom imenu (na primjer, dobivanjem datoteke '/ipfs/bafyexample' moguće je provjeriti njezinu usklađenost s hash-om sadržaja koji je izvorno povezan s simboličkim imenom).
- Omogućeno je određivanje vlastitog DNS resolvera koji koristi protokol 'DNS over HTTPS', koji će se primjenjivati umjesto resolvera iz postavki operativnog sustava. Također je moguće redefinirati resolver za pojedinačne domena prve razine. U DNSLink, mehanizmu za povezivanje običnih DNS imena s IPFS adresama, selektivna zamjena resolvera može se koristiti za kreiranje domenskih imena koja nisu povezana s ICANN-om, na primjer, može se povezati resolver 'https://eth.link/dns-query' za obradu domena prve razine '.eth', koje službeno nisu potvrđene u ICANN-u.
- Ažurirano je web sučelje (WebUI), u kojem je uvedena eksperimentalna podrška za vezivanje vanjskih servisa (slično naredbi 'ipfs pin remote service'). Promijenjen je dizajn ekranâ za rad s datotekama i čvorovima.
- U CLI sučelju omogućeno je izvođenje ključeva s naredbom 'ipfs key export' bez zaustavljanja pozadinskog procesa ipfs.
- Dodana je eksperimentalna DHT klijent za pretraživanje podataka korištenjem distribuirane hash tablice, koja se razlikuje od rješenja temeljenog na IPNS-a po višoj učinkovitosti.
- Komponente za migraciju na nove verzije go-ipfs su podijeljene u zasebne pakete radi bržeg preuzimanja i pojednostavljenja organizacije ažuriranja u konfiguracijama s vlastitim dodacima. Automatiiziran je proces preuzimanja ažuriranja putem IPFS-a i dodane su postavke za lakše primjenjivanje ažuriranja u uvjetima nedostatka mrežne veze ili blokade vatrozidom.
Podsjećamo da je u IPFS-u veza za pristup datoteci izravno povezana s njenim sadržajem i uključuje kriptografski hash sadržaja. Adresa datoteke se ne može proizvoljno preimenovati, može se promijeniti samo nakon promjene sadržaja. Slično tome, nije moguće izvršiti promjenu u datoteci bez promjene adrese (stara verzija će ostati na prethodnoj adresi, a nova će biti dostupna preko druge adrese, kako se hash sadržaja datoteke promijenio). S obzirom na to da se identifikator datoteke mijenja pri svakoj promjeni, kako se svaki put ne bi prenosile nove veze, pružaju se usluge za vezivanje stalnih adresa koje uzimaju u obzir razne verzije datoteke (IPNS), ili postavljanje pseudonima po analogiji s tradicionalnim FS i DNS-om (MFS (Mutable File System) i DNSLink).
Slično BitTorrentu, podaci se izravno pohranjuju na sustavima sudionika, koji razmjenjuju informacije u P2P režimu, bez vezanja za centralizirane čvorove. Kada je potrebno dobiti datoteku s određenim sadržajem, sustav pronalazi sudionike koji posjeduju tu datoteku i isporučuje je s njihovih sustava u dijelovima kroz nekoliko tokova. Nakon preuzimanja datoteke na svoj sustav, sudionik automatski postaje jedna od točaka za njezino dijeljenje. Za određivanje sudionika u mreži na čvorovima na kojima je prisutan sadržaj koji je zanimljiv koristi se distribuirana hash tablica (DHT). Za pristup globalnom FS-u, IPFS se može koristiti preko HTTP protokola ili montirati virtualni FS /ipfs pomoću FUSE modula.
IPFS pomaže u rješavanju problema kao što su pouzdano pohranjivanje (ako izvorno spremište prestane raditi, datoteku je moguće preuzeti iz sustava drugih korisnika), suprotstavljanje cenzuri sadržaja (za blokiranje potrebno je blokirati sve sustave korisnika koji imaju kopiju podataka) i organizacija pristupa u slučaju nedostatka izravne veze na internet ili loše kvalitete kanala (moguće je preuzeti podatke preko najbližih sudionika u lokalnoj mreži). Osim pohrane datoteka i razmjene podataka, IPFS se može koristiti kao osnova za stvaranje novih usluga, na primjer, za organizaciju rada web stranica koje nisu vezane uz poslužitelje ili za stvaranje distribuiranih aplikacija.

Izvor: opennet.ru
