Διευθύνσεις δικτύου
Οι κόμβοι του Ethereum πρέπει να αναγνωρίζονται μεταξύ τους με κάποιες βασικές πληροφορίες, για να συνδεθούν με τους χρήστες. Για να διασφαλιστεί ότι οποιαδήποτε εφαρμογή χρήστη μπορεί να ερμηνεύσει αυτές τις πληροφορίες, μεταδίδεται σε μία από τις τρεις τυποποιημένες μορφές που μπορεί να καταλάβει ένας κόμβος Ethereum: multiaddr, enode ή Ethereum Node Records (ENRs). Οι ENR είναι το τρέχον πρότυπο για τις διευθύνσεις του δικτύου Ethereum.
Προαπαιτούμενα
Απαιτείται η κατανόηση του επιπέδου δικτύωσης του Ethereum, για να κατανοήσουμε αυτή τη σελίδα.
Multiaddr
Η αρχική μορφή διεύθυνσης κόμβου Ethereum ήταν η «multiaddr» (συντόμευση του «multi-addresses»). Το «Multiaddr» είναι μια γενική μορφή σχεδιασμένη για ομότιμα δίκτυα. Οι διευθύνσεις αναπαρίστανται ως ζεύγη τιμής-κλειδιού με κλειδιά και τιμές διαχωρισμένες με μια κάθετο προς τα εμπρός. Για παράδειγμα, το «multiaddr» για έναν κόμβο με διεύθυνση IPv4 192.168.22.27
στη θύρα TCP 33000
συντάσσεται ως:
/ip4/192.168.22.27/tcp/33000
Για έναν κόμβο Ethereum, το «multiaddr» περιέχει το «node-ID» (ένα αναγνωριστικό του δημόσιου κλειδιού τους):
/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br
Enode
Ένα «enode» είναι ένας τρόπος για να αναγνωρίσετε έναν κόμβο Ethereum χρησιμοποιώντας μια μορφή διεύθυνσης URL. Το δεκαεξαδικό αναγνωριστικό κόμβου (node-ID) κωδικοποιείται στο τμήμα ονόματος χρήστη της διεύθυνσης URL που διαχωρίζεται από τον κεντρικό υπολογιστή χρησιμοποιώντας ένα σύμβολο «@». Το όνομα υπολογιστή μπορεί να δοθεί μόνο ως διεύθυνση IP. Τα ονόματα DNS δεν επιτρέπονται. Η θύρα στην ενότητα όνομα υπολογιστή είναι η θύρα ακρόασης TCP. Εάν οι θύρες TCP και UDP (ανακάλυψης) διαφέρουν, η θύρα UDP καθορίζεται ως παράμετρος ερωτήματος "discport".
Στο παρακάτω παράδειγμα, η διεύθυνση URL του κόμβου περιγράφει έναν κόμβο με διεύθυνση IP 10.3.58.
, τη θύρα TCP 30303
και τη θύρα εξεύρεσης UDP 30301
.
enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d86991ec012937307647bd3b9a82abe2974e1407241d54947bbb39763a4cac9f77166ad92a0@10.3.58.6:30303?discport=30301
Εγγραφές Κόμβων Ethereum (ENRs)
Οι εγγραφές κόμβων Ethereum (ENRs) είναι μια τυποποιημένη μορφή για διευθύνσεις δικτύου στο Ethereum. Υπερισχύουν τις multiaddr και τα enodes. Είναι ιδιαίτερα χρήσιμα επειδή επιτρέπουν μεγαλύτερη ανταλλαγή πληροφοριών μεταξύ των κόμβων. Το ENR περιέχει μια υπογραφή, έναν αύξοντα αριθμό και πεδία που περιγράφουν λεπτομερώς το σύστημα ταυτότητας, που χρησιμοποιείται για τη δημιουργία και την επικύρωση των υπογραφών. Το ENR μπορεί επίσης να συμπληρωθεί με αυθαίρετα δεδομένα που οργανώνονται ως ζεύγη κλειδιού-τιμής. Αυτά τα ζεύγη τιμής-κλειδιού περιέχουν τη διεύθυνση IP του κόμβου και πληροφορίες σχετικά με τα υπο-πρωτόκολλα που μπορεί να χρησιμοποιήσει ο κόμβος. Οι εφαρμογές πελάτη συναίνεσης χρησιμοποιούν μια συγκεκριμένη δομή ENR για να αναγνωρίσουν τους βασικούς κόμβους και περιλαμβάνουν επίσης ένα πεδίο eth2
που περιέχει πληροφορίες σχετικά με τις τρέχουσες αναβαθμίσεις του Ethereum και το υποδίκτυο βεβαίωσης επικοινωνίας (αυτό συνδέει τον κόμβο με ένα συγκεκριμένο σύνολο ομότιμων των οποίων οι βεβαιώσεις συγκεντρώνονται μαζί).