diff --git a/assets/figures/chapter-4/4.3.node.js-logo.png b/assets/figures/chapter-4/4.3.node.js-logo.png new file mode 100644 index 0000000..bab737c Binary files /dev/null and b/assets/figures/chapter-4/4.3.node.js-logo.png differ diff --git a/bibliography/references.bib b/bibliography/references.bib index ce2931a..a4b83c6 100644 --- a/bibliography/references.bib +++ b/bibliography/references.bib @@ -105,6 +105,11 @@ author = {GitHub Guides}, url = {https://guides.github.com/introduction/flow/} } +@misc{4.3-node.js, + title = {Node.js}, + author = {Wikipedia}, + url = {https://en.wikipedia.org/wiki/Node.js} +} @misc{4.3-orbitdb, title = {OrbitDB}, url = {https://orbitdb.org} diff --git a/chapters/4.application-implementation/4.3.implementation-technology-stack.tex b/chapters/4.application-implementation/4.3.implementation-technology-stack.tex index 9cce575..4558cc1 100644 --- a/chapters/4.application-implementation/4.3.implementation-technology-stack.tex +++ b/chapters/4.application-implementation/4.3.implementation-technology-stack.tex @@ -2,8 +2,7 @@ Η παρούσα ενότητα απαρτίζεται από υποενότητες, στις οποίες διατυπώνονται οι \textbf{σημαντικότερες} τεχνολογίες που χρησιμοποιήθηκαν για την υλοποίηση της εφαρμογής. Όλες οι τεχνολογίες αποτελούν δωρεάν λογισμικό ανοιχτού κώδικα. - -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies.tex} -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.2.ui-technologies.tex} -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies.tex} -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies.tex} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.2.ui-technologies} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies} diff --git a/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies.tex b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies.tex index 2d2cd2d..8d540e2 100644 --- a/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies.tex +++ b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies.tex @@ -2,6 +2,7 @@ Σε αυτήν την υποενότητα περιγράφονται ορισμένα θεμελιώδη εργαλεία και frameworks που συνετέλεσαν στην ανάπτυξη της εφαρμογής. -% TODO: add nodejs, docker, jenkins, janus and build steps diagram -4.3.1.development-technologies +% TODO: add docker, jenkins, janus and build steps diagram + +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies/4.3.1.1.node.js} diff --git a/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies/4.3.1.1.node.js.tex b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies/4.3.1.1.node.js.tex new file mode 100644 index 0000000..a0fa198 --- /dev/null +++ b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.1.development-technologies/4.3.1.1.node.js.tex @@ -0,0 +1,10 @@ +\subsubsection{Node.js} \label{subsection:4-3-1-1-node.js} + +\logo{chapter-4/4.3.node.js-logo}{Node.js logo} + +Το Node.js\footnote{\url{https://nodejs.org/}} είναι ένα περιβάλλον χρόνου εκτέλεσης Javascript πολλαπλών πλατφορμών, το οποίο εκτελείται στη μηχανή V8\footnote{\url{https://v8.dev/}} και παρέχει τη δυνατότητα εκτέλεσης κώδικα Javascript εκτός περιηγητών ιστού. Επιτρέπει στους προγραμματιστές να χρησιμοποιούν Javascript για τη σύνταξη εργαλείων γραμμής εντολών και τη δημιουργία κλιμακωτών διαδικτυακών εφαρμογών (κυρίως για εξυπηρετητές). Έχει αρχιτεκτονική βασισμένη σε συμβάντα (event-driven architecture), με δυνατότητα ασύγχρονης εισόδου/εξόδου (asynchronous I/O).\cite{4.3-node.js} + +Ένα από τα σημαντικότερα χαρακτηριστικά του Node.js είναι ο ενσωματωμένος διαχειριστής πακέτων του, ο οποίος ονομάζεται npm. Με τον npm γίνεται εφικτή η εγκατάσταση πακέτων (βιβλιοθηκών) από το μητρώο npm (npm registry\footnote{\url{https://www.npmjs.com/}}), καθώς και η οργάνωση και η διαχείρισή τους στα πλαίσια της ανάπτυξης μίας εφαρμογής που εξαρτάται από αυτά. + +Το Node.js έχει το αποθετήριό του στο GitHub (\url{https://github.com/nodejs/node}). + diff --git a/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies.tex b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies.tex index 554cfb4..c7cc9f1 100644 --- a/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies.tex +++ b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies.tex @@ -2,5 +2,5 @@ Στην παρούσα υποενότητα περιγράφονται εκείνες οι τεχνολογίες που σχετίζονται με το Ethereum, δηλαδή με το Application tier της τεχνολογικής στοίβας. -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies/4.3.3.1.truffle.tex} -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies/4.3.3.2.ganache.tex} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies/4.3.3.1.truffle} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.3.ethereum-technologies/4.3.3.2.ganache} diff --git a/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies.tex b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies.tex index 27678aa..6e2d36c 100644 --- a/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies.tex +++ b/chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies.tex @@ -2,6 +2,6 @@ Σε αυτήν την υποενότητα περιγράφονται όσες τεχνολογίες σχετίζονται με το IPFS (βλ. ενότητα \ref{section:2-7-ipfs}), δηλαδή με το Data tier της τεχνολογικής στοίβας της εφαρμογής. -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies/4.3.4.1.js-ipfs.tex} -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies/4.3.4.2.orbit-db.tex} -\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies/4.3.4.3.libp2p.tex} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies/4.3.4.1.js-ipfs} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies/4.3.4.2.orbit-db} +\input{chapters/4.application-implementation/4.3.implementation-technology-stack/4.3.4.ipfs-technologies/4.3.4.3.libp2p} diff --git a/thesis.pdf b/thesis.pdf index dfb5863..2cf6b74 100644 Binary files a/thesis.pdf and b/thesis.pdf differ