From b064df25d17ecfae46c00b2b277a2c53141dafdb Mon Sep 17 00:00:00 2001 From: Ezerous Date: Sat, 19 Mar 2022 18:55:46 +0200 Subject: [PATCH] fix: service pack 6 --- chapters/0.preamble/0.0.preamble.tex | 4 ++++ chapters/0.preamble/0.4.toc.tex | 2 ++ chapters/1.introduction/1.5.methodology.tex | 2 +- .../1.introduction/1.7.document-structure.tex | 4 ++-- .../2.theoretical-background/2.6.ethereum.tex | 2 +- ...plementation-methodology-specification.tex | 2 +- .../4.1.implementation-methodology.tex | 2 +- .../4.2.2.ui-technologies/4.2.2.2.redux.tex | 2 +- .../4.3.1.3.eth-identity-provider-module.tex | 4 ++-- .../4.3.1.5.breeze-module.tex | 2 +- .../4.3.4.concordia-pinner-service.tex | 2 +- .../4.3.8.service-communication.tex | 6 +++--- .../4.3.9.data-flow.tex | 2 +- .../4.4.problems-faced.tex | 1 + .../4.5.implemented-parts.tex | 4 ++-- .../5.1.conclusions.tex | 4 ++-- .../5.2.open-areas.tex | 6 +++--- chapters/appendix/appendix-b.tex | 2 +- thesis.pdf | Bin 13644012 -> 13644011 bytes 19 files changed, 30 insertions(+), 23 deletions(-) diff --git a/chapters/0.preamble/0.0.preamble.tex b/chapters/0.preamble/0.0.preamble.tex index 8d63735..efd15f5 100644 --- a/chapters/0.preamble/0.0.preamble.tex +++ b/chapters/0.preamble/0.0.preamble.tex @@ -12,3 +12,7 @@ \input{chapters/0.preamble/0.4.toc} \newpage + +% Restore headings set in 0.4 +\fancyhead[L]{\nouppercase{\rightmark}} +\fancyhead[R]{\nouppercase{\leftmark}} diff --git a/chapters/0.preamble/0.4.toc.tex b/chapters/0.preamble/0.4.toc.tex index d937ccf..258df11 100644 --- a/chapters/0.preamble/0.4.toc.tex +++ b/chapters/0.preamble/0.4.toc.tex @@ -1,5 +1,7 @@ % TOC bookmark solution found here: % https://tex.stackexchange.com/questions/97024/how-to-add-the-pdf-bookmark-of-toc-without-its-name-contents-in-toc \clearpage +\fancyhead[L]{Περιεχόμενα} +\fancyhead[R]{} \pdfbookmark{\contentsname}{toc} \tableofcontents \label{toc} diff --git a/chapters/1.introduction/1.5.methodology.tex b/chapters/1.introduction/1.5.methodology.tex index f669104..4e4abc3 100644 --- a/chapters/1.introduction/1.5.methodology.tex +++ b/chapters/1.introduction/1.5.methodology.tex @@ -1,6 +1,6 @@ \section{Μεθοδολογία της διπλωματικής}\label{section:1-5-methodology} -Έναυσμα της παρούσας εργασίας αποτέλεσε η παρατηρήση της αρχιτεκτονικής δομής των σύγχρονων διαδικτυακών εφαρμογών και η ανάγκη διερεύνησης των επιπτώσεών της στον τελικό χρήστη. +Έναυσμα της παρούσας εργασίας αποτέλεσε η παρατήρηση της αρχιτεκτονικής δομής των σύγχρονων διαδικτυακών εφαρμογών και η ανάγκη διερεύνησης των επιπτώσεών της στον τελικό χρήστη. Αρχικά, ορίστηκε με σαφήνεια το πρόβλημα (\hyperref[section:1-3-problem-definition]{ενότητα 1.3}) και ο στόχος της διπλωματικής (\hyperref[section:1-4-thesis-goal]{ενότητα 1.4}), λαμβάνοντας την απόφαση να περιοριστεί στον τομέα των μέσων κοινωνικής δικτύωσης και της ψηφιακής δημοκρατίας. diff --git a/chapters/1.introduction/1.7.document-structure.tex b/chapters/1.introduction/1.7.document-structure.tex index 6c2196f..12c74ab 100644 --- a/chapters/1.introduction/1.7.document-structure.tex +++ b/chapters/1.introduction/1.7.document-structure.tex @@ -1,13 +1,13 @@ \section{Οργάνωση κεφαλαίων}\label{section:1-7-document-structure} -Η παρούσα διπλωματική εργασία οργανώνεται σε κεφάλαια, ενότητες και υποενότητες, όπως αυτά διατυπώνονται στα \hyperref[toc]{Περιεχόμενα}. +Η παρούσα διπλωματική εργασία οργανώνεται σε κεφάλαια, ενότητες και υποενότητες, όπως αυτά διατυπώνονται στα \hyperref[toc]{\textbf{Περιεχόμενα}}. Πιο συγκεκριμένα: \begin{itemize} \item Το εισαγωγικό \hyperref[chapter:1-introduction]{\textbf{Κεφάλαιο 1}} έχει ως κεντρικά θέματα την ανάλυση του όρου "αποκέντρωση" (\ref{section:1-2-decentralization}), την περιγραφή του προβλήματος (\ref{section:1-3-problem-definition}), καθώς και την παρουσίαση του στόχου (\ref{section:1-4-thesis-goal}) και της μεθοδολογίας (\ref{section:1-5-methodology}) της εργασίας . \item Το \hyperref[chapter:2-theoretical-background]{\textbf{Κεφάλαιο 2}} σχετίζεται με το θεωρητικό υπόβαθρο, το οποίο περιλαμβάνει όλες τις έννοιες που είναι απαραίτητες για την κατανόηση των διαδικασιών της σχεδίασης και της υλοποίησης της εφαρμογής. Απαρτίζεται από επτά ενότητες, στις οποίες αναλύονται σε επαρκή λεπτομέρεια οι συναρτήσεις κατακερματισμού (\ref{section:2-1-hash-functions}), η ασύμμετρη κρυπτογραφία (\ref{section:2-2-asymmetric-cryptography}), τα δένδρα Merkle (\ref{section:2-3-merkle-trees}), τα δίκτυα ομότιμων κόμβων (\ref{section:2-4-p2p-networks}), το blockchain (\ref{section:2-5-blockchain}), το Ethereum (\ref{section:2-6-ethereum}) και το IPFS (\ref{section:2-7-ipfs}). - \item Στο \hyperref[chapter:3-application-design]{\textbf{Κεφάλαιο 3}} περιγράφεται η διαδικασία της σχεδίασης της εφαρμογής. Συγκεκριμένα, ξεκινάει με τη σύλληψη της ιδέας (\ref{section:3-1-idea-conception}),την επιλογή της τεχνολογικής στοίβας (\ref{section:3-2-technology-stack}) και την παρουσίαση της μεθοδολογίας της σχεδίασης (\ref{section:3-3-design-methodology}). Συνεχίζει με τον ορισμό των κατηγοριών των χρηστών (\ref{section:3-4-user-categories}), των απαιτήσεων λογισμικού (\ref{section:3-5-software-requirements}) και των σεναριών χρήσης (\ref{section:3-6-use-cases}). Κλείνει με τις ενότητες της αρχιτεκτονική σχεδίασης (\ref{section:3-7-architecture-design}) και της + \item Στο \hyperref[chapter:3-application-design]{\textbf{Κεφάλαιο 3}} περιγράφεται η διαδικασία της σχεδίασης της εφαρμογής. Συγκεκριμένα, ξεκινάει με τη σύλληψη της ιδέας (\ref{section:3-1-idea-conception}),την επιλογή της τεχνολογικής στοίβας (\ref{section:3-2-technology-stack}) και την παρουσίαση της μεθοδολογίας της σχεδίασης (\ref{section:3-3-design-methodology}). Συνεχίζει με τον ορισμό των κατηγοριών των χρηστών (\ref{section:3-4-user-categories}), των απαιτήσεων λογισμικού (\ref{section:3-5-software-requirements}) και των σεναρίων χρήσης (\ref{section:3-6-use-cases}). Κλείνει με τις ενότητες της αρχιτεκτονική σχεδίασης (\ref{section:3-7-architecture-design}) και της προδιαγραφής της μεθόδου υλοποίησης και του χρονοπρογραμματισμού (\ref{section:3-8-implementation-methodology-specification}). \item Στο \hyperref[chapter:4-application-implementation]{\textbf{Κεφάλαιο 4}} αναλύεται η διαδικασία υλοποίησης της πιλοτικής εφαρμογής Concordia. Αρχικά γίνεται μία περιγραφή της μεθοδολογίας που ακολουθήθηκε (\ref{subsection:4-1-implementation-methodology}), καθώς και των τεχνολογιών που χρησιμοποιήθηκαν (\ref{subsection:4-2-implementation-technology-stack}). Στην ενότητα \ref{section:4-3-implementation-architecture} παρουσιάζεται η αρχιτεκτονική του περιβάλλοντος ανάπτυξης και της εφαρμογής, μέσω της ανάλυσης των συνθετικών τους στοιχείων και του τρόπου που εκείνα διασυνδέονται. Έπειτα, επισημαίνονται τα προβλήματα που προέκυψαν κατά την ανάπτυξη (\ref{section:4-4-problems-faced}) και, τελικά, παρουσιάζονται τα υλοποιημένα χαρακτηριστικά της εφαρμογής, καθώς και οι διαφορές ανάμεσα στον σχεδιασμό και την υλοποίηση (\ref{section:4-5-implemented-parts}). \item Στο \hyperref[chapter:5-conclusions-open-areas]{\textbf{Κεφάλαιο 5}} διατυπώνονται τα συμπεράσματα της εργασίας (\ref{section:5-1-conclusions}) και προτείνονται ορισμένες πιθανές μελλοντικές επεκτάσεις (\ref{section:5-2-open-areas}). diff --git a/chapters/2.theoretical-background/2.6.ethereum.tex b/chapters/2.theoretical-background/2.6.ethereum.tex index f9adba0..b93bd41 100644 --- a/chapters/2.theoretical-background/2.6.ethereum.tex +++ b/chapters/2.theoretical-background/2.6.ethereum.tex @@ -37,7 +37,7 @@ ECDSA (βλ. ενότητα \ref{section:2-2-asymmetric-cryptography}). Έτσι Επιπλέον, ο κώδικάς τους ενεργοποιείται μονάχα όταν δεχθούν μία έγκυρη συναλλαγή από κάποιον άλλον λογαριασμό (είτε εξωτερικής κατοχής, είτε συμβολαίου). Η συναλλαγή αυτή εμπεριέχει, πέρα από το απαιτούμενο fee, ένα συνοδευτικό μήνυμα με πληροφορίες σχετικές με τη συνάρτηση που πρέπει να εκτελεστεί. Η δε συνάρτηση μπορεί να πραγματοποιεί ποικίλες διαφορετικές ενέργειες, όπως την ανάγνωση και την εγγραφή στην εσωτερική αποθήκευση, την πραγματοποίηση νέων συναλλαγών, ή, ακόμα, τη δημιουργία νέων συμβολαίων. -Η σύνταξη των smart contract γίνεται κατά βάση σε γλώσσες υψηλού επιπέδου και, συγκεκριμένα, στις Solidity, Vyper και Fe\footnote{Βλ. αντίστοιχα \url{https://soliditylang.org/}, \url{https://github.com/vyperlang/vyper} και \url{https://fe-lang.org/}}. Πριν την εγγραφή τους στο blockchain, μεταγλωττίζονται σε bytecode εμηνεύσιμο από την EVM, η οποία είναι υπεύθυνη για την αποθήκευση και την εκτέλεσή του (βλ. υποενότητα \ref{subsection:2-6-5-evm}). +Η σύνταξη των smart contract γίνεται κατά βάση σε γλώσσες υψηλού επιπέδου και, συγκεκριμένα, στις Solidity, Vyper και Fe\footnote{Βλ. αντίστοιχα \url{https://soliditylang.org/}, \url{https://github.com/vyperlang/vyper} και \url{https://fe-lang.org/}}. Πριν την εγγραφή τους στο blockchain, μεταγλωττίζονται σε bytecode ερμηνεύσιμο από την EVM, η οποία είναι υπεύθυνη για την αποθήκευση και την εκτέλεσή του (βλ. υποενότητα \ref{subsection:2-6-5-evm}). \subsection{DApps} Οι DApp στο οικοσύστημα του Ethereum είναι εφαρμογές οι οποίες συνδυάζουν \textenglish{smart contracts} και \textenglish{frontend UIs}. Είναι ντετερμινιστικές, Turing-complete και εκτελούνται απομονωμένα στην EVM.\cite{2.6-ethereum-documentation} diff --git a/chapters/3.application-design/3.8.implementation-methodology-specification.tex b/chapters/3.application-design/3.8.implementation-methodology-specification.tex index 9af1d2e..88c31b9 100644 --- a/chapters/3.application-design/3.8.implementation-methodology-specification.tex +++ b/chapters/3.application-design/3.8.implementation-methodology-specification.tex @@ -8,7 +8,7 @@ Κατά τον χρονοπρογραμματισμό υιοθετήθηκαν οι τακτικές που ορίζει το Scrum. Το συνολικό προγραμματιστικό έργο χωρίστηκε σε επιμέρους διακριτούς στόχους και κάθε στόχος αντιστοιχήθηκε σε ένα Sprint. Η εργασία κάθε Sprint διαχωρίστηκε περαιτέρω σε επιμέρους epic. Ωστόσο, σε αυτό το στάδιο χρονοπρογραμματισμού δεν έγινε αναλυτικότερη περιγραφή των task των epic, διαδικασία που πραγματοποιήθηκε κατά το αρχικό στάδιο της υλοποίησης των τελευταίων. -Ως σημαντικότερος στόχος της ανάπτυξης ορίζεται η δημιουργία ενός ελάχιστου βιώσιμου προϊόντος (Minumum Viable Product - MVP). Σε αυτόν τον στόχο περιλαμβάνονται οι πιο στοιχειώδεις λειτουργίες μίας πλατφόρμας επικοινωνίας οι οποίες την κάνουν χρήσιμη, δηλαδή η δυνατότητα εγγραφής, δημιουργίας θεμάτων και μηνυμάτων και ανάγνωσης του υπάρχοντος περιεχομένου. Επειδή ο στόχος αυτός περιέχει από μόνος του σημαντική πολυπλοκότητα και δυσκολία κρίθηκε αναγκαίος ο περαιτέρω διαχωρισμός του σε τρία Sprint. +Ως σημαντικότερος στόχος της ανάπτυξης ορίζεται η δημιουργία ενός ελάχιστου βιώσιμου προϊόντος (Minimum Viable Product - MVP). Σε αυτόν τον στόχο περιλαμβάνονται οι πιο στοιχειώδεις λειτουργίες μίας πλατφόρμας επικοινωνίας οι οποίες την κάνουν χρήσιμη, δηλαδή η δυνατότητα εγγραφής, δημιουργίας θεμάτων και μηνυμάτων και ανάγνωσης του υπάρχοντος περιεχομένου. Επειδή ο στόχος αυτός περιέχει από μόνος του σημαντική πολυπλοκότητα και δυσκολία κρίθηκε αναγκαίος ο περαιτέρω διαχωρισμός του σε τρία Sprint. Στο πρώτο Sprint ορίστηκε ο στόχος της δημιουργίας μίας βάσης κώδικα (codebase), της εξοικείωσης με τα προγραμματιστικά εργαλεία του οικοσυστήματος των DApp και της επιτυχούς δημιουργίας του πρώτου έξυπνου συμβολαίου. Ως στόχος του δεύτερου Sprint ορίστηκε η δημιουργία των τεχνικών χαρακτηριστικών που αφορούν στους χρήστες της εφαρμογής και που οι ίδιοι έχουν συνηθίσει να αναμένουν από μία τέτοια πλατφόρμα. Στο τρίτο Sprint συμπεριλήφθηκαν τα τεχνικά χαρακτηριστικά που απομένουν ώστε να δημιουργηθεί το MVP. diff --git a/chapters/4.application-implementation/4.1.implementation-methodology.tex b/chapters/4.application-implementation/4.1.implementation-methodology.tex index 0b99ef4..e0a97a9 100644 --- a/chapters/4.application-implementation/4.1.implementation-methodology.tex +++ b/chapters/4.application-implementation/4.1.implementation-methodology.tex @@ -10,7 +10,7 @@ Το Scrum είναι μία μέθοδος οργάνωσης, στην οποία ο επιμελητής του Scrum (Scrum master) διαχωρίζει τα ανεξάρτητα μέρη εργασίας (tasks) που πρέπει να υλοποιηθούν για την ολοκλήρωση των στόχων ενός project. Τα μέρη αυτά περιγράφονται αναλυτικά μαζί με τις απαιτήσεις τους και κατατίθενται σε μία λίστα εργασιών (backlog). Έπειτα, μέσα από συσκέψεις (meetings), επιλέγεται ένας αριθμός από task, τα οποία ορίζουν το επόμενο προγραμματιστικό κύκλο (Sprint). Κάθε task ανατίθεται σε κάποιο μέλος για υλοποίηση. Για το Sprint ορίζεται μία χρονική διάρκεια, στόχος της οποίας είναι η περάτωση όλων των task πριν τη λήξη της. Στο τέλος της προθεσμίας που ορίστηκε για το Sprint, τα μέλη της ομάδας αποτιμούν τα αποτελέσματα και ορίζουν το επόμενο Sprint. Η διαδικασία επαναλαμβάνεται έως ότου το έργο ολοκληρωθεί. -Λόγω του πολύ μικρού μεγέθους της ομάδας, το Scrum ακολουθήθηκε ελαστικά. Συγκεκριμένα, δεν ορίστηκε ένας συγκεκριμένος επιμελητής του board αλλά κάθε μέλος της ομάδας φρόντιζε για τον ορισμό και την περιγραφή ενός μέρους των task. Τα Sprint δεν ήταν συνεχόμενα και δεν είχαν πάντα τον ίδιο χρόνο εκτέλεσης, αλλά προσαρμόζονταν ανάλογα με τις εκάστοτε ανάγκες και τον χρόνο των μελών. Για την οπτικοποίηση των task χρησιμοποιήθηκε κατά βάση η μέθοδος Kanban (που χρησιμοποιείται από το ίδιο το Scrum). Τα task χωρίστηκαν κατά κύριο λόγο στις παρακάτω λίστες: +Λόγω του πολύ μικρού μεγέθους της ομάδας, το Scrum ακολουθήθηκε ελαστικά. Συγκεκριμένα, δεν ορίστηκε ένας συγκεκριμένος επιμελητής του board, αλλά κάθε μέλος της ομάδας φρόντιζε για τον ορισμό και την περιγραφή ενός μέρους των task. Τα Sprint δεν ήταν συνεχόμενα και δεν είχαν πάντα τον ίδιο χρόνο εκτέλεσης, αλλά προσαρμόζονταν ανάλογα με τις εκάστοτε ανάγκες και τον χρόνο των μελών. Για την οπτικοποίηση των task χρησιμοποιήθηκε κατά βάση η μέθοδος Kanban (που χρησιμοποιείται από το ίδιο το Scrum). Τα task χωρίστηκαν κατά κύριο λόγο στις παρακάτω λίστες: \begin{itemize} \item "Αναμονής" (backlog), η οποία περιέχει task τα οποία δεν έχουν ακόμα εισαχθεί σε κάποιο sprint diff --git a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex index 19c21dd..56ce705 100644 --- a/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex +++ b/chapters/4.application-implementation/4.2.implementation-technology-stack/4.2.2.ui-technologies/4.2.2.2.redux.tex @@ -9,7 +9,7 @@ \item \textbf{Actions}: Αντικείμενα τα οποία περιέχουν νέα πληροφορία για την τροποποίηση του state της εφαρμογής. \item \textbf{Reducers}: Συναρτήσεις, οι οποίες λαμβάνοντας ένα action και διαβάζοντας το τρέχον state, εφαρμόζουν κάποια λογική για την παραγωγή ενός νέου state. \item \textbf{Store}: Το αντικείμενο στο οποίο βρίσκεται αποθηκευμένο το state της εφαρμογής. Η βασική ιδιότητα του state είναι ότι παραμένει αμετάβλητο και, για την ανανέωσή του, παράγεται πάντα ένα νέο state object μέσω των reducer. - \item \textbf{Middleware}: Προαιρετικά κομμάτια κώδικα που λαμβάνουν action πριν εκείνα φτάσουν στους reducer και εκτελούν κάποιο side effect. Συνήθως χρησιμοποιούνται για ενέργειες όπως logging και error reporting ή για να ενώσουν το Redux με εξωτερικά API. + \item \textbf{Middleware}: Προαιρετικά κομμάτια κώδικα που λαμβάνουν actions πριν εκείνα φτάσουν στους reducer και τα οποία εκτελούν κάποιο side effect. Συνήθως χρησιμοποιούνται για ενέργειες όπως logging και error reporting, ή για να ενώσουν το Redux με εξωτερικά API. \end{itemize} Αν και το ίδιο το Redux είναι μικροσκοπικό σε μέγεθος, ο τρόπος υλοποίησής του έχει επιτρέψει τη δημιουργία ενός τεράστιου οικοσυστήματος εργαλείων και επεκτάσεων, τα οποία συνδέονται μαζί του ή βασίζονται σε αυτό. Για παράδειγμα, μία από τις κύριες χρήσεις του είναι η κατασκευή διεπαφών χρήστη σε συνδύασμό με άλλες βιβλιοθήκες, όπως με τη React. Σε αυτήν την περίπτωση, συνδέεται μαζί της με το npm πακέτο \texttt{react-redux} και η λειτουργία του υπό ανάπτυξη UI προκύπτει ως εξής: diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.3.eth-identity-provider-module.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.3.eth-identity-provider-module.tex index 3479c37..e029892 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.3.eth-identity-provider-module.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.3.eth-identity-provider-module.tex @@ -1,7 +1,7 @@ \subsubsection{Άρθρωμα eth-identity-provider} \label{subsubsection:4-3-1-3-eth-identity-provider-module} Η λειτουργία της βάσης OrbitDB επιτρέπει τη χρήση προσαρμοσμένων orbit-db-identity-provider, οι οποίοι μπορούν να δημιουργούν και να επικυρώνουν -τα μοναδικά αναγνωριστικά των χρήστών (OrbitDB Identity) βάσει προσαρμοσμένων εξωτερικών αναγνωριστικών (external identifier), όπως παρουσιάζεται στο σχήμα \ref{figure:4-2-4-2-orbit-db-identity}. +τα μοναδικά αναγνωριστικά των χρηστών (OrbitDB Identity) βάσει προσαρμοσμένων εξωτερικών αναγνωριστικών (external identifier), όπως παρουσιάζεται στο σχήμα \ref{figure:4-2-4-2-orbit-db-identity}. Στην περίπτωση της εφαρμογής Concordia είναι χρήσιμο να μπορούν να υπολογιστούν με ντετερμινιστικό τρόπο οι OrbitDB βάσεις δεδομένων του κάθε χρήστη, για λόγους απλότητας και εξοικονόμησης αποθηκευτικού χώρου επί του blockchain. Έτσι, αφού κάθε χρήστης ορίζεται μοναδικά μέσω της διεύθυνσης Ethereum με την οποία εγγράφεται και συνδέεται, αυτή θα πρέπει να αποτελεί και το εξωτερικό αναγνωριστικό στο πεδίο id της OrbitDB Identity. @@ -9,7 +9,7 @@ Για αυτόν το λόγο υλοποιήθηκε το άρθρωμα eth-identity-provider, το οποίο: \begin{itemize} - \item Παράγει ένα OrbitDB Identity για τον χρήστη, με id τον συνδυασμο του Ethereum address του και του address του κεντρικού contract της εφαρμογής\footnote{Το δεύτερο εισήχθη για την αποφυγή προβλημάτων σε πολλαπλές αναπτύξεις συμβολαίων.}. Αυτό επιτυγχάνεται με την υπογραφή μίας συναλλαγής με το Ethereum private key του χρήστη, μέσω του MetaMask. + \item Παράγει ένα OrbitDB Identity για τον χρήστη, με id τον συνδυασμό του Ethereum address του και του address του κεντρικού contract της εφαρμογής\footnote{Το δεύτερο εισήχθη για την αποφυγή προβλημάτων σε πολλαπλές αναπτύξεις συμβολαίων.}. Αυτό επιτυγχάνεται με την υπογραφή μίας συναλλαγής με το Ethereum private key του χρήστη, μέσω του MetaMask. \item Επικυρώνει τις OrbitDB Identity που απαιτούνται, εξασφαλίζοντας ότι υπογράφηκαν από τα Ethereum private key των κατόχων τους. \item Διασφαλίζει ντετερμινιστικές, υπολογίσιμες διευθύνσεις OrbitDB βάσεων για τον κάθε χρήστη. \end{itemize} diff --git a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.5.breeze-module.tex b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.5.breeze-module.tex index 7748b05..cc94b3c 100644 --- a/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.5.breeze-module.tex +++ b/chapters/4.application-implementation/4.3.implementation-architecture/4.3.1.software-modules/4.3.1.5.breeze-module.tex @@ -1,6 +1,6 @@ \subsubsection{Άρθρωμα breeze} \label{subsubsection:4-3-1-5-breeze-module} -Το άρθρωμα breeze αναπτύχθηκε στα πλαίσια της διπλωματικής εργασίας και αποτελεί μία βιβλιοθήκη περίβλημα (wrapper) της βιβλιοθήκης OrbitDB, η οποία παρέχει ένα Redux store. +Το άρθρωμα breeze αναπτύχθηκε στα πλαίσια της διπλωματικής εργασίας και αποτελεί μία βιβλιοθήκη-περίβλημα (wrapper) της βιβλιοθήκης OrbitDB, η οποία παρέχει ένα Redux store. Με τη συμπερίληψη του store του αρθρώματος στο κεντρικό Redux store της εφαρμογής, παρέχεται η δυνατότητα εκτέλεσης των λειτουργιών των OrbitDB βάσεων εντός του γενικότερου flow του frontend. Έτσι, οι προγραμματιστικές διεπαφές που προσφέρει η OrbitDB χρησιμοποιούνται πλέον μέσα από actions, reducers και middleware. 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 index 984de5b..fd09440 100644 --- 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 @@ -2,7 +2,7 @@ \subsubsection{Περιγραφή - Στόχοι υπηρεσίας} -Η υπηρεσία καρφιτσώματος περιεχομένου (Concordia Pinner) αποτελεί μία εφαρμογή τερματικού (temrinal application/cmd application), η οποία στοχεύει στο καρφίτσωμα (pinning) του περιεχομένου που αποθηκεύεται στο IPFS μέσω της βάσης OrbitDB. Η υπηρεσία είναι γραμμένη σε γλώσσα προγραμματισμού JavaScript, ενώ η αρχιτεκτονική της παρουσιάζεται στο σχήμα \ref{figure:4-3-concordia-pinner-architecture}. +Η υπηρεσία καρφιτσώματος περιεχομένου (Concordia Pinner) αποτελεί μία εφαρμογή τερματικού (terminal application/cmd application), η οποία στοχεύει στο καρφίτσωμα (pinning) του περιεχομένου που αποθηκεύεται στο IPFS μέσω της βάσης OrbitDB. Η υπηρεσία είναι γραμμένη σε γλώσσα προγραμματισμού JavaScript, ενώ η αρχιτεκτονική της παρουσιάζεται στο σχήμα \ref{figure:4-3-concordia-pinner-architecture}. \vspace{.5\baselineskip} 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 index a72d7f8..4b689e3 100644 --- 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 @@ -14,13 +14,13 @@ Εδώ αναλύεται η επικοινωνία κάθε μικροϋπηρεσίας: \begin{itemize} - \item \textbf{Contracts Migrator}: Η υπηρεσία εκτελεί αίτημα HTTP κατά τη μεταφόρτωση των \textenglish{contract} στο Ethereum blockchain. Eπίσης, εκτελεί αίτημα HTTP για τη μεταφόρτωση των \textenglish{contract artifact} στην υπηρεσία Contracts Provider. + \item \textbf{Contracts Migrator}: Η υπηρεσία εκτελεί αίτημα HTTP κατά τη μεταφόρτωση των \textenglish{contract} στο Ethereum blockchain. Επίσης, εκτελεί αίτημα HTTP για τη μεταφόρτωση των \textenglish{contract artifact} στην υπηρεσία Contracts Provider. \item \textbf{Concordia Application}: Η υπηρεσία εκτελεί αίτημα HTTP για τη λήψη των \textenglish{contract artifact} από την υπηρεσία Contracts Provider, εκτελεί αιτήματα HTTP για τη διενέργεια συναλλαγών στο Ethereum blockchain και, τέλος, δημιουργεί κανάλι επικοινωνίας UDP με την υπηρεσία Rendezvous Server, για την ανακάλυψη ομότιμων χρηστών στο δίκτυο IPFS. \item \textbf{Pinner}: Η υπηρεσία εκτελεί αίτημα HTTP για τη λήψη των \textenglish{contract artifact} από την υπηρεσία Contracts Provider, εκτελεί αιτήματα HTTP για την ανανέωση και παρατήρηση της κατάστασης του contract στο Ethereum blockchain και τέλος δημιουργεί κανάλι επικοινωνίας UDP με την υπηρεσία Rendezvous Server για την ανακάλυψη peer στο δίκτυο IPFS. - \item \textbf{Rendezvous Server}: Η υπηρεσία διατηρεί ανοιχτά κανάλια επικοινωνίας UDP με τους ομότιμους χρήστες, μέσω των οποίων ενημερώνει τη λίστα των διαθέσιμων, ενεργών χρηστών. + \item \textbf{Rendezvous Server}: Η υπηρεσία διατηρεί ανοιχτά κανάλια επικοινωνίας UDP με τους ομότιμους χρήστες, μέσω των οποίων ενημερώνει τη λίστα των διαθέσιμων ενεργών χρηστών. - \item \textbf{Contracts Provider}: Η υπηρεσία δεν υποκινεί καμία επικοινωνία, παρά μόνο απαντά σε αιτήματα επικοινωνίας από άλλες υπηρεσίες. + \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 index 931079f..58e365e 100644 --- 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 @@ -21,7 +21,7 @@ \end{figure} \newpage -Έστω τώρα ένας χρήστης που επιθυμεί να διαβάσει το προηγούμενο θέμα. Αρχικά, πρέπει να διαβαστούν τα μεταδεδομένα του συγκεκριμένου θέματος από το blockchain. Έπειτα, διαβάζονται από το blockchain οι αύξοντες αριθμοί των μηνυμάτων που έχουν δημοσιευτεί σε αυτό το θέμα. Σε μία τελευταία ανάκτηση από το blockchain διαβάζονται τα μεταδομένα του κάθε μηνύματος. Έπειτα, η πληροφορία αυτή εμπλουτίζεται από τα δεδομένα του θέματος και των μηνυμάτων, τα οποία ανακτώνται από τις προσωπικές OrbitDB βάσεις του κάθε χρήστη. Στο σχήμα \ref{figure:4-3-data-flow-read} φαίνεται το διάγραμμα ροής της πληροφορίας κατά την ανάκτηση πληροφοριών από το σύστημα. +Έστω τώρα ένας χρήστης που επιθυμεί να διαβάσει το προηγούμενο θέμα. Αρχικά, πρέπει να διαβαστούν τα μεταδεδομένα του συγκεκριμένου θέματος από το blockchain. Έπειτα, διαβάζονται από το blockchain οι αύξοντες αριθμοί των μηνυμάτων που έχουν δημοσιευτεί σε αυτό το θέμα. Σε μία τελευταία ανάκτηση από το blockchain διαβάζονται τα μεταδεδομένα του κάθε μηνύματος. Έπειτα, η πληροφορία αυτή εμπλουτίζεται από τα δεδομένα του θέματος και των μηνυμάτων, τα οποία ανακτώνται από τις προσωπικές OrbitDB βάσεις του κάθε χρήστη. Στο σχήμα \ref{figure:4-3-data-flow-read} φαίνεται το διάγραμμα ροής της πληροφορίας κατά την ανάκτηση πληροφοριών από το σύστημα. \vspace{\baselineskip} diff --git a/chapters/4.application-implementation/4.4.problems-faced.tex b/chapters/4.application-implementation/4.4.problems-faced.tex index be0210b..d2ed257 100644 --- a/chapters/4.application-implementation/4.4.problems-faced.tex +++ b/chapters/4.application-implementation/4.4.problems-faced.tex @@ -2,6 +2,7 @@ Σε αυτήν την ενότητα περιγράφονται οι μεγαλύτερες δυσκολίες που αντιμετωπίστηκαν κατά την ανάπτυξη της πλατφόρμας. Αυτές μπορεί να αναφέρονται σε τεχνικά θέματα, αλλά και στις κοινωνικές και πολιτισμικές συνθήκες που επικρατούν στον χώρο των DApp και των crypto γενικότερα. +\newpage Μία από τις μεγαλύτερες τροχοπέδες που καθυστέρησε σοβαρά την ανάπτυξη ήταν η πρωιμότητα των βιβλιοθηκών και των εργαλείων ανάπτυξης. Οι βασικότερες βιβλιοθήκες που χρησιμοποιήθηκαν ήταν σε πρώτο ή δεύτερο πειραματικό στάδιο (alpha και beta phase αντίστοιχα). Συγκεκριμένα: \begin{itemize} diff --git a/chapters/4.application-implementation/4.5.implemented-parts.tex b/chapters/4.application-implementation/4.5.implemented-parts.tex index 1acf32e..c9b54fb 100644 --- a/chapters/4.application-implementation/4.5.implemented-parts.tex +++ b/chapters/4.application-implementation/4.5.implemented-parts.tex @@ -16,7 +16,7 @@ \item Η διαγραφή των τοπικών δεδομένων, όπως περιγράφεται στη \ref{srs:functional-srs-delete-local-data} και στο σενάριο χρήσης \ref{subsection:3-6-use-case-delete-local-data}. \end{itemize} -Τα παραπάνω αντιστοιχούν σε 11 ολοκληρωμένες από τις 13 προδιαγεγραμμένες ΛΑ ή πλήρωση 84.6\%, ποσοστό που θεωρείται από τους συγγραφείς επαρκές για την εξαγωγή συμπερασμάτων για τον χώρο των DApp και υπερβάλλον για τα πλαίσια ενός PoC. Στο \hyperref[{appendix-a}]{παράρτημα Αʹ} περιλαμβάνονται στιγμιότυπα οθόνης τα οποία αντιστοιχίζονται με τις ΛΑ των υλοποιήμενων χαρακτηριστικών. +Τα παραπάνω αντιστοιχούν σε 11 ολοκληρωμένες από τις 13 προδιαγεγραμμένες ΛΑ ή πλήρωση 84.6\%, ποσοστό που θεωρείται από τους συγγραφείς επαρκές για την εξαγωγή συμπερασμάτων για τον χώρο των DApp και υπερβάλλον για τα πλαίσια ενός PoC. Στο \hyperref[{appendix-a}]{παράρτημα Αʹ} περιλαμβάνονται στιγμιότυπα οθόνης τα οποία αντιστοιχίζονται με τις ΛΑ των υλοποιημένων χαρακτηριστικών. Τα χαρακτηριστικά τα οποία παραλήφθηκαν είναι η δημιουργία κοινοτήτων και ο ορισμός εξωτερικών contract για τα token τους, όπως περιγράφονται στις \ref{srs:functional-srs-create-communities} \& \ref{srs:functional-srs-assign-community-contract}, καθώς και στο σενάριο χρήσης \ref{subsection:3-10-use-case-create-community}. @@ -24,7 +24,7 @@ Επίσης, η ΜΛΑ που αφορά στην ελαχιστοποίηση των fee (\ref{srs:non-functional-srs-minimize-fees}) ακολουθήθηκε κατά το δυνατόν σε ολόκληρες τις διαδικασίες του σχεδιασμού και της υλοποίησης. Αυτό επιτεύχθηκε τόσο με την αποθήκευση των απολύτως απαραίτητων δεδομένων επί του blockchain, όσο και με τη βελτιστοποίηση του κώδικα των smart contract, ώστε να εκτελείται με τον μικρότερο δυνατό αριθμό υπολογιστικών κύκλων. -Τέλος, η ΜΛΑ που σχετίζεται με την αναβαθμισιμότητα των contract (\ref{srs:non-functional-srs-upgrade-contracts}) καταστρατηγήθηκε, λόγω του επιπρόσθετου χρόνου που θα απαιτούσε μία τέτοια υλοποίηση. Ωστόσο, υπάρχουν ήδη πλήρως λειτουργικές μέθοδοι για την επίτευξη αυτού του στόχου, με διαθέσιμα plugin\footnote{\url{https://docs.openzeppelin.com/upgrades-plugins/1.x/}} που μπορούν να ενσωματωθούν απευθείας στις υπάρχοντες ροές εργασίας. +Τέλος, η ΜΛΑ που σχετίζεται με την αναβαθμισιμότητα των contract (\ref{srs:non-functional-srs-upgrade-contracts}) καταστρατηγήθηκε, λόγω του επιπρόσθετου χρόνου που θα απαιτούσε μία τέτοια υλοποίηση. Ωστόσο, υπάρχουν ήδη πλήρως λειτουργικές μέθοδοι για την επίτευξη αυτού του στόχου, με διαθέσιμα plugin\footnote{\url{https://docs.openzeppelin.com/upgrades-plugins/1.x/}} που μπορούν να ενσωματωθούν απευθείας στις υπάρχουσες ροές εργασίας. \subsection{Διαφορές σχεδιασμού-υλοποίησης} \label{subsection:4-5-1-design-implementation-differences} diff --git a/chapters/5.conclusions-open-areas/5.1.conclusions.tex b/chapters/5.conclusions-open-areas/5.1.conclusions.tex index e4167e6..db3302a 100644 --- a/chapters/5.conclusions-open-areas/5.1.conclusions.tex +++ b/chapters/5.conclusions-open-areas/5.1.conclusions.tex @@ -7,7 +7,7 @@ Ωστόσο, επισημαίνεται ότι η εφαρμογή χαρακτηρίζεται από ορισμένα μειονεκτήματα, τα οποία σχετίζονται, κυρίως, με την πρώιμη κατάσταση ανάπτυξης των επιλεγμένων τεχνολογιών. Πιο συγκεκριμένα: \begin{itemize} - \item Στο Application tier, μέσω της χρήσης του Ethereum, εισάγονται όλα εκείνα τα ζητήματα που συνοδεύουν επί του παρόντος το blockchain και τα smart contract. Τα βασικότερα από αυτά είναι τα τέλη των συναλλαγών, η ανάγκη χρήσης επιπρόσθετων λογισμικών (π.χ. MetaMask) και η κλιμακοθετησιμότητά (scalability) των DApp. Σε γενικές γραμμές, το κλίμα στην παγκόσμια προγραμματιστική κοινότητα παραμένει αρκέτα πολωμένο ως προς το αν τελικά πλατφόρμες όπως το Ethereum θα μπορέσουν να ξεπεράσουν τα διάφορα προβλήματα και να ανταπεξέλθουν στις προσδοκίες. + \item Στο Application tier, μέσω της χρήσης του Ethereum, εισάγονται όλα εκείνα τα ζητήματα που συνοδεύουν επί του παρόντος το blockchain και τα smart contract. Τα βασικότερα από αυτά είναι τα τέλη των συναλλαγών, η ανάγκη χρήσης επιπρόσθετων λογισμικών (π.χ. MetaMask) και η κλιμακοθετησιμότητά (scalability) των DApp. Σε γενικές γραμμές, το κλίμα στην παγκόσμια προγραμματιστική κοινότητα παραμένει αρκετά πολωμένο ως προς το αν τελικά πλατφόρμες όπως το Ethereum θα μπορέσουν να ξεπεράσουν τα διάφορα προβλήματα και να ανταπεξέλθουν στις προσδοκίες. \begin{enumitemcenteredfigure} \includegraphics[width=.65\textwidth]{assets/figures/chapter-5/5.1.xkcd_2030_voting_software} @@ -15,7 +15,7 @@ \end{enumitemcenteredfigure} \footnotetext{\url{https://xkcd.com/2030/}} - \item Στο Data tier, το IPFS και η OrbitDB αποτελούν επίσης ιδιαίτερα καινοτόμα λογισμικά και δε θεωρούνται ακόμα production-ready. Αυτό έχει ως αποτέλεσμα να εισάγουν με τη σειρά τους διάφορα προβλήματα, όπως εκείνο της εύρεσης των ομότιμων κόμβων, η οποία επί του παρόντος βασίζεται σε signalling server\footnote{Βλ. και \url{https://github.com/libp2p/js-libp2p/issues/385}.}. Έτσι, \textit{ως προς την ανακάλυψη} των κατάλληλων peer, το δίκτυο του IPFS μπορεί προσωρινά να θεωρηθεί υβριδικό. Επιπλέον, κατά την αποσφαλμάτωση της εφαρμογής έγιναν φανερά ορισμένα ζητήματα που σχετίζονται με την αντιγραφή των δεδομένων των OrbitDB βάσεων μεταξύ των κόμβων, κάτι που είναι ιδιαίτερα σημαντικό, διότι πρόκειται για διαδικασία που αναμένεται να λειτουργεί με υψηλή αξιοπιστία. + \item Στο Data tier, το IPFS και η OrbitDB αποτελούν επίσης ιδιαίτερα καινοτόμα λογισμικά και δε θεωρούνται ακόμα production-ready. Αυτό έχει ως αποτέλεσμα να εισάγουν με τη σειρά τους διάφορα προβλήματα, όπως εκείνο της εύρεσης των ομότιμων κόμβων, η οποία επί του παρόντος βασίζεται σε signalling servers\footnote{Βλ. και \url{https://github.com/libp2p/js-libp2p/issues/385}.}. Έτσι, \textit{ως προς την ανακάλυψη} των κατάλληλων peer, το δίκτυο του IPFS μπορεί προσωρινά να θεωρηθεί υβριδικό. Επιπλέον, κατά την αποσφαλμάτωση της εφαρμογής έγιναν φανερά ορισμένα ζητήματα που σχετίζονται με την αντιγραφή των δεδομένων των OrbitDB βάσεων μεταξύ των κόμβων, κάτι που είναι ιδιαίτερα σημαντικό, διότι πρόκειται για διαδικασία που αναμένεται να λειτουργεί με υψηλή αξιοπιστία. \end{itemize} Τέλος, τονίζεται πως, παρ' όλες τις τρέχουσες δυσκολίες, οι προγραμματιστικές κοινότητες των παραπάνω τεχνολογιών εργάζονται αδιάκοπα για τη βελτίωση τους, ενώ παρόμοια εναλλακτικά project μπορούν ανά πάσα στιγμή να αντικαταστήσουν αυτά που επιλέχθηκαν στην τρέχουσα υλοποίηση της τεχνολογικής στοίβας. diff --git a/chapters/5.conclusions-open-areas/5.2.open-areas.tex b/chapters/5.conclusions-open-areas/5.2.open-areas.tex index 25ea495..fe18acc 100644 --- a/chapters/5.conclusions-open-areas/5.2.open-areas.tex +++ b/chapters/5.conclusions-open-areas/5.2.open-areas.tex @@ -34,7 +34,7 @@ \item Ψηφοφορία με σειρά προτίμησης (ranked voting): το εκλογικό σώμα θα έχει τη δυνατότητα να ψηφίζει με σειρά προτίμησης μεταξύ των διαθέσιμων επιλογών των ψηφοφοριών. \item Πολλαπλή ψήφος: ορισμένοι ψηφοφόροι θα έχουν ισχυρότερη ψήφο βάσει κάποιου κριτηρίου (π.χ. βάσει του reputation τους). \item Έμμεση ψηφοφορία: κάθε μέλος θα ορίζει αντιπρόσωπο για μία ή περισσότερες ψηφοφορίες, για ορισμένο ή αόριστο χρονικό διάστημα. - \item Μερική ψηφοφορία: επιβολή περιρισμών στο δικαίωμα ψήφου, βάσει κάποιου κριτηρίου (π.χ. ημερομηνία εγγραφής χρήστη). + \item Μερική ψηφοφορία: επιβολή περιορισμών στο δικαίωμα ψήφου, βάσει κάποιου κριτηρίου (π.χ. ημερομηνία εγγραφής χρήστη). \end{itemize} Φυσικά τα παραπάνω είναι καθαρά ενδεικτικά, πράγμα που σημαίνει ότι θα είναι εφικτό να μπορούν να δημιουργούνται εντελώς διαφορετικά συμβόλαια συστημάτων ψηφοφορίας, ανά πάσα στιγμή και από τον οποιονδήποτε. Η δε σύνδεσή τους με την εφαρμογή θα είναι όμοια με τα ήδη υλοποιημένα, αφού η μοναδική απαιτούμενη ενέργεια θα είναι η αποθήκευση ενός pointer προς το voting contract της εκάστοτε κοινότητας. @@ -43,6 +43,6 @@ Μία επιπλέον προσθήκη στην εφαρμογή μπορεί είναι ένα σύστημα απόδοσης εμπιστοσύνης (reputation system). Μέσω ενός reputation system, οι χρήστες μπορούν να κερδίζουν ή να χάνουν βαθμούς εμπιστοσύνης, με τον τρόπο που ορίζεται από το εκάστοτε smart contract. -Ορισμένες ενδεικτικές χρήσεις του είναι η συνεργασία του με τους μηχανισμούς που περιγράφονται στις υποενότητες \ref{subsection:5-2-1-ethereum-fees-management} και \ref{subsection:5-2-3-alternative-voting-systems}. Για παράδειγμα, η ισχύς της ψήφου ενός μέλους μίας κοινότητας ή το ποσό των τελών που καλείται να καταβάλλει στο Ethereum θα μπορούσαν να υπολογίζονται αναλογα με τον βαθμό εμπιστοσύνης που έχει αποκτήσει. +Ορισμένες ενδεικτικές του χρήσεις μπορούν να προκύψουν από τη συνεργασία του με τους μηχανισμούς που περιγράφονται στις υποενότητες \ref{subsection:5-2-1-ethereum-fees-management} και \ref{subsection:5-2-3-alternative-voting-systems}. Για παράδειγμα, η ισχύς της ψήφου ενός μέλους μίας κοινότητας ή το ποσό των τελών που καλείται να καταβάλλει στο Ethereum θα μπορούσαν να υπολογίζονται ανάλογα με τον βαθμό εμπιστοσύνης που έχει αποκτήσει. -Υιοθετώντας την αφηρημένη λογική που περιγράφηκε στα συστήματα ψηφοφορίας της προηγούμενης παραγράφου, είναι εφικτό να παρέχεται η δυνατότητα σε κάθε κοινότητα να επιλέγει μεταξύ ενός συνόλου διαφορετικών συστημάτων απόδοσης εμπιστοσύνης για τα μέλη της, μέσω εναλλακτικών reputation smart contract. Ήδη υπάρχει μία πλούσια γκάμα τέτοιων συστημάτων που μπορούν να υλοποιηθούν επί του Ethereum, με την ταξινομία τους να ορίζεται επί μίας πληθώρας ανεξάρτητων διαστάσεων\cite{5.2-taxonomy-of-reputation-systems}. Ωστόσο, η περαιτέρω ανάλυση τους είναι θέμα που εκτείνεται πέρα από τα πλαίσια της παρούσας διπλωματικής εργασίας. +Υιοθετώντας την αφηρημένη λογική που περιγράφηκε στα συστήματα ψηφοφορίας της προηγούμενης παραγράφου, είναι εφικτό να παρέχεται η δυνατότητα σε κάθε κοινότητα να επιλέγει μεταξύ ενός συνόλου διαφορετικών συστημάτων απόδοσης εμπιστοσύνης για τα μέλη της, μέσω εναλλακτικών reputation smart contract. Ήδη υπάρχει μία πλούσια γκάμα τέτοιων συστημάτων που μπορούν να υλοποιηθούν επί του Ethereum, με την ταξινομία τους να ορίζεται επί μίας πληθώρας ανεξάρτητων διαστάσεων\cite{5.2-taxonomy-of-reputation-systems}. Ωστόσο, η περαιτέρω ανάλυσή τους είναι θέμα που εκτείνεται πέρα από τα πλαίσια της παρούσας διπλωματικής εργασίας. diff --git a/chapters/appendix/appendix-b.tex b/chapters/appendix/appendix-b.tex index 8d3034f..62f3aa4 100644 --- a/chapters/appendix/appendix-b.tex +++ b/chapters/appendix/appendix-b.tex @@ -7,7 +7,7 @@ \captionsetup{labelformat=AppendixBTables} \setcounter{table}{0} -Στο παρόν παράρτημα παρατίθενται πίνακες με στατιστικά στοιχεία του κώδικα της εφαρμογής Concordia, καθώς και των υλοποιημένων βιβλιοθηκών. Συγκεκριμένα, πραγματοποιήθηκε καταμέτρηση των αρχείων και των γραμμών κώδικα (27-1-2022) μέσω του προγραμμάτος cloc\footnote{\url{https://github.com/AlDanial/cloc}}, διαδικασία στην οποία αγνοήθηκαν αυτόματα configuration και auto-generated αρχεία (π.χ. yarn.lock, .gitignore). +Στο παρόν παράρτημα παρατίθενται πίνακες με στατιστικά στοιχεία του κώδικα της εφαρμογής Concordia, καθώς και των υλοποιημένων βιβλιοθηκών. Συγκεκριμένα, πραγματοποιήθηκε καταμέτρηση των αρχείων και των γραμμών κώδικα (27-1-2022) μέσω του προγράμματος cloc\footnote{\url{https://github.com/AlDanial/cloc}}, διαδικασία στην οποία αγνοήθηκαν αυτόματα configuration και auto-generated αρχεία (π.χ. yarn.lock, .gitignore). \begin{center} \codestatstable{Concordia}{https://gitlab.com/ecentrics/concordia} diff --git a/thesis.pdf b/thesis.pdf index da100bd312bc655e70bd27c42e5227830e4e59d5..35604921fc9ffdb88babffb71e9e4fe69e622198 100644 GIT binary patch delta 68192 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

EPrMQfJHY8q$>v02aq`rvw9o&pta4T-Z z?d(V2j4#L>#bbCJPvA*Bh1v&-v4qSSJd5YpXJg{W_=L*$h@YaKwVsh4r~Y~|mQY_x zT*}^>VFXsf%BXXXm&DDn1zU|GK8#23DC&7R&(5_!x;@8qV za}}@Qb-aN$@fMX8h~LHAcn9y&I);7~juB*nh$~?gj3Pf4C*VZX-WZG_SP`e;3><*7 z`9)oc7(ynLco>erk>qcn9{C--k74+LN?r9xVxQ5(nY5;3IL^V{IFgzK>hn>La1-iT zSHgj`>M;)^)@Oh10vc5SPN@o9M++}I&odBhfT0OcEWC$OnnXFp4b~x zurKz*rl@07H0tpTM;)osQTzEA)E=nEtk-`$>YZJLOK^V$>iyEQTZ8Lx18%|z_!gCU zSPOUHPTYlia4+WLKCF##s8?)19$?R{h%aLSUctIph*$9%UdNkw8}&KWE8hma*bX~l zSL{w@ec~S23;SRuY7f^pi@rPJu>qOEI0Uu-kHC>Qipqw>8JLChaRKJyLR?I}_Q|EF z?~CR5Hm-ldiKtiGPrM6v;~w0L`*1%Vpk8}*V=@Qv5Kh9gsPBUFRBG?NfEV!+Ud95v zf_itfuTH_IScD~5%GlyT9hsXE>nIw6I@X0zpG~Z*v^A(tz~*FhG>gGltckTyds++P zIIP1yXAtWiw6!H_uhuvbbzQYJw!yZj&$5n1Z;^jV#lbifhhrM1qxOeH)PAme)^*Gb z)c1?NH(R3CYfo;CZLtG(K^@ySqs|tzW-D$(oipU&4%GL!J{QIK9=_xl1S?=L>f5S4 zb|9nwfzTb3u_yMXW;u4m736h}*8qLk2zAz>{jC#TMD1z%-ds&Q6{n-V5p?#LgZkc_ zgL8jz9_qIGj_86q0<6c4cn@_(`T+HOY4)yNnmDfAc2|HsK?22P?9FC`6=iU=A z3n!w!kuy*$vrzB#RGf}E_%o2eU^32eHP~6Y@CC0aV5^j1(=HqaS>`SU5ra`DK5k1_%`mvRk#}0;09ca>u^18 z#9g=v-@(ne1-Ifh+>Uv;19#$X+=CY|9}nR^+>ZzFAfCa)cm$8)F+7eZ@FbqX(|CUt z&*M3~iWjjEFX3e@z$FDqy3}=OQr0K zL41)&v@fE9`ZYBSb!D~|>e{HTsOnm$e)Ft}y4D$kEwLWfMqR=5p?=BKb;+jaNBut8 z0uyin>iS(Gw!_w_Ukmk`=$c?ECZm6@+4V&IMwfzvP}k|k;b7F2HC=rhg=shzN8@~) zh~qI6b1`z?MYXTbiGMeh?e1M%*Tzm7T4oe+=QD^ z*I%~dUfhYhQU70JA09?sH_`vxID-0rAZPI;>i=Wh!%KJ`^*v(?`Z{cnF za2M2`_5h#ZBh>YUVth`e_D}u)gi?7EwZOii#b5|}F$g2DB8FiUR>CS6ja9KaHbMQ* zkUCf!8(>|mkBzY*`mr-6;9J-N+hQWN#!lD{J4o4o9C1hQAHH<`&quC*xov0HUCMrR zzsr^Vw9NJAz*#3t*)Q&zVA+5Fq+6zkl>M6TX8!MI$8zcB>iutP9Vq2NITrVn^7I&s z2Rrd`i+f4=!6=J|Iq`andrSET*DX$$@(+C$_mT3izP5P0l>Z^w;uIEp9&ldN0?s6@Q(=Y?a%A5N4J)ZvuEK~wpnU}#Z&?5*q K3MC~)PeuwJOnw9a delta 68181 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