Μετάβαση στο κύριο περιεχόμενο
Change page

Αρχιτεκτονική κόμβου

Ένας κόμβος Ethereum αποτελείται από δύο πελάτες: έναν πελάτη εκτέλεσης και έναν πελάτη συναίνεσης.

Όταν το Ethereum χρησιμοποιούσε proof-of-work (απόδειξη εργασίας), ένας πελάτης εκτέλεσης ήταν αρκετός για να τρέξει έναν πλήρη κόμβο Ethereum. Ωστόσο, από την εφαρμογή του proof-of-stake (απόδειξη συμμετοχής), ο πελάτης εκτέλεσης πρέπει να χρησιμοποιηθεί μαζί με ένα άλλο κομμάτι λογισμικού που ονομάζεται «πελάτης συναίνεσης».

Το παρακάτω διάγραμμα δείχνει τη σχέση μεταξύ των δύο πελατών Ethereum. Οι δύο πελάτες συνδέονται στα δικά τους αντίστοιχα δίκτυα peer-to-peer (P2P). Απαιτούνται ξεχωριστά δίκτυα P2P καθώς οι πελάτες εκτέλεσης διασπείρουν συναλλαγές μέσω του δικτύου τους P2P, επιτρέποντάς τους να διαχειρίζονται την τοπική ομάδα συναλλαγών τους, ενώ οι πελάτες συναίνεσης διασπείρουν μπλοκ στο δίκτυο P2P τους, επιτρέποντας τη συναίνεση και την ανάπτυξη της αλυσίδας.

Για να λειτουργήσει αυτή η δομή δύο πελατών, οι πελάτες συναίνεσης πρέπει να μπορούν να μεταβιβάζουν δέσμες συναλλαγών στον πελάτη εκτέλεσης. Η εκτέλεση των συναλλαγών τοπικά είναι ο τρόπος με τον οποίο ο πελάτης επικυρώνει ότι οι συναλλαγές δεν παραβιάζουν κανέναν κανόνα του Ethereum και ότι η προτεινόμενη ενημέρωση στην κατάσταση του Ethereum είναι σωστή. Ομοίως, όταν ο κόμβος επιλέγεται ως παραγωγός μπλοκ, ο πελάτης συναίνεσης πρέπει να μπορεί να ζητήσει δέσμες συναλλαγών από το Geth για να τις συμπεριλάβει στο νέο μπλοκ και να τις εκτελέσει για να ενημερώσει την καθολική κατάσταση. Αυτή την επικοινωνία μεταξύ πελατών τη διαχειρίζεται μια τοπική σύνδεση RPC χρησιμοποιώντας τη μηχανή API(opens in a new tab).

Τι κάνει ο πελάτης εκτέλεσης;

Ο πελάτης εκτέλεσης είναι υπεύθυνος για τον χειρισμό συναλλαγών, τη διασπορά συναλλαγών, τη διαχείριση κατάστασης και την υποστήριξη του εικονικού μηχανήματος του Ethereum (EVM). Ωστόσο, δεν είναι υπεύθυνος για τη δημιουργία μπλοκ, τη διασπορά μπλοκ ή τον χειρισμό της λογικής συναίνεσης. Αυτά είναι αρμοδιότητα του πελάτη συναίνεσης.

Ο πελάτης εκτέλεσης δημιουργεί ωφέλιμα φορτία εκτέλεσης: τη λίστα των συναλλαγών, το ενημερωμένο trie κατάστασης και άλλα δεδομένα που σχετίζονται με την εκτέλεση. Οι πελάτες συναίνεσης συμπεριλαμβάνουν το φορτίο εκτέλεσης σε κάθε μπλοκ. Ο πελάτης εκτέλεσης είναι επίσης υπεύθυνος για την επανεκτέλεση συναλλαγών σε νέα μπλοκ για να διασφαλίσει ότι είναι έγκυρες. Η εκτέλεση των συναλλαγών πραγματοποιείται στον ενσωματωμένο υπολογιστή του πελάτη εκτέλεσης, γνωστό ως Εικονικό μηχάνημα του Ethereum (EVM).

Ο πελάτης εκτέλεσης προσφέρει επίσης μια διεπαφή χρήστη στο Ethereum μέσω μεθόδων RPC που επιτρέπουν στους χρήστες να υποβάλλουν ερωτήματα στο blockchain του Ethereum, να υποβάλλουν συναλλαγές και να αναπτύσσουν έξυπνα συμβόλαια. Συνηθίζεται ο χειρισμός των κλήσεων RPC να γίνεται από βιβλιοθήκη όπως οι Web3js(opens in a new tab), Web3py(opens in a new tab), ή από διεπαφή χρήστη, όπως πορτοφόλι προγράμματος περιήγησης.

Συνοπτικά, ο πελάτης εκτέλεσης είναι:

  • μια πύλη πρόσβασης του χρήστη στο Ethereum
  • έδρα της εικονικής μηχανής Ethereum, της ομάδας καταστάσεων και συναλλαγών του Ethereum.

Τι κάνει ο πελάτης συναίνεσης;

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

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

Επικυρωτές

Οι χειριστές κόμβων μπορούν να προσθέσουν έναν επικυρωτή στους πελάτες συναίνεσης τους καταθέτοντας 32 ETH στο συμβόλαιο κατάθεσης. Ο πελάτης επικύρωσης συνοδεύεται από τον πελάτη συναίνεσης και μπορεί να προστεθεί σε έναν κόμβο ανά πάσα στιγμή. Ο επικυρωτής χειρίζεται βεβαιώσεις και προτάσεις μπλοκ. Επιτρέπουν σε έναν κόμβο να συγκεντρώνει ανταμοιβές ή να χάνει ETH μέσω ποινών ή περικοπών. Η εκτέλεση του λογισμικού επικύρωσης καθιστά επίσης έναν κόμβο κατάλληλο να επιλεγεί για να προτείνει ένα νέο μπλοκ.

Περισσότερα για την αποθήκευση.

Στοιχεία σύγκρισης κόμβων

Πρόγραμμα εκτέλεσηςΠρόγραμμα συναίνεσηςΕπαληθευτής
Διασπείρει συναλλαγές μέσω δικτύου p2p τουΔιασπείρει μπλοκ και βεβαιώσεις μέσω δικτύου p2p τουΠροτείνει μπλοκ
Εκτέλεση/επανεκτέλεση συναλλαγώνΕκτελεί τον αλγόριθμο επιλογής forkΜαζεύει ανταμοιβές/ποινές
Επαληθεύει τις εισερχόμενες αλλαγές κατάστασηςΠαρακολουθεί την κεφαλή της αλυσίδαςΚάνει βεβαιώσεις
Διαχειρίζεται την κατάσταση και παραλαμβάνει trieΔιαχειρίζεται την κατάσταση Beacon (περιέχει πληροφορίες συναίνεσης και εκτέλεσης)Απαιτεί την αποθήκευση 32 ETH
Δημιουργεί ωφέλιμα φορτία εκτέλεσηςΠαρακολουθεί τη συσσωρευμένη τυχαιότητα στο RANDAOΜπορεί να διαιρεθεί
Εκθέτει το JSON-RPC API για αλληλεπίδραση με το EthereumΠαρακολουθεί την αιτιολόγηση και την οριστικοποίηση

Περισσότερες πληροφορίες

Ήταν χρήσιμο αυτό το άρθρο;