Browse Source

refactor: move orbit-db to chapter 4

develop
Ezerous 3 years ago
parent
commit
35483001de
  1. 0
      assets/figures/chapter-4/4.3.orbitdb-logo.png
  2. 18
      bibliography/references.bib
  3. 3
      chapters/2.theoretical-background/2.0.theoretical-background.tex
  4. 2
      chapters/4.application-implementation/4.3.implementation-technology-stack.tex
  5. 8
      chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.orbit-db.tex
  6. BIN
      thesis.pdf

0
assets/figures/orbitdb-logo.png → assets/figures/chapter-4/4.3.orbitdb-logo.png

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

18
bibliography/references.bib

@ -117,18 +117,18 @@
url = {https://proto.school/merkle-dags/} url = {https://proto.school/merkle-dags/}
} }
@misc{2.8-orbitdb, @online{4.2-github-flow,
author = {GitHub Guides},
title = {Understanding the GitHub flow},
url = {https://guides.github.com/introduction/flow/}
}
@misc{4.3-orbitdb,
title = {OrbitDB}, title = {OrbitDB},
url = {https://orbitdb.org} url = {https://orbitdb.org}
} }
@misc{2.8-orbitdb-guide, @misc{4.3-orbitdb-guide,
title = {Getting Started with OrbitDB}, title = {Getting Started with OrbitDB},
url = {https://github.com/orbitdb/orbit-db/blob/main/GUIDE.md} url = {https://github.com/orbitdb/orbit-db/blob/main/GUIDE.md}
} }
@online{4.2-github-flow,
author = {GitHub Guides},
title = {Understanding the GitHub flow},
url = {https://guides.github.com/introduction/flow/}
}

3
chapters/2.theoretical-background/2.0.theoretical-background.tex

@ -6,5 +6,4 @@
\input{chapters/2.theoretical-background/2.4.p2p-networks} \input{chapters/2.theoretical-background/2.4.p2p-networks}
\input{chapters/2.theoretical-background/2.5.blockchain} \input{chapters/2.theoretical-background/2.5.blockchain}
\input{chapters/2.theoretical-background/2.6.ethereum} \input{chapters/2.theoretical-background/2.6.ethereum}
\input{chapters/2.theoretical-background/2.7.ipfs} \input{chapters/2.theoretical-background/2.7.ipfs}
\input{chapters/2.theoretical-background/2.8.orbit-db}

2
chapters/4.application-implementation/4.3.implementation-technology-stack.tex

@ -3,3 +3,5 @@
TODO: add ganache, truffle TODO: add ganache, truffle
TODO: add additional technologies like redux, sagas, express, nodejs, docker TODO: add additional technologies like redux, sagas, express, nodejs, docker
TODO: add jenkins, janus and build steps diagram TODO: add jenkins, janus and build steps diagram
\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.orbit-db.tex}

8
chapters/2.theoretical-background/2.8.orbit-db.tex → chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.orbit-db.tex

@ -1,12 +1,12 @@
\section{OrbitDB} \label{section:2-8-orbit-db} \subsection{OrbitDB} \label{subsection:4-3-1-orbit-db}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=2cm]{assets/figures/orbitdb-logo.png} \includegraphics[width=2cm]{assets/figures/chapter-4/4.3.orbitdb-logo.png}
\caption{OrbitDB logo} \caption{OrbitDB logo}
\end{figure} \end{figure}
Η OrbitDB είναι μία P2P βάση δεδομένων ανοιχτού κώδικα. Χρησιμοποιεί το IPFS για την αποθήκευση των δεδομένων και το IPFS Pubsub για τον αυτόματο συγχρονισμό των βάσεων δεδομένων μεταξύ των peers. Είναι τελικά συνεπής (eventually consistent) και χρησιμοποιεί CRDTs (Conflict-Free Replicated Data Types) για συγχωνεύσεις βάσεων δεδομένων χωρίς συγκρούσεις, πράγμα που την καθιστά εξαιρετική επιλογή για DApps και offline-first web applications.\cite{2.8-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}
@ -22,7 +22,7 @@
Όλα τα stores υλοποιούνται πάνω στο \texttt{ipfs-log}, μία αμετάβλητη, operation-based CRDT για κατανεμημένα συστήματα, ενώ υπάρχει και η δυνατότητα δημιουργίας προσαρμοσμένων stores ανάλογα με την περίπτωση. Όλα τα stores υλοποιούνται πάνω στο \texttt{ipfs-log}, μία αμετάβλητη, operation-based CRDT για κατανεμημένα συστήματα, ενώ υπάρχει και η δυνατότητα δημιουργίας προσαρμοσμένων stores ανάλογα με την περίπτωση.
\item \textbf{Address}: Κάθε βάση δεδομένων λαμβάνει κατά τη δημιουργία της μία διεύθυνση της μορφής \texttt{/orbitdb/CID/DATABASE\_NAME}, όπου \texttt{CID} είναι το IPFS multihash του μανιφέστου της και \texttt{DATABASE\_NAME} το όνομα της βάσης.\cite{2.8-orbitdb-guide} Το μανιφέστο είναι ένα IPFS object που περιέχει πληροφορίες της βάσης όπως το όνομα, τον τύπο και έναν δείκτη στον ελεγκτή πρόσβασης (access controller). \item \textbf{Address}: Κάθε βάση δεδομένων λαμβάνει κατά τη δημιουργία της μία διεύθυνση της μορφής \texttt{/orbitdb/CID/DATABASE\_NAME}, όπου \texttt{CID} είναι το IPFS multihash του μανιφέστου της και \texttt{DATABASE\_NAME} το όνομα της βάσης.\cite{4.3-orbitdb-guide}Το μανιφέστο είναι ένα IPFS object που περιέχει πληροφορίες της βάσης όπως το όνομα, τον τύπο και έναν δείκτη στον ελεγκτή πρόσβασης (access controller).
\item \textbf{Identity}: Κάθε φορά που προστίθεται μία εγγραφή στη βάση υπογράφεται από τον δημιουργό της, ο οποίος προσδιορίζεται από μία ταυτότητα (identity). Το Identity object, πέρα από τον προεπιλεγμένο τρόπο λειτουργίας, μπορεί να προσαρμοστεί έτσι ώστε να συνδέεται με κάποιο εξωτερικό αναγνωριστικό. \item \textbf{Identity}: Κάθε φορά που προστίθεται μία εγγραφή στη βάση υπογράφεται από τον δημιουργό της, ο οποίος προσδιορίζεται από μία ταυτότητα (identity). Το Identity object, πέρα από τον προεπιλεγμένο τρόπο λειτουργίας, μπορεί να προσαρμοστεί έτσι ώστε να συνδέεται με κάποιο εξωτερικό αναγνωριστικό.
Η μορφή του έχει ως εξής\footnote{Βλ. και \url{https://github.com/orbitdb/orbit-db-identity-provider}}: Η μορφή του έχει ως εξής\footnote{Βλ. και \url{https://github.com/orbitdb/orbit-db-identity-provider}}:

BIN
thesis.pdf

Binary file not shown.
Loading…
Cancel
Save