diff --git a/assets/figures/chapter-2/2.7.merkle-dag.png b/assets/figures/chapter-2/2.7.merkle-dag.png index 0136ba1..863121f 100644 Binary files a/assets/figures/chapter-2/2.7.merkle-dag.png and b/assets/figures/chapter-2/2.7.merkle-dag.png differ diff --git a/chapters/2.theoretical-background/2.7.ipfs.tex b/chapters/2.theoretical-background/2.7.ipfs.tex index cfc225e..1df2be1 100644 --- a/chapters/2.theoretical-background/2.7.ipfs.tex +++ b/chapters/2.theoretical-background/2.7.ipfs.tex @@ -8,16 +8,16 @@ Ο τρόπος λειτουργίας του IPFS βασίζεται στα εξής: \begin{itemize} - \item \textbf{Μοναδική ταυτοποίηση μέσω διευθυνσιοδότησης περιεχομένου (content addressing)}. Το περιεχόμενο δεν προσδιορίζεται από την τοποθεσία του (π.χ. https://...), αλλά από το τι περιλαμβάνει. Κάθε κομμάτι περιεχομένου έχει ένα μοναδικό αναγνωριστικό (Content ID ή CID), το οποίο είναι το hash του σε μορφή multihash (\url{https://multiformats.io/multihash/}). - \item \textbf{Σύνδεση περιεχομένου μέσω κατευθυνόμενων άκυκλων γράφων (Directed Acyclic Graphs ή DAGs)}. Το IPFS αξιοποιεί DAGs (και συγκεκριμένα Merkle DAGs), μίας δομής δεδομένων της οποίας κάθε κόμβος έχει ως μοναδικό αναγνωριστικό το hash του περιεχομένου του (το CID). + \item \textbf{Μοναδική ταυτοποίηση μέσω διευθυνσιοδότησης περιεχομένου (content addressing)}. Το περιεχόμενο δεν προσδιορίζεται από την τοποθεσία του (π.χ. https://...), αλλά από το τι περιλαμβάνει. Κάθε κομμάτι περιεχομένου έχει ένα μοναδικό αναγνωριστικό (Content ID ή CID), το οποίο είναι το hash του σε μορφή multihash\footnote{\url{https://multiformats.io/multihash/}}. + \item \textbf{Σύνδεση περιεχομένου μέσω κατευθυνόμενων άκυκλων γράφων (Directed Acyclic Graphs ή DAGs)}. Το IPFS αξιοποιεί τα λεγόμενα Merkle DAGs, μίας δενδρικής δομής δεδομένων της οποίας κάθε κόμβος έχει ως μοναδικό αναγνωριστικό το hash του περιεχομένου του (το CID). \begin{enumitemcenteredfigure} - \includegraphics[width=.95\textwidth]{assets/figures/chapter-2/2.7.merkle-dag.png} + \includegraphics[width=\textwidth]{assets/figures/chapter-2/2.7.merkle-dag.png} \caption[Παράδειγμα Merkle DAG]{Παράδειγμα Merkle DAG\footnotemark} \end{enumitemcenteredfigure} - \footnotetext{\url{https://proto.school/merkle-dags/}} + \footnotetext{Βάσει ανάλογου σχήματος στο \url{https://proto.school/merkle-dags/}.} - Στο παραπάνω Merkle DAG τα baf...i αποτελούν τα CID των αρχείων και των φακέλων. Το δένδρο δημιουργείται από κάτω προς τα πάνω, υπολογίζοντας κάθε φορά τα κατάλληλα hashes/CIDs. Σε περίπτωση που το περιεχόμενο ενός κόμβου αλλάξει, τότε αλλάζει τόσο το CID του, όσο και τα CIDs όλων των προγόνων του. + Όπως φαίνεται στο παραπάνω Merkle DAG, το δένδρο δημιουργείται από κάτω προς τα πάνω, υπολογίζοντας κάθε φορά τα κατάλληλα hashes/CIDs. Σε περίπτωση που το περιεχόμενο ενός κόμβου αλλάξει, τότε αλλάζει τόσο το CID του, όσο και τα CIDs όλων των προγόνων του. \item \textbf{Ανακάλυψη περιεχομένου μέσω κατανεμημένων πινάκων κατακερματισμού (\textenglish{Distributed Hash Tables ή DHTs})}. Ο DHT είναι ένα κατανεμημένο σύστημα για την αντιστοίχιση κλειδιών σε τιμές. Στο IPFS αποτελεί το θεμελιώδες συστατικό του συστήματος δρομολόγησης περιεχομένου και λειτουργεί ως διασταύρωση μεταξύ καταλόγου και συστήματος πλοήγησης. Πρακτικά πρόκειται για ένα πίνακα που αποθηκεύει ποιος έχει ποια δεδομένα και, μέσω του οποίου, ο χρήστης βρίσκει τον peer που έχει αποθηκευμένο το επιθυμητό περιεχόμενο. \end{itemize} diff --git a/thesis.pdf b/thesis.pdf index f7df289..aa03bc4 100644 Binary files a/thesis.pdf and b/thesis.pdf differ