nova verzija decentraliziranog datotečnog sustava (InterPlanetary File System), koja stvara globalnu verzioniranu pohranu datoteka, implementiranu kao P2P mreža sastavljena od sustava sudionika. IPFS kombinira ideje ranije provedene u sustavima poput Git, BitTorrent, Kademlia, SFS i Web, i podsjeća na jedinstveni 'roj' BitTorrenta (kamenice koje sudjeluju u distribuciji), razmjenjujući Git objekte. Za pristup globalnom FS-u, IPFS se može koristiti pomoću HTTP protokola ili montirati virtualni FS /ipfs putem FUSE modula. Kod referentne implementacije napisan je na jeziku Go i pod licencama Apache 2.0 i MIT. Dodatno referentna implementacija IPFS protokola u JavaScriptu, koja može raditi u pregledniku.
Ključna IPFS je adresiranje prema sadržaju, pri čemu je veza za pristup datoteci izravno povezana s njenim sadržajem (uključuje kriptografski hash sadržaja). IPFS ima ugrađenu podršku za verzioniranje. Adresu datoteke nije moguće proizvoljno preimenovati, može se promijeniti samo nakon promjene sadržaja. Slično tome, nije moguće unijeti promjenu u datoteku bez promjene adrese (stara verzija će ostati na staroj adresi, a nova će biti dostupna putem druge adrese, jer će se hash sadržaja datoteke promijeniti). S obzirom na to da se identifikator datoteke mijenja s svakom promjenom, kako bi se svaki put izbjeglo slanje novih veza, osigurane su usluge za vezivanje stalnih adresa koje uzimaju u obzir različite verzije datoteke (), ili vezanje nadimka slično tradicionalnim FS i DNS ( (Mutable File System) i ).
Slično BitTorrentu, podaci se izravno pohranjuju na sustavima sudionika koji razmjenjuju informacije u P2P režimu, bez vezivanja za centralizirane čvorove. Kada je potrebno dobiti datoteku s određenim sadržajem, sustav pronalazi sudionike koji imaju tu datoteku i isporučuje je s njihovih sustava u dijelovima u više tokova. Nakon preuzimanja datoteke na svoj sustav, sudionik automatski postaje jedna od točaka za njeno distribuiranje. Za određivanje sudionika mreže na čvorovima na kojima se nalazi interesantan sadržaj distribuirana hash tablica ().
IPFS se može smatrati distribuiranom reinkarnacijom Web-a koja se temelji na adresiranju sadržaja, a ne na mjestu pohrane i proizvoljnim imenima. Osim pohrane datoteka i razmjene podataka, IPFS se može koristiti kao osnova za stvaranje novih usluga, primjerice za organizaciju rada web stranica koje nisu vezane za poslužitelje ili za izradu distribuiranih .
IPFS pomaže u rješavanju problema poput pouzdanosti pohrane (ako izvorna pohrana postane nedostupna, datoteku se može preuzeti s sustava drugih korisnika), suzbijanju cenzure sadržaja (za blokiranje će biti potrebno blokirati sve sustave korisnika na kojima se nalazi kopija podataka) i organizaciji pristupa u slučaju nedostatka izravne internetske veze ili loše kvalitete veze (može se preuzeti podaci kroz najbliže korisnike u lokalnoj mreži).
U verziji značajno je poboljšana učinkovitost i pouzdanost rada. Javna mreža temeljena na IPFS-u prešla je granicu od 100 tisuća čvorova, a promjene u IPFS-u 0.5 odražavaju prilagodbu protokola za rad u takvim uvjetima. Optimizacije su se uglavnom usredotočile na poboljšanje mehanizama usmjeravanja sadržaja, odgovornog za pretraživanje, objavljivanje i vađenje podataka, kao i na povećanju učinkovitosti implementacije (DHT), koja pruža informacije o čvorovima koji imaju tražene podatke. Kod povezan s DHT-om je gotovo potpuno prekrižen, što je značajno ubrzalo operacije pretraživanja sadržaja i određivanja IPNS zapisa.
Konkretnije, brzina izvršavanja operacija dodavanja podataka povećana je dva puta, a objavljivanja novog sadržaja u mrežu 2.5 puta,
vađenje podataka od 2 do 5 puta, a pretraživanje sadržaja od 2 do 6 puta.
Preuređeni mehanizmi usmjeravanja i slanja objava omogućili su ubrzanje rada mreže 2-3 puta uz učinkovitije korištenje propusnosti i pozadinske transmisije prometa. U sljedećem izdanju planira se uvođenje transporta temeljenog na protokolu QUIC, što će omogućiti još veće povećanje performansi smanjenjem latencije.
Poboljšana brzina i pouzdanost sustava IPNS (Inter-Planetary Name System), koji se koristi za stvaranje trajnih veza na promjenjivi sadržaj. Novi eksperimentalni transport pubsub omogućio je ubrzanje isporuke IPNS zapisa 30-40 puta tijekom testiranja u mreži s tisućom čvorova (za eksperiment je razvijen poseban ). Performanse sloja
Badger, koji se koristi za interakciju s FS operacijskog sustava. Zahvaljujući podršci za operacije asinkronog pisanja, Badger sada radi 25 puta brže od starog sloja flatfs. Povećanje performansi također se odrazilo na mehanizam , koji se koristi za prijenos datoteka između čvorova.
Od funkcionalnih poboljšanja ističe se korištenje TLS za šifriranje veza između klijenata i poslužitelja. Pojavila se podrška za poddomene u HTTP gatewayu — programeri mogu smjestiti decentralizirane aplikacije (dapps) i web sadržaj u izolirane poddomene koje se mogu koristiti s hash adresama, IPNS, DNSLink, ENS itd. Dodano je novo područje imena /p2p, u koje su premješteni podaci povezani s adresama peerova (/ipfs/peer_id → /p2p/peer_id). Dodana je podrška za „.eth” linkove temeljenima na blockchainu, što će proširiti primjenu IPFS-a u distribuiranim aplikacijama.
Start-up Protocol Labs koji podržava razvoj IPFS-a također paralelno razvija projekt , koji je nadogradnja na IPFS. Dok IPFS omogućuje sudionicima da čuvaju, traže i razmjenjuju podatke međusobno, Filecoin se razvija kao platforma temeljena na blockchain tehnologiji za trajno pohranjivanje. Filecoin omogućuje korisnicima, koji imaju neiskorišteni prostor na disku, da ga pod određenom nagradom ponude mreži, dok korisnici kojima je potrebno mjesto za pohranu mogu to kupiti. Ako potreba za mjestom nestane, korisnik može prodati. Tako se formira tržište prostora za pohranu, a plaćanja se vrše u tokenima , koji se stvara kroz rudarstvo.
Izvor: opennet.ru
