Tutorial Ethereum - Μια πιο βαθιά ματιά στο Ethereum!

Αυτό το πρόγραμμα εκμάθησης Ethereum εξηγεί το Ethereum από αρχιτεκτονική άποψη και επίσης πώς αποτελεί τη μεγαλύτερη πλατφόρμα για την κατασκευή DAPPS και DAOs.

Αιθέριο Φροντιστήριο:

Σε αυτό το blog του Ethereum Tutorial, θα εξηγήσω την εσωτερική λειτουργία της αρχιτεκτονικής του ethereum και θα σας δείξω επίσης την εφαρμογή του ethereum μέσω ενός απλού έξυπνη σύμβαση .



Βλέπω το Ethereum ως ένα προγραμματιζόμενο blockchain που θα εξυπηρετεί την πλειονότητα των επιχειρήσεων B2C στο μέλλον. Το Ethereum παρέχει στους προγραμματιστές την ελευθερία να δημιουργούν πολύπλοκα μοντέλα που θα εκτελούνται στο blockchain, αντί να τα περιορίζουν σε προκαθορισμένες λειτουργίες όπως το blockchain Bitcoin.



Με αυτήν την προσέγγιση, το Ethereum μετατράπηκε σε μια πλατφόρμα για μια πληθώρα αποκεντρωμένων εφαρμογών και οργανισμών που περιλαμβάνει, αλλά δεν περιορίζεται σε κρυπτονομίσματα.

Θα καλύψω μια ποικιλία θεμάτων με διεξοδικό τρόπο μέσω της εκτέλεσης αυτού του ιστολογίου 'Ethereum Tutorial'. Αυτά τα θέματα περιλαμβάνουν:



Μπορείτε να περάσετε από αυτήν την ηχογράφηση του Ethereum Tutorial όπου οι εκπαιδευτές μας έχουν εξηγήσει τα θέματα με λεπτομερή τρόπο που θα σας βοηθήσουν να κατανοήσετε καλύτερα αυτήν την ιδέα.

Εκπαιδευτικό Ethereum | Έξυπνες συμβάσεις Ethereum | Έντρεκα

Tutorial Ethereum: Λογαριασμοί Ethereum

Το δίκτυο Ethereum έχει δύο τύπους λογαριασμών, συγκεκριμένα:



  • Εξωτερικοί λογαριασμοί
  • Λογαριασμοί συμβολαίου

Αυτοί οι λογαριασμοί, τόσο εξωτερικοί όσο και συμβόλαιο αναφέρονται ως 'αντικείμενα κατάστασης' και αποτελούν το 'κράτος' του δικτύου ethereum. Κάθε αντικείμενο κατάστασης έχει μια καλά καθορισμένη κατάσταση. Για εξωτερικούς λογαριασμούς, η κατάσταση περιλαμβάνει το υπόλοιπο του λογαριασμού, ενώ για τους λογαριασμούς συμβολαίου η κατάσταση ορίζεται από την αποθήκευση και το υπόλοιπο της μνήμης.

Θα αναφέρομαι σε εξωτερικούς λογαριασμούς απλά ως λογαριασμούς. Αυτοί οι λογαριασμοί που ανήκουν εκπροσωπούνται από εξωτερικούς πράκτορες του δικτύου που περιλαμβάνουν κάθε συνηθισμένο χρήστη, ανθρακωρύχους, αυτοματοποιημένους πράκτορες κ.λπ.

Αυτοί οι λογαριασμοί ελέγχονται γενικά με τη βοήθεια αλγορίθμων κρυπτογράφησης δημόσιου κλειδιού όπως το RSA. Ο κύριος σκοπός των Εξωτερικών λογαριασμών είναι να χρησιμεύσει ως μέσο για την αλληλεπίδραση των χρηστών με το Ethereum Blockchain.

Οι συμβατικοί λογαριασμοί, από την άλλη πλευρά, είναι μια συλλογή κώδικα που βρίσκεται στο blockchain σε μια συγκεκριμένη διεύθυνση. Αυτά τα συμβόλαια επικαλούνται εξωτερικούς λογαριασμούς ή από άλλα συμβόλαια μέσω μιας συγκεκριμένης λειτουργίας παρότρυνσης για δράση. Αυτά τα συμβόλαια είναι γραμμένα σε γλώσσες σεναρίου υψηλού επιπέδου, όπως Solidity, Serpent ή LLL. Κάθε συμβόλαιο που βρίσκεται στο blockchain ethereum αποθηκεύεται σε μια συγκεκριμένη μορφή που ονομάζεται bytecode EVM (Ethereum Virtual Machine), η οποία είναι μια δυαδική μορφή συγκεκριμένη για το ethereum.

