Ovo je stara izmjena dokumenta!
IPFS (eng. InterPlanetary File System) je peer-to-peer distribuirani sustav za razmjenu i pohranu datoteka. U konačnici, IPFS bi mogao poslužiti kao zamjena za HTTP, odnosno HTTPS protokole kao temelj za Web.
Ključne riječi: IPFS; InterPlanetary File System; blockchain; P2P; distributed file system
IPFS je skup protokola koji opisuju organizaciju i prijenos podataka s idejom peer-to-peer umrežavanja. Budući da je ovo primjer open-source protokola, postoje mnoge različite implementacije i primjeri upotrebe. Usprkos tome, njegova glavna uloga ostaje objavljivanje podataka kao što su web-stranice i medijske datoteke.
IPFS je relativno novonastali protokol. Godine 2014. osnovao ga je Juan Benet s ciljem decentralizacije weba. Od tada ga implementira sve više aplikacija i servisa - preglednici Opera i Brave pružaju gateway na IPFS mrežu; “shadow libraries” omogućavaju dijeljenje knjiga putem IPFS-a; Filecoin je dijeljeni oblak također baziran na IPFS-u. U konačnici, IPFS bi mogao zamijeniti protokole HTTP i HTTPS kao temelj za novi decentralizirani web.
Moderni web, odnosno protokoli za prijenos i reprezentaciju podataka suočeni su s mnogim problemima. IPFS nastoji riješiti mnoge od njih.
Funkcije IPFS-a se mogu podijeliti na tri glavna podsustava.
Podaci su u IPFS-u organizirani u blokove, a svakom bloku je pridijeljen jedinstveni identifikator CID (eng. content identifier). CID se izračunava pomoću hasha i codeca bloka što osigurava da je jedinstven prema sadržaju bloka. Na taj način postignute su dvije važne stvari: dohvat podataka vrši se prema sadržaju (hash direktno kodira sadržaj bloka) te mogućnost verifikacije pomoću usporedbe traženog i dobivenog CID-a (jer CID jedinstveno opisuje sadržaj bloka). Za rad s CID-ovima koristi se sustav IPLD (eng. InterPlanetary Linked Data). IPLD opisuje veze između podataka usmjerenim acikličnim grafovima Merkle DAG. To je posebna matematička konstrukcija kod koje svaki čvor u grafu ima svoj identifikacijski broj. Na ovaj način IPFS može povezati više blokova koji su na različitim lokacijama u jednu datoteku. Za pohranu i prijenos podaci se pakiraju u Content Addressable aRchive (CAR) datoteke u obliku serijalizirane arhive. CAR datoteke slične su TAR datotekama po tome što su dizajnirane za pohranu kolekcija podataka adresiranih prema sadržaju.
Slika 1. Prikaz čvorova u IPFS mreži. Gornji korisnik dodaje datoteku u mrežu, računa se hash. Donji korisnik dohvaća datoteku, uspoređuju se traženi i dohvaćeni hashevi. [9]
Usmjeravanje sadržaja podrazumijeva način na koji IPFS pronalazi traženi CID u mreži, tj. pronalazi korisnike koji pružaju sadržaj s traženim CID-om. Da bi IPFS pronašao zatraženi sadržaj nije dovoljno da zna samo njegov identifikacijski broj, već ga mora povezati s IP adresama računala. U ovu svrhu koristi se sustav Kademili, distribuirana hash tablica (DHT). Možemo zamisliti veliku hash tablicu distribuiranu na više čvorova u mreži u kojoj su zapisane IP adrese i odgovarajući CID brojevi. Računala mogu saznati imaju li susjedni čvorovi traženi CID akcijom koja se zove Bitswap. U ovom slučaju nije potrebno pretraživati DHT, nego poslati upit sa željenim CID-om susjednim čvorovima koji ga zatim traže od svojih susjeda dok ne naiđu na računalo koje sadrži podatak. Ako neki čvor u mreži ne implementira sve značajke IPFS-a potrebne za usmjeravanje (npr. ne računa DHT tablicu), moguće je delegirati usmjeravanje protokolu HTTP. Ova značajka vrlo je korisna jer omogućava integriranje IPFS-a u već postojeće sustave. Za otkrivanje računala u mreži, koristi se mDNS (eng. multicast Domain Name Server), inačica protokola DNS. Na taj način računalo koje odašilje zahtjev jako brzo doznaje koji su čvorovi u mreži čak i kad nema pristupa internetu.
Slika 2. Prikaz kako se objavljuje, traži i dohvaća sadržaj protokolom IPFS. [10]