Κόμβοι και πελάτες
Το Ethereum είναι ένα διανεμημένο δίκτυο υπολογιστών (γνωστών ως κόμβοι) που εκτελεί λογισμικό επαληθεύοντας μπλοκ και δεδομένα συναλλαγών. Το λογισμικό πρέπει να εκτελείται στον υπολογιστή σας για να μετατραπεί σε κόμβο Ethereum. Υπάρχουν δύο ξεχωριστά κομμάτια λογισμικού (γνωστά ως «πελάτες») που απαιτούνται για να σχηματιστεί ένας κόμβος.
Προαπαιτούμενα
Θα πρέπει να κατανοήσετε την έννοια ενός δικτύου peer-to-peer και τα βασικά στοιχεία του EVM προτού προχωρήσετε βαθύτερα και εκτελέσετε το δικό σας σύστημα πελάτη Ethereum. Ρίξτε μια ματιά στην ενότητα εισαγωγή στο Ethereum.
Εάν είστε νέοι στο θέμα των κόμβων, σας συνιστούμε πρώτα να ελέγξετε τη φιλική προς το χρήστη εισαγωγή μας σχετικά με την εκτέλεση ενός κόμβου Ethereum.
Τι είναι οι κόμβοι και οι πελάτες;
Ένας "κόμβος" είναι κάθε περίπτωση λογισμικού πελάτη Ethereum που συνδέεται με άλλους υπολογιστές που εκτελούν επίσης λογισμικό Ethereum, σχηματίζοντας ένα δίκτυο. Ένας πελάτης είναι μια υλοποίηση του Ethereum που επαληθεύει τα δεδομένα σύμφωνα με τους κανόνες του πρωτοκόλλου και διατηρεί το δίκτυο ασφαλές. Ένας κόμβος πρέπει να εκτελεί δύο πελάτες: έναν πελάτη συναίνεσης και έναν πελάτη εκτέλεσης.
- Ο πελάτης εκτέλεσης (επίσης γνωστός ως Execution Engine, πελάτης EL ή πρώην πελάτης Eth1) παρακολουθεί τις νέες συναλλαγές που δημοσιεύονται στο δίκτυο, τις εκτελεί στο EVM και διατηρεί την πιο πρόσφατη κατάσταση και βάση δεδομένων όλων των δεδομένων Ethereum.
- Ο πελάτης συναίνεσης (επίσης γνωστός ως Κόμβος Beacon, πελάτης CL ή πρώην πελάτης Eth2) εφαρμόζει τον αλγόριθμο συναίνεσης της απόδειξης συμμετοχής, ο οποίος επιτρέπει στο δίκτυο να πετυχαίνει συμφωνία με βάση επικυρωμένα δεδομένα από τον πελάτη εκτέλεσης. Υπάρχει επίσης ένα τρίτο κομμάτι λογισμικού, γνωστό ως «επικυρωτής» που μπορεί να προστεθεί στον πελάτη συναίνεσης, επιτρέποντας σε έναν κόμβο να συμμετέχει στην ασφάλεια του δικτύου.
Αυτοί οι πελάτες συνεργάζονται για να παρακολουθούν την κεφαλή της αλυσίδας Ethereum και να επιτρέπουν στους χρήστες να αλληλεπιδρούν με το δίκτυο Ethereum. Ο τρόπος σχεδιασμού με πολλαπλά τμήματα λογισμικού ταυτόχρονης λειτουργίας λέγεται ενσωματωμένη πολυπλοκότητα (encapsulated complexity). Αυτή η προσέγγιση διευκόλυνε την εκτέλεση της Συγχώνευσης, διευκολύνει τη συντήρηση και ανάπτυξη του λογισμικού πελάτη και επιτρέπει την επαναχρησιμοποίηση μεμονωμένων πελατών, για παράδειγμα, στο οικοσύστημα επιπέδου 2.
Απλοποιημένο διάγραμμα ενός συνδυασμού πελάτη εκτέλεσης και συναίνεσης.
Διαφορετικότητα λογισμικού πελάτη
Οι πελάτες εκτέλεσης και συναίνεσης υπάρχουν σε μια ποικιλία γλωσσών προγραμματισμού που έχουν αναπτυχθεί από διαφορετικές ομάδες.
Πολλαπλές υλοποιήσεις πελατών μπορούν να κάνουν το δίκτυο ισχυρότερο μειώνοντας την εξάρτησή του από μια μεμονωμένη βάση κώδικα. Ο ιδανικός στόχος είναι η επίτευξη ποικιλίας χωρίς κανένας πελάτης να κυριαρχεί στο δίκτυο, εξαλείφοντας έτσι ένα πιθανό σημείο αποτυχίας. Η ποικιλία των γλωσσών προγραμματισμού προσκαλεί επίσης μια ευρύτερη κοινότητα προγραμματιστών και τους επιτρέπει να δημιουργούν ενσωματώσεις στη γλώσσα προτίμησης τους.
Μάθετε περισσότερα σχετικά με την ποικιλία πελατών.
Το κοινό χαρακτηριστικό αυτών των υλοποιήσεων είναι ότι όλες ακολουθούν μια ενιαία προδιαγραφή. Οι προδιαγραφές υπαγορεύουν τον τρόπο λειτουργίας του δικτύου Ethereum και του blockchain. Κάθε τεχνική λεπτομέρεια έχει ορισμό και οι προδιαγραφές μπορούν να βρεθούν ως:
- Αρχικά, το Ethereum Yellow Paper
- Προδιαγραφές εκτέλεσης
- Προδιαγραφές συναίνεσης
- EIPs που υλοποιούνται σε διάφορες αναβαθμίσεις δικτύου
Παρακολούθηση κόμβων στο δίκτυο
Οι πολλαπλοί ιχνηλάτες προσφέρουν μια επισκόπηση των κόμβων στο δίκτυο Ethereum σε πραγματικό χρόνο. Λάβετε υπόψη ότι λόγω της φύσης των αποκεντρωμένων δικτύων, αυτοί οι ιχνηλάτες μπορούν να παρέχουν μόνο περιορισμένη εικόνα του δικτύου και ενδέχεται να αναφέρουν διαφορετικά αποτελέσματα.
- Χάρτης κόμβων από το Etherscan
- Ethernodes από το Bitfly
- Nodewatch από την Chainsafe, ανίχνευση κόμβων συναίνεσης
- Monitoreth - από τη MigaLabs, Ένα εργαλείο παρακολούθησης κατανεμημένου δικτύου
Τύποι κόμβων
Εάν θέλετε να τρέξετε τον δικό σας κόμβο, θα πρέπει να καταλάβετε ότι υπάρχουν διαφορετικοί τύποι κόμβων που καταναλώνουν δεδομένα διαφορετικά. Στην πραγματικότητα, οι πελάτες μπορούν να εκτελέσουν τρεις διαφορετικούς τύπους κόμβων: ελαφρούς κόμβους, πλήρεις κόμβους και κόμβοι αρχείου. Υπάρχουν επίσης επιλογές διαφορετικών στρατηγικών συγχρονισμού που επιτρέπουν ταχύτερο χρόνο συγχρονισμού. Ο συγχρονισμός αναφέρεται στο πόσο γρήγορα μπορεί να λάβει τις πιο ενημερωμένες πληροφορίες για την κατάσταση του Ethereum.
Πλήρης κόμβος
Οι πλήρεις κόμβοι κάνουν μια επικύρωση μπλοκ προς μπλοκ του blockchain, συμπεριλαμβανομένης της λήψης και της επαλήθευσης του σώματος του μπλοκ και των δεδομένων κατάστασης για κάθε μπλοκ. Υπάρχουν διαφορετικές κατηγορίες πλήρους κόμβου. Μερικοί ξεκινούν από το πρώτο μπλοκ και επαληθεύουν κάθε μεμονωμένο μπλοκ σε ολόκληρο το ιστορικό του blockchain. Άλλοι ξεκινούν την επαλήθευσή τους σε ένα πιο πρόσφατο μπλοκ που πιστεύουν ότι είναι έγκυρο (π.χ. «snap sync» του Geth). Ανεξάρτητα από το πού ξεκινά η επαλήθευση, οι πλήρεις κόμβοι διατηρούν μόνο ένα τοπικό αντίγραφο σχετικά πρόσφατων δεδομένων (συνήθως τα πιο πρόσφατα 128 μπλοκ), επιτρέποντας τη διαγραφή παλαιότερων δεδομένων για εξοικονόμηση χώρου στον δίσκο. Τα παλαιότερα δεδομένα μπορούν να αναδημιουργηθούν όταν χρειάζεται.
- Αποθηκεύει πλήρη δεδομένα blockchain (αν και περικόπτονται περιοδικά, έτσι ώστε ένας πλήρης κόμβος να μην αποθηκεύει όλα τα δεδομένα κατάστασης από τη γένεση και έπειτα)
- Συμμετέχει στην επικύρωση μπλοκ, επαληθεύει όλα τα μπλοκ και καταστάσεις.
- Όλες οι καταστάσεις μπορούν είτε να ανακτηθούν από την τοπική αποθήκευση είτε να αναδημιουργηθούν από «στιγμιότυπα» από έναν πλήρη κόμβο.
- Εξυπηρετεί το δίκτυο και παρέχει δεδομένα κατόπιν αιτήματος.
Αρχείο κόμβου
Οι κόμβοι αρχείου είναι πλήρεις κόμβοι που επαληθεύουν κάθε μπλοκ από τη γένεση και δεν διαγράφουν ποτέ κανένα από τα ληφθέντα δεδομένα.
- Αποθηκεύει όλα όσα διατηρούνται στον πλήρη κόμβο και δημιουργεί ένα αρχείο ιστορικών καταστάσεων. Είναι απαραίτητο εάν θέλετε να ρωτήσετε κάτι όπως το υπόλοιπο λογαριασμού στο μπλοκ #4.000.000 ή απλά και αξιόπιστα να ελέγξετε το δικό σας σύνολο συναλλαγών χωρίς να τα κρυπτορύξετε χρησιμοποιώντας ιχνηλάτηση.
- Αυτά τα δεδομένα αντιπροσωπεύουν μονάδες terabytes, γεγονός που καθιστά τους κόμβους αρχειοθέτησης λιγότερο ελκυστικούς για τους μέσους χρήστες αλλά μπορεί να είναι χρήσιμο για υπηρεσίες όπως εξερευνητές μπλοκ, προμηθευτές πορτοφολιών και ανάλυση αλυσίδας.
Οι συγχρονισμένοι πελάτες σε οποιαδήποτε άλλη λειτουργία εκτός από το αρχείο θα έχουν ως αποτέλεσμα περικομμένα δεδομένα αλυσίδας μπλοκ. Αυτό σημαίνει ότι δεν υπάρχει αρχείο όλων των ιστορικών καταστάσεων, αλλά ο πλήρης κόμβος είναι σε θέση να τα δημιουργήσει κατ' απαίτηση.
Μάθετε περισσότερα σχετικά με τους Κόμβους αρχείου.
Ελαφρύς κόμβος
Αντί να κάνουν λήψη κάθε μπλοκ, οι ελαφροί κόμβοι κάνουν λήψη μόνο των κεφαλίδων μπλοκ. Αυτές οι κεφαλίδες περιέχουν συνοπτικές πληροφορίες σχετικά με τα περιεχόμενα των μπλοκ. Όποια άλλη πληροφορία απαιτείται από τον ελαφρύ κόμβο, ζητείται από έναν πλήρη κόμβο. Ο ελαφρύς κόμβος μπορεί στη συνέχεια να επαληθεύσει ανεξάρτητα τα δεδομένα που λαμβάνει έναντι των ριζών κατάστασης στις κεφαλίδες μπλοκ. Οι ελαφροί κόμβοι επιτρέπουν στους χρήστες να συμμετέχουν στο δίκτυο Ethereum χωρίς το ισχυρό υλικό ή το υψηλό εύρος ζώνης που απαιτείται για τη λειτουργία πλήρων κόμβων. Κάποια στιγμή, οι ελαφροί κόμβοι ίσως λειτουργήσουν σε κινητά τηλέφωνα ή ενσωματωμένες συσκευές. Οι ελαφροί κόμβοι δε συμμετέχουν στη συναίνεση (δηλαδή δεν μπορούν να είναι κρυπτορύχοι/επικυρωτές), αλλά μπορούν να έχουν πρόσβαση στην αλυσίδα μπλοκ Ethereum με την ίδια λειτουργικότητα και εγγυήσεις ασφάλειας όπως ένας πλήρης κόμβος.
Οι ελαφροί πελάτες είναι ένας τομέας ενεργού ανάπτυξης για το Ethereum και αναμένουμε να δούμε νέους ελαφρούς πελάτες για το επίπεδο συναίνεσης και το επίπεδο εκτέλεσης σύντομα. Υπάρχουν επίσης πιθανές διαδρομές για την παροχή δεδομένων ελαφρών πελατών μέσω του δικτύου ενημέρωσης. Αυτό είναι πλεονέκτημα επειδή το δίκτυο ενημέρωσης θα μπορούσε να υποστηρίξει ένα δίκτυο ελαφρών κόμβων χωρίς να απαιτείται από τους πλήρεις κόμβους να εξυπηρετούν αιτήματα.
Το Ethereum δεν υποστηρίζει ακόμη μεγάλο πληθυσμό ελαφρών κόμβων, αλλά η υποστήριξη ελαφρών κόμβων είναι ένας τομέας που αναμένεται να αναπτυχθεί γρήγορα στο κοντινό μέλλον. Συγκεκριμένα, πελάτες όπως τα Nimbus, Helios και LodeStar εστιάζουν σε μεγάλο βαθμό επί του παρόντος σε ελαφρούς κόμβους.
Γιατί να εκτελέσω έναν κόμβο Ethereum;
Η εκτέλεση ενός κόμβου σας επιτρέπει να χρησιμοποιείτε το Ethereum άμεσα, χωρίς εμπιστοσύνη και ιδιωτικά, ενώ υποστηρίζετε το δίκτυο διατηρώντας το πιο ισχυρό και αποκεντρωμένο.
Τα πλεονεκτήματα σας
Η εκτέλεση του δικού σας κόμβου σας επιτρέπει να χρησιμοποιείτε το Ethereum με ιδιωτικό, αυτάρκη και χωρίς εμπιστοσύνη τρόπο. Δεν χρειάζεται να εμπιστεύεστε το δίκτυο επειδή μπορείτε να επαληθεύσετε τα δεδομένα μόνοι σας με τον πελάτη σας. Ένα δημοφιλές μάντρα του blockchain είναι το «Μην εμπιστεύεστε, επαληθεύστε».
- Ο κόμβος σας επαληθεύει από μόνος του όλες τις συναλλαγές και τα μπλοκ με βάση τους κανόνες συναίνεσης. Αυτό σημαίνει ότι δεν χρειάζεται να βασίζεστε σε άλλους κόμβους στο δίκτυο ή να τους εμπιστεύεστε πλήρως.
- Μπορείτε να χρησιμοποιήσετε ένα πορτοφόλι Ethereum με τον δικό σας κόμβο. Μπορείτε να χρησιμοποιείτε dapp με μεγαλύτερη ασφάλεια και ιδιωτικά, επειδή δεν θα χρειάζεται να διαρρέετε τις διευθύνσεις και τα υπόλοιπα λογαριασμού σας σε μεσάζοντες. Όλα μπορούν να ελεγχθούν με τον δικό σας πελάτη. Τo MetaMask, το Frame και πολλά άλλα πορτοφόλια προσφέρουν εισαγωγή RPC, επιτρέποντάς τους να χρησιμοποιούν τον κόμβο σας.
- Μπορείτε να εκτελέσετε και να φιλοξενήσετε μόνοι σας άλλες υπηρεσίες που εξαρτώνται από δεδομένα από το Ethereum. Για παράδειγμα, αυτό μπορεί να είναι ένα εργαλείο επικύρωσης της Κύριας Αλυσίδας, λογισμικό όπως τα επίπεδα 2, υποδομή, εξερευνητές μπλοκ, επεξεργαστές πληρωμών κ.λπ.
- Μπορείτε να παρέχετε τα δικά σας προσαρμοσμένα τελικά σημεία RPC. Μπορείτε ακόμη και να προσφέρετε αυτά τα τελικά σημεία δημόσια στην κοινότητα για να τη βοηθήσετε να αποφύγει τους μεγάλους κεντρικούς παρόχους.
- Μπορείτε να συνδεθείτε στον κόμβο σας χρησιμοποιώντας Επικοινωνίες Μεταξύ Διεργασιών (IPC) ή να ξαναγράψετε τον κόμβο για να φορτώσει το πρόγραμμά σας ως πρόσθετο. Αυτό παρέχει χαμηλή καθυστέρηση, κάτι που βοηθάει πολύ, π.χ. όταν επεξεργάζεστε πολλά δεδομένα χρησιμοποιώντας βιβλιοθήκες web3 ή όταν πρέπει να αντικαταστήσετε τις συναλλαγές σας όσο πιο γρήγορα γίνεται (δηλαδή προπορευόμενες συναλλαγές).
- Μπορείτε να αποθηκεύσετε απευθείας ETH για να εξασφαλίσετε το δίκτυο και να κερδίσετε ανταμοιβές. Δείτε την ιδιωτική αποθήκευση κεφαλαίου για να ξεκινήσετε.
Προνόμια δικτύου
Ένα ποικιλόμορφο σύνολο κόμβων είναι σημαντικό για την υγεία, την ασφάλεια και τη λειτουργική ανθεκτικότητα του Ethereum.
- Οι πλήρεις κόμβοι επιβάλλουν τους κανόνες συναίνεσης, για να μην μπορούν να ξεγελαστούν ώστε να αποδεχτούν μπλοκ που δεν τους ακολουθούν. Αυτό παρέχει επιπλέον ασφάλεια στο δίκτυο, επειδή εάν όλοι οι κόμβοι ήταν ελαφροί κόμβοι, οι οποίοι δεν πραγματοποιούν πλήρη επαλήθευση, οι επικυρωτές θα μπορούσαν να επιτεθούν στο δίκτυο.
- Σε περίπτωση επίθεσης που ξεπερνά τους κρυπτοοικονομικούς μηχανισμούς άμυνας της απόδειξης συμμετοχής, μπορεί να πραγματοποιηθεί μια κοινωνική αποκατάσταση από τους πλήρεις κόμβους επιλέγοντας να ακολουθήσουν την ειλικρινή αλυσίδα.
- Περισσότεροι κόμβοι στο δίκτυο οδηγούν σε ένα πιο ποικιλόμορφο και ανθεκτικό δίκτυο, δηλαδή τον υπέρτατο στόχο της αποκέντρωσης, το οποίο καθιστά δυνατό ένα σύστημα ανθεκτικό στη λογοκρισία και αξιόπιστο.
- Οι πλήρεις κόμβοι παρέχουν πρόσβαση σε δεδομένα blockchain για ελαφρούς πελάτες που εξαρτώνται από αυτά. Οι ελαφροί κόμβοι δεν αποθηκεύουν ολόκληρη την αλυσίδα μπλοκ. Αντ' αυτού, επαληθεύουν τα δεδομένα μέσω των ριζών κατάστασης στην αρχή των μπλοκ. Μπορούν να ζητήσουν περισσότερες πληροφορίες από πλήρεις κόμβους εάν τις χρειάζονται.
Εάν εκτελείτε έναν πλήρη κόμβο, ολόκληρο το δίκτυο Ethereum επωφελείται από αυτό, ακόμα κι αν δεν εκτελείτε επικυρωτή.
Εκτέλεση του δικού σας κόμβου
Ενδιαφέρεστε να εκτελέσετε τον δικό σας πελάτη Ethereum;
Για μια φιλική προς αρχάριους εισαγωγή, επισκεφθείτε τη σελίδα Εκτέλεση κόμβου για να μάθετε περισσότερα.
Εάν είστε πιο τεχνικός χρήστης, διαβάστε περισσότερες λεπτομέρειες και επιλογές σχετικά με το πώς να εκκινήσετε τον δικό σας κόμβο.
Εναλλακτικά
Η ρύθμιση του δικού σας κόμβου μπορεί να σας κοστίσει σε χρόνο και πόρους, αλλά δεν χρειάζεται πάντα να εκτελείτε τον δικό σας. Σε αυτή την περίπτωση, μπορείτε να χρησιμοποιήσετε έναν τρίτο πάροχο API. Για μια επισκόπηση της χρήσης αυτών των υπηρεσιών, ρίξτε μια ματιά στους κόμβους ως υπηρεσία.
Εάν κάποιος εκτελεί έναν κόμβο Ethereum με ένα δημόσιο API στην κοινότητά σας, μπορείτε να κατευθύνετε τα πορτοφόλια σας σε έναν κόμβο κοινότητας μέσω Custom RPC και να αποκτήσετε περισσότερο απόρρητο από ό,τι με κάποιον τυχαίο έμπιστο τρίτο.
Από την άλλη πλευρά, εάν εκτελείτε έναν πελάτη, μπορείτε να τον μοιραστείτε με τους φίλους σας που μπορεί να τον χρειάζονται.
Λογισμικό πελάτη
Η κοινότητα Ethereum διατηρεί πολλούς πελάτες εκτέλεσης ανοιχτού κώδικα (παλαιότερα γνωστοί ως «πελάτες Eth1» ή απλώς «πελάτες Ethereum»), που αναπτύχθηκαν από διαφορετικές ομάδες χρησιμοποιώντας διαφορετικές γλώσσες προγραμματισμού. Αυτό κάνει το δίκτυο ισχυρότερο και πιο ποικιλόμορφο. Ο ιδανικός στόχος είναι να επιτευχθεί ποικιλομορφία χωρίς να υπερισχύει κανένας πελάτης, για να μειωθούν τα μεμονωμένα σημεία αποτυχίας.
Αυτός ο πίνακας συνοψίζει τους διαφορετικούς πελάτες. Όλοι περνούν δοκιμές πελάτη και συντηρούνται ενεργά για να παραμένουν ενημερωμένοι με τις αναβαθμίσεις δικτύου.
Πελάτης | Γλώσσα | Λειτουργικά συστήματα | Δίκτυα | Στρατηγικές συγχρονισμού | Περικοπή κατάστασης |
---|---|---|---|---|---|
Geth | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Δείγμα, Πλήρης | Αρχείο, Περικοπή |
Nethermind | C#, .NET | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Δείγμα (χωρίς εξυπηρέτηση), Γρήγορη, Πλήρης | Αρχείο, Περικοπή |
Besu | Java | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Δείγμα, Γρήγορη, Πλήρης | Αρχείο, Περικοπή |
Erigon | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Πλήρης | Αρχείο, Περικοπή |
Reth | Rust | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Πλήρης | Αρχείο, Περικοπή |
EthereumJS (beta) | TypeScript | Linux, Windows, macOS | Sepolia, Holesky | Πλήρης | Περικοπή |
Για περισσότερα σχετικά με τα υποστηριζόμενα δίκτυα, διαβάστε σχετικά με τα Δίκτυα Ethereum.
Κάθε πελάτης έχει μοναδικές περιπτώσεις χρήσης και πλεονεκτήματα, επομένως θα πρέπει να επιλέξετε ένα με βάση τις δικές σας προτιμήσεις. Η ποικιλία επιτρέπει στις υλοποιήσεις να εστιάζουν σε διαφορετικά χαρακτηριστικά και διαφορετικό κοινό χρηστών. Μπορεί να θέλετε να επιλέξετε έναν πελάτη με βάση τις δυνατότητες, την υποστήριξη, τη γλώσσα προγραμματισμού ή τις άδειες.
Besu
Το Hyperledger Besu είναι ένας πελάτης Ethereum κατάλληλος για επιχειρήσεις για δημόσια και αδειοδοτημένα δίκτυα. Εκτελεί όλες τις λειτουργίες του Ethereum Mainnet, από την ιχνηλάτηση έως το GraphQL, διαθέτει εκτεταμένη παρακολούθηση και υποστηρίζεται από την ConsenSys, τόσο σε ανοιχτά κανάλια κοινότητας όσο και μέσω εμπορικών συμφωνιών επιπέδου υπηρεσίας για επιχειρήσεις. Είναι γραμμένο σε Java και έχει άδεια χρήσης Apache 2.0.
Η εκτεταμένη τεκμηρίωση του Besu θα σας καθοδηγήσει όσον αφορά όλες τις λεπτομέρειες για τις δυνατότητες και τις ρυθμίσεις του.
Erigon
Το Erigon, παλαιότερα γνωστό ως Turbo-Geth, ξεκίνησε ως ένα fork του Go Ethereum προσανατολισμένο στην ταχύτητα και την αποτελεσματικότητα του δίσκου. Το Erigon είναι μια πλήρως ανασχεδιασμένη υλοποίηση του Ethereum, γραμμένη αυτή τη στιγμή σε Go αλλά με υλοποιήσεις σε άλλες γλώσσες υπό ανάπτυξη. Ο στόχος του Erigon είναι να παρέχει μια ταχύτερη, πιο αρθρωτή και πιο βελτιστοποιημένη υλοποίηση του Ethereum. Μπορεί να εκτελέσει έναν πλήρη συγχρονισμό κόμβου αρχείου χρησιμοποιώντας περίπου 2TB χώρου δίσκου, σε λιγότερο από 3 ημέρες.
Go Ethereum
Το Go Ethereum (Geth για συντομία) είναι μία από τις αρχικές υλοποιήσεις του πρωτοκόλλου Ethereum. Επί του παρόντος, είναι ο πιο διαδεδομένος πελάτης με τη μεγαλύτερη βάση χρηστών και ποικιλία εργαλείων για χρήστες και προγραμματιστές. Είναι γραμμένο σε Go, πλήρως ανοικτού κώδικα και με άδεια του GNU LGPL v3.
Μάθετε περισσότερα για τη Geth στην τεκμηρίωση.
Nethermind
Το Nethermind είναι μια υλοποίηση Ethereum που δημιουργήθηκε με τη στοίβα τεχνολογίας C# .NET, με άδεια LGPL-3.0, που εκτελείται σε όλες τις μεγάλες πλατφόρμες συμπεριλαμβανομένης της ARM. Προσφέρει εξαιρετική απόδοση με:
- μια βελτιστοποιημένη εικονική μηχανή
- κατάσταση πρόσβασης
- δικτύωση και πλούσιες λειτουργίες όπως πίνακες ελέγχου Prometheus/Grafana, υποστήριξη καταγραφής επιχείρησης seq, ιχνηλάτηση JSON-RPC και πρόσθετα αναλυτικών στοιχείων.
Το Nethermind διαθέτει επίσης λεπτομερή τεκμηρίωση, ισχυρή υποστήριξη προγραμματιστών, μια online κοινότητα και υποστήριξη 24/7 διαθέσιμη για premium χρήστες.
Reth
Το Reth (συντομογραφία του Rust Ethereum) είναι μια πλήρης υλοποίηση κόμβου Ethereum που αποσκοπεί να είναι εύκολη στη χρήση, εξαιρετικά αρθρωτή, γρήγορη και αποτελεσματική. Το Reth δημιουργήθηκε αρχικά και προωθήθηκε από την Paradigm και διαθέτει άδεια Apache και MIT.
Το Reth είναι έτοιμο για παραγωγή και κατάλληλο για χρήση σε καθοριστικής σημασίας περιβάλλοντα όπως η αποθήκευση (staking) ή υπηρεσίες υψηλού χρόνου λειτουργίας. Αποδίδει καλά σε περιπτώσεις χρήσης όπου απαιτείται υψηλή απόδοση με μεγάλα περιθώρια, όπως RPC, MEV, ευρετηρίαση, προσομοιώσεις και δραστηριότητες P2P.
Μάθετε περισσότερα ρίχνοντας μια ματιά στη Βίβλο Reth ή το αποθετήριο GitHub Reth.
Υπό ανάπτυξη
Αυτοί οι πελάτες βρίσκονται ακόμη σε πρώιμα στάδια ανάπτυξης και δεν συνιστώνται ακόμη για χρήση στην παραγωγή.
EthereumJS
Το EthereumJS Execution Client (EthereumJS) είναι γραμμένο σε TypeScript και αποτελείται από έναν αριθμό πακέτων, συμπεριλαμβανομένων των βασικών πρωτόγονων Ethereum που αντιπροσωπεύονται από τις κλάσεις Block, Transaction και Merkle-Patricia Trie και των βασικών στοιχείων πελάτη, συμπεριλαμβανομένης μιας υλοποίησης της Ethereum Virtual Machine (EVM), μιας κλάσης blockchain και της στοίβας δικτύωσης DevP2P.
Μάθετε περισσότερα για αυτό διαβάζοντας την τεκμηρίωσή του.
Προγράμματα συναίνεσης
Υπάρχουν πολλαπλοί πελάτες συναίνεσης (γνωστοί παλαιότερα ως πελάτες «Eth2») για την υποστήριξη των αναβαθμίσεων συναίνεσης. Είναι υπεύθυνοι για όλη τη λογική που σχετίζεται με τη συναίνεση, συμπεριλαμβανομένου του αλγόριθμου επιλογής ενσωμάτωσης (fork), της επεξεργασίας των βεβαιώσεων και της διαχείρισης των ανταμοιβών και των ποινών απόδειξης συμμετοχής.
Πελάτης | Γλώσσα | Λειτουργικά συστήματα | Δίκτυα |
---|---|---|---|
Lighthouse | Rust | Linux, Windows, macOS | Beacon Chain, Goerli, Pyrmont, Sepolia, Ropsten και άλλα |
Lodestar | TypeScript | Linux, Windows, macOS | Beacon Chain, Goerli, Sepolia, Ropsten και άλλα |
Nimbus | Nim | Linux, Windows, macOS | Beacon Chain, Goerli, Sepolia, Ropsten και άλλα |
Prysm | Μετάβαση | Linux, Windows, macOS | Beacon Chain, Gnosis, Goerli, Pyrmont, Sepolia, Ropsten και άλλα |
Teku | Java | Linux, Windows, macOS | Beacon Chain, Gnosis, Goerli, Sepolia, Ropsten και άλλα |
Grandine (beta) | Rust | Linux, Windows, macOS | Beacon Chain, Goerli, Sepolia και άλλα |
Lighthouse
Το Lighthouse είναι μια υλοποίηση πελάτη συναίνεσης γραμμένη σε Rust υπό την άδεια Apache-2.0. Διατηρείται από την Sigma Prime και είναι σταθερή και έτοιμη για παραγωγή από τη γένεση της Κύριας Αλυσίδας. Διάφορες επιχειρήσεις, δεξαμενές αποθήκευσης κεφαλαίου και άτομα βασίζονται σ' αυτή. Στόχος της είναι να είναι ασφαλής, αποδοτική και διαλειτουργική σε ένα ευρύ φάσμα περιβαλλόντων, από επιτραπέζιους υπολογιστές έως περίπλοκες αυτοματοποιημένες αναπτύξεις.
Τεκμηρίωση μπορεί να βρεθεί στο Lighthouse Book
Lodestar
Το Lodestar είναι μια υλοποίηση πελάτη συναίνεσης έτοιμη για παραγωγή γραμμένη σε Typescript υπό την άδεια LGPL-3.0. Διατηρείται από την ChainSafe Systems και αποτελεί τον νεότερο από τους πελάτες συναίνεσης για μεμονωμένους χρήστες με αποθηκευμένο κεφάλαιο, προγραμματιστές και ερευνητές. Το Lodestar αποτελείται από έναν κόμβο beacon και έναν πελάτη επικυρωτή που υποστηρίζονται από υλοποιήσεις JavaScript των πρωτοκόλλων Ethereum. Το Lodestar στοχεύει στη βελτίωση της χρηστικότητας του Ethereum με ελαφρούς πελάτες, την επέκταση της προσβασιμότητας σε μια μεγαλύτερη ομάδα προγραμματιστών και την περαιτέρω συμβολή στην ποικιλομορφία του οικοσυστήματος.
Μπορείτε να βρείτε περισσότερες πληροφορίες στην ιστοσελίδα μας Lodestar
Nimbus
Το Nimbus είναι μια υλοποίηση πελάτη συναίνεσης γραμμένη σε Nim υπό την άδεια Apache-2.0. Είναι ένας έτοιμος για παραγωγή πελάτης που χρησιμοποιείται από μεμονωμένους χρήστες με αποθηκευμένο κεφάλαιο και δεξαμενές αποθήκευσης κεφαλαίου. Το Nimbus έχει σχεδιαστεί για αποτελεσματικότητα πόρων, καθιστώντας εύκολη την εκτέλεσή του σε συσκευές με περιορισμένους πόρους και υποδομές επιχειρήσεων με την ίδια ευκολία, χωρίς να διακυβεύεται η σταθερότητα ή η απόδοση ανταμοιβής. Ένα ελαφρύτερο αποτύπωμα πόρων σημαίνει ότι ο πελάτης έχει μεγαλύτερο περιθώριο ασφαλείας όταν το δίκτυο βρίσκεται υπό πίεση.
Μάθετε περισσότερα στα έγγραφα του Nimbus
Prysm
Το Prysm είναι ένας πλήρως εξοπλισμένος, ανοιχτού κώδικα πελάτης συναίνεσης γραμμένος σε Go υπό την άδεια GPL-3.0. Διαθέτει προαιρετική διεπαφή χρήστη webapp και δίνει προτεραιότητα στην εμπειρία χρήστη, την τεκμηρίωση και τη δυνατότητα διαμόρφωσης τόσο για τους χρήστες stake-at-home όσο και για τους θεσμικούς χρήστες.
Επισκεφτείτε τα αρχεία Prysm για να μάθετε περισσότερα.
Teku
Το Teku είναι ένας από τους αρχικούς πελάτες γένεσης της Κύριας Αλυσίδας (Beacon Chain). Μαζί με τους συνηθισμένους στόχους (ασφάλεια, ανθεκτικότητα, σταθερότητα, χρηστικότητα, απόδοση), το Teku στοχεύει ειδικά στην πλήρη συμμόρφωση με όλα τα διάφορα πρότυπα πελατών συναίνεσης.
Το Teku προσφέρει πολύ ευέλικτες επιλογές ανάπτυξης. Ο κόμβος beacon και ο πελάτης επικύρωσης μπορούν να εκτελούνται μαζί ως μια ενιαία διαδικασία, κάτι που είναι εξαιρετικά βολικό για τους μεμονωμένους χρήστες με αποθηκευμένο κεφάλαιο, ή οι κόμβοι μπορούν να εκτελούνται ξεχωριστά για περίπλοκες λειτουργίες αποθήκευσης. Επιπλέον, το Teku είναι πλήρως διαλειτουργικό με το Web3Signer για την υπογραφή ασφάλειας κλειδιού και την προστασία από slashing.
Το Teku είναι γραμμένο σε Java και έχει άδεια χρήσης Apache 2.0. Αναπτύχθηκε από την ομάδα Protocols της ConsenSys που είναι επίσης υπεύθυνη για το Besu και το Web3Signer. Μάθετε περισσότερα στο αρχείο Teku.
Grandine
Το Grandine είναι μια εφαρμογή πελάτη συναίνεσης, γραμμένη σε Rust με την άδεια GPL-3.0. Συντηρείται από την Grandine Core Team και είναι γρήγορο, υψηλής απόδοσης και ελαφρύ. Ταιριάζει σε ένα ευρύ φάσμα συμμετεχόντων από μεμονωμένους χρήστες με αποθηκευμένο κεφάλαιο που τρέχουν σε συσκευές χαμηλών πόρων όπως το Raspberry Pi έως μεγάλους οργανισμούς αποθήκευσης κεφαλαίου που διαθέτουν δεκάδες χιλιάδες επικυρωτές.
Μπορείτε να βρείτε την τεκμηρίωση στη Βίβλο Grandine
Λειτουργίες συγχρονισμού
Για να ακολουθήσει και να επαληθεύσει τα τρέχοντα δεδομένα στο δίκτυο, ο πελάτης Ethereum πρέπει να συγχρονιστεί με την πιο πρόσφατη κατάσταση δικτύου. Αυτό γίνεται μέσω της λήψης δεδομένων από ομότιμους κόμβους, της κρυπτογραφικής επαλήθευσης της ακεραιότητάς τους και της δημιουργίας μιας τοπικής βάσης δεδομένων blockchain.
Οι τρόποι συγχρονισμού αντιπροσωπεύουν διαφορετικές προσεγγίσεις για αυτή τη διαδικασία με διάφορους συμβιβασμούς. Οι πελάτες διαφέρουν επίσης ως προς την εφαρμογή των αλγορίθμων συγχρονισμού τους. Ανατρέξτε πάντα στην επίσημη τεκμηρίωση του επιλεγμένου πελάτη σας για λεπτομέρειες σχετικά με την εφαρμογή.
Λειτουργίες συγχρονισμού επιπέδου εκτέλεσης
Το επίπεδο εκτέλεσης μπορεί να εκτελεστεί σε διαφορετικές λειτουργίες για να ταιριάζει σε διαφορετικές περιπτώσεις χρήσης, από την εκ νέου εκτέλεση της γενικής κατάστασης της αλυσίδας μπλοκ έως τον συγχρονισμό μόνο με την κορυφή της αλυσίδας από ένα αξιόπιστο σημείο ελέγχου.
Πλήρης συγχρονισμός
Ένας πλήρης συγχρονισμός κατεβάζει όλα τα μπλοκ (συμπεριλαμβανομένων των κεφαλίδων και των σωμάτων μπλοκ) και αναδημιουργεί την κατάσταση της αλυσίδας μπλοκ σταδιακά εκτελώντας κάθε μπλοκ από τη γένεση.
- Ελαχιστοποιεί την εμπιστοσύνη και προσφέρει την υψηλότερη ασφάλεια μέσω της επαλήθευσης κάθε συναλλαγής.
- Με έναν αυξανόμενο αριθμό συναλλαγών, μπορεί να χρειαστούν ημέρες έως και εβδομάδες για την επεξεργασία όλων των συναλλαγών.
Οι κόμβοι αρχείου εκτελούν έναν πλήρη συγχρονισμό για να κατασκευάσουν (και να διατηρήσουν) ένα πλήρες ιστορικό των αλλαγών κατάστασης που πραγματοποιήθηκαν από κάθε συναλλαγή σε κάθε μπλοκ.
Γρήγορος συγχρονισμός
Όπως ένας πλήρης συγχρονισμός, ένας γρήγορος συγχρονισμός κατεβάζει όλα τα μπλοκ (συμπεριλαμβανομένων των κεφαλίδων, των συναλλαγών και των αποδείξεων). Ωστόσο, αντί της επανεπεξεργασίας των ιστορικών συναλλαγών, ένας γρήγορος συγχρονισμός βασίζεται στις αποδείξεις μέχρι να φτάσει σε μια πρόσφατη κεφαλή. Τότε, αλλάζει λειτουργία ώστε να εισαγάγει και να επεξεργαστεί μπλοκ για να παρέχει έναν πλήρη κόμβο.
- Στρατηγική γρήγορου συγχρονισμού.
- Μειώνει την απαίτηση επεξεργασίας υπέρ της χρήσης εύρους ζώνης.
Συγχρονισμός κατάστασης
Οι συγχρονισμοί κατάστασης επίσης επαληθεύουν την αλυσίδα μπλοκ προς μπλοκ. Ωστόσο, αντί να ξεκινούν από το πρώτο μπλοκ, ένας συγχρονισμός κατάστασης ξεκινά από ένα πιο πρόσφατο «αξιόπιστο» σημείο ελέγχου που είναι γνωστό ότι αποτελεί μέρος της πραγματικής αλυσίδας μπλοκ. Ο κόμβος αποθηκεύει περιοδικά σημεία ελέγχου ενώ διαγράφει παλαιότερα δεδομένα από μια συγκεκριμένη ηλικία. Αυτά τα στιγμιότυπα χρησιμοποιούνται για την αναδημιουργία δεδομένων κατάστασης ανάλογα με τις ανάγκες, αντί να τα αποθηκεύουν για πάντα.
- Στρατηγική γρηγορότερου συγχρονισμού, επί του παρόντος προεπιλεγμένη στο Ethereum Mainnet.
- Εξοικονομεί μεγάλη ποσότητα χώρου δίσκου και εύρους ζώνης δικτύου χωρίς να θυσιάζει την ασφάλεια.
Περισσότερα για τον συγχρονισμό κατάστασης.
Γρήγορος συγχρονισμός
Η λειτουργία ελαφρύ πελάτη κατεβάζει όλες τις κεφαλίδες μπλοκ, αποκλείει δεδομένα και επαληθεύει ορισμένες τυχαία. Συγχρονίζει μόνο την κορυφή της αλυσίδας από το αξιόπιστο σημείο ελέγχου.
- Αποκτά μόνο την τελευταία κατάσταση ενώ βασίζεται στην εμπιστοσύνη στους προγραμματιστές και τον μηχανισμό συναίνεσης.
- Ο πελάτης είναι έτοιμος για χρήση με την τρέχουσα κατάσταση δικτύου σε λίγα λεπτά.
Σημείωση: Ο γρήγορος συγχρονισμός δεν λειτουργεί ακόμα με το Ethereum απόδειξης συμμετοχής. Δεν θα αργήσουν να κυκλοφορήσουν νέες εκδόσεις του γρήγορου συγχρονισμού!
Περισσότερα για πελάτες μικρού μεγέθους
Λειτουργίες συγχρονισμού επιπέδου συναίνεσης
Optimistic συγχρονισμός
Ο Optimistic συγχρονισμός είναι μια στρατηγική συγχρονισμού μετά τη συγχώνευση σχεδιασμένη να είναι προαιρετική και συμβατή με προηγούμενες εκδόσεις, επιτρέποντας στους κόμβους εκτέλεσης να συγχρονίζονται μέσω καθιερωμένων μεθόδων. Η μηχανή εκτέλεσης μπορεί να εισάγει με «οπτιμιστικό» τρόπο μπλοκ beacon χωρίς να τα επαληθεύσει πλήρως, να βρει την πιο πρόσφατη κεφαλή και στη συνέχεια να ξεκινήσει τον συγχρονισμό της αλυσίδας με τις παραπάνω μεθόδους. Στη συνέχεια, αφού ο πελάτης εκτέλεσης καταφέρει να συμβαδίσει, θα ενημερώσει τον πελάτη συναίνεσης για τη γνησιότητα των συναλλαγών στην Κύρια αλυσίδα.
Περισσότερα για τον οπτιμιστικό συγχρονισμό
Συγχρονισμός σημείου αναφοράς
Ένας συγχρονισμός σημείου αναφοράς, γνωστός και ως συγχρονισμός ασθενούς υποκειμενικότητας, δημιουργεί μια ανώτερη εμπειρία χρήστη για τον συγχρονισμό ενός κόμβου Beacon. Βασίζεται σε υποθέσεις ασθενούς υποκειμενικότητας που επιτρέπει τον συγχρονισμό της Κύριας αλυσίδας από ένα πρόσφατο σημείο αναφοράς ασθενούς υποκειμενικότητας αντί για το σημείο της γένεσης. Οι συγχρονισμοί σημείου αναφοράς καθιστούν τον αρχικό χρόνο συγχρονισμού σημαντικά ταχύτερο με παρόμοιες υποθέσεις εμπιστοσύνης όπως ο συγχρονισμός από τη .
Στην πράξη, αυτό σημαίνει ότι ο κόμβος σας συνδέεται με μια απομακρυσμένη υπηρεσία για να κατεβάσει πρόσφατες τελικές καταστάσεις και συνεχίζει να επαληθεύει δεδομένα από εκείνο το σημείο. Το τρίτο μέρος που παρέχει τα δεδομένα είναι αξιόπιστο και πρέπει να επιλεγεί προσεκτικά.
Περισσότερα για τον συγχρονισμό σημείων αναφοράς
Περισσότερες πληροφορίες
- Ethereum 101 — Μέρος 2 — Κατανόηση κόμβων – Wil Barnes, 13 Φεβρουαρίου 2019
- Εκτέλεση πλήρους κόμβου Ethereum: Οδηγός για τα ελάχιστα κίνητρα – Justin Leroux, 7 Νοεμβρίου 2019
Σχετικά θέματα
Σχετικοί οδηγοί
- Μετατρέψτε το Raspberry Pi 4 σας σε κόμβο επικυρωτή απλά ρυθμίζοντας την κάρτα MicroSD – Οδηγός εγκατάστασης – εγκαταστήστε το Raspberry Pi 4 σας, συνδέστε ένα καλώδιο ethernet, συνδέστε τον δίσκο SSD και ενεργοποιήστε τη συσκευή για να μετατρέψετε το Raspberry Pi 4 σε πλήρη κόμβο Ethereum που εκτελεί το επίπεδο εκτέλεσης (Mainnet) και / ή το επίπεδο συναίνεσης (Beacon Chain / επικυρωτής).