Browse Source

refactor: relative widths, custom logo command

develop
Ezerous 3 years ago
parent
commit
993a7ec4d0
  1. 4
      chapters/2.theoretical-background/2.1.hash-functions.tex
  2. 4
      chapters/2.theoretical-background/2.2.asymmetric-cryptography.tex
  3. 2
      chapters/2.theoretical-background/2.3.merkle-trees.tex
  4. 1
      chapters/2.theoretical-background/2.4.p2p-networks.tex
  5. 6
      chapters/2.theoretical-background/2.6.ethereum.tex
  6. 8
      chapters/2.theoretical-background/2.7.ipfs.tex
  7. 12
      chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.orbit-db.tex
  8. 7
      custom-commands/custom-logos.tex
  9. 1
      misc/packages.tex
  10. BIN
      thesis.pdf

4
chapters/2.theoretical-background/2.1.hash-functions.tex

@ -4,7 +4,7 @@
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=15cm]{assets/figures/chapter-2/2.1.hash-functions-1.png} \includegraphics[width=.95\textwidth]{assets/figures/chapter-2/2.1.hash-functions-1.png}
\caption{Λειτουργία συνάρτησης κατακερματισμού} \caption{Λειτουργία συνάρτησης κατακερματισμού}
\end{figure} \end{figure}
@ -19,7 +19,7 @@
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=15cm]{assets/figures/chapter-2/2.1.hash-functions-2.png} \includegraphics[width=.95\textwidth]{assets/figures/chapter-2/2.1.hash-functions-2.png}
\caption{Παράδειγμα λειτουργίας συνάρτησης κατακερματισμού} \caption{Παράδειγμα λειτουργίας συνάρτησης κατακερματισμού}
\end{figure} \end{figure}

4
chapters/2.theoretical-background/2.2.asymmetric-cryptography.tex

@ -11,7 +11,7 @@
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=15cm]{assets/figures/chapter-2/2.2.asymmetric-key-generation.png} \includegraphics[width=.95\textwidth]{assets/figures/chapter-2/2.2.asymmetric-key-generation.png}
\caption{Παραγωγή ασύμμετρου ζεύγους κλειδιών} \caption{Παραγωγή ασύμμετρου ζεύγους κλειδιών}
\end{figure} \end{figure}
@ -30,7 +30,7 @@
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=15cm]{assets/figures/chapter-2/2.2.asymmetric-end-to-end-communication.png} \includegraphics[width=.95\textwidth]{assets/figures/chapter-2/2.2.asymmetric-end-to-end-communication.png}
\caption{Κρυπτογράφηση απ' άκρη σ' άκρη} \caption{Κρυπτογράφηση απ' άκρη σ' άκρη}
\end{figure} \end{figure}

2
chapters/2.theoretical-background/2.3.merkle-trees.tex

@ -6,7 +6,7 @@
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=15cm]{assets/figures/chapter-2/2.3.merkle-tree.png} \includegraphics[width=.95\textwidth]{assets/figures/chapter-2/2.3.merkle-tree.png}
\caption{Παράδειγμα δυαδικού δένδρου Merkle} \caption{Παράδειγμα δυαδικού δένδρου Merkle}
\end{figure} \end{figure}

1
chapters/2.theoretical-background/2.4.p2p-networks.tex

@ -10,4 +10,3 @@
\end{itemize} \end{itemize}
Από εδώ και στο εξής, εάν δεν αναφέρεται ρητά η κατηγορία κάποιου P2P network, θα εννοείται ότι ανήκει στην πρώτη. Από εδώ και στο εξής, εάν δεν αναφέρεται ρητά η κατηγορία κάποιου P2P network, θα εννοείται ότι ανήκει στην πρώτη.

6
chapters/2.theoretical-background/2.6.ethereum.tex

@ -1,10 +1,6 @@
\section{Ethereum} \label{section:2-6-ethereum} \section{Ethereum} \label{section:2-6-ethereum}
\begin{figure}[H] \logo{chapter-2/2.6.ethereum-logo}{Ethereum logo}
\centering
\includegraphics[width=2cm]{assets/figures/chapter-2/2.6.ethereum-logo.png}
\caption{Ethereum logo}
\end{figure}
Το Ethereum είναι ένα δημόσιο blockchain ανοιχτού κώδικα με εγγενές κρυπτονόμισμα το Ether (ETH). Παρέχει μία προγραμματιστική πλατφόρμα με ενσωματωμένη μία Turing-complete γλώσσα προγραμματισμού, που μπορεί να χρησιμοποιηθεί για τη δημιουργία αποκεντρωμένων εφαρμογών (Decentralized Applications ή DApps) μέσω της χρήσης "έξυπνων συμβολαίων" (smart contracts).\cite{2.6-ethereum-whitepaper} Το Ethereum είναι ένα δημόσιο blockchain ανοιχτού κώδικα με εγγενές κρυπτονόμισμα το Ether (ETH). Παρέχει μία προγραμματιστική πλατφόρμα με ενσωματωμένη μία Turing-complete γλώσσα προγραμματισμού, που μπορεί να χρησιμοποιηθεί για τη δημιουργία αποκεντρωμένων εφαρμογών (Decentralized Applications ή DApps) μέσω της χρήσης "έξυπνων συμβολαίων" (smart contracts).\cite{2.6-ethereum-whitepaper}

