From 32430fde1cec7fcf52562030e21c374ee29013f7 Mon Sep 17 00:00:00 2001 From: Ezerous Date: Wed, 1 Dec 2021 20:08:37 +0200 Subject: [PATCH] refactor: move chapter 2 figures to separate folder --- .../2.1.hash-functions-1.png} | Bin .../2.1.hash-functions-2.png} | Bin ...2.asymmetric-end-to-end-communication.png} | Bin .../2.2.asymmetric-key-generation.png} | Bin .../2.3.merkle-tree.png} | Bin .../2.6.ethereum-logo.png} | Bin .../2.7.ipfs-logo.png} | Bin .../2.7.merkle-dag.png} | Bin .../2.1.hash-functions.tex | 4 ++-- .../2.2.asymmetric-cryptography.tex | 4 ++-- .../2.3.merkle-trees.tex | 2 +- .../2.theoretical-background/2.6.ethereum.tex | 2 +- .../2.theoretical-background/2.7.ipfs.tex | 6 +++--- thesis.pdf | Bin 2110707 -> 2110709 bytes 14 files changed, 9 insertions(+), 9 deletions(-) rename assets/figures/{hash-functions-1.png => chapter-2/2.1.hash-functions-1.png} (100%) rename assets/figures/{hash-functions-2.png => chapter-2/2.1.hash-functions-2.png} (100%) rename assets/figures/{asymmetric-end-to-end-communication.png => chapter-2/2.2.asymmetric-end-to-end-communication.png} (100%) rename assets/figures/{asymmetric-key-generation.png => chapter-2/2.2.asymmetric-key-generation.png} (100%) rename assets/figures/{merkle-tree.png => chapter-2/2.3.merkle-tree.png} (100%) rename assets/figures/{ethereum-logo.png => chapter-2/2.6.ethereum-logo.png} (100%) rename assets/figures/{ipfs-logo.png => chapter-2/2.7.ipfs-logo.png} (100%) rename assets/figures/{merkle-dag.png => chapter-2/2.7.merkle-dag.png} (100%) diff --git a/assets/figures/hash-functions-1.png b/assets/figures/chapter-2/2.1.hash-functions-1.png similarity index 100% rename from assets/figures/hash-functions-1.png rename to assets/figures/chapter-2/2.1.hash-functions-1.png diff --git a/assets/figures/hash-functions-2.png b/assets/figures/chapter-2/2.1.hash-functions-2.png similarity index 100% rename from assets/figures/hash-functions-2.png rename to assets/figures/chapter-2/2.1.hash-functions-2.png diff --git a/assets/figures/asymmetric-end-to-end-communication.png b/assets/figures/chapter-2/2.2.asymmetric-end-to-end-communication.png similarity index 100% rename from assets/figures/asymmetric-end-to-end-communication.png rename to assets/figures/chapter-2/2.2.asymmetric-end-to-end-communication.png diff --git a/assets/figures/asymmetric-key-generation.png b/assets/figures/chapter-2/2.2.asymmetric-key-generation.png similarity index 100% rename from assets/figures/asymmetric-key-generation.png rename to assets/figures/chapter-2/2.2.asymmetric-key-generation.png diff --git a/assets/figures/merkle-tree.png b/assets/figures/chapter-2/2.3.merkle-tree.png similarity index 100% rename from assets/figures/merkle-tree.png rename to assets/figures/chapter-2/2.3.merkle-tree.png diff --git a/assets/figures/ethereum-logo.png b/assets/figures/chapter-2/2.6.ethereum-logo.png similarity index 100% rename from assets/figures/ethereum-logo.png rename to assets/figures/chapter-2/2.6.ethereum-logo.png diff --git a/assets/figures/ipfs-logo.png b/assets/figures/chapter-2/2.7.ipfs-logo.png similarity index 100% rename from assets/figures/ipfs-logo.png rename to assets/figures/chapter-2/2.7.ipfs-logo.png diff --git a/assets/figures/merkle-dag.png b/assets/figures/chapter-2/2.7.merkle-dag.png similarity index 100% rename from assets/figures/merkle-dag.png rename to assets/figures/chapter-2/2.7.merkle-dag.png diff --git a/chapters/2.theoretical-background/2.1.hash-functions.tex b/chapters/2.theoretical-background/2.1.hash-functions.tex index 0312c2a..afa9a24 100644 --- a/chapters/2.theoretical-background/2.1.hash-functions.tex +++ b/chapters/2.theoretical-background/2.1.hash-functions.tex @@ -4,7 +4,7 @@ \begin{figure}[H] \centering - \includegraphics[width=15cm]{assets/figures/hash-functions-1.png} + \includegraphics[width=15cm]{assets/figures/chapter-2/2.1.hash-functions-1.png} \caption{Λειτουργία συνάρτησης κατακερματισμού} \end{figure} @@ -19,7 +19,7 @@ \begin{figure}[H] \centering - \includegraphics[width=15cm]{assets/figures/hash-functions-2.png} + \includegraphics[width=15cm]{assets/figures/chapter-2/2.1.hash-functions-2.png} \caption{Παράδειγμα λειτουργίας συνάρτησης κατακερματισμού} \end{figure} diff --git a/chapters/2.theoretical-background/2.2.asymmetric-cryptography.tex b/chapters/2.theoretical-background/2.2.asymmetric-cryptography.tex index a1a90d1..96fecd6 100644 --- a/chapters/2.theoretical-background/2.2.asymmetric-cryptography.tex +++ b/chapters/2.theoretical-background/2.2.asymmetric-cryptography.tex @@ -11,7 +11,7 @@ \begin{figure}[H] \centering - \includegraphics[width=15cm]{assets/figures/asymmetric-key-generation.png} + \includegraphics[width=15cm]{assets/figures/chapter-2/2.2.asymmetric-key-generation.png} \caption{Παραγωγή ασύμμετρου ζεύγους κλειδιών} \end{figure} @@ -30,7 +30,7 @@ \begin{figure}[H] \centering - \includegraphics[width=15cm]{assets/figures/asymmetric-end-to-end-communication.png} + \includegraphics[width=15cm]{assets/figures/chapter-2/2.2.asymmetric-end-to-end-communication.png} \caption{Κρυπτογράφηση απ' άκρη σ' άκρη} \end{figure} diff --git a/chapters/2.theoretical-background/2.3.merkle-trees.tex b/chapters/2.theoretical-background/2.3.merkle-trees.tex index c4b1a6a..383c766 100644 --- a/chapters/2.theoretical-background/2.3.merkle-trees.tex +++ b/chapters/2.theoretical-background/2.3.merkle-trees.tex @@ -6,7 +6,7 @@ \begin{figure}[H] \centering - \includegraphics[width=15cm]{assets/figures/merkle-tree.png} + \includegraphics[width=15cm]{assets/figures/chapter-2/2.3.merkle-tree.png} \caption{Παράδειγμα δυαδικού δένδρου Merkle} \end{figure} diff --git a/chapters/2.theoretical-background/2.6.ethereum.tex b/chapters/2.theoretical-background/2.6.ethereum.tex index 53914a6..2c29d50 100644 --- a/chapters/2.theoretical-background/2.6.ethereum.tex +++ b/chapters/2.theoretical-background/2.6.ethereum.tex @@ -2,7 +2,7 @@ \begin{figure}[H] \centering - \includegraphics[width=2cm]{assets/figures/ethereum-logo.png} + \includegraphics[width=2cm]{assets/figures/chapter-2/2.6.ethereum-logo.png} \caption{Ethereum logo} \end{figure} diff --git a/chapters/2.theoretical-background/2.7.ipfs.tex b/chapters/2.theoretical-background/2.7.ipfs.tex index 37edab2..7408768 100644 --- a/chapters/2.theoretical-background/2.7.ipfs.tex +++ b/chapters/2.theoretical-background/2.7.ipfs.tex @@ -1,8 +1,8 @@ -\section{IPFS} +\section{IPFS} \label{section:2-7-ipfs} \begin{figure}[H] \centering - \includegraphics[width=2cm]{assets/figures/ipfs-logo.png} + \includegraphics[width=2cm]{assets/figures/chapter-2/2.7.ipfs-logo.png} \caption{IPFS logo} \end{figure} @@ -16,7 +16,7 @@ \item \textbf{Σύνδεση περιεχομένου μέσω κατευθυνόμενων άκυκλων γράφων (Directed Acyclic Graphs ή DAGs)}. Το IPFS αξιοποιεί DAGs (και συγκεκριμένα Merkle DAGs), μίας δομής δεδομένων της οποίας κάθε κόμβος έχει ως μοναδικό αναγνωριστικό το hash του περιεχομένου του (το CID). \begin{enumitemcenteredfigure} - \includegraphics[width=15cm]{assets/figures/merkle-dag.png} + \includegraphics[width=15cm]{assets/figures/chapter-2/2.7.merkle-dag.png} \caption{Merkle DAG\cite{2.7-merkle-dags-proto-school}} \end{enumitemcenteredfigure} diff --git a/thesis.pdf b/thesis.pdf index 28d7ffb61445009266b5c0c5a341bbd88c422e05..9c37fbc249938844045f062456c48cf826d7645b 100644 GIT binary patch delta 11529 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 delta 11540 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 RbCFTN@gPuBOQ}dB{6B;Aq|X2V