Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Papatzelos Spiridon

47 views

Published on

Study on Cost of Application Execution and Storing Process in Blockchain environments

Published in: Education
  • Be the first to comment

  • Be the first to like this

Papatzelos Spiridon

  1. 1. Μελέτη του Κόστους Εκτέλεσης Εφαρμογών και Αποθήκευσης Πληροφορίας σε Blockchain Περιβάλλοντα Παπατζέλος Σπυρίδων Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή, Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Επιβλέπων Επ Καθηγητής Ανδρέας Συ εωνίδης Διπλωματική Εργασία Θεσσαλονίκη, 2 Ιουλίου 2018
  2. 2. Κίνητρο ια κατανε η ένη βάση δεδο ένων προστατευ ένη από αλλοιώσεις και αλλαγές Οι συναλλαγές που πραγ ατοποιούνται στο δίκτυο καταγράφονται και εταδίδονται σε όλους τους χρήστες Διαφάνεια Απευθείας συναλλαγές εταξύ ατό ων χωρίς τη εσολάβηση ιας έ πιστης κεντρικής αρχής Γρήγορες Ασφαλείς και Φθηνότερες συναλλαγές
  3. 3. Στόχοι της Διπλωματικής Εξερεύνηση της τεχνολογίας και των διαφόρων υποδο ών Μελέτη ως προς Κόστος εκτέλεσης εφαρ ογών Κόστος αποθήκευσης δεδο ένων Αναζήτηση τεχνικών βελτιστοποίησης του κόστους των
  4. 4. Περιγραφή Υλοποίηση ιας Εφαρ ογής για τη στοιχειώδη διαχείριση της Αγροτικής Εφοδιαστικής Αλυσίδας Χρήση του περιβάλλοντος Μεθοδολογία ● Ανάλυση ε τη χρήση εργαλείων ● Μελέτη του ● Ανάλυση σεναρίων για συναρτήσεις ε χωρίς ορίσ ατα αποθήκευση σε ● Ανάλυση σεναρίων για το κόστος αποθήκευσης δεδο ένων ● Εφαρ ογή τεχνικών βελτιστοποίησης στην εφαρ ογή
  5. 5. Ethereum
  6. 6. Λογαριασμοί ή Υπόλοιπο σε Πραγ ατοποιεί συναλλαγές Ελέγχεται από ένα ζευγάρι κλειδιών δη όσιο ιδιωτικό κλειδί ή Υπόλοιπο σε Συσχετίζεται ε κώδικα Ο κώδικας εκτελείται από συναλλαγές ή ηνύ ατα από άλλα
  7. 7. Συναλλαγές - Transactions Υπογεγρα ένο πακέτο δεδο ένων Περιλα βάνει Το δέκτη του ηνύ ατος Μια υπογραφή που αναγνωρίζει τον αποστολέα Ένα πεδίο Ένα προαιρετικό πεδίο δεδο ένων το οποίο περιέχει το ήνυ α για το Μια τι ή Μια τι ή
  8. 8. Ethereum Virtual Machine Περιβάλλον Εκτέλεσης Εφαρ ογών Μέρη Αποθήκευσης Δεδο ένων α Στοίβα β Μνή η γ Δίσκος Οι υπολογισ οί στο πραγ ατοποιούνται ε την χρήση ιας γλώσσας προγρα ατισ ού που βασίζεται σε στοίβα Ένα πρόγρα α στο είναι ια σειρά από
  9. 9. Υλοποίηση ενός Smart Contract Προγρα ατισ ός ενός Μεταγλώττιση σε Μέσω Συναλλαγής Εκτέλεση του παραπάνω στο Δη ιουργία ενός λογαριασ ού ε αποθηκευ ένο τον επιθυ ητό κώδικα Αρχικοποίηση Κλήση συναρτήσεων Το Συνολικό Κόστος Κόστος για το του φορά Κόστος κλήσεις συναρτήσεων του
  10. 10. Προγραμματισμός Smart Contracts σε Solidity Τύποι δεδο ένων Ακέραιοι Χ Φυσικοί Χ Λογικές Αλφαριθ ητικά Σταθερού Μεγέθους Χ Αλφαριθ ητικά Τυχαίου Μεγέθους Καταγραφή δεδο ένων στα
  11. 11. Υπολογισμός κόστους
  12. 12. GAS Κάθε διεργασία που εκτελείται στο έχει ένα συγκεκρι ένο κόστος σε Κάθε συναλλαγή θα κοστίσει σε
  13. 13. Κόστος ενός Transaction Το σταθερό κόστος για την πραγ ατοποίηση ενός ισούται ε Κ γενική περίπτωση Κ Το κόστος του πεδίου δεδο ένων Το κόστος εκτέλεσης εντολών στο κατά τη διάρκεια της αρχικοποίησης κατά την εκτέλεση κώδικα ενός Το κόστος για την αποθήκευση κώδικα στο
  14. 14. Τύποι υπολογισμού Το κόστος των υπολογίζεται από τον παρακάτω αλγόριθ ο όπου στα δεδο ένα εισόδου η ηδενικής τι ής ηδενικής τι ής Το κόστος αποθήκευσης του κώδικα υπολογίζεται όπου
  15. 15. Σενάρια - Αποτελέσματα
  16. 16. Σενάρια Βασικά για την ανάλυση του κόστους αποθήκευσης δεδο ένων Ερωτή ατα Σύγκριση των δο ών τύπων δεδο ένων Πώς επηρεάζουν τα ορίσ ατα τύπος δεδο ένων της συνάρτησης τα Με ποια σειρά αποθηκεύονται οι εταβλητές στο του Ποιο είναι το κόστος του και η εξάρτησή του ε το τωρινό του
  17. 17. Παρατηρήσεις Το έχει έγεθος λέξης Επο ένως διαχειρίζεται πιο εύκολα λιγότερος κώδικας λιγότερο κόστος τις δο ές δεδο ένων των Πρόσβαση στο του ανά 32 bytes 32 bytes
  18. 18. [GAS] byte int8 bool bytes32 int256 string T.D. 10476 10364 10020 8932 24760 Opcodes 93 87 81 81 123 Code Deposit 44000 (220) 32200 (161) 31000 (155) 27800 (139) 76400 (382) Total 107569 95651 94101 89813 154283 [GAS] byte int8 bool bytes32 int256 string T.D. 464 464 464 [464,2448] [848,2832] Opcodes 20386 20397 20381 20139 20139 Total 41850 41861 41845 41603 41987
  19. 19. Function hash 000...0000var1 000...000varN 1. Transaction Data 0x 4 bytes 32 bytes 32 bytes Function hash 000..00020 var_string 4 bytes 32 bytes 32 bytes 00..0#bytes 32 bytes A B 2. Storage -> Κόστος A[2*20Κ+5Κ], B[3*20K] Var1 Var200..00 Var3 30 bytes 1 byte 1 byte Var1 Var20000...00000 Var30000...00000 byte00....0000 A B
  20. 20. Σύγκριση int256 με int8 Μείωση του κόστους κατά Κ για κάθε εταβλητή που αποθηκεύου ε στο ίδιο χώρο στο Κ τι ές εγέθους σε Κ εταβλητές Δυνατότητα επιλογής εταξύ των τύπων δεδο ένων και Προσεγγιστικά Η διαφορά του κόστους υλοποίησης υπολογίζεται από τον τύπο Diff = Cost(K*int256) - Cost(K*int8) = 7240 * K - 11912 - 258 * n
  21. 21. Μεταβολή πλήθους μεταβλητών, Κ [Περίπτωση χρήσης μικρού μεγέθους δομών] Χρήση τύπου int8 για περιορισμένο αριθμό μεταβολής των τιμών των μεταβλητών (n).
  22. 22. Σύγκριση Δομών Δεδομένων Βέλτιστη χρήση δο ών δεδο ένων Γενική Περίπτωση Χρήση δο ών δεδο ένων των όπως για την αποθήκευση εταβλητών οποιαδήποτε εγέθους Το διαχειρίζεται πιο εύκολα τις παραπάνω δο ές Ειδική Περίπτωση Χρήση ικρούς εγέθους δο ών δεδο ένων όπως για την αποθήκευση στατικών εταβλητών Χρήση σταθερού εγέθους πίνακα για την αποθήκευση αλφαριθ ητικών εώς έναντι
  23. 23. Προσεγγίσεις Εφαρμογής - Διαχείριση Αγροτικής Εφοδιαστικής Αλυσίδας
  24. 24. Εφαρμογή: 2 Προσεγγίσεις Το συνολικό κόστος για την υλοποίηση του της Προσέγγισης υπολογίζεται από Το συνολικό κόστος για την υλοποίηση του της Προσέγγισης υπολογίζεται από Η διαφορά τους υπολογίζεται από
  25. 25. Διαφορές -> Εξοικονόμηση Χρήση ικρού εγέθους τύπων δεδο ένων Χρήση αντί για την αρχικοποίηση εταβλητών Αποθήκευση δεδο ένων τύπου στα έσω αντί για το του Παραπάνω αλλαγές Μείωση του κώδικα
  26. 26. Ενδεικτικές τιμές Η διαφορά του κόστους των δυο προσεγγίσεων υπολογίζεται από τον τύπο Για Ν Ν Ν Μ Μ Μ Μείωση
  27. 27. Ευχαριστίες Επ Καθηγητή Ανδρέα Συ εωνίδη Ευχαριστώ για την προσοχή σας
  28. 28. ??
  29. 29. Extras
  30. 30. Κόστος ενός Transaction Το σταθερό κόστος για την πραγ ατοποίηση ενός ισούται ε Κ γενική περίπτωση Κ Το κόστος του πεδίου δεδο ένων Το κόστος εκτέλεσης εντολών στο κατά τη διάρκεια της αρχικοποίησης κατά την εκτέλεση κώδικα ενός Το κόστος για την αποθήκευση κώδικα στο
  31. 31. Deploy ενός Contract Το σταθερό κόστος για την πραγ ατοποίηση ενός ισούται ε Κ Το κόστος του πεδίου δεδο ένων Το κόστος εκτέλεσης εντολών στο κατά τη διάρκεια της αρχικοποίησης ενός Το κόστος για την αποθήκευση κώδικα στο
  32. 32. Εκτέλεση Συναρτήσεων Το σταθερό κόστος για την πραγ ατοποίηση ενός ισούται ε Κ Το κόστος του πεδίου δεδο ένων Ορίσ ατα Το κόστος εκτέλεσης εντολών στο
  33. 33. Σενάρια
  34. 34. Σενάριο 1 Όπου
  35. 35. Σενάριο 2 και ικρού εγέθους και ικρού εγέθους και ικρού εγέθους όπως
  36. 36. Συμβουλές Κατά το Αφαίρεση περιττού κώδικα Χρήση της παρα έτρου κατά τη εταγλώττιση Κατά την εκτέλεση συναρτήσεων Αφαίρεση περιττού κώδικα Χρήση Κανόνων
  37. 37. Συμβουλές (2) Μείωση τον ακριβών Αποφυγή ακριβών λειτουργιών σε επανάληψη αποθήκευση σε εταβλητή του έσα σε βρόχο Χρήση τοπικής εταβλητής Αποθήκευση στο ετά τους υπολογισ ούς
  38. 38. Σύγκριση Δομών Δεδομένων Χρήση της δο ής δεδο ένων σε αντίθεση ε τη δο ή για την αποθήκευση αλφαριθ ητικών εγέθους εώς Οι τύποι δεδο ένων έχουν το ίδιο κόστος υλοποίησης Χρήση των δο ών δεδο ένων έναντι των αντίστοιχων ικρότερων δο ών Χρήση του τύπου δεδο ένων έναντι του τύπου για αποθήκευση δεδο ένων ικρού εγέθους
  39. 39. Προσεγγίσεις
  40. 40. Παράμετρος --optimize στην μεταγλώττιση, solc Προσέγγιση έναντι Δηλαδή είωση στο κόστος Προσέγγιση έναντι Δηλαδή είωση στο κόστος
  41. 41. Προσεγγίσεις
  42. 42. Προσεγγίσεις Συναρτήσεις Προσέγγιση #1, gas Προσέγγιση #2, gas Set Farmer’s Log 45355 27013 Set Quantity [42304, 44288] [42304, 44288] Require Transfer [62704, 64688] [24519, 26497] Transfer to Driver 69638 69550 Set Driver’s Log 69528 27298 Set TemC [42694, 44678] 27884 (42884) Transfer to Lab 69528 69462 Set Farmer’s Log 45509 27122 Set Certificate 42890 27824 (42824)
  43. 43. Προσέγγιση #1
  44. 44. Προσέγγιση #2
  45. 45. Προσέγγιση #3
  46. 46. Σύγκριση Προσεγγίσεων
  47. 47. Δεδομένα Γεωργός διεύθυνση κωδικός για το χωράφι ένας κωδικός για την παραγωγή ποσότητα πληροφορίες σχετικά ε το χωράφι Μεταφορέας διεύθυνση έρα παραλαβής παράδοσης θερ οκρασία ψυγείου πληροφορίες σχετικά ε την εταφορά Εργοστάσιο διεύθυνση πιστοποίηση προϊόντος πληροφορίες για ελέγχους
  48. 48. Blockchain
  49. 49. Αποθηκευτικός χώρος στο EVM Στοίβα Κάθε στοιχείο έγεθος Μέγιστος αριθ ός στοιχείων Μνή η Πίνακας από Πρόσβαση ανά Προσωρινή Μέχρι το πέρας του προγρά ατος Δίσκος Πίνακας από Πρόσβαση ανά Μόνι η
  50. 50. Βάση δεδομένων, Blockchain Διατηρεί ια ολοένα και αυξανό ενη λίστα ε εγγραφές που ονο άζονται είδη καταχωρήσεων Αλγόριθ ος κατακερ ατισ ού Συνδεδε ένα Αλυσίδα Ακεραιότητα Ο κάθε χρήστης έχει αντίγραφο της βάσης δεδο ένων
  51. 51. Blockchain - Consensus
  52. 52. Προέλευση Εικόνων Οι εικόνες της παρούσας παρουσίασης είναι από το άρθρο του
  53. 53. Consensus - Επικρατούσα άποψη (1) Όλοι οι χρήστες έχουν τη δυνατότητα να δη ιουργήσουν ένα καινούριο σε κάποιο προϋπάρχων παλιότερο Δο ή ΒΔ δένδρο από Κάθε διαδρο ή ονοπάτι από ρίζα έχρι φύλλο ορίζει ια διαφορετική βάση δεδο ένων Τρόπος επιλογής Μονοπατιού
  54. 54. Consensus - Επικρατούσα άποψη (2) Αλγόριθ ος επιλογής ΒΔ ε την εγαλύτερη αξία κο άτι δεδο ένων το οποίο είναι δύσκολο για ένα άτο ο να το παράγει αλλά εύκολο για τους υπόλοιπους να διαπιστώσουν αν ικανοποιεί κάποιες προϋποθέσεις Παραγωγή κόστος ή χρονοβόρα
  55. 55. Βάση δεδομένων, Blockchain (2)
  56. 56. Ασφάλεια ΒΔ (1) Προδιαγραφές Προέλευση και ακεραιότητα των δεδο ένων Ασφάλεια των δεδο ένων Κινητικότητα Ενσω άτωση και Διαλειτουργικότητα των δεδο ένων
  57. 57. Ασφάλεια ΒΔ (2) Ιδιότητες Παρακολούθηση των αλλαγών Κατανε η ένη Βάση Δεδο ένων όπως
  58. 58. Λειτουργία Δικτύου Μετάδοση συναλλαγών στο δίκτυο Το συλλέγουν τις συναλλαγές σε ένα Κάθε προσπαθεί να υπολογίσει το Όταν ένας υπολογίσει το τότε ο εταδίδει το στα υπόλοιπα Αποδοχή του νέου Έγκυρες όχι Αποδοχή του Τα δουλεύουν για τη δη ιουργία του επό ενου
  59. 59. Κίνητρο Αντα οιβή για τη δη ιουργία ενός καινούριου Κατανάλωση πόρων επεξεργαστική ισχύς και κατανάλωση ηλεκτρεκτρικού ρεύ ατος Υποστήριξη δικτύου της επεξεργαστικής ισχύος στην κατοχή έντι ων χρηστών
  60. 60. Το Ethereum είναι ένα προγραμματίσιμο σύστημα Blockchain. Δεν υποστηρίζει, μόνο, ένα σύνολο από συγκεκριμένες λειτουργίες αλλά δίνει στον χρήστη τη δυνατότητα να δημιουργήσει τις δικές του λειτουργίες, οποιασδήποτε πολυπλοκότητας. Σύστημα για την ανάπτυξη κατανεμημένων εφαρμογών.

×