8
chapters/2.theoretical-background/2.7.ipfs.tex

@ -1,10 +1,6 @@
\section{IPFS} \label{section:2-7-ipfs} \section{IPFS} \label{section:2-7-ipfs}
\begin{figure}[H] \logo{chapter-2/2.7.ipfs-logo}{IPFS logo}
\centering
\includegraphics[width=2cm]{assets/figures/chapter-2/2.7.ipfs-logo.png}
\caption{IPFS logo}
\end{figure}
Το IPFS (InterPlanetary File System) είναι \textit{ένα P2P πρωτόκολλο υπερμέσων, σχεδιασμένο για να διατηρήσει και να αυξήσει τη γνώση της ανθρωπότητας κάνοντας το διαδίκτυο αναβαθμίσιμο, ανθεκτικό και πιο ανοιχτό}.\cite{2.7-ipfs} Το IPFS (InterPlanetary File System) είναι \textit{ένα P2P πρωτόκολλο υπερμέσων, σχεδιασμένο για να διατηρήσει και να αυξήσει τη γνώση της ανθρωπότητας κάνοντας το διαδίκτυο αναβαθμίσιμο, ανθεκτικό και πιο ανοιχτό}.\cite{2.7-ipfs}
Πρακτικά πρόκειται για ένα κατανεμημένο σύστημα για αποθήκευση και πρόσβαση σε αρχεία, ιστότοπους, εφαρμογές και δεδομένα. Το περιεχόμενο είναι προσβάσιμο μέσω ενός δικτύου ομότιμων κόμβων που βρίσκονται οπουδήποτε στον κόσμο, οι οποίοι ενδέχεται να να αποθηκεύουν πληροφορία, να τη μεταφέρουν (relay nodes) ή και τα δύο.\cite{2.7-ipfs-docs} Πρακτικά πρόκειται για ένα κατανεμημένο σύστημα για αποθήκευση και πρόσβαση σε αρχεία, ιστότοπους, εφαρμογές και δεδομένα. Το περιεχόμενο είναι προσβάσιμο μέσω ενός δικτύου ομότιμων κόμβων που βρίσκονται οπουδήποτε στον κόσμο, οι οποίοι ενδέχεται να να αποθηκεύουν πληροφορία, να τη μεταφέρουν (relay nodes) ή και τα δύο.\cite{2.7-ipfs-docs}
@ -16,7 +12,7 @@
\item \textbf{Σύνδεση περιεχομένου μέσω κατευθυνόμενων άκυκλων γράφων (Directed Acyclic Graphs ή DAGs)}. Το IPFS αξιοποιεί DAGs (και συγκεκριμένα Merkle DAGs), μίας δομής δεδομένων της οποίας κάθε κόμβος έχει ως μοναδικό αναγνωριστικό το hash του περιεχομένου του (το CID). \item \textbf{Σύνδεση περιεχομένου μέσω κατευθυνόμενων άκυκλων γράφων (Directed Acyclic Graphs ή DAGs)}. Το IPFS αξιοποιεί DAGs (και συγκεκριμένα Merkle DAGs), μίας δομής δεδομένων της οποίας κάθε κόμβος έχει ως μοναδικό αναγνωριστικό το hash του περιεχομένου του (το CID).
\begin{enumitemcenteredfigure} \begin{enumitemcenteredfigure}
\includegraphics[width=15cm]{assets/figures/chapter-2/2.7.merkle-dag.png} \includegraphics[width=.95\textwidth]{assets/figures/chapter-2/2.7.merkle-dag.png}
\caption{Merkle DAG\cite{2.7-merkle-dags-proto-school}} \caption{Merkle DAG\cite{2.7-merkle-dags-proto-school}}
\end{enumitemcenteredfigure} \end{enumitemcenteredfigure}

12
chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.orbit-db.tex

@ -1,14 +1,10 @@
\subsection{OrbitDB} \label{subsection:4-3-1-orbit-db} \subsection{OrbitDB} \label{subsection:4-3-1-orbit-db}
\begin{figure}[H] \logo{chapter-4/4.3.orbitdb-logo}{OrbitDB logo}
\centering
\includegraphics[width=2cm]{assets/figures/chapter-4/4.3.orbitdb-logo.png}
\caption{OrbitDB logo}
\end{figure}
Η OrbitDB είναι μία P2P βάση δεδομένων ανοιχτού κώδικα. Χρησιμοποιεί το IPFS για την αποθήκευση των δεδομένων και το IPFS Pubsub για τον αυτόματο συγχρονισμό των βάσεων δεδομένων μεταξύ των peers. Είναι τελικά συνεπής (eventually consistent) και χρησιμοποιεί CRDTs (Conflict-Free Replicated Data Types) για συγχωνεύσεις βάσεων δεδομένων χωρίς συγκρούσεις, πράγμα που την καθιστά εξαιρετική επιλογή για DApps και offline-first web applications.\cite{4.3-orbitdb} Η OrbitDB είναι μία P2P βάση δεδομένων ανοιχτού κώδικα. Χρησιμοποιεί το IPFS για την αποθήκευση των δεδομένων και το IPFS Pubsub για τον αυτόματο συγχρονισμό των βάσεων δεδομένων μεταξύ των peers. Είναι τελικά συνεπής (eventually consistent) και χρησιμοποιεί CRDTs (Conflict-Free Replicated Data Types) για συγχωνεύσεις βάσεων δεδομένων χωρίς συγκρούσεις, πράγμα που την καθιστά εξαιρετική επιλογή για DApps και offline-first web applications.\cite{4.3-orbitdb}
Κάποια Βασικά χαρακτηριστικά της είναι τα εξής: Κάποια βασικά χαρακτηριστικά της είναι τα εξής:
\begin{itemize} \begin{itemize}
\item \textbf{Stores}: Η OrbitDB παρέχει διάφορους τύπους βάσεων (stores) για διαφορετικά μοντέλα δεδομένων και περιπτώσεις χρήσης: \item \textbf{Stores}: Η OrbitDB παρέχει διάφορους τύπους βάσεων (stores) για διαφορετικά μοντέλα δεδομένων και περιπτώσεις χρήσης:
@ -28,9 +24,9 @@
Η μορφή του έχει ως εξής\footnote{Βλ. και \url{https://github.com/orbitdb/orbit-db-identity-provider}}: Η μορφή του έχει ως εξής\footnote{Βλ. και \url{https://github.com/orbitdb/orbit-db-identity-provider}}:
\begin{enumitemcenteredfigure} \begin{enumitemcenteredfigure}
\simplelisting[width=15cm]{orbit-db-identity.js} \simplelisting[width=.95\textwidth]{orbit-db-identity.js}
\caption{OrbitDB Identity} \caption{OrbitDB Identity}
\end{enumitemcenteredfigure} \end{enumitemcenteredfigure}
\item \textbf{Access Control}: Κατά τη δημιουργία μίας βάσης μπορούν να οριστούν όσοι θα έχουν δικαίωμα να γράψουν σε αυτή μέσω ενός ελεγκτή πρόσβασης (access controller). Ο ελεγκτής θα περιλαμβάνει τα public keys τους, τα οποία μπορούν να ανακτηθούν από το identity του καθενός. Από προεπιλογή και αν δεν ορίζεται διαφορετικά, δίνεται πρόσβαση εγγραφής μόνο στον δημιουργό της βάσης. \item \textbf{Access Control}: Κατά τη δημιουργία μίας βάσης μπορούν να οριστούν όσοι θα έχουν δικαίωμα εγγραφής σε αυτή, μέσω ενός ελεγκτή πρόσβασης (access controller). Ο ελεγκτής θα περιλαμβάνει τα public keys τους, τα οποία μπορούν να ανακτηθούν από το identity του καθενός. Από προεπιλογή και αν δεν ορίζεται διαφορετικά, δίνεται πρόσβαση εγγραφής μόνο στον δημιουργό της βάσης.
\end{itemize} \end{itemize}

7
custom-commands/custom-logos.tex

@ -0,0 +1,7 @@
\newcommand{\logo}[2]{
\begin{figure}[H]
\centering
\includegraphics[width=.12\textwidth]{assets/figures/#1}
\caption{#2}
\end{figure}
}

1
misc/packages.tex

@ -41,6 +41,7 @@
\input{custom-commands/custom-title-page} \input{custom-commands/custom-title-page}
\input{custom-commands/custom-lists} \input{custom-commands/custom-lists}
\input{custom-commands/custom-listings} \input{custom-commands/custom-listings}
\input{custom-commands/custom-logos}
\input{custom-commands/custom-enumitem} \input{custom-commands/custom-enumitem}
\input{custom-commands/srs-commands} \input{custom-commands/srs-commands}
\input{custom-commands/use-case-commands} \input{custom-commands/use-case-commands}

BIN
thesis.pdf

Binary file not shown.
Loading…
Cancel
Save