Το **Διαπλανητικό Σύστημα Αρχείων** (**InterPlanetary File System, IPFS**) είναι πρωτόκολλο και δίκτυο σχεδιασμένο για να δημιουργήσει μια μέθοδο peer-to-peer για την αποθήκευση και την κοινή χρήση υπερμέσων σε κατανεμημένο σύστημα αρχείων. Το IPFS αρχικά σχεδιάστηκε από τον Χουάν Μπένετ, και τώρα είναι εγχείρημα ανοιχτού κώδικα που αναπτύχθηκε με βοήθεια από την κοινότητα.

Ιστορία
-------

Το 2014, το πρωτόκολλο εκμεταλλεύτηκε το πρωτόκολλο Bitcoin blockchain και την υποδομή του δικτύου για να αποθηκεύσει αναλλοίωτα δεδομένα, να αφαιρέσει τα διπλά αρχεία σε όλο το δίκτυο και να αποκτήσει πληροφορίες διεύθυνσης για την πρόσβαση σε αποθήκευση κόμβους για να αναζητήσει αρχεία στο δίκτυο.

Υπάρχουν υλοποιήσεις στο Go και JavaScript, ενώ η υλοποίηση στη Python βρίσκεται σε εξέλιξη. Η εφαρμογή στη Go θεωρείται ότι είναι η υλοποίηση αναφοράς, ενώ αναπτύσσονται τυπικές προδιαγραφές.

Περιγραφή
---------

Το IPFS είναι διανεμημένο σύστημα αρχείων peer-to-peer που επιδιώκει να συνδέσει όλες τις υπολογιστικές συσκευές με το ίδιο σύστημα αρχείων. Κατά κάποιο τρόπο, το IPFS είναι παρόμοιο με το World Wide Web, αλλά το IPFS, θα μπορούσε να θεωρηθεί ως ενιαίο σμήνος BitTorrent, ανταλλάσοντας αντικείμενα μέσα σε αποθετήριο Git. Με άλλα λόγια το IPFS παρέχει υψηλής απόδοσης, διευθετημένο σε περιεχόμενο μοντέλο μπλοκ αποθήκευσης, με διευθετημένες σε περιεχόμενο υπερσυνδέσεις. Αυτό αποτελεί ένα γενικευμένο κατευθυνόμενο άκυκλο γράφο Μερκλ. Το IPFS, συνδυάζει ένα κατανεμημένο πίνακα κατακερματισμού, ένα μεγάλο μπλοκ ανταλλαγής και ονοματοχώρο αυτοπιστοποίησης. Το IPFS δεν έχει ενιαίο σημείο αποτυχίας, και οι κόμβοι δεν πρέπει να εμπιστεύονται ο ένας τον άλλον για να μην πειραχτούν τα δεδομένα κατά τη μεταφορά. Η Διανεμημένη Παράδοση Περιεχόμενου εξοικονομεί εύρος ζώνης και αποτρέπει επιθέσεις DDoS, με τις οποίες αγωνίζεται το HTTP.

Το σύστημα αρχείων μπορεί να έχει πρόσβαση σε μια ποικιλία από τρόπους, όπως μέσω FUSE και πάνω από HTTP. Ένα τοπικό αρχείο μπορεί να προστεθεί στο σύστημα αρχείων του IPFS, καθιστώντας το διαθέσιμο στον κόσμο. Διανέμονται χρησιμοποιώντας πρωτόκολλο βασισμένο στο BitTorrent. Άλλοι χρήστες που βλέπουν το περιεχόμενο βοηθούν στην εξυπηρέτηση του περιεχομένου σε άλλους στο δίκτυο. Το IPFS διαθέτει υπηρεσία ονόματος, την IPNS, ένα παγκόσμιο χώρο ονομάτων που βασίζεται στη PKI. Χρησιμεύει για να οικοδομήσει αλυσίδες εμπιστοσύνης και είναι συμβατό με άλλα NS και μπορεί να χαρτογραφήσει DNS, .onion, .bit, κλπ. στο IPNS.

Μορφή δεδομένων Μερκλ
---------------------

Κάθε δέντρο Μερκλ είναι κατευθυνόμενος άκυκλος γράφος επειδή κάθε κόμβος είναι προσβάσιμο μέσω του ονόματός του. Κάθε παράρτημα του Μερκλ είναι το κλειδί κατακερματισμού του τοπικού περιεχομένου. Έτσι, μετά τη δημιουργία δεν υπάρχει κανένας τρόπος για την επεξεργασία ενός κόμβους. Αυτό αποτρέπει κύκλους (υποθέτοντας ότι δεν υπάρχουν συγκρούσεις κατακερματισμού), εφόσον ένας δεν μπορεί να συνδέσει τον πρωτοδημιουργημένο κόμβο στον τελευταίο κόμβο για να δημιουργήσει την τελευταία αναφορά.

Σε γενικές γραμμές, για κάθε Μερκλ για να δημιουργηθεί ένα νέο παράρτημα ή την επαλήθευση υφιστάμενου κλάδου, ένας αλγόριθμος κατακερματισμού χρησιμοποιείται σε συνδυασμό με το τοπικό περιεχόμενο. Λίγοι διαφορετικοί αλγόριθμοι κατακερματισμού είναι διαθέσιμοι στο IPFS.

