Implementacija I Primjene Inter Planetary File System
Total Page:16
File Type:pdf, Size:1020Kb
pd.tvz.hr POLYTECHNIC & DESIGN Vol. 5, No. 2, 2017. POLYTECHNIC & DESIGN Vol. 5, No. 2, 2017. DOI: 10.19279/TVZ.PD.2017-5-2-09 INTER PLANETARNI PODATKOVNI SUSTAV - IMPLEMENTACIJA I PRIMJENE INTER PLANETARY FILE SYSTEM - IMPLEMENTATION AND APPLICATIONS Mario Kamenjak1, Gordan Davidović2 1Tehničko veleučilište u Zagrebu, Zagreb, Hrvatska, Student 2Tehničko veleučilište u Zagrebu, Zagreb, Hrvatska Sažetak This paper analyzes the IPFS implementation, IPFS je peer to peer distribuirani podatkovni it explains the problems that IPFS is trying to sustav kojemu je cilj spojiti sva računala u solve with its own application. It looks at already jedan podatkovni sustav. Da bi to ostvario existing applications that use IPFS and it suggests koristi koncepte uzete iz Git-a i Bittorrenta. directions for future papers and research. U poglavlju implementacije IPFS-a će se Keywords: IPFS, Web, Internet, peer to peer, razjasniti korištene funkcionalnosti IPFS-a, protocol neke podatkovne strukture i korištene druge tehnologije. U poglavlju problematike današnjeg weba će se razjasniti detaljno neki problemi 1. Uvod koje IPFS pokušava riješiti, i način kako ih 1. Introduction rješava. U poglavlju primjene se objašnjava kako IPFS instalirati na razne platforme, ali Bilo je mnogo pokušaja u konstruiranju isto tako se pokazuju određena već postojeća globalnog distribuiranog podatkovnog sustava. programska rješenja za IPFS. Ovaj rad analizira Neki su bili uspješni, a neki neuspješni. implementaciju IPFS-a, objašnjava probleme Jedan od uspješnijih akademskih pokušaja je koje IPFS svojom primjenom nastoji prevladati. Andrew file system(AFS). Izvan akademije su Pregledava već postojeće aplikacije koje koriste najveći uspjeh imali sustavi orijentirani prema IPFS i predlaže smjerove za daljnje radove i dijeljenju velikih datoteka poput BitTorrenta, istraživanja. KazaA, Napstera i sl. Međutim nijedan od istih nije dizajniran kao infrastruktura na koju Ključne riječi: IPFS, Web, Internet, peer to peer, se može nadograđivati. Iako postoje slučajevi protokol uspješnog prenamjenjivanja, iz njih nije nastao podatkovni sustav opće namjene sa globalnom Abstract i decentraliziranom namjenom. Do sada je u industriji Hypertext Transfer protokol(HTTP) IPFS is a distributed file system which has a goal uglavnom bio zadovoljavajuć zato jer je to connect all computers into one file system. premještanje malih datoteka jednostavno i jeftino. To achieve that it is using concepts taken from Međutim dolazimo u eru video streamanja visokih Git and Bittorrent. In the IPFS implementation i super visokih definicija, eru petabytea podataka, section it will be talked about how IPFS functions, 'big data' analiza unutar više organizacija, which data structures it uses and which other verzioniranja i sprječavanja slučajnog gubljenja technologies it uses. In the problematics of todays podataka. Bez prihvaćanja novijih tehnika web section some problems will be shown that distribucije podataka, korištenje HTTP u te IPFS is trying to fix, and how it fixes them. In svrhe stvara velike troškove korisnicima Internet the application section it will be shown how to Service Provider(ISP) usluga i veliko opterećenje install IPFS on different platforms and some na infrastrukturu. already existing IPFS programs will be shown. 150 pd.tvz.hr POLYTECHNIC & DESIGN Vol. 5, No. 2, 2017. POLYTECHNIC & DESIGN Vol. 5, No. 2, 2017. Veliki izvor ideja za IPFS je bio Git sustav Domain Name System(DNS) sustavu i prevodi kontrole verzioniranja koji omogućuje efikasnu Uniform Resource Locator(URL) u ljudima distribuciju podataka, međutim za distribuirane čitljiva imena[1]. podatkovne sustave najkorisniji je koncept Merkle Distribuirane Hash Tablice(DHT) se koriste da Dyrected Acyclic Grafa(DAG) podatkovnog bi se koordinirali i održavali metapodaci o peer modela proizašao iz Git-a koji omogućuje snažne to peer računalnim sustavima. IPFS koristi S/ strategije distribucije podataka. Središnja ideja Kademlia DHT, koji je nadogradnja na Kademlia IPFS-a je da modelira sve podatke kao dio istog DHT. Kademlia DHT se također koristi u Merkle DAG-a[1].Također vezano za IPFS, BitTorrent protokolu i može efikasno pretraživati na Internetu postoji velika opasnost da se radi velike računalne mreže. odumiranja tehnologije dogodi tzv. 'Digitalno tamno doba'. Odumiranjem web tehnologija, U IPFS-u čvorovi se identificiraju sa hash- postoji strah da bi mnoge stranice mogle postati om javnog ključa koji je kreiran pomoću S/ nečitljive, ne samo odumiranjem web tehnologija Kademlia. Čvorovi spremaju svoj javni i privatni nego i odumiranjem samih stranica. IPFS želi biti ključ. Korisnici smiju pri svakom novom građevni blok budućeg permanentnog Interneta povezivanju kreirati novi identitet čvora, ali time kojemu je cilj spriječiti odumiranje digitalnih gube generiranu statistiku u mreži. Pri prvom podataka[2][3]. povezivanju čvorovi izmjenjuju javne ključeve i provjeravaju hash sa identitetom čvora. Ako je Drugi problem koji IPFS pokušava riješiti je ova provjera negativna veza se gasi. problem nepotrebne višestruke distribucije velike količine podataka. Taj problem predstavlja veliko Mrežni podsustav IPFS-a se sastoji od: opterećenje na infrastrukturu ali i na propusnost • Transporta: Može koristiti bilo koji mreže korisnika. Taj problem se idealno opisuje transportni protokol. situacijom, ako je jedno računalo u Local Area Network (LAN) mreži preuzelo video sa • Pouzdanosti: Nudi pouzdanost ako ju niži protokoli ne nude. Interneta, i drugo računalo u istoj LAN mreži želi skinuti isti video, zašto drugo računalo ne bi • Povezivosti preuzelo video sa prvog računala umjesto da ga • Integriteta: Opcionalno provjerava skida sa udaljenog servera[4]. integritet poruka. IPFS iako je mlad protokol koji je prvi puta spomenut tek 2014, već sada ima mnoge • Autenticiteta: Opcionalno provjerava aplikacije. Npr. već sada postoji dodatak za autentičnost poruka. Firefox koji omogućuje pregledavanje interenta IPFS može koristiti bilo koju mrežu, on ne preko IPFS-a. Također postoji i eksperimentalni pretpostavlja pristup Internet Protokolu. preglednik za IPFS, pa i IPFS tražilica[5]. Čvorovima je potreban sustav usmjeravanja koji Ovaj članak opisuje IPFS i njegovu može pronaći druge elemente na mreži i elemente implementaciju u drugom poglavlju, problematiku koji mogu poslužiti točno određene objekte. IPFS kojom se bavi u trećem poglavlju i u četvrtom to ostvaruje koristeći Dynamic Sloppy Hash Table poglavlju opisuje neke već postojeće IPFS (DSHT) baziran na S/Kademlia i Coral. Male aplikacije ali i pokazuje proces instalacije IPFS-a vrijednosti su spremljene direktno u DHT a velike čitatelju. su referencirane u DHT-u[1]. Unutar IPFS-a razmjena podataka se događa razmjenom blokova pomoću protokola 2. Implementacija IPFS-a inspiriranog BitTorrent-om, sa nazivom BitSwap. 2. IPFS implementation Za razliku od BitTorrenta, BitSwap nije ograničen na blokove u samo jednom torrentu. BitSwap IPFS uzima mnoge ideje od već postojećih radi kao stalno tržište gdje čvorovi mogu pronaći tehnologija, prvenstveno git-a i bittorrenta, blokove podataka koji su im potrebni, a blokovi međutim one ne čine potpuni dizajn IPFS-a. Tu je mogu doći i iz sasvim nepovezanih datoteka u još i IPNS koji je samo certificirajući, potpomaže podatkovnom sustavu. 151 pd.tvz.hr POLYTECHNIC & DESIGN Vol. 5, No. 2, 2017. POLYTECHNIC & DESIGN Vol. 5, No. 2, 2017. Sustav također mora poticati čvorove na to da IPNS se sastoji od samo-certificirajućih imenskih dijele podatke koje imaju, ali i da očuva rjeđe prostora. Na IPNS se nadgrađuje i sustav za podatkovne blokove. To znači da će čvorovi ljudima čitljiva imena, jer hash vrijednosti nisu češće spremati rjeđe podatkovne blokove u lagano čitljive[1]. pred-memoriju. Poticanje na dijeljenje podataka Postoje planovi za uvođenje sustava signaliziranja se ostvaruje sa BitSwap kreditnim sustavom. koji će biti povrh IPNS podsustava. Time će se Uspostavljaju se pouzdani i nepouzdani čvorovi omogućiti prenošenje dinamičkih web stranica i što se tiče razmjene podataka. To onemogućuje sadržaja preko IPFS-a. To će se ostvariti pomoću Sybill napade, štiti uspješne veze i usporava loše signaliziranja preko usmjerničkog podsustava i veze dok se ne poprave. pomoću distribuiranog agenta[6]. DHT i BitSwap omogućuju IPFS-u da formira peer to peer sustav za spremanje i distribuciju 3. Problematika današnjeg web-a blokova na brzi način. Povrh njih IPFS gradi Merkle DAG koji omogućuje: 3. The problematics of todays web • Adresiranje sadržaja Današnji HTTP protokol radi na drugačijim • Otpornost na neovlašteno manipuliranje principima u odnosu na IPFS. Prvenstvena konceptualna razlika je u tome da http koristi • Deduplikaciju lokacijsko adresiranje, za razliku od IPFS-a koji U IPFS-u putanje rade na isti način kao UNIX koristi sadržajno adresiranje[4]. putanje i može se njima putovati sa string Kod lokacijskog adresiranja svaki sadržaj dobiva Aplication Programming Interfaceom(API). IPFS adresu na osnovu svoje lokacije. Ako se taj putanje se mogu montirati u postojeće podatkovne sadržaj pomakne ili kopira na drugu lokaciju, sustave bez konflikta. Drugi dio IPFS putanja se HTTP sa lokacijskim adresiranjem ga tretira kao obično sastoji od hash rezultata objekata. IPFS drugi sadržaj. To je uzrok velikog opterećenja klijentima je potrebno i nešto lokalnog spremišta na infrastrukturu ali i uzrok velike latencije. sa kojeg su dostupni lokalni podaci objekata Uzrok latencije leži u činjenici da su poslužitelji kojima upravlja IPFS. Za to može poslužiti tvrdi koji