From 5a92221cad108b814378165a43ff1ac9ec20ae7b Mon Sep 17 00:00:00 2001 From: Ezerous Date: Tue, 11 Jan 2022 16:15:12 +0200 Subject: [PATCH 1/3] refactor: debloat section 4.3 --- .../4.2.2.ui-technologies.tex | 2 - .../4.3.implementation-architecture.tex | 274 +----------------- .../4.3.1.software-units.tex | 9 + .../4.3.1.concordia-contracts-unit.tex | 5 + .../4.3.1.concordia-shared-unit.tex | 6 + .../4.3.1.eth-breeze-unit.tex | 7 + .../4.3.1.eth-drizzle-unit.tex | 7 + .../4.3.1.eth-identity-provider-unit.tex | 5 + .../4.3.2.concordia-application-service.tex | 43 +++ .../4.3.3.concordia-contracts-migrator.tex | 16 + .../4.3.4.concordia-pinner-service.tex | 22 ++ ...5.concordia-contracts-provider-service.tex | 18 ++ .../4.3.6.ganache-service.tex | 9 + .../4.3.7.rendezvous-server-service.tex | 9 + .../4.3.8.service-communication.tex | 26 ++ .../4.3.9.data-flow.tex | 28 ++ thesis.pdf | Bin 9132276 -> 9132398 bytes 17 files changed, 221 insertions(+), 265 deletions(-) create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.2.concordia-application-service.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.3.concordia-contracts-migrator.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.4.concordia-pinner-service.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.5.concordia-contracts-provider-service.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.6.ganache-service.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.7.rendezvous-server-service.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.8.service-communication.tex create mode 100644 chapters/4.application-implementation/4.3.implementation-architecture/4.3.9.data-flow.tex diff --git a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies.tex b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies.tex index 4bbea95..c5f6070 100644 --- a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies.tex +++ b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies.tex @@ -2,8 +2,6 @@ Στην παρούσα υποενότητα περιγράφονται όσες τεχνολογίες σχετίζονται με τη διεπαφή του χρήστη (UI), δηλαδή με το Presentation tier. -% TODO: add technologies like redux, sagas - \input{chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.1.react} \input{chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux} \input{chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.3.redux-saga} \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture.tex b/chapters/4.application-implementation/4.3.implementation-architecture.tex index 854eff3..34fef3a 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture.tex @@ -1,7 +1,7 @@ \section{Αρχιτεκτονική υλοποίησης} \label{section:4-3-implementation-architecture} -Το σύστημα υλοποιήθηκε χρησιμοποιώντας το μοντέλο αρχιτεκτονικής των μικροϋπηρεσιών. Το μοντέλο των μικροϋπηρεσιών βασίζεται στην αποδόμηση του συστήματος σε μικρές μονάδες, οι οποίες συνεργάζονται ώστε να προσφέρουν ένα ενιαίο αποτέλεσμα. Η προσέγγιση αυτή έχει πολλά πλεονεκτήματα σε σύγκριση με την ανάπτυξη μονολιθικών εφαρμογών % todo: add reference -. Ο βασικός λόγος για τον οποίο επιλέχθηκε η αρχιτεκτονική μικροϋπηρεσιών είναι η ευκολία που προσφέρει στη γρήγορη ανάπτυξη καινούριων χαρακτηριστικών, ταυτόχρονα από διαφορετικά μέλη μίας ομάδας, ασύγχρονα και χωρίς την ανάγκη συνεχής επικοινωνίας και συνεννόησης μεταξύ τους. Αυτό συμβαίνει επειδή κάθε μέρος του συστήματος (υπηρεσία) είναι αυτόνομο και η ανάπτυξή του είναι διαχωρισμένη από το υπόλοιπο σύστημα με το οποίο είναι αδύναμα συνδεδεμένο (loosely coupled). +Το σύστημα υλοποιήθηκε χρησιμοποιώντας το μοντέλο αρχιτεκτονικής των μικροϋπηρεσιών. Το μοντέλο των μικροϋπηρεσιών βασίζεται στην αποδόμηση του συστήματος σε μικρές μονάδες, οι οποίες συνεργάζονται ώστε να προσφέρουν ένα ενιαίο αποτέλεσμα. Η προσέγγιση αυτή έχει πολλά πλεονεκτήματα σε σύγκριση με την ανάπτυξη μονολιθικών εφαρμογών. % todo: add reference +Ο βασικός λόγος για τον οποίο επιλέχθηκε η αρχιτεκτονική μικροϋπηρεσιών είναι η ευκολία που προσφέρει στη γρήγορη ανάπτυξη καινούριων χαρακτηριστικών, ταυτόχρονα από διαφορετικά μέλη μίας ομάδας, ασύγχρονα και χωρίς την ανάγκη συνεχούς επικοινωνίας και συνεννόησης μεταξύ τους. Αυτό συμβαίνει επειδή κάθε μέρος του συστήματος (υπηρεσία) είναι αυτόνομο και η ανάπτυξή του είναι διαχωρισμένη από το υπόλοιπο σύστημα με το οποίο είναι αδύναμα συνδεδεμένο (loosely coupled). Το σύστημα συντίθεται από διάφορες μικροϋπηρεσίες, κάποιες από τις οποίες αναπτύχθηκαν στα πλαίσια αυτής της εργασίας ενώ άλλες αποτελούν δωρεάν λογισμικό ανοιχτού κώδικα. Οι μικροϋπηρεσίες αυτές συνοψίζονται στον παρακάτω πίνακα (πίνακας \ref{table:4-3-microservice-summary}). @@ -53,264 +53,12 @@ \label{figure:4-3-architecture-overview} \end{figure} -% ===== ===== -% Common software units -% ===== ===== -\subsection{Αρθρώματα} \label{subsection:4-3-software-units} - -Στο κεφάλαιο αυτό θα περιγραφούν με μεγαλύτερη λεπτομέρεια τα αρθρώματα που αναπτύχθηκαν. - -\vspace{0.5cm} -\textbf{Άρθρωμα concordia-shared} - -Το άρθρωμα concordia-shared αποτελεί μία βιβλιοθήκη χρήσιμων εργαλείων και σταθερών. Εδώ περιέχεται όλο το λογισμικό το οποίο πρέπει ή είναι επιθυμητό να συμπεριφέρεται με τον ίδιο τρόπο συνολικά στο σύστημα, όπως για παράδειγμα μέθοδοι παραμετροποίησης των υπηρεσιών και μέθοδοι καταγραφής (logging). Το άρθρωμα αυτό χρησιμοποιείται από το άρθρωμα concordia-contracts καθώς και από τις υπηρεσίες Concordia Application, Concordia Pinner και Concordia Contracts Provider. - -% make more sense -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της βιβλιοθήκης διαχείρισης μοναδικού αποθετηρίου κώδικα (monorepo) lerna. - -\vspace{0.5cm} -\textbf{Άρθρωμα concordia-contracts} - -Το άρθρωμα αυτό επιτελεί δύο ενέργειες. Αρχικά, είναι το άρθρωμα στο οποίο αναπτύσσονται τα contracts που χρησιμοποιούνται από την εφαρμογή. Το άρθρωμα αυτό αναλαμβάνει τη μεταγλώττιση των contracts από κώδικα γλώσσας Solidity, στην κατάλληλη τελική μορφή JSON. Παρέχονται επίσης σενάρια ενεργειών (scripts) ώστε τα contracts να μεταφορτωθούν σε blockchain καθώς και στην υπηρεσία Concordia Contracts Provider. Αποτελεί επίσης βιβλιοθήκη η οποία μετά τη μεταγλώττιση και μεταφόρτωση των contracts σε blockchain παρέχει τα contract artifacts. Χρησιμοποιείται από τις υπηρεσίες Concordia Application και Concordia Pinner. - -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της βιβλιοθήκης διαχείρισης monorepo lerna. - -\vspace{0.5cm} -\textbf{Άρθρωμα eth-identity-provider} - -Η λειτουργία της βάση OrbitDB απαιτεί τη δημιουργία ενός μοναδικού αναγνωριστικού χρήστη (identity). Για την εύκολη εξαγωγή ενός αναγνωριστικού χρήστη το οποίο να είναι μεν μοναδικό αλλά να είναι δυνατός ο επανυπολογισμός, χρησιμοποιήθηκε ο συνδυασμός της διεύθυνσης του χρήστη στο δίκτυο Ethereum με τη διεύθυνση του βασικού contract που χρησιμοποιεί η εφαρμογή. Ο υπολογισμός του συνδυασμού αυτού υλοποιείται από αυτό το άρθρωμα. - -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. - -\vspace{0.5cm} -\textbf{Άρθρωμα drizzle} - -Το άρθρωμα drizzle που χρησιμοποιείται στην υπηρεσία Concordia Application είναι μία τροποποιημένη έκδοση της Javascript βιβλιοθήκης Drizzle που προσφέρεται από τη σουίτα εργαλείων Truffle. Η τροποποιημένη βιβλιοθήκη αναπτύχθηκε στα πλαίσια της διπλωματικής με στόχο τη διευκόλυνση της χρήσης του Drizle και την επιδιόρθωση προβληματικών σημείων της πρωτότυπης βιβλιοθήκης. - -Το άρθρωμα drizzle υλοποιεί τις προγραμματιστικές διεπαφές μέσω των οποίων πραγματοποιείται η επικοινωνία της εφαρμογής με το blockchain. Για την επίτευξη της επικοινωνίας αυτής, η βιβλιοθήκη χρησιμοποιεί τη συλλογή βιβλιοθηκών web3.js η οποία αποτελεί τον πιο διαδεδομένο τρόπο διεπαφής με το blockchain σε αποκεντρωτικές εφαρμογές. - -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. - -\vspace{0.5cm} -\textbf{Άρθρωμα breeze} - -Το άρθρωμα αυτό αποτελεί μία βιβλιοθήκη περίβλημα (wrapper) της βιβλιοθήκης OrbitDB. Η OrbitDB είναι μία βιβλιοθήκη η οποία προσφέρει τις απαραίτητες προγραμματιστικές διεπαφές για τη χρήση της βάσης δεδομένων με το ίδιο όνομα. Μέσα από τη χρήση των βιβλιοθηκών που προσφέρονται από το IPFS για την αποθήκευση δεδομένων, η OrbitDB καταφέρνει να υλοποιήσει μία αποκεντρωμένη βάση δεδομένων. - -Το άρθρωμα breeze κάνει χρήση της βιβλιοθήκης OrbitDB, προσφέρει ωστόσο συγκεκριμένες προγραμματιστικές διεπαφές που διευκολύνουν τόσο την παραμετροποίηση της βάσης όσο και τη χρήση της, ενώ όπως και στο άρθρωμα drizzle το άρθρωμα breeze αναλαμβάνει να διορθώσει ορισμένα προβλήματα της πρωτότυπης βιβλιοθήκης. - -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. - -% ===== ===== -% concordia-app microservice -% ===== ===== -\subsection{Concordia Application} \label{subsection:4-3-concordia-application-service} - -\vspace{0.5cm} -\textbf{Περιγραφή - Στόχοι υπηρεσίας} - -Η εφαρμογή Concordia (Concordia Application) εκθέτει τις γραφικές διεπαφές μέσω των οποίων αλληλεπιδρούν οι χρήστες με το σύστημα. Αποτελεί τον δίαυλο επικοινωνίας του τελικού χρήστη με το blockchain και με τη βάση OrbitDB. Η αρχιτεκτονική της υπηρεσίας φαίνεται στο σχήμα \ref{figure:4-3-concordia-application-architecture}. Μέσω της εφαρμογής Concordia οι χρήστες μπορούν να: - -\begin{itemize} - \item περιηγηθούν και διαβάσουν το περιεχόμενο της πλατφόρμας - - \item δημιουργήσουν λογαριασμό χρήστη - - \item δημοσιεύσουν και τροποποιήσουν προσωπικές τους πληροφορίες όπως η τοποθεσία και η εικόνα προφίλ - - \item δημιουργήσουν θέματα (topics) - - \item δημιουργήσουν ψηφοφορίες (polls), καθώς και να ψηφίσουν σε αυτές - - \item δημιουργήσουν και τροποποιήσουν μηνύματα (posts) - - \item υπερψηφίσουν (up-vote) ή καταψηφίσουν (down-vote) μηνύματα άλλων χρηστών -\end{itemize} - -Η υπηρεσία αποτελείται από κώδικα γραμμένο σε Javascript ο οποίος γίνεται διαθέσιμος στους τελικούς χρήστες με τη μορφή εφαρμογής διαδικτύου (web application) μέσω ενός διακομιστή (server). Παρόλο που η υπηρεσία προσφέρει τη γραφική διεπαφή χρήστη μόνο στην αγγλική γλώσσα, έχει παραμετροποιηθεί ώστε να είναι δυνατή η εύκολη μεταγλώττιση της χωρίς την ανάγκη πραγματοποίησης μεγάλων αλλαγών στον κώδικα. - -Χρησιμοποιείται η βιβλιοθήκη React για την οργάνωση και ανάπτυξη των συνθετικών τμημάτων (components) του γραφικού περιβάλλοντος. Για το γραφικό περιβάλλον γίνεται χρήση του framework της Semantic UI. Χρησιμοποιείται η βιβλιοθήκη Redux για τη διαχείριση κατάστασης της εφαρμογής (state management), % todo: find a better greek translation -καθώς και η βιβλιοθήκη Redux-Saga για τη διαχείριση ασύγχρονων παράπλευρων ενεργειών (side-effects) σε ένα σύστημα βασισμένο σε συμβάντα (event-based). Άλλες βιβλιοθήκες χρησιμοποιούνται για διάφορα μέρη της υπηρεσίας, ενώ χρησιμοποιούνται επίσης τα αρθρώματα που περιγράφηκαν προηγουμένως για την επίτευξη διαφορετικών στόχων. Ο πλήρης κατάλογος των βιβλιοθηκών και αρθρωμάτων μπορεί να βρεθεί στον κώδικα της υπηρεσίας στο παράρτημα. % todo: add reference to the appendix containing the code or a link to it in the repo - -\begin{figure}[H] - \centering - \includegraphics[width=.7\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.2.concordia-application-architecture.png} - \caption{Αρχιτεκτονική υπηρεσίας Concordia Application} - \label{figure:4-3-concordia-application-architecture} -\end{figure} - -Για τη λειτουργία της υπηρεσία Concordia Application είναι απαραίτητα τα αντικείμενα (artifacts) που προκύπτουν από τη μεταγλώττιση των contracts και τη μεταφόρτωση/δημοσίευσή τους στο blockchain. Για την εισαγωγή των artifacts στην υπηρεσία έχουν αναπτυχθεί δύο μέθοδοι. - -Η πρώτη μέθοδος είναι η μεταγλώττιση και μεταφόρτωση των contracts πριν την παραγωγή του πακέτου λογισμικού της υπηρεσίας για τελική χρήση (production build). Με αυτό τον τρόπο η υπηρεσία θα έχει πρόσβαση στα artifacts μέσω της βιβλιοθήκης που παράγεται από το άρθρωμα concordia-contracts. Αυτή η μέθοδος έχει το μειονέκτημα ότι το τελικό πακέτο λογισμικού (production build) ``δένεται'' με όποια συγκεκριμένη έκδοση των contracts είναι διαθέσιμη κατά τη δημιουργία του πακέτου. Αυτό σημαίνει ότι σε ενδεχόμενη ενημέρωση των contracts πρέπει αναγκαστικά να δημιουργηθεί και νέα έκδοση του πακέτου λογισμικού της υπηρεσίας Concordia Application. - -Για την αποφυγή του παραπάνω προβλήματος αναπτύχθηκε η δεύτερη μέθοδος προσκόμισης των contract artifacts, η οποία είναι η λήψη τους (download) από μία άλλη τοποθεσία στο διαδίκτυο. Σε αυτή τη μέθοδο, η εφαρμογή κατά την εκκίνησή της πραγματοποιεί ένα HTTP αίτημα (HTTP request) σε διεύθυνση η οποία δίνεται ως μεταβλητή περιβάλλοντος (environment variable). Η απάντηση του αιτήματος αναμένεται να περιέχει τα artifacts ώστε η εφαρμογή να τα χρησιμοποιήσει. - -\vspace{0.5cm} -\textbf{Διανομή} - -Η υπηρεσία Concordia Application πακετάρεται μαζί με τον διακομιστή nginx και γίνεται διαθέσιμη για χρήση ως εικόνα docker (docker image) μέσω του αποθετηρίου εικόνων dockerhub. Κατά την εκτέλεση της εικόνας οι χρήστες μπορούν μέσω μεταβλητών περιβάλλοντος να ορίσουν παραμέτρους της εκτέλεσης όπως η διεύθυνση του εξυπηρετητή (host location) της εφαρμογής και οι τοποθεσίες των υπηρεσιών Rendezvous Server και Contracts Provider. - -% ===== ===== -% concordia-contracts-migrator microservice -% ===== ===== -\subsection{Concordia Contracts Migrator} \label{subsection:4-3-concordia-contracts-migrator} - -\vspace{0.5cm} -\textbf{Περιγραφή - Στόχοι υπηρεσίας} - -Η υπηρεσία αυτή αποτελείται από ένα εκτελέσιμο πρόγραμμα γραμμής εντολών βασισμένο στο άρθρωμα concordia-contracts που αναλύθηκε σε προηγούμενη υποενότητα (\ref{subsection:4-3-software-units}). Το πρόγραμμα, κατά την εκτέλεσή του, μεταγλωττίζει τα contracts και έπειτα τα μεταφορτώνει στο blockchain το οποίο είναι ορισμένο με χρήση μεταβλητών περιβάλλοντος. Τέλος, αν οι κατάλληλες μεταβλητές περιβάλλοντος είναι ορισμένες, το πρόγραμμα μεταφορτώνει τα τελικά artifacts σε αποθετήριο Concordia Contracts Provider. Η αρχιτεκτονική της υπηρεσίας φαίνεται στο παρακάτω σχήμα (σχήμα \ref{figure:4-3-concordia-contracts-migrator-architecture}). - -\begin{figure}[H] - \centering - \includegraphics[width=.6\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.3.concordia-contracts-migrator-architecture.png} - \caption{Αρχιτεκτονική υπηρεσίας Concordia Contracts Migrator} - \label{figure:4-3-concordia-contracts-migrator-architecture} -\end{figure} - -\vspace{0.5cm} -\textbf{Διανομή} - -Η υπηρεσία αυτή γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Οι χρήστες μπορούν χρησιμοποιώντας μεταβλητές περιβάλλοντος να αλλάξουν τη διεύθυνση του blockchain και την τοποθεσία της υπηρεσίας Contracts Provider στην οποία το πρόγραμμα θα μεταφορτώσει τα contracts και τα artifacts. - -% ===== ===== -% concordia-pinner microservice -% ===== ===== -\subsection{Concordia Pinner} \label{subsection:4-3-concordia-pinner-service} - -\vspace{0.5cm} -\textbf{Περιγραφή - Στόχοι υπηρεσίας} - -Η υπηρεσία καρφιτσώματος περιεχομένου (Concordia Pinner) αποτελεί μία εφαρμογή τερματικού (temrinal application/cmd application) η οποία στοχεύει στο καρφίτσωμα (pinning) του περιεχομένου που αποθηκεύεται στο IPFS μέσω της βάσης OrbitDB. Η υπηρεσία είναι γραμμένη στη γλώσσα προγραμματισμού Javascript. Η αρχιτεκτονική της υπηρεσίας φαίνεται το σχήμα \ref{figure:4-3-concordia-pinner-architecture}. - -\begin{figure}[H] - \centering - \includegraphics[width=.6\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.4.concordia-pinner-architecture.png} - \caption{Αρχιτεκτονική υπηρεσίας Concordia Pinner} - \label{figure:4-3-concordia-pinner-architecture} -\end{figure} - -Η υπηρεσία αυτή υλοποιήθηκε για να εγγυηθεί η διαθεσιμότητα του περιεχομένου του συστήματος που αποθηκεύεται στο IPFS (τίτλοι θεμάτων, περιεχόμενο μηνυμάτων και άλλα). Λόγω του τρόπου λειτουργίας % todo: insert reference -του IPFS, το περιεχόμενο που αναρτούν οι χρήστες πρέπει να καρφιτσώνεται από άλλους χρήστες ή αυτόνομες εφαρμογές, όπως η υπηρεσία Concordia Pinner, ώστε να είναι διαθέσιμο. Αν το περιεχόμενο δεν καρφιτσωθεί, τότε θα είναι διαθέσιμο στους υπόλοιπους χρήστες μόνο από %todo: fix gender stuff -τον/τη δημιουργό, έτσι αν αυτός/αυτή δεν είναι ενεργός/ενεργή στο δίκτυο, το περιεχόμενο θα είναι αδύνατο να βρεθεί. - -Η υπηρεσία συνδέεται στο blockchain από όπου παρακολουθεί την κατάσταση του συστήματος και ``ακούει'' για νέους χρήστες, θέματα και μηνύματα. Η υπηρεσία συνδέεται επίσης στο IPFS, έτσι όταν δημιουργηθεί νέο περιεχόμενο στο σύστημα το καρφιτσώνει αυτόματα. Με αυτό τον τρόπο, διατηρώντας την υπηρεσία πάντα διαθέσιμη, για παράδειγμα εκτελώντας τη σε περιβάλλον διακομιστή (server), διαβεβαιώνεται η διαθεσιμότητα του περιεχομένου. - -\vspace{0.5cm} -\textbf{Διανομή} - -Η υπηρεσία αυτή γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Κατά την εκτέλεση της εικόνας οι χρήστες μπορούν μέσω μεταβλητών περιβάλλοντος να ορίσουν παραμέτρους της υπηρεσίας όπως τη διεύθυνση του εξυπηρετητή (host location), τη διεύθυνση του blockchain, τις διαδρομές αποθήκευσης των δεδομένων στο σύστημα και τις τοποθεσίες των υπηρεσιών Rendezvous Server και Contracts Provider. - -% ===== ===== -% concordia-contracts-provider microservice -% ===== ===== -\subsection{Concordia Contracts Provider} \label{subsection:4-3-concordia-contracts-provider-service} - -\vspace{0.5cm} -\textbf{Περιγραφή - Στόχοι υπηρεσίας} - -Η υπηρεσία Contracts Provider αποτελεί μία βοηθητική υπηρεσία η οποία υλοποιεί ένα απλό αποθετήριο για τα contract artifacts. Είναι γραμμένη σε Javascript και διαθέτει δύο HTTP \textenglish{endpoints}, ένα για τη μεταφόρτωση (upload) των artifacts προς την υπηρεσία και ένα για τη λήψη (download) από την υπηρεσία. Η υπηρεσία υποστηρίζει επίσης την επισύναψη ετικετών στα artifacts, όπως η έκδοση (version) ή το κλαδί ανάπτυξης (branch, για παράδειγμα \textenglish{master/develop}). Η αρχιτεκτονική της υπηρεσίας φαίνεται το σχήμα \ref{figure:4-3-concordia-contracts-provider-architecture}. - -\begin{figure}[H] - \centering - \includegraphics[width=.6\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.5.concordia-contracts-provider-architecture.png} - \caption{Αρχιτεκτονική υπηρεσίας Concordia Contracts Provider} - \label{figure:4-3-concordia-contracts-provider-architecture} -\end{figure} - -Η υπηρεσία χρησιμοποιείται σε μία προσπάθεια αποσύνδεσης της βασικής εφαρμογής που υλοποιεί η υπηρεσία Concordia Application από μία συγκεκριμένη έκδοση των contracts. Οι λόγοι που αυτό είναι επιθυμητό αναπτύχθηκαν στην περιγραφή της υπηρεσίας Concordia \textenglish{Application} (υποενότητα \ref{subsection:4-3-concordia-application-service}). Ωστόσο, η υπηρεσία Contracts Provider αποτελεί σημείο κεντροποίησης του συστήματος, για το λόγο αυτό θεωρείται προσωρινή λύση η οποία θα μπορούσε να αντικατασταθεί από αποκεντρωτικές λύσεις όπως η μεταφόρτωση των artifacts στο IPFS και ο διαμοιρασμός τους από εκεί. - -\vspace{0.5cm} -\textbf{Διανομή} - -Η υπηρεσία αυτή γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Οι χρήστες μπορούν χρησιμοποιώντας μεταβλητές περιβάλλοντος να αλλάξουν παραμέτρους της εκτέλεσης όπως η διαδρομή αποθήκευσης των μεταφορτωμένων contract artifacts. - -% ===== ===== -% rendezvous-ganache microservice -% ===== ===== -\subsection{Ganache} \label{subsection:4-3-ganache-service} - -\vspace{0.5cm} -\textbf{Περιγραφή - Στόχοι υπηρεσίας} - -Η υπηρεσία Ganache αποτελεί μία εφαρμογή τερματικού η οποία είναι μέρος της δωρεάν σουίτας ανοιχτού λογισμικού Truffle. Η εφαρμογή δημιουργεί ένα τοπικό, ιδιωτικό blockchain το οποίο ακολουθεί το πρότυπο του Ethereum. Επίσης, η εφαρμογή δρα ως miner στο δίκτυο, διεκπεραιώνοντας όλες τις συναλλαγές. - -\vspace{0.5cm} -\textbf{Διανομή} - -Για τη χρήση της υπηρεσίας αυτής αναπτύχθηκε μία νέα εικόνα docker που βασίζεται στην επίσημη εικόνα που διατίθεται από τη σουίτα και προσθέτει μερικές χρήσιμες λειτουργικότητες όπως η δυνατότητα αποκάλυψης των κλειδιών που δημιουργούνται κατά την εκτέλεση. Η υπηρεσία γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Η εικόνα παρέχει τη δυνατότητα τροποποίησης των παραμέτρων εκτέλεσης με χρήση μεταβλητών περιβάλλοντος. Με αυτό τον τρόπο οι χρήστες μπορούν να αλλάξουν τον αριθμό των λογαριασμών που θα δημιουργηθούν, το ποσό του Ether που θα λάβει κάθε λογαριασμός καθώς και άλλες μεταβλητές. - -% ===== ===== -% rendezvous-server microservice -% ===== ===== -\subsection{Rendezvous Server} \label{subsection:4-3-rendezvous-server-service} - -\vspace{0.5cm} -\textbf{Περιγραφή - Στόχοι υπηρεσίας} - -Η υπηρεσία Rendezvous Server αποτελεί δωρεάν λογισμικό ανοιχτού κώδικα το οποίο χρησιμοποιήθηκε (αλλά δεν αναπτύχθηκε) στα πλαίσια της διπλωματικής και υλοποιεί το πρωτόκολλο rendezvous για την εύρεση ομότιμων χρηστών (peers). Η υπηρεσία είναι απαραίτητη για τη λειτουργία του IPFS, ώστε οι ομότιμοι χρήστες (peers) να μπορούν να ανακαλύψουν τις διευθύνσεις των υπόλοιπων χρηστών του δικτύου. - -\vspace{0.5cm} -\textbf{Διανομή} - -Η υπηρεσία αυτή είναι διαθέσιμη για χρήση από τους δημιουργούς της τόσο ως εφαρμογή μέσω του αποθετηρίου λογισμικού npm αλλά και ως docker image μέσω του αποθετηρίου εικόνων dockerhub. - -% ===== ===== -% microservice communication -% ===== ===== -\subsection{Διασύνδεση υπηρεσιών} \label{subsection:4-3-service-communication} - -Στο μοντέλο των μικροϋπηρεσιών, βασικό χαρακτηριστικό είναι η επικοινωνία των ξεχωριστών υπηρεσιών και η ανταλλαγή μηνυμάτων για την επίτευξη των λειτουργικοτήτων του συστήματος. Σε αυτήν την υποενότητα θα αναλυθεί ο τρόπος με τον οποίο οι μικροϋπηρεσίες επικοινωνούν μεταξύ τους καθώς και η φύση και το περιεχόμενο των μηνυμάτων που ανταλλάσουν. - -Στο παρακάτω σχήμα (σχήμα \ref{figure:4-3-communications-graph}) φαίνεται ο γράφος που οπτικοποιεί τα κανάλια επικοινωνίας μεταξύ των μικροϋπηρεσιών, καθώς και τα κανάλια επικοινωνίας των μικροϋπηρεσιών με το blockchain. - -\begin{figure}[H] - \centering - \includegraphics[width=.9\textwidth]{assets/figures/chapter-4/4.3.communications-diagram.png} - \caption{Γράφος οπτικοποίησης των καναλιών επικοινωνίας των μικροϋπηρεσιών} - \label{figure:4-3-communications-graph} -\end{figure} - -Εδώ αναλύεται η επικοινωνία κάθε μικροϋπηρεσίας: - -\begin{itemize} - \item \textbf{Contracts Migrator}: η υπηρεσία εκτελεί αίτημα HTTP κατά την μεταφόρτωση των \textenglish{contracts} στο Ethereum blockchain, επίσης εκτελεί αίτημα HTTP για την μεταφόρτωση των contract artifacts στην υπηρεσία Contracts Provider - - \item \textbf{Concordia Application}: η υπηρεσία εκτελεί αίτημα HTTP για την λήψη των contract \textenglish{artifacts} από την υπηρεσία Contracts Provider, εκτελεί αιτήματα HTTP για την διενέργεια συναλλαγών στο Ethereum blockchain και τέλος δημιουργεί κανάλι UDP επικοινωνίας με την υπηρεσία Rendezvous Server για την ανακάλυψη ομότιμων χρηστών (peers) στο δίκτυο IPFS - - \item \textbf{Pinner}: η υπηρεσία εκτελεί αίτημα HTTP για την λήψη των contract artifacts από την υπηρεσία Contracts Provider, εκτελεί αιτήματα HTTP για την ανανέωση και παρατήρηση της κατάστασης του contract στο Ethereum blockchain και τέλος δημιουργεί κανάλι UDP επικοινωνίας με την υπηρεσία Rendezvous Server για την ανακάλυψη peers στο δίκτυο IPFS - - \item \textbf{Rendezvous Server}: η υπηρεσία διατηρεί ανοιχτά κανάλια UDP επικοινωνίας με τους ομότιμους χρήστες μέσω των οποίων ενημερώνει την λίστα των διαθέσιμων, ενεργών χρηστών - - \item \textbf{Contracts Provider}: η υπηρεσία δεν υποκινεί καμία επικοινωνία παρά μόνο απαντά σε αιτήματα επικοινωνία από άλλες υπηρεσίες -\end{itemize} - -% ===== ===== -% data flow -% ===== ===== -\subsection{Ροή πληροφορίας} \label{subsection:4-3-data-flow} - -Στην παρούσα υποενότητα θα αναλυθεί η ροή της πληροφορίας στο σύστημα. Λόγω των πολλαπλών υπηρεσιών, της κατάτμησης την πληροφορίας και των διαφορετικών σημείων αποθήκευσης της, η ροή της πληροφορίας στο σύστημα ακολουθεί ένα σχετικά περίπλοκο μονοπάτι (σε σχέση με κλασσικές, μονολιθικές, κεντροποιημένες εφαρμογές). - -Αρχικά θα γίνει αναφορά στη διαδικασία αποθήκευσης των νέων πληροφοριών. Η μοναδική πηγή παραγωγής δεδομένων στο σύστημα είναι οι χρήστες και κατ' επέκταση η υπηρεσία Concordia Application, εφόσον είναι η μοναδική υπηρεσία με την οποία αυτοί αλληλεπιδρούν. Τα δεδομένα που δημιουργούν οι χρήστες (πληροφορίες χρηστών, τίτλοι θεμάτων και περιεχόμενο μηνυμάτων) κατατμήζονται πριν αποθηκευτούν. Η πληροφορία που εισάγεται στο σύστημα κατατμήζεται σε δύο μέρη. Στο blockchain αποθηκεύεται ένας δείκτης προς τα δεδομένα, ενώ τα πραγματικά δεδομένα αποθηκεύονται στη βάση OrbitDB. Ο δείκτης εκτός από την άμεση χρησιμότητα στην εύρεση των δεδομένων, παρέχει και την έμμεση λειτουργικότητα της δημιουργίας απαραίτητων μεταδομένων όπως ο αριθμός των θεμάτων στο σύστημα ή των μηνυμάτων σε ένα θέμα. - -Από την πλευρά της εύρεση των πληροφοριών στο σύστημα, η ροή είναι ως εξής. Αρχικά, είναι απαραίτητη η αναζήτηση στο blockchain για την εύρεση του δείκτη προς τα δεδομένα. Έπειτα, τα δεδομένα μπορούν να ανακτηθούν μέσω του IPFS από τον εκάστοτε χρήστη ή από κάποιον Pinner. - -Τέλος, παρακάτω δίνεται ένα παράδειγμα εισαγωγής πληροφορίας στο σύστημα και έπειτα ανάκτησης της ίδιας πληροφορίας. - -Έστω, χρήστης που δημιουργεί νέο θέμα. Τα δεδομένα που παράγονται είναι ο τίτλος του θέματος και το περιεχόμενο του πρώτου μηνύματος. Μεταδεδομένα της δημιουργίας είναι η διεύθυνση του/της δημιουργού του θέματος. Για την αποθήκευση του θέματος στο σύστημα δημιουργείται πρώτα συναλλαγή στο blockchain ώστε να δημιουργηθεί μία νέα εγγραφή στον πίνακα των θεμάτων. Η εγγραφή αυτή δεν περιέχει τίποτα παρά μόνο τη διεύθυνση του/της δημιουργού χρήστη. Αν η συναλλαγή είναι επιτυχής, θα επιστραφεί ο αύξων αριθμός του νέου θέματος. Έπειτα, στην προσωπική βάση OrbitDB του/της χρήστη και στον πίνακα των θεμάτων θα προστεθεί εγγραφή με αναγνωριστικό τον αύξων αριθμό του θέματος όπου θα αποθηκευτούν τα δεδομένα του τίτλου και πρώτου μηνύματος. Στο σχήμα \ref{figure:4-3-data-flow-insert} παρουσιάζεται γραφικά η διαδικασία. - -% todo: UML diagrams might be wrong, should the ethereum and orbitDb blocks be continuous? -\begin{figure}[H] - \centering - \includegraphics[width=.7\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.9.data-flow-insert.png} - \caption{Διάγραμμα ακολουθίας δημιουργίας θέματος} - \label{figure:4-3-data-flow-insert} -\end{figure} - -Έστω, χρήστης που επιθυμεί να διαβάσει το προηγούμενο μήνυμα. Αρχικά, πρέπει να διαβαστεί ο πίνακας θεμάτων από το blockchain. Η πληροφορία αυτή εμπλουτίζεται από τα δεδομένα του κάθε θέματος, τα οποία ανακτώνται από τις προσωπικές βάσεις Orbit κάθε χρήστη. Έπειτα, εφόσον το θέμα βρεθεί και ο αύξων αριθμός του είναι γνωστός, πρέπει να διαβαστούν από το blockchain τα μεταδομένα των μηνυμάτων του θέματος και συγκεκριμένα η διευθύνσεις των δημιουργών τους. Τέλος, μέσω του IPFS πρέπει να γίνει αντιγραφή των προσωπικών βάσεων των δημιουργών του κάθε μηνύματος και να αναζητηθούν σε αυτές τα εκάστοτε μηνύματα. Στο σχήμα \ref{figure:4-3-data-flow-read} φαίνεται το διάγραμμα ροής της πληροφορίας κατά την ανάκτηση πληροφοριών από το σύστημα. - -\begin{figure}[H] - \centering - \includegraphics[width=.7\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.9.data-flow-read.png} - \caption{Διάγραμμα ακολουθίας εύρεσης και ανάκτησης θέματος} - \label{figure:4-3-data-flow-read} -\end{figure} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.2.concordia-application-service} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.3.concordia-contracts-migrator} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.4.concordia-pinner-service} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.5.concordia-contracts-provider-service} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.6.ganache-service} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.7.rendezvous-server-service} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.8.service-communication} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.9.data-flow} \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units.tex new file mode 100644 index 0000000..7ca553b --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units.tex @@ -0,0 +1,9 @@ +\subsection{Αρθρώματα} \label{subsection:4-3-1-software-units} + +Σε αυτό το κεφάλαιο θα περιγραφούν με μεγαλύτερη λεπτομέρεια τα αρθρώματα που αναπτύχθηκαν. + +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit} +\input{chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit} \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex new file mode 100644 index 0000000..b1b8266 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex @@ -0,0 +1,5 @@ +\subsubsection{Άρθρωμα concordia-contracts} \label{subsubsection:4-3-1-concordia-contracts-unit} + +Το άρθρωμα αυτό επιτελεί δύο ενέργειες. Αρχικά, είναι το άρθρωμα στο οποίο αναπτύσσονται τα contracts που χρησιμοποιούνται από την εφαρμογή. Το άρθρωμα αυτό αναλαμβάνει τη μεταγλώττιση των contracts από κώδικα γλώσσας Solidity, στην κατάλληλη τελική μορφή JSON. Παρέχονται επίσης σενάρια ενεργειών (scripts) ώστε τα contracts να μεταφορτωθούν σε blockchain καθώς και στην υπηρεσία Concordia Contracts Provider. Αποτελεί επίσης βιβλιοθήκη η οποία μετά τη μεταγλώττιση και μεταφόρτωση των contracts σε blockchain παρέχει τα contract artifacts. Χρησιμοποιείται από τις υπηρεσίες Concordia Application και Concordia Pinner. + +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της βιβλιοθήκης διαχείρισης monorepo lerna. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex new file mode 100644 index 0000000..33bed8e --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex @@ -0,0 +1,6 @@ +\subsubsection{Άρθρωμα concordia-shared} \label{subsubsection:4-3-1-concordia-shared-unit} + +Το άρθρωμα concordia-shared αποτελεί μία βιβλιοθήκη χρήσιμων εργαλείων και σταθερών. Εδώ περιέχεται όλο το λογισμικό το οποίο πρέπει ή είναι επιθυμητό να συμπεριφέρεται με τον ίδιο τρόπο συνολικά στο σύστημα, όπως για παράδειγμα μέθοδοι παραμετροποίησης των υπηρεσιών και μέθοδοι καταγραφής (logging). Το άρθρωμα αυτό χρησιμοποιείται από το άρθρωμα concordia-contracts καθώς και από τις υπηρεσίες Concordia Application, Concordia Pinner και Concordia Contracts Provider. + +% make more sense +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της βιβλιοθήκης διαχείρισης μοναδικού αποθετηρίου κώδικα (monorepo) lerna. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex new file mode 100644 index 0000000..aefdf84 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex @@ -0,0 +1,7 @@ +\subsubsection{Άρθρωμα breeze} \label{subsubsection:4-3-1-eth-breeze-unit} + +Το άρθρωμα αυτό αποτελεί μία βιβλιοθήκη περίβλημα (wrapper) της βιβλιοθήκης OrbitDB. Η OrbitDB είναι μία βιβλιοθήκη η οποία προσφέρει τις απαραίτητες προγραμματιστικές διεπαφές για τη χρήση της βάσης δεδομένων με το ίδιο όνομα. Μέσα από τη χρήση των βιβλιοθηκών που προσφέρονται από το IPFS για την αποθήκευση δεδομένων, η OrbitDB καταφέρνει να υλοποιήσει μία αποκεντρωμένη βάση δεδομένων. + +Το άρθρωμα breeze κάνει χρήση της βιβλιοθήκης OrbitDB, προσφέρει ωστόσο συγκεκριμένες προγραμματιστικές διεπαφές που διευκολύνουν τόσο την παραμετροποίηση της βάσης όσο και τη χρήση της, ενώ όπως και στο άρθρωμα drizzle το άρθρωμα breeze αναλαμβάνει να διορθώσει ορισμένα προβλήματα της πρωτότυπης βιβλιοθήκης. + +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex new file mode 100644 index 0000000..a8b55e6 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex @@ -0,0 +1,7 @@ +\subsubsection{Άρθρωμα drizzle} \label{subsubsection:4-3-1-eth-drizzle-unit} + +Το άρθρωμα drizzle που χρησιμοποιείται στην υπηρεσία Concordia Application είναι μία τροποποιημένη έκδοση της Javascript βιβλιοθήκης Drizzle που προσφέρεται από τη σουίτα εργαλείων Truffle. Η τροποποιημένη βιβλιοθήκη αναπτύχθηκε στα πλαίσια της διπλωματικής με στόχο τη διευκόλυνση της χρήσης του Drizle και την επιδιόρθωση προβληματικών σημείων της πρωτότυπης βιβλιοθήκης. + +Το άρθρωμα drizzle υλοποιεί τις προγραμματιστικές διεπαφές μέσω των οποίων πραγματοποιείται η επικοινωνία της εφαρμογής με το blockchain. Για την επίτευξη της επικοινωνίας αυτής, η βιβλιοθήκη χρησιμοποιεί τη συλλογή βιβλιοθηκών web3.js η οποία αποτελεί τον πιο διαδεδομένο τρόπο διεπαφής με το blockchain σε αποκεντρωτικές εφαρμογές. + +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex new file mode 100644 index 0000000..693f9a5 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex @@ -0,0 +1,5 @@ +\subsubsection{Άρθρωμα eth-identity-provider} \label{subsubsection:4-3-1-eth-identity-provider-unit} + +Η λειτουργία της βάση OrbitDB απαιτεί τη δημιουργία ενός μοναδικού αναγνωριστικού χρήστη (identity). Για την εύκολη εξαγωγή ενός αναγνωριστικού χρήστη το οποίο να είναι μεν μοναδικό αλλά να είναι δυνατός ο επανυπολογισμός, χρησιμοποιήθηκε ο συνδυασμός της διεύθυνσης του χρήστη στο δίκτυο Ethereum με τη διεύθυνση του βασικού contract που χρησιμοποιεί η εφαρμογή. Ο υπολογισμός του συνδυασμού αυτού υλοποιείται από αυτό το άρθρωμα. + +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.2.concordia-application-service.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.2.concordia-application-service.tex new file mode 100644 index 0000000..aaa1630 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.2.concordia-application-service.tex @@ -0,0 +1,43 @@ +\subsection{Concordia Application} \label{subsection:4-3-2-concordia-application-service} + +\subsubsection{Περιγραφή - Στόχοι υπηρεσίας} + +Η εφαρμογή Concordia (Concordia Application) εκθέτει τις γραφικές διεπαφές μέσω των οποίων αλληλεπιδρούν οι χρήστες με το σύστημα. Αποτελεί τον δίαυλο επικοινωνίας του τελικού χρήστη με το blockchain και με τη βάση OrbitDB. Η αρχιτεκτονική της υπηρεσίας φαίνεται στο σχήμα \ref{figure:4-3-concordia-application-architecture}. Μέσω της εφαρμογής Concordia οι χρήστες μπορούν να: + +\begin{itemize} + \item περιηγηθούν και διαβάσουν το περιεχόμενο της πλατφόρμας + + \item δημιουργήσουν λογαριασμό χρήστη + + \item δημοσιεύσουν και τροποποιήσουν προσωπικές τους πληροφορίες όπως η τοποθεσία και η εικόνα προφίλ + + \item δημιουργήσουν θέματα (topics) + + \item δημιουργήσουν ψηφοφορίες (polls), καθώς και να ψηφίσουν σε αυτές + + \item δημιουργήσουν και τροποποιήσουν μηνύματα (posts) + + \item υπερψηφίσουν (up-vote) ή καταψηφίσουν (down-vote) μηνύματα άλλων χρηστών +\end{itemize} + +Η υπηρεσία αποτελείται από κώδικα γραμμένο σε Javascript ο οποίος γίνεται διαθέσιμος στους τελικούς χρήστες με τη μορφή εφαρμογής διαδικτύου (web application) μέσω ενός διακομιστή (server). Παρόλο που η υπηρεσία προσφέρει τη γραφική διεπαφή χρήστη μόνο στην αγγλική γλώσσα, έχει παραμετροποιηθεί ώστε να είναι δυνατή η εύκολη μεταγλώττιση της χωρίς την ανάγκη πραγματοποίησης μεγάλων αλλαγών στον κώδικα. + +Χρησιμοποιείται η βιβλιοθήκη React για την οργάνωση και ανάπτυξη των συνθετικών τμημάτων (components) του γραφικού περιβάλλοντος. Για το γραφικό περιβάλλον γίνεται χρήση του framework της Semantic UI. Χρησιμοποιείται η βιβλιοθήκη Redux για τη διαχείριση κατάστασης της εφαρμογής (state management), % todo: find a better greek translation +καθώς και η βιβλιοθήκη Redux-Saga για τη διαχείριση ασύγχρονων παράπλευρων ενεργειών (side-effects) σε ένα σύστημα βασισμένο σε συμβάντα (event-based). Άλλες βιβλιοθήκες χρησιμοποιούνται για διάφορα μέρη της υπηρεσίας, ενώ χρησιμοποιούνται επίσης τα αρθρώματα που περιγράφηκαν προηγουμένως για την επίτευξη διαφορετικών στόχων. Ο πλήρης κατάλογος των βιβλιοθηκών και αρθρωμάτων μπορεί να βρεθεί στον κώδικα της υπηρεσίας στο παράρτημα. % todo: add reference to the appendix containing the code or a link to it in the repo + +\begin{figure}[H] + \centering + \includegraphics[width=.7\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.2.concordia-application-architecture.png} + \caption{Αρχιτεκτονική υπηρεσίας Concordia Application} + \label{figure:4-3-concordia-application-architecture} +\end{figure} + +Για τη λειτουργία της υπηρεσία Concordia Application είναι απαραίτητα τα αντικείμενα (artifacts) που προκύπτουν από τη μεταγλώττιση των contracts και τη μεταφόρτωση/δημοσίευσή τους στο blockchain. Για την εισαγωγή των artifacts στην υπηρεσία έχουν αναπτυχθεί δύο μέθοδοι. + +Η πρώτη μέθοδος είναι η μεταγλώττιση και μεταφόρτωση των contracts πριν την παραγωγή του πακέτου λογισμικού της υπηρεσίας για τελική χρήση (production build). Με αυτό τον τρόπο η υπηρεσία θα έχει πρόσβαση στα artifacts μέσω της βιβλιοθήκης που παράγεται από το άρθρωμα concordia-contracts. Αυτή η μέθοδος έχει το μειονέκτημα ότι το τελικό πακέτο λογισμικού (production build) ``δένεται'' με όποια συγκεκριμένη έκδοση των contracts είναι διαθέσιμη κατά τη δημιουργία του πακέτου. Αυτό σημαίνει ότι σε ενδεχόμενη ενημέρωση των contracts πρέπει αναγκαστικά να δημιουργηθεί και νέα έκδοση του πακέτου λογισμικού της υπηρεσίας Concordia Application. + +Για την αποφυγή του παραπάνω προβλήματος αναπτύχθηκε η δεύτερη μέθοδος προσκόμισης των contract artifacts, η οποία είναι η λήψη τους (download) από μία άλλη τοποθεσία στο διαδίκτυο. Σε αυτή τη μέθοδο, η εφαρμογή κατά την εκκίνησή της πραγματοποιεί ένα HTTP αίτημα (HTTP request) σε διεύθυνση η οποία δίνεται ως μεταβλητή περιβάλλοντος (environment variable). Η απάντηση του αιτήματος αναμένεται να περιέχει τα artifacts ώστε η εφαρμογή να τα χρησιμοποιήσει. + +\subsubsection{Διανομή} + +Η υπηρεσία Concordia Application πακετάρεται μαζί με τον διακομιστή nginx και γίνεται διαθέσιμη για χρήση ως εικόνα docker (docker image) μέσω του αποθετηρίου εικόνων dockerhub. Κατά την εκτέλεση της εικόνας οι χρήστες μπορούν μέσω μεταβλητών περιβάλλοντος να ορίσουν παραμέτρους της εκτέλεσης όπως η διεύθυνση του εξυπηρετητή (host location) της εφαρμογής και οι τοποθεσίες των υπηρεσιών Rendezvous Server και Contracts Provider. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.3.concordia-contracts-migrator.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.3.concordia-contracts-migrator.tex new file mode 100644 index 0000000..0025d84 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.3.concordia-contracts-migrator.tex @@ -0,0 +1,16 @@ +\subsection{Concordia Contracts Migrator} \label{subsection:4-3-3-concordia-contracts-migrator} + +\subsubsection{Περιγραφή - Στόχοι υπηρεσίας} + +Η υπηρεσία αυτή αποτελείται από ένα εκτελέσιμο πρόγραμμα γραμμής εντολών βασισμένο στο άρθρωμα concordia-contracts που αναλύθηκε σε προηγούμενη υποενότητα (\ref{subsection:4-3-1-software-units}). Το πρόγραμμα, κατά την εκτέλεσή του, μεταγλωττίζει τα contracts και έπειτα τα μεταφορτώνει στο blockchain το οποίο είναι ορισμένο με χρήση μεταβλητών περιβάλλοντος. Τέλος, αν οι κατάλληλες μεταβλητές περιβάλλοντος είναι ορισμένες, το πρόγραμμα μεταφορτώνει τα τελικά artifacts σε αποθετήριο Concordia Contracts Provider. Η αρχιτεκτονική της υπηρεσίας φαίνεται στο παρακάτω σχήμα (σχήμα \ref{figure:4-3-concordia-contracts-migrator-architecture}). + +\begin{figure}[H] + \centering + \includegraphics[width=.6\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.3.concordia-contracts-migrator-architecture.png} + \caption{Αρχιτεκτονική υπηρεσίας Concordia Contracts Migrator} + \label{figure:4-3-concordia-contracts-migrator-architecture} +\end{figure} + +\subsubsection{Διανομή} + +Η υπηρεσία αυτή γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Οι χρήστες μπορούν χρησιμοποιώντας μεταβλητές περιβάλλοντος να αλλάξουν τη διεύθυνση του blockchain και την τοποθεσία της υπηρεσίας Contracts Provider στην οποία το πρόγραμμα θα μεταφορτώσει τα contracts και τα artifacts. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.4.concordia-pinner-service.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.4.concordia-pinner-service.tex new file mode 100644 index 0000000..6c9386c --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.4.concordia-pinner-service.tex @@ -0,0 +1,22 @@ +\subsection{Concordia Pinner} \label{subsection:4-3-4-concordia-pinner-service} + +\subsubsection{Περιγραφή - Στόχοι υπηρεσίας} + +Η υπηρεσία καρφιτσώματος περιεχομένου (Concordia Pinner) αποτελεί μία εφαρμογή τερματικού (temrinal application/cmd application) η οποία στοχεύει στο καρφίτσωμα (pinning) του περιεχομένου που αποθηκεύεται στο IPFS μέσω της βάσης OrbitDB. Η υπηρεσία είναι γραμμένη στη γλώσσα προγραμματισμού Javascript. Η αρχιτεκτονική της υπηρεσίας φαίνεται το σχήμα \ref{figure:4-3-concordia-pinner-architecture}. + +\begin{figure}[H] + \centering + \includegraphics[width=.6\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.4.concordia-pinner-architecture.png} + \caption{Αρχιτεκτονική υπηρεσίας Concordia Pinner} + \label{figure:4-3-concordia-pinner-architecture} +\end{figure} + +Η υπηρεσία αυτή υλοποιήθηκε για να εγγυηθεί η διαθεσιμότητα του περιεχομένου του συστήματος που αποθηκεύεται στο IPFS (τίτλοι θεμάτων, περιεχόμενο μηνυμάτων και άλλα). Λόγω του τρόπου λειτουργίας % todo: insert reference +του IPFS, το περιεχόμενο που αναρτούν οι χρήστες πρέπει να καρφιτσώνεται από άλλους χρήστες ή αυτόνομες εφαρμογές, όπως η υπηρεσία Concordia Pinner, ώστε να είναι διαθέσιμο. Αν το περιεχόμενο δεν καρφιτσωθεί, τότε θα είναι διαθέσιμο στους υπόλοιπους χρήστες μόνο από %todo: fix gender stuff +τον/τη δημιουργό, έτσι αν αυτός/αυτή δεν είναι ενεργός/ενεργή στο δίκτυο, το περιεχόμενο θα είναι αδύνατο να βρεθεί. + +Η υπηρεσία συνδέεται στο blockchain από όπου παρακολουθεί την κατάσταση του συστήματος και ``ακούει'' για νέους χρήστες, θέματα και μηνύματα. Η υπηρεσία συνδέεται επίσης στο IPFS, έτσι όταν δημιουργηθεί νέο περιεχόμενο στο σύστημα το καρφιτσώνει αυτόματα. Με αυτό τον τρόπο, διατηρώντας την υπηρεσία πάντα διαθέσιμη, για παράδειγμα εκτελώντας τη σε περιβάλλον διακομιστή (server), διαβεβαιώνεται η διαθεσιμότητα του περιεχομένου. + +\subsubsection{Διανομή} + +Η υπηρεσία αυτή γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Κατά την εκτέλεση της εικόνας οι χρήστες μπορούν μέσω μεταβλητών περιβάλλοντος να ορίσουν παραμέτρους της υπηρεσίας όπως τη διεύθυνση του εξυπηρετητή (host location), τη διεύθυνση του blockchain, τις διαδρομές αποθήκευσης των δεδομένων στο σύστημα και τις τοποθεσίες των υπηρεσιών Rendezvous Server και Contracts Provider. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.5.concordia-contracts-provider-service.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.5.concordia-contracts-provider-service.tex new file mode 100644 index 0000000..f99d1b9 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.5.concordia-contracts-provider-service.tex @@ -0,0 +1,18 @@ +\subsection{Concordia Contracts Provider} \label{subsection:4-3-5-concordia-contracts-provider-service} + +\subsubsection{Περιγραφή - Στόχοι υπηρεσίας} + +Η υπηρεσία Contracts Provider αποτελεί μία βοηθητική υπηρεσία η οποία υλοποιεί ένα απλό αποθετήριο για τα contract artifacts. Είναι γραμμένη σε Javascript και διαθέτει δύο HTTP \textenglish{endpoints}, ένα για τη μεταφόρτωση (upload) των artifacts προς την υπηρεσία και ένα για τη λήψη (download) από την υπηρεσία. Η υπηρεσία υποστηρίζει επίσης την επισύναψη ετικετών στα artifacts, όπως η έκδοση (version) ή το κλαδί ανάπτυξης (branch, για παράδειγμα \textenglish{master/develop}). Η αρχιτεκτονική της υπηρεσίας φαίνεται το σχήμα \ref{figure:4-3-concordia-contracts-provider-architecture}. + +\begin{figure}[H] + \centering + \includegraphics[width=.6\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.5.concordia-contracts-provider-architecture} + \caption{Αρχιτεκτονική υπηρεσίας Concordia Contracts Provider} + \label{figure:4-3-concordia-contracts-provider-architecture} +\end{figure} + +Η υπηρεσία χρησιμοποιείται σε μία προσπάθεια αποσύνδεσης της βασικής εφαρμογής που υλοποιεί η υπηρεσία Concordia Application από μία συγκεκριμένη έκδοση των contracts. Οι λόγοι που αυτό είναι επιθυμητό αναπτύχθηκαν στην περιγραφή της υπηρεσίας Concordia \textenglish{Application} (υποενότητα \ref{subsection:4-3-2-concordia-application-service}). Ωστόσο, η υπηρεσία Contracts Provider αποτελεί σημείο κεντροποίησης του συστήματος, για το λόγο αυτό θεωρείται προσωρινή λύση η οποία θα μπορούσε να αντικατασταθεί από αποκεντρωτικές λύσεις όπως η μεταφόρτωση των artifacts στο IPFS και ο διαμοιρασμός τους από εκεί. + +\subsubsection{Διανομή} + +Η υπηρεσία αυτή γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Οι χρήστες μπορούν χρησιμοποιώντας μεταβλητές περιβάλλοντος να αλλάξουν παραμέτρους της εκτέλεσης όπως η διαδρομή αποθήκευσης των μεταφορτωμένων contract artifacts. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.6.ganache-service.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.6.ganache-service.tex new file mode 100644 index 0000000..9f28f48 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.6.ganache-service.tex @@ -0,0 +1,9 @@ +\subsection{Ganache} \label{subsection:4-3-6-ganache-service} + +\subsubsection{Περιγραφή - Στόχοι υπηρεσίας} + +Η υπηρεσία Ganache αποτελεί μία εφαρμογή τερματικού η οποία είναι μέρος της δωρεάν σουίτας ανοιχτού λογισμικού Truffle. Η εφαρμογή δημιουργεί ένα τοπικό, ιδιωτικό blockchain το οποίο ακολουθεί το πρότυπο του Ethereum. Επίσης, η εφαρμογή δρα ως miner στο δίκτυο, διεκπεραιώνοντας όλες τις συναλλαγές. + +\subsubsection{Διανομή} + +Για τη χρήση της υπηρεσίας αυτής αναπτύχθηκε μία νέα εικόνα docker που βασίζεται στην επίσημη εικόνα που διατίθεται από τη σουίτα και προσθέτει μερικές χρήσιμες λειτουργικότητες όπως η δυνατότητα αποκάλυψης των κλειδιών που δημιουργούνται κατά την εκτέλεση. Η υπηρεσία γίνεται διαθέσιμη για χρήση ως docker image μέσω του αποθετηρίου εικόνων dockerhub. Η εικόνα παρέχει τη δυνατότητα τροποποίησης των παραμέτρων εκτέλεσης με χρήση μεταβλητών περιβάλλοντος. Με αυτό τον τρόπο οι χρήστες μπορούν να αλλάξουν τον αριθμό των λογαριασμών που θα δημιουργηθούν, το ποσό του Ether που θα λάβει κάθε λογαριασμός καθώς και άλλες μεταβλητές. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.7.rendezvous-server-service.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.7.rendezvous-server-service.tex new file mode 100644 index 0000000..5d6c638 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.7.rendezvous-server-service.tex @@ -0,0 +1,9 @@ +\subsection{Rendezvous Server} \label{subsection:4-3-7-rendezvous-server-service} + +\subsubsection{Περιγραφή - Στόχοι υπηρεσίας} + +Η υπηρεσία Rendezvous Server αποτελεί δωρεάν λογισμικό ανοιχτού κώδικα το οποίο χρησιμοποιήθηκε (αλλά δεν αναπτύχθηκε) στα πλαίσια της διπλωματικής και υλοποιεί το πρωτόκολλο rendezvous για την εύρεση ομότιμων χρηστών (peers). Η υπηρεσία είναι απαραίτητη για τη λειτουργία του IPFS, ώστε οι ομότιμοι χρήστες (peers) να μπορούν να ανακαλύψουν τις διευθύνσεις των υπόλοιπων χρηστών του δικτύου. + +\subsubsection{Διανομή} + +Η υπηρεσία αυτή είναι διαθέσιμη για χρήση από τους δημιουργούς της τόσο ως εφαρμογή μέσω του αποθετηρίου λογισμικού npm αλλά και ως docker image μέσω του αποθετηρίου εικόνων dockerhub. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.8.service-communication.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.8.service-communication.tex new file mode 100644 index 0000000..41f99c7 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.8.service-communication.tex @@ -0,0 +1,26 @@ +\subsection{Διασύνδεση υπηρεσιών} \label{subsection:4-3-8-service-communication} + +Στο μοντέλο των μικροϋπηρεσιών, βασικό χαρακτηριστικό είναι η επικοινωνία των ξεχωριστών υπηρεσιών και η ανταλλαγή μηνυμάτων για την επίτευξη των λειτουργικοτήτων του συστήματος. Σε αυτήν την υποενότητα θα αναλυθεί ο τρόπος με τον οποίο οι μικροϋπηρεσίες επικοινωνούν μεταξύ τους καθώς και η φύση και το περιεχόμενο των μηνυμάτων που ανταλλάσουν. + +Στο παρακάτω σχήμα (σχήμα \ref{figure:4-3-communications-graph}) φαίνεται ο γράφος που οπτικοποιεί τα κανάλια επικοινωνίας μεταξύ των μικροϋπηρεσιών, καθώς και τα κανάλια επικοινωνίας των μικροϋπηρεσιών με το blockchain. + +\begin{figure}[H] + \centering + \includegraphics[width=.9\textwidth]{assets/figures/chapter-4/4.3.communications-diagram.png} + \caption{Γράφος οπτικοποίησης των καναλιών επικοινωνίας των μικροϋπηρεσιών} + \label{figure:4-3-communications-graph} +\end{figure} + +Εδώ αναλύεται η επικοινωνία κάθε μικροϋπηρεσίας: + +\begin{itemize} + \item \textbf{Contracts Migrator}: η υπηρεσία εκτελεί αίτημα HTTP κατά την μεταφόρτωση των \textenglish{contracts} στο Ethereum blockchain, επίσης εκτελεί αίτημα HTTP για την μεταφόρτωση των contract artifacts στην υπηρεσία Contracts Provider + + \item \textbf{Concordia Application}: η υπηρεσία εκτελεί αίτημα HTTP για την λήψη των contract \textenglish{artifacts} από την υπηρεσία Contracts Provider, εκτελεί αιτήματα HTTP για την διενέργεια συναλλαγών στο Ethereum blockchain και τέλος δημιουργεί κανάλι UDP επικοινωνίας με την υπηρεσία Rendezvous Server για την ανακάλυψη ομότιμων χρηστών (peers) στο δίκτυο IPFS + + \item \textbf{Pinner}: η υπηρεσία εκτελεί αίτημα HTTP για την λήψη των contract artifacts από την υπηρεσία Contracts Provider, εκτελεί αιτήματα HTTP για την ανανέωση και παρατήρηση της κατάστασης του contract στο Ethereum blockchain και τέλος δημιουργεί κανάλι UDP επικοινωνίας με την υπηρεσία Rendezvous Server για την ανακάλυψη peers στο δίκτυο IPFS + + \item \textbf{Rendezvous Server}: η υπηρεσία διατηρεί ανοιχτά κανάλια UDP επικοινωνίας με τους ομότιμους χρήστες μέσω των οποίων ενημερώνει την λίστα των διαθέσιμων, ενεργών χρηστών + + \item \textbf{Contracts Provider}: η υπηρεσία δεν υποκινεί καμία επικοινωνία παρά μόνο απαντά σε αιτήματα επικοινωνία από άλλες υπηρεσίες +\end{itemize} \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.9.data-flow.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.9.data-flow.tex new file mode 100644 index 0000000..dc7b133 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.9.data-flow.tex @@ -0,0 +1,28 @@ +\subsection{Ροή πληροφορίας} \label{subsection:4-3-9-data-flow} + +Στην παρούσα υποενότητα θα αναλυθεί η ροή της πληροφορίας στο σύστημα. Λόγω των πολλαπλών υπηρεσιών, της κατάτμησης την πληροφορίας και των διαφορετικών σημείων αποθήκευσης της, η ροή της πληροφορίας στο σύστημα ακολουθεί ένα σχετικά περίπλοκο μονοπάτι (σε σχέση με κλασσικές, μονολιθικές, κεντροποιημένες εφαρμογές). + +Αρχικά θα γίνει αναφορά στη διαδικασία αποθήκευσης των νέων πληροφοριών. Η μοναδική πηγή παραγωγής δεδομένων στο σύστημα είναι οι χρήστες και κατ' επέκταση η υπηρεσία Concordia Application, εφόσον είναι η μοναδική υπηρεσία με την οποία αυτοί αλληλεπιδρούν. Τα δεδομένα που δημιουργούν οι χρήστες (πληροφορίες χρηστών, τίτλοι θεμάτων και περιεχόμενο μηνυμάτων) κατατέμνονται πριν αποθηκευτούν. Η πληροφορία που εισάγεται στο σύστημα διαχωρίζεται σε δύο μέρη. Στο blockchain αποθηκεύεται ένας δείκτης προς τα δεδομένα, ενώ τα πραγματικά δεδομένα αποθηκεύονται στη βάση OrbitDB. Ο δείκτης εκτός από την άμεση χρησιμότητα στην εύρεση των δεδομένων, παρέχει και την έμμεση λειτουργικότητα της δημιουργίας απαραίτητων μεταδομένων όπως ο αριθμός των θεμάτων στο σύστημα ή των μηνυμάτων σε ένα θέμα. + +Από την πλευρά της εύρεση των πληροφοριών στο σύστημα, η ροή είναι ως εξής. Αρχικά, είναι απαραίτητη η αναζήτηση στο blockchain για την εύρεση του δείκτη προς τα δεδομένα. Έπειτα, τα δεδομένα μπορούν να ανακτηθούν μέσω του IPFS από τον εκάστοτε χρήστη ή από κάποιον Pinner. + +Τέλος, παρακάτω δίνεται ένα παράδειγμα εισαγωγής πληροφορίας στο σύστημα και έπειτα ανάκτησης της ίδιας πληροφορίας. + +Έστω, χρήστης που δημιουργεί νέο θέμα. Τα δεδομένα που παράγονται είναι ο τίτλος του θέματος και το περιεχόμενο του πρώτου μηνύματος. Μεταδεδομένα της δημιουργίας είναι η διεύθυνση του/της δημιουργού του θέματος. Για την αποθήκευση του θέματος στο σύστημα δημιουργείται πρώτα συναλλαγή στο blockchain ώστε να δημιουργηθεί μία νέα εγγραφή στον πίνακα των θεμάτων. Η εγγραφή αυτή δεν περιέχει τίποτα παρά μόνο τη διεύθυνση του/της δημιουργού χρήστη. Αν η συναλλαγή είναι επιτυχής, θα επιστραφεί ο αύξων αριθμός του νέου θέματος. Έπειτα, στην προσωπική βάση OrbitDB του/της χρήστη και στον πίνακα των θεμάτων θα προστεθεί εγγραφή με αναγνωριστικό τον αύξων αριθμό του θέματος όπου θα αποθηκευτούν τα δεδομένα του τίτλου και πρώτου μηνύματος. Στο σχήμα \ref{figure:4-3-data-flow-insert} παρουσιάζεται γραφικά η διαδικασία. + +% todo: UML diagrams might be wrong, should the ethereum and orbitDb blocks be continuous? +\begin{figure}[H] + \centering + \includegraphics[width=.7\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.9.data-flow-insert.png} + \caption{Διάγραμμα ακολουθίας δημιουργίας θέματος} + \label{figure:4-3-data-flow-insert} +\end{figure} + +Έστω, χρήστης που επιθυμεί να διαβάσει το προηγούμενο μήνυμα. Αρχικά, πρέπει να διαβαστεί ο πίνακας θεμάτων από το blockchain. Η πληροφορία αυτή εμπλουτίζεται από τα δεδομένα του κάθε θέματος, τα οποία ανακτώνται από τις προσωπικές βάσεις Orbit κάθε χρήστη. Έπειτα, εφόσον το θέμα βρεθεί και ο αύξων αριθμός του είναι γνωστός, πρέπει να διαβαστούν από το blockchain τα μεταδομένα των μηνυμάτων του θέματος και συγκεκριμένα η διευθύνσεις των δημιουργών τους. Τέλος, μέσω του IPFS πρέπει να γίνει αντιγραφή των προσωπικών βάσεων των δημιουργών του κάθε μηνύματος και να αναζητηθούν σε αυτές τα εκάστοτε μηνύματα. Στο σχήμα \ref{figure:4-3-data-flow-read} φαίνεται το διάγραμμα ροής της πληροφορίας κατά την ανάκτηση πληροφοριών από το σύστημα. + +\begin{figure}[H] + \centering + \includegraphics[width=.7\textwidth]{assets/figures/chapter-4/4.3.architecture-4.3.9.data-flow-read.png} + \caption{Διάγραμμα ακολουθίας εύρεσης και ανάκτησης θέματος} + \label{figure:4-3-data-flow-read} +\end{figure} \ No newline at end of file diff --git a/thesis.pdf b/thesis.pdf index e293b20702aba1346c1f9564896deb8848662feb..adcd9ba843a16c0ece1caba0a65845b9abdb2366 100644 GIT binary patch delta 61613 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

{{2F|xbig?wry8VLfB9nSvFUo4 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

XW}joBfFU_F>v<_nF01 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

$y> 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 HOC$V0<+#Qg From bbfc621a6e5c43487394ec81bfe4d7f010f6d524 Mon Sep 17 00:00:00 2001 From: Ezerous Date: Tue, 11 Jan 2022 19:28:30 +0200 Subject: [PATCH 2/3] feat: add subsection 4.3.1 stuff --- .../4.3.1.concordia-contracts-unit.tex | 4 ++-- .../4.3.1.concordia-shared-unit.tex | 6 +++--- .../4.3.1.eth-breeze-unit.tex | 6 +++--- .../4.3.1.eth-drizzle-unit.tex | 2 +- thesis.pdf | Bin 9132398 -> 9133424 bytes 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex index b1b8266..16cf1d6 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-contracts-unit.tex @@ -1,5 +1,5 @@ \subsubsection{Άρθρωμα concordia-contracts} \label{subsubsection:4-3-1-concordia-contracts-unit} -Το άρθρωμα αυτό επιτελεί δύο ενέργειες. Αρχικά, είναι το άρθρωμα στο οποίο αναπτύσσονται τα contracts που χρησιμοποιούνται από την εφαρμογή. Το άρθρωμα αυτό αναλαμβάνει τη μεταγλώττιση των contracts από κώδικα γλώσσας Solidity, στην κατάλληλη τελική μορφή JSON. Παρέχονται επίσης σενάρια ενεργειών (scripts) ώστε τα contracts να μεταφορτωθούν σε blockchain καθώς και στην υπηρεσία Concordia Contracts Provider. Αποτελεί επίσης βιβλιοθήκη η οποία μετά τη μεταγλώττιση και μεταφόρτωση των contracts σε blockchain παρέχει τα contract artifacts. Χρησιμοποιείται από τις υπηρεσίες Concordia Application και Concordia Pinner. +Το άρθρωμα αυτό επιτελεί δύο ενέργειες. Αρχικά, είναι το άρθρωμα στο οποίο αναπτύσσονται τα contracts που χρησιμοποιούνται από την εφαρμογή. Το άρθρωμα αυτό αναλαμβάνει τη μεταγλώττιση των contracts από κώδικα γλώσσας Solidity, στην κατάλληλη τελική μορφή JSON. Παρέχονται επίσης σενάρια ενεργειών (scripts) ώστε τα contracts να μεταφορτωθούν σε blockchain καθώς και στην υπηρεσία \hyperref[subsection:4-3-5-concordia-contracts-provider-service]{Concordia Contracts Provider}. Αποτελεί επίσης βιβλιοθήκη η οποία μετά τη μεταγλώττιση και μεταφόρτωση των contracts σε blockchain παρέχει τα contract artifacts. Χρησιμοποιείται από τις υπηρεσίες \hyperref[subsection:4-3-2-concordia-application-service]{Concordia Application} και \hyperref[subsection:4-3-4-concordia-pinner-service]{Concordia Pinner}. -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της βιβλιοθήκης διαχείρισης monorepo lerna. \ No newline at end of file +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της δυνατότητας yarn workspaces. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex index 33bed8e..994335c 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.concordia-shared-unit.tex @@ -1,6 +1,6 @@ \subsubsection{Άρθρωμα concordia-shared} \label{subsubsection:4-3-1-concordia-shared-unit} -Το άρθρωμα concordia-shared αποτελεί μία βιβλιοθήκη χρήσιμων εργαλείων και σταθερών. Εδώ περιέχεται όλο το λογισμικό το οποίο πρέπει ή είναι επιθυμητό να συμπεριφέρεται με τον ίδιο τρόπο συνολικά στο σύστημα, όπως για παράδειγμα μέθοδοι παραμετροποίησης των υπηρεσιών και μέθοδοι καταγραφής (logging). Το άρθρωμα αυτό χρησιμοποιείται από το άρθρωμα concordia-contracts καθώς και από τις υπηρεσίες Concordia Application, Concordia Pinner και Concordia Contracts Provider. +Το άρθρωμα concordia-shared αποτελεί μία βιβλιοθήκη χρήσιμων εργαλείων και σταθερών. Εδώ περιέχεται όλο το λογισμικό το οποίο πρέπει ή είναι επιθυμητό να συμπεριφέρεται με τον ίδιο τρόπο συνολικά στο σύστημα, όπως για παράδειγμα μέθοδοι παραμετροποίησης των υπηρεσιών και μέθοδοι καταγραφής (logging). Το άρθρωμα αυτό χρησιμοποιείται από το άρθρωμα \hyperref[subsubsection:4-3-1-concordia-contracts-unit]{concordia-contracts} καθώς και από τις υπηρεσίες \hyperref[subsection:4-3-2-concordia-application-service]{Concordia Application}, \hyperref[subsection:4-3-4-concordia-pinner-service]{Concordia Pinner} και \hyperref[subsection:4-3-5-concordia-contracts-provider-service]{Concordia Contracts Provider}. -% make more sense -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της βιβλιοθήκης διαχείρισης μοναδικού αποθετηρίου κώδικα (monorepo) lerna. \ No newline at end of file +%TODO: make more sense (?), maybe generally add yarn to technologies used (?) +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή τοπικής βιβλιοθήκης με τη χρήση της δυνατότητας διαχείρισης μοναδικού αποθετηρίου κώδικα (monorepo) yarn workspaces{\footnote{\url{https://yarnpkg.com/features/workspaces}}}. \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex index aefdf84..7a8eb25 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex @@ -1,7 +1,7 @@ \subsubsection{Άρθρωμα breeze} \label{subsubsection:4-3-1-eth-breeze-unit} -Το άρθρωμα αυτό αποτελεί μία βιβλιοθήκη περίβλημα (wrapper) της βιβλιοθήκης OrbitDB. Η OrbitDB είναι μία βιβλιοθήκη η οποία προσφέρει τις απαραίτητες προγραμματιστικές διεπαφές για τη χρήση της βάσης δεδομένων με το ίδιο όνομα. Μέσα από τη χρήση των βιβλιοθηκών που προσφέρονται από το IPFS για την αποθήκευση δεδομένων, η OrbitDB καταφέρνει να υλοποιήσει μία αποκεντρωμένη βάση δεδομένων. +Το άρθρωμα αυτό αποτελεί μία βιβλιοθήκη περίβλημα (wrapper) της βιβλιοθήκης \hyperref[subsection:4-2-4-2-orbit-db]{OrbitDB}, η οποία παρέχει ένα \hyperref[subsection:4-2-2-1-redux]{Redux} store. -Το άρθρωμα breeze κάνει χρήση της βιβλιοθήκης OrbitDB, προσφέρει ωστόσο συγκεκριμένες προγραμματιστικές διεπαφές που διευκολύνουν τόσο την παραμετροποίηση της βάσης όσο και τη χρήση της, ενώ όπως και στο άρθρωμα drizzle το άρθρωμα breeze αναλαμβάνει να διορθώσει ορισμένα προβλήματα της πρωτότυπης βιβλιοθήκης. +Με τη συμπερίληψη του αρθρώματος στο κεντρικό Redux store της εφαρμογής, παρέχεται η δυνατότητα εκτέλεσης των λειτουργιών των OrbitDB βάσεων εντός του γενικότερου flow του frontend της εφαρμογής. Έτσι, οι προγραμματιστικές διεπαφές που προσφέρει η Orbit χρησιμοποιούνται πλέον μέσα από actions, reducers και middleware. -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. \ No newline at end of file +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του μητρώου λογισμικού npm (\url{https://www.npmjs.com/package/@ecentrics/breeze}), ενώ το αποθετήριό του βρίσκεται στο GitLab (\url{https://gitlab.com/ecentrics/breeze}). diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex index a8b55e6..cf528c5 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex @@ -1,6 +1,6 @@ \subsubsection{Άρθρωμα drizzle} \label{subsubsection:4-3-1-eth-drizzle-unit} -Το άρθρωμα drizzle που χρησιμοποιείται στην υπηρεσία Concordia Application είναι μία τροποποιημένη έκδοση της Javascript βιβλιοθήκης Drizzle που προσφέρεται από τη σουίτα εργαλείων Truffle. Η τροποποιημένη βιβλιοθήκη αναπτύχθηκε στα πλαίσια της διπλωματικής με στόχο τη διευκόλυνση της χρήσης του Drizle και την επιδιόρθωση προβληματικών σημείων της πρωτότυπης βιβλιοθήκης. +Το άρθρωμα drizzle που χρησιμοποιείται στην υπηρεσία \hyperref[subsection:4-3-2-concordia-application-service]{Concordia Application} είναι μία τροποποιημένη έκδοση της Javascript βιβλιοθήκης Drizzle (και συγκεκριμένα του @drizzle/store\footnote{\url{https://github.com/trufflesuite/drizzle/tree/develop/packages/store}}), η οποία προσφέρεται από τη σουίτα εργαλείων Truffle. Η τροποποιημένη βιβλιοθήκη αναπτύχθηκε στα πλαίσια της διπλωματικής με στόχο τη διευκόλυνση της χρήσης του Drizle και την επιδιόρθωση προβληματικών σημείων της πρωτότυπης βιβλιοθήκης. Το άρθρωμα drizzle υλοποιεί τις προγραμματιστικές διεπαφές μέσω των οποίων πραγματοποιείται η επικοινωνία της εφαρμογής με το blockchain. Για την επίτευξη της επικοινωνίας αυτής, η βιβλιοθήκη χρησιμοποιεί τη συλλογή βιβλιοθηκών web3.js η οποία αποτελεί τον πιο διαδεδομένο τρόπο διεπαφής με το blockchain σε αποκεντρωτικές εφαρμογές. diff --git a/thesis.pdf b/thesis.pdf index adcd9ba843a16c0ece1caba0a65845b9abdb2366..a6155fa4a2312f0c5a4ec1c594ffb647c96b9566 100644 GIT binary patch delta 49621 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ƼWmGeZM^F+-cCgZ4nhQ%Sg<|J$onf(5cRogtlQ` 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 Date: Tue, 11 Jan 2022 19:29:22 +0200 Subject: [PATCH 3/3] feat: add subsection 4.3.1 stuff --- assets/code/orbit-db-identity.js | 8 ++++---- .../4.2.4.2.orbit-db.tex | 1 + .../4.3.1.eth-breeze-unit.tex | 2 +- .../4.3.1.eth-drizzle-unit.tex | 4 ++-- .../4.3.1.eth-identity-provider-unit.tex | 15 +++++++++++++-- thesis.pdf | Bin 9133424 -> 9135430 bytes 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/assets/code/orbit-db-identity.js b/assets/code/orbit-db-identity.js index 8306a06..052e953 100644 --- a/assets/code/orbit-db-identity.js +++ b/assets/code/orbit-db-identity.js @@ -1,12 +1,12 @@ { - _id: '', + id: '', // Auto-generated by OrbitDB - _publicKey: '', + publicKey: '', signatures: { //Allows the owner of id to prove they own the private key associated with publicKey - id: '', + id: '', //This links the two ids - publicKey: '' + publicKey: '' }, type: 'orbitdb' } diff --git a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex index 6cebc57..c0b9f23 100644 --- a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex +++ b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.4.ipfs-technologies/4.2.4.2.orbit-db.tex @@ -26,6 +26,7 @@ \begin{enumitemcenteredfigure} \simplelisting[width=.95\textwidth]{orbit-db-identity.js} \caption{OrbitDB Identity} + \label{figure:4-2-4-2-orbit-db-identity} \end{enumitemcenteredfigure} \item \textbf{Access Control}: Κατά τη δημιουργία μίας βάσης μπορούν να οριστούν όσοι θα έχουν δικαίωμα εγγραφής σε αυτή, μέσω ενός ελεγκτή πρόσβασης (access controller). Ο ελεγκτής θα περιλαμβάνει τα public keys τους, τα οποία μπορούν να ανακτηθούν από το identity του καθενός. Από προεπιλογή και αν δεν ορίζεται διαφορετικά, δίνεται πρόσβαση εγγραφής μόνο στον δημιουργό της βάσης. diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex index 7a8eb25..bb5f933 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-breeze-unit.tex @@ -1,6 +1,6 @@ \subsubsection{Άρθρωμα breeze} \label{subsubsection:4-3-1-eth-breeze-unit} -Το άρθρωμα αυτό αποτελεί μία βιβλιοθήκη περίβλημα (wrapper) της βιβλιοθήκης \hyperref[subsection:4-2-4-2-orbit-db]{OrbitDB}, η οποία παρέχει ένα \hyperref[subsection:4-2-2-1-redux]{Redux} store. +Το άρθρωμα αυτό αναπτύχθηκε στα πλαίσια της διπλωματικής εργασίας και αποτελεί μία βιβλιοθήκη περίβλημα (wrapper) της βιβλιοθήκης \hyperref[subsection:4-2-4-2-orbit-db]{OrbitDB}, η οποία παρέχει ένα \hyperref[subsection:4-2-2-1-redux]{Redux} store. Με τη συμπερίληψη του αρθρώματος στο κεντρικό Redux store της εφαρμογής, παρέχεται η δυνατότητα εκτέλεσης των λειτουργιών των OrbitDB βάσεων εντός του γενικότερου flow του frontend της εφαρμογής. Έτσι, οι προγραμματιστικές διεπαφές που προσφέρει η Orbit χρησιμοποιούνται πλέον μέσα από actions, reducers και middleware. diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex index cf528c5..d586d0e 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-drizzle-unit.tex @@ -2,6 +2,6 @@ Το άρθρωμα drizzle που χρησιμοποιείται στην υπηρεσία \hyperref[subsection:4-3-2-concordia-application-service]{Concordia Application} είναι μία τροποποιημένη έκδοση της Javascript βιβλιοθήκης Drizzle (και συγκεκριμένα του @drizzle/store\footnote{\url{https://github.com/trufflesuite/drizzle/tree/develop/packages/store}}), η οποία προσφέρεται από τη σουίτα εργαλείων Truffle. Η τροποποιημένη βιβλιοθήκη αναπτύχθηκε στα πλαίσια της διπλωματικής με στόχο τη διευκόλυνση της χρήσης του Drizle και την επιδιόρθωση προβληματικών σημείων της πρωτότυπης βιβλιοθήκης. -Το άρθρωμα drizzle υλοποιεί τις προγραμματιστικές διεπαφές μέσω των οποίων πραγματοποιείται η επικοινωνία της εφαρμογής με το blockchain. Για την επίτευξη της επικοινωνίας αυτής, η βιβλιοθήκη χρησιμοποιεί τη συλλογή βιβλιοθηκών web3.js η οποία αποτελεί τον πιο διαδεδομένο τρόπο διεπαφής με το blockchain σε αποκεντρωτικές εφαρμογές. +Το άρθρωμα drizzle υλοποιεί τις προγραμματιστικές διεπαφές μέσω των οποίων πραγματοποιείται η επικοινωνία της εφαρμογής με το blockchain. Για την επίτευξη της επικοινωνίας αυτής, η βιβλιοθήκη χρησιμοποιεί τη συλλογή βιβλιοθηκών web3.js η οποία αποτελεί τον πιο διαδεδομένο τρόπο διεπαφής με το blockchain σε αποκεντρωτικές εφαρμογές. Τελικά, παρέχει ένα Redux store, το οποίο συμπεριλαμβάνεται στο κεντρικό store της εφαρμογής. -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. \ No newline at end of file +Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του μητρώου λογισμικού npm (\url{https://www.npmjs.com/package/@ecentrics/drizzle}), ενώ το αποθετήριό του βρίσκεται στο GitLab (\url{https://gitlab.com/ecentrics/drizzle}). \ No newline at end of file diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex index 693f9a5..c3cb86f 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-units/4.3.1.eth-identity-provider-unit.tex @@ -1,5 +1,16 @@ \subsubsection{Άρθρωμα eth-identity-provider} \label{subsubsection:4-3-1-eth-identity-provider-unit} -Η λειτουργία της βάση OrbitDB απαιτεί τη δημιουργία ενός μοναδικού αναγνωριστικού χρήστη (identity). Για την εύκολη εξαγωγή ενός αναγνωριστικού χρήστη το οποίο να είναι μεν μοναδικό αλλά να είναι δυνατός ο επανυπολογισμός, χρησιμοποιήθηκε ο συνδυασμός της διεύθυνσης του χρήστη στο δίκτυο Ethereum με τη διεύθυνση του βασικού contract που χρησιμοποιεί η εφαρμογή. Ο υπολογισμός του συνδυασμού αυτού υλοποιείται από αυτό το άρθρωμα. +Η λειτουργία της βάσης OrbitDB επιτρέπει τη χρήση προσαρμοσμένων orbit-db-identity-provider, οι οποίοι θα δημιουργούν και θα επικυρώνουν +τα μοναδικά αναγνωριστικά των χρήστών (OrbitDB Identity) βάσει προσαρμοσμένων εξωτερικών αναγνωριστικών (external identifier), όπως παρουσιάζεται στο σχήμα \ref{figure:4-2-4-2-orbit-db-identity}. -Το άρθρωμα αυτό γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του αποθετηρίου λογισμικού npm. \ No newline at end of file +Στην περίπτωση της εφαρμογής Concordia είναι χρήσιμο να μπορούν να υπολογιστούν με ντετερμινιστικό τρόπο οι OrbitDB βάσεις δεδομένων του κάθε χρήστη, για λόγους απλότητας και εξοικονόμησης αποθηκευτικού χώρου επί του blockchain. Έτσι, αφού κάθε χρήστης ορίζεται μοναδικά μέσω της διεύθυνσης Ethereum με την οποία εγγράφεται και συνδέεται, αυτή θα πρέπει να αποτελεί και το εξωτερικό αναγνωριστικό στο πεδίο id της OrbitDB Identity. + +Για αυτόν το λόγο υλοποιήθηκε το άρθρωμα eth-identity-provider, το οποίο: + +\begin{itemize} + \item Παράγει ένα OrbitDB Identity για τον χρήστη, με id τον συνδυασμο του Ethereum address του και του address του κεντρικού contract της εφαρμογής\footnote{Το δεύτερο εισήχθη για την αποφυγή προβλημάτων σε πολλαπλές αναπτύξεις συμβολαίων.}. Αυτό επιτυγχάνεται με την υπογραφή μίας συναλλαγής με το Ethereum private key του χρήστη, μέσω του MetaMask. + \item Επικυρώνει τις OrbitDB Identity που απαιτούνται, εξασφαλίζοντας ότι υπογράφηκαν από τα Ethereum private key των κατόχων τους. + \item Διασφαλίζει ντετερμινιστικές, υπολογίσιμες διευθύνσεις OrbitDB βάσεων για τον κάθε χρήστη. +\end{itemize} + +Αυτό το άρθρωμα γίνεται διαθέσιμο για χρήση με τη μορφή βιβλιοθήκης μέσω του μητρώου λογισμικού npm (\url{https://www.npmjs.com/package/@ecentrics/eth-identity-provider}), ενώ το αποθετήριό του βρίσκεται στο GitLab (\url{https://gitlab.com/ecentrics/eth-identity-provider}). diff --git a/thesis.pdf b/thesis.pdf index a6155fa4a2312f0c5a4ec1c594ffb647c96b9566..6cdab7993bf1ca5af146cfdfbef78ebe2beaedf2 100644 GIT binary patch delta 69731 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 WGM7eOiyjO!F*h(a3MC~)Peuw$rlZIJ delta 67732 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