Η εισαγωγή δεδομένων σε οποιαδήποτε από αυτούς τους αλγόριθμους κατακερματισμού είναι τεκμηριωμένη.

Αξιοσημείωτοι χρήστες
---------------------

Το δημοψήφισμα για την ανεξαρτησία της Καταλονίας, που έλαβε χώρα τον Σεπτέμβριο–Οκτώβριο του 2017, κρίθηκε παράνομο από το Συνταγματικό Δικαστήριο της Ισπανίας και πολλές σχετικές ιστοσελίδες είχαν μπλοκαριστεί. Στη συνέχεια, το Καταλανικό Πειρατικό αντέγραψε την ιστοσελίδα του στο IPFS για να παρακάμψει την διαταγή μπλοκαρίσματος του Ανώτατου Δικαστηρίου της Καταλονίας.

Το IPFS χρησιμοποιείται για να δημιουργήσει ένα αντίγραφο της Βικιπαίδειας, η οποία επιτρέπει την πρόσβαση της Βικιπαίδειας σε δικαιοδοσίες όπου η Βικιπαίδεια έχει μπλοκαριστεί.

Το UltraNote, κρυπτονόμισμα που υποστηρίζει κρυπτογραφημένα μηνύματα με μεταφορές αρχείων έως και 100MB με το χαρακτηριστικό "αυτοκαταστροφής" χρησιμοποιεί IPFS, για να αποθηκεύσει τα αρχεία.

Δείτε επίσης
------------

\* Bitcoin
* Dat
* Αποκεντροποιημένο λογισμικό
* Filecoin
* Freenet
* I2P
* IndieWeb
* Kademlia
* Namecoin
* OpenBazaar
* Φιλοξενία ιστού Peer-to-peer
* Αυτοπιστοποιούμενο Σύστημα Αρχείων
* Solid (αποκεντροποίηση του διαδικτύου)
* ZeroNet

Παραπομπές
----------

1. ↑  Finley, Kurt (20 Ιουνίου 2016). «The Inventors of the Internet Are Trying to Build a Truly Permanent Web». *Wired*.
2. ↑  «The IPFS Project». *Ipfs.io*. Ανακτήθηκε στις 11 Σεπτεμβρίου 2015.
3. ↑  «IPFS README - Who designed it?». *Github.io*. Ανακτήθηκε στις 11 Σεπτεμβρίου 2015.
4. ↑  «IPFS Protocol Selects Ethereum Over Bitcoin, Prefers Ethereum Dev Community». *Cointelegraph.com*. Ανακτήθηκε στις 25 Οκτωβρίου 2017.
5. ↑  «ipfs/go-ipfs». *GitHub* (στα Αγγλικά). Ανακτήθηκε στις 13 Φεβρουαρίου 2017.
6. ↑  «ipfs/js-ipfs». *GitHub* (στα Αγγλικά). Ανακτήθηκε στις 13 Φεβρουαρίου 2017.
7. ↑  «ipfs/py-ipfs». *GitHub* (στα Αγγλικά). Ανακτήθηκε στις 13 Φεβρουαρίου 2017.
8. ↑  «IPFS Docs». *ipfs.io* (στα Αγγλικά). Ανακτήθηκε στις 13 Φεβρουαρίου 2017.
9. ↑  «ipfs/specs». *GitHub* (στα Αγγλικά). Ανακτήθηκε στις 13 Φεβρουαρίου 2017.
10. ↑  Allison, Ian (13 Οκτωβρίου 2016). «Juan Benet of IPFS talks about Filecoin». *Ibtimes.co.uk*. Ανακτήθηκε στις 25 Οκτωβρίου 2017.
11. ↑  «IPFS is the Distributed Web». *Ipfs.io*. Ανακτήθηκε στις 27 Μαρτίου 2018.
12. ↑  «IPFS README». *Github.com*. Ανακτήθηκε στις 11 Σεπτεμβρίου 2015.
13. ↑  «go-ipfs: IPFS implementation in go». *GitHub.com*. 25 Οκτωβρίου 2017. Ανακτήθηκε στις 25 Οκτωβρίου 2017.
14. ↑  Balcell, Marta Poblet (5 Οκτωβρίου 2017). «Inside Catalonia's cypherpunk referendum». *Eureka Street*. Αρχειοθετήθηκε από το πρωτότυπο στις 5 Νοεμβρίου 2018. Ανακτήθηκε στις 26 Αυγούστου 2018.
15. ↑  Hill, Paul (30 September 2017). «Catalan referendum app removed from Google Play Store» (στα αγγλικά). *Neowin*.. Ανακτήθηκε στις 2017-10-06.
16. ↑  Dale, Brady (10 May 2017). «Turkey Can’t Block This Copy of Wikipedia». Observer Media. Αρχειοθετήθηκε από το πρωτότυπο στις 18 Oct 2017.. Ανακτήθηκε στις 20 December 2017.
17. ↑  «Attachment feature added to GUI wallet | UltraNote XUN Blog». *blog.ultranote.org* (στα Αγγλικά). Αρχειοθετήθηκε από το πρωτότυπο στις 8 Απριλίου 2018. Ανακτήθηκε στις 7 Απριλίου 2018.

Εξωτερικοί σύνδεσμοι
--------------------

* Επίσημος ιστότοπος, IPFS.io
* IPFS Introduction Video
* HTTP is obsolete. It's time for the distributed, permanent web
* Interplanetary Networks