Θα είναι δίκαιο μόνο να εξηγήσω το EVM τώρα που σας έχω πει για το EVM-bytecode.

Εκπαιδευτικό πρόγραμμα Ethereum: Εικονική μηχανή Ethereum

Το Ethereum, με ρουστίκ τρόπο, καθορίζει ένα σύνολο γενικευμένων πρωτοκόλλων που έχουν γίνει οι πυλώνες της ανάπτυξης αποκεντρωμένων εφαρμογών. Στην καρδιά αυτού, βρίσκεται η εικονική μηχανή Ethereum. Το παρακάτω σχήμα εξηγεί την αρχιτεκτονική:

Ethereum Architecture - Ethereum Tutorial - Edureka

apache σπινθήρα σε σύγκριση με hadoop mapreduce

Είναι σημαντικό να σημειωθεί ότι, η Εικονική Μηχανή Ethereum δεν είναι μόνο εντελώς αμμοβολή, αλλά και εντελώς απομονωμένη. Αυτό σημαίνει ότι ο κώδικας που εκτελείται αυτήν τη στιγμή στο EVM δεν έχει πρόσβαση στο δίκτυο ή στο σύστημα αρχείων και μπορεί να αποκτήσει με φειδώ άλλες συμβάσεις.

Τώρα που κατανοούμε τον πυρήνα της πλατφόρμας, ας ρίξουμε μια πιο βαθιά ματιά στους κόμβους δικτύου.

Εκπαιδευτικό πρόγραμμα Ethereum: Το δίκτυο Ethereum

Το δίκτυο ethereum είναι ένα δημόσιο δίκτυο blockchain. Αποτελεί τη βάση όλων των αποκεντρωμένων peer-to-peer εφαρμογών και οργανισμών που λειτουργούν στο δίκτυο. Το δίκτυο αποτελείται από δύο τύπους κόμβων, δηλαδή, πλήρεις κόμβους και κόμβους ελαφρού βάρους.

Πλήρεις κόμβοι περιέχει ολόκληρο το ιστορικό συναλλαγών από το μπλοκ γενετικής. Αποτελούν πλήρη απόδειξη της ακεραιότητας του δικτύου blockchain. Οι πλήρεις κόμβοι πρέπει να περιέχουν κάθε συναλλαγή που έχει επαληθευτεί σύμφωνα με τους κανόνες που καθορίζονται από τις προδιαγραφές του Ethereum.

Ελαφροί κόμβοι από την άλλη πλευρά περιέχει μόνο ένα υποσύνολο ολόκληρου του blockchain. Αυτοί οι τύποι κόμβων χρησιμοποιούνται ως επί το πλείστον σε ηλεκτρονικά πορτοφόλια που πρέπει να έχουν ελαφριά φύση και ως εκ τούτου ολόκληρο το blockchain δεν μπορεί να αποθηκευτεί σε αυτά. Αυτοί οι κόμβοι, σε αντίθεση, δεν επαληθεύουν κάθε μπλοκ ή συναλλαγή και ενδέχεται να μην έχουν αντίγραφο της τρέχουσας κατάστασης blockchain. Βασίζονται σε πλήρεις κόμβους για να τους παρέχουν ελλείπουσες λεπτομέρειες (ή απλώς στερούνται συγκεκριμένης λειτουργικότητας). Το πλεονέκτημα των ελαφρών κόμβων είναι ότι μπορούν να σηκωθούν και να λειτουργήσουν πολύ πιο γρήγορα, να λειτουργήσουν σε πιο υπολογιστικές / περιορισμένες στη μνήμη συσκευές και να μην καταναλώνουν σχεδόν τόσο χώρο αποθήκευσης.

Κάθε δημόσιο blockchain έχει ένα νόμισμα συνδεδεμένο με αυτό. Το Ethereum δεν είναι διαφορετικό. Ας ρίξουμε μια πιο βαθιά ματιά στην κρυπτογράφηση του Ethereum.

Εκπαιδευτικό πρόγραμμα Ethereum: Ether and Gas

Το Ether είναι το όνομα του κρυπτονομίσματος που χρησιμοποιείται για την πληρωμή συναλλαγών στο δίκτυο ethereum. Εκτός από την πληρωμή για γενικές συναλλαγές και υπηρεσίες, η Ether χρησιμοποιείται επίσης για την αγορά Gas, η οποία με τη σειρά της χρησιμοποιείται για την πληρωμή υπολογισμού εντός της EVM.

Το Ether είναι η μετρική μονάδα και έχει πολλές ονομαστικές αξίες που βοηθούν στην ακριβή πληρωμή συναλλαγών και φυσικού αερίου. Η μικρότερη μονάδα βάσης ονομαστικής αξίας ονομάζεται Wei. Οι ονομασίες μαζί με τα συγκεκριμένα ονόματά τους φαίνονται στον παρακάτω πίνακα:

ΜονάδεςΑξία WeiΓεια
γεια1 weiένας
Κέι1e3 wei1.000
Mwei1ε6 wei1.000.000
Πλέκω1e9 wei1.000.000.000
microEther1e12 wei1.000.000.000.000
milliEther1ε15 wei1.000.000.000.000.000
Αιθέρας1ε18 wei1.000.000.000.000.000.000

Όπως συζητήθηκε προηγουμένως, γνωρίζουμε ότι το EVM είναι υπεύθυνο για την εκτέλεση κώδικα που αναπτύσσεται στο δίκτυό του. Τι εμποδίζει λοιπόν κάποιον να εκτελεί έναν άπειρο βρόχο στο EVM και να υπερφορτώνει εντελώς τη μνήμη του; Εδώ μπαίνει η έννοια του αερίου.

Το αέριο χρησιμοποιείται ως μέτρηση για την πληρωμή υπολογιστικών πόρων στο δίκτυο. Κάθε σύμβαση στο δίκτυο έχει μια καθορισμένη μέγιστη ποσότητα αερίου που μπορεί να χρησιμοποιήσει για τους υπολογισμούς του. Αυτό είναι γνωστό ως « Όριο αερίου 'Άλλοι σχετικοί όροι αερίου είναι οι εξής:

  • Τιμή φυσικού αερίου : Αυτό είναι το κόστος του φυσικού αερίου ως μάρκες όπως ο Ether και οι άλλες ονομασίες του. Για να σταθεροποιηθεί η αξία του φυσικού αερίου, η τιμή του φυσικού αερίου είναι μια κυμαινόμενη τιμή έτσι ώστε εάν το κόστος των συμβόλων ή του νομίσματος κυμαίνεται, η τιμή του φυσικού αερίου αλλάζει για να διατηρήσει την ίδια πραγματική τιμή.
  • Τέλη αερίου : Αυτό είναι ουσιαστικά το ποσό φυσικού αερίου που πρέπει να καταβληθεί για την εκτέλεση μιας συγκεκριμένης συναλλαγής ή προγράμματος (που ονομάζεται συμβόλαιο).

Ως εκ τούτου, εάν κάποιος προσπαθήσει να εκτελέσει ένα κομμάτι κώδικα που εκτελείται για πάντα, το συμβόλαιο θα υπερβεί τελικά το όριο φυσικού αερίου και ολόκληρη η συναλλαγή που επικαλέστηκε τη σύμβαση θα επανέλθει στην προηγούμενη κατάσταση.


Τώρα που γνωρίζουμε για το νόμισμα, ας ρίξουμε μια ματιά στη διαδικασία δημιουργίας νέου νομίσματος.

Εκπαιδευτικό πρόγραμμα Ethereum: Mining

Το Ethereum, όπως και άλλες δημόσιες τεχνολογίες blockchain διασφαλίζει την ασφάλεια μέσω ενός μοντέλου που βασίζεται σε κίνητρα. Αυτό ονομάζεται μηχανισμός απόδειξης εργασίας. Το παρακάτω σχήμα δείχνει πώς λειτουργεί η εξόρυξη ethereum:

Από μια πιο τεχνική προοπτική, ο αλγόριθμος απόδειξης εργασίας χρησιμοποιείται Ethash, ο οποίος είναι ένας αλγόριθμος κατακερματισμού εμπνευσμένος από τον Αλγόριθμο Dagger-Hashimoto.

Τώρα που έχουμε δει την λειτουργική αρχιτεκτονική του ethereum και συζητήσαμε τα βασικά στοιχεία του, ας δούμε ένα πραγματικό πρόβλημα και την προσέγγιση ethereum για την επίλυση του ίδιου.

Εκπαιδευτικό πρόγραμμα Ethereum: Αποκεντρωμένη περίπτωση χρήσης χρηματοδότησης πλήθους

Δήλωση προβλήματος : Μια καλή «ιδέα» δεν είναι τα πάντα στον σημερινό κόσμο για να ξεκινήσετε μια επιτυχημένη επιχείρηση. Απαιτείται πολλή χρηματοδότηση και προσπάθεια για την υλοποίηση μιας ιδέας. Αυτό είναι όπου οργανώσεις όπως το 'Kickstarter' έρχονται στην εικόνα. Παρέχουν στα έργα την έκθεση του κοινού που απαιτείται για δωρεές για το έργο τους για να ξεκινήσει, αλλά η κεντρική αρχιτεκτονική ενός τέτοιου κινήτρου έχει τα μειονεκτήματά της, κυρίως στον τρόπο χειρισμού των ανταμοιβών. Δεδομένου ότι η κεντρική αρχή λαμβάνει όλες τις αποφάσεις, τα συστήματα είναι επιρρεπή σε κανόνες όπως:

  • Όποιος έχασε την προθεσμία για την καμπάνια δεν μπορεί πλέον να μπει
  • κάθε δωρητής που άλλαξε γνώμη δεν μπορεί να βγει

Πλησιάζω :

Λαμβάνουμε μια αποκεντρωμένη μεθοδολογία για την αντιμετώπιση του προβλήματος, όπως εξηγείται στην παρακάτω εικόνα:

Λύση :

Εδώ είναι το έξυπνο συμβόλαιο σταθερότητας για την παραπάνω δήλωση προβλήματος.

pragma solidity ^ 0.4.16 token interface {transfer function (address receiver, uint ποσό)} συμβόλαιο Crowdsale {διεύθυνση δημόσιος δικαιούχος uint δημόσια χρηματοδότησηGoal uint δημόσιο ποσόΑύξηση uint δημόσια προθεσμία uint δημόσια τιμή token public tokenΑντιστοίχιση ανταμοιβής (διεύθυνση => uint256) δημόσιο υπόλοιπο του bool fundGoalReached = false bool crowdsaleClosed = false event GoalReached (διεύθυνση παραλήπτη, uint totalAmountRaised) event FundTransfer (διεύθυνση backer, uint ποσό, bool isContribution) / ** * Λειτουργία Constrctor * * Ρύθμιση του ιδιοκτήτη * / λειτουργία Crowdsale (διεύθυνση ifSuccessfulSendTo // η διεύθυνση του κατόχου όταν η χρηματοδότηση είναι επιτυχής uint χρηματοδότησηGoalInEthers // ποσό στόχου για αύξηση της διάρκειας uintInMinutes // δεδομένο χρόνο + διάρκειαςInMinutes * τιμή 1 λεπτού = etherCostOfEachToken * 1 αιθέρας σε kenReward = token (addressOfTokenUsedAsReward)} / ** * Λειτουργία εναλλαγής * * Η συνάρτηση χωρίς όνομα είναι η προεπιλεγμένη συνάρτηση που καλείται κάθε φορά που κάποιος στέλνει χρήματα σε μια σύμβαση * / συνάρτηση () πληρωτέα {απαιτείται (! crowdsaleClosed) uint ποσό = msg. value balanceOf [msg.sender] + = ποσό ποσόRaised + = ποσό tokenReward.transfer (msg.sender, ποσό / τιμή) FundTransfer (msg.sender, number, true)} τροποποιητής afterDeadline () {if (now = fundGoal) {fundGoalReached = true GoalReached (δικαιούχος, ποσόRaised)} crowdsaleClosed = true} / ** * Ανάληψη χρημάτων * * Έλεγχος για να διαπιστωθεί εάν έχει επιτευχθεί ο στόχος ή το χρονικό όριο και εάν ναι και ο στόχος χρηματοδότησης επιτεύχθηκε * στέλνει ολόκληρο το ποσό στον δικαιούχο. Εάν δεν επιτευχθεί στόχος, κάθε συνεισφέρων μπορεί να αποσύρει * το ποσό που συνεισέφερε. * / function safeWithdrawal () afterDeadline {if (! fundGoalReached) {uint ποσό = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (ποσό> 0) {if (msg.sender.send (ποσό)) { FundTransfer (msg.sender, number, false)} other {balanceOf [msg.sender] = number}}} εάν (fundGoalReached && beneficier == msg.sender) {if (benefici.send (numberRaised)) {FundTransfer (δικαιούχος, ποσόRaised, false)} αλλιώς {// Εάν αποτύχουμε να στείλουμε τα χρήματα στον δικαιούχο, ξεκλειδώστε χρηματοδότηση υπολοίπου χρηματοδότησηςGoalReached = false}}}}

Σε περίπτωση που σας ενδιαφέρει να μάθετε σταθερότητα, δείτε το ιστολόγιό μας στο , το οποίο χρησιμοποιείται για την ανάπτυξηεξατομικευμένηέξυπνες συμβάσεις.

Αν θέλετε να μάθετε το Blockchain και να δημιουργήσετε μια καριέρα στο Blockchain Technologies, τότε ρίξτε μια ματιά στο που έρχεται με ζωντανή εκπαίδευση με καθοδήγηση εκπαιδευτή και πραγματική εμπειρία έργου. Αυτή η εκπαίδευση θα σας βοηθήσει να κατανοήσετε το Blockchain σε βάθος και να σας βοηθήσει να επιτύχετε την εξουσία πάνω στο θέμα.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.