Τι είναι ένα παιχνίδι επικύρωσης ή "πώς να ξεκινήσετε ένα blockchain απόδειξης στοιχήματος"

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

Η εκκίνηση δικτύων που βασίζονται σε συναινέσεις τύπου «απόδειξης στοιχήματος», όπου οι επικυρωτές καθορίζονται από τις ψήφους των κατόχων διακριτικών του συστήματος, είναι ένα μάλλον συγκεκριμένο γεγονός, επειδή ακόμη και η εκκίνηση παραδοσιακών, κεντρικά διαχειριζόμενων συστημάτων με δεκάδες και εκατοντάδες διακομιστές δεν είναι εύκολη. καθήκον από μόνο του, και το blockchain πρέπει να ξεκινήσει με προσπάθεια πιστούς αλλά ανεξάρτητους συμμετέχοντες. Και, εάν σε μια εταιρεία, κατά την εκκίνηση, οι διαχειριστές έχουν πλήρη πρόσβαση σε όλα τα μηχανήματα, τα αρχεία καταγραφής, τη γενική παρακολούθηση, τότε οι επικυρωτές δεν θα επιτρέψουν σε κανέναν να έχει πρόσβαση στους διακομιστές τους και, πιθανότατα, θα προτιμήσουν να δημιουργήσουν την υποδομή τους ανεξάρτητα, επειδή ελέγχει την πρόσβαση στα κύρια περιουσιακά στοιχεία των ψηφοφόρων επικυρωτή - στοιχημάτων. Είναι αυτή η συμπεριφορά που καθιστά δυνατή τη δημιουργία κατανεμημένων ασφαλών δικτύων - η ανεξαρτησία των παρόχων cloud που χρησιμοποιούνται, οι εικονικοί και "baremetal" διακομιστές, τα διαφορετικά λειτουργικά συστήματα, όλα αυτά σας επιτρέπουν να κάνετε τις επιθέσεις σε ένα τέτοιο δίκτυο εξαιρετικά αναποτελεσματικές - πολύ διαφορετικές χρησιμοποιείται λογισμικό. Για παράδειγμα, το Ethereum χρησιμοποιεί δύο κύριες υλοποιήσεις κόμβων, στο Go και στο Rust, και μια επίθεση που είναι αποτελεσματική για τη μία υλοποίηση δεν λειτουργεί για την άλλη.

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

Επικυρωτές

Ας φανταστούμε την κυκλοφορία ενός υποθετικού σύγχρονου blockchain (τα περισσότερα από αυτά που περιγράφονται είναι κατάλληλα για blockchains που βασίζονται σε οποιαδήποτε σύγχρονη οικογένεια blockchain: Ethereum, EOS, Polkadot, Cosmos και άλλα, τα οποία παρέχουν συναίνεση απόδειξης στοιχήματος. Οι κύριοι χαρακτήρες του τέτοιες blockchains είναι ομάδες επικυρωτών , που ασχολούνται με την εγκατάσταση των δικών τους ανεξάρτητων διακομιστών που επικυρώνουν και παράγουν νέα μπλοκ και λαμβάνουν ανταμοιβές που παρέχονται από το δίκτυο για όσους συμμετέχουν στη συναίνεση. Για την έναρξη νέων δικτύων, απαιτούνται αρκετές δεκάδες επικυρωτές (τόσοι μπορούν τώρα περισσότερο ή λιγότερο αποτελεσματικά επιτυγχάνεται συναίνεση σε δευτερόλεπτα), έτσι το έργο ανακοινώνει την εγγραφή, στην οποία οι επικυρωτές μοιράζονται δημόσιες πληροφορίες για τον εαυτό τους με τους χρήστες, πείθοντάς τους ότι πρόκειται να παρέχουν υπηρεσίες υψηλής ποιότητας στο δίκτυο που ξεκίνησε.

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

Η επιχείρηση των επικυρωτών απαιτεί τη διασφάλιση υψηλής ανοχής σφαλμάτων των υπηρεσιών, που σημαίνει υψηλό επίπεδο εκπαίδευσης για devops και προγραμματιστές και ακριβούς υπολογιστικούς πόρους. Ακόμη και χωρίς την ανάγκη εξόρυξης κατακερματισμών σε δίκτυα απόδειξης εργασίας, ένας κόμβος blockchain είναι μια μεγάλη υπηρεσία που καταλαμβάνει πολλή μνήμη, καταναλώνει πολλούς υπολογισμούς, επικυρώνει, γράφει στο δίσκο και στέλνει μεγάλες ποσότητες δεδομένων στο δίκτυο . Για την αποθήκευση αρχείων καταγραφής συναλλαγών και μπλοκ αλυσίδων για μια αλυσίδα μπλοκ με πολλές χιλιάδες μικρές συναλλαγές σε ένα μπλοκ, απαιτείται πλέον αποθήκευση 50 Gb ή περισσότερο και για μπλοκ πρέπει να είναι SSD. Η κρατική βάση δεδομένων blockchains με υποστήριξη για έξυπνα συμβόλαια μπορεί ήδη να υπερβαίνει τα 64 Gb μνήμης RAM. Οι διακομιστές με τα απαιτούμενα χαρακτηριστικά είναι αρκετά ακριβοί· ένας κόμβος Ethereum ή EOS μπορεί να κοστίσει από 100 έως 200 $/μήνα. Προσθέστε σε αυτό τους αυξημένους μισθούς για την 10ωρη εργασία των προγραμματιστών και των devops, οι οποίοι κατά την περίοδο έναρξης λύνουν προβλήματα ακόμη και τη νύχτα, καθώς ορισμένοι επικυρωτές μπορούν εύκολα να εντοπιστούν σε άλλο ημισφαίριο. Ωστόσο, στις κατάλληλες στιγμές, η κατοχή ενός κόμβου επικύρωσης μπορεί να αποφέρει σοβαρά έσοδα (στην περίπτωση του EOS, έως και 000 $ την ημέρα).

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

Προβλήματα εκκίνησης μιας αλυσίδας μπλοκ

Το άνοιγμα του blockchain, το οποίο επέτρεψε σε υπολογιστές από οποιαδήποτε χώρα να συμμετέχουν ελεύθερα στο δίκτυο και η ευκολία σύνδεσης οποιουδήποτε script kiddie στο δίκτυο σύμφωνα με οδηγίες στο GitHub, δεν είναι πάντα πλεονέκτημα. Η επιδίωξη ενός νέου διακριτικού συχνά αναγκάζει τους επικυρωτές να «εξορύσσουν ένα νέο νόμισμα στην αρχή», με την ελπίδα ότι το ποσοστό θα αυξηθεί και θα έχει την ευκαιρία να απορρίψουν γρήγορα τα κέρδη τους. Επίσης, αυτό σημαίνει ότι ο επικυρωτής σας μπορεί να είναι οποιοσδήποτε, ακόμη και ανώνυμος, μπορείτε να τον ψηφίσετε με τον ίδιο τρόπο όπως και για άλλους επικυρωτές (ωστόσο, θα είναι δύσκολο για ένα ανώνυμο άτομο να συγκεντρώσει ψήφους ενδιαφερόμενων μερών για τον εαυτό του, οπότε Θα αφήσω τις τρομακτικές ιστορίες για τα ανώνυμα κρυπτονομίσματα στους πολιτικούς). παρ 'όλα αυτά

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

Η ομάδα είναι έτοιμη να ψηφίσει στο mainnet για τυχόν επικυρωτές, απλώς για να γνωρίζει ποιες, ποιες είναι καλές; Το μεγαλύτερο χαρτοφυλάκιο; Σχεδόν κανείς δεν το έχει τώρα. Με βάση τα προφίλ της ομάδας στο Linkedin; Έμπειροι devops ή ειδικοί ασφαλείας δεν θα σας δώσουν κανένα προφίλ Linkedin. Σύμφωνα με δηλώσεις στο chat, αναρτήσεις και βοήθεια άλλων κατά τη φάση της προετοιμασίας; Καλό, αλλά υποκειμενικό και ανακριβές.

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

Game of Validators

Θα περιγράψω το παιχνίδι των επικυρωτών όπως το σχεδιάσαμε για το blockchain DAO.Casino (DAOBet) που βασίζεται στο πιρούνι EOS, το οποίο ονομάζεται Haya και έχει παρόμοιο μηχανισμό διακυβέρνησης - οι επικυρωτές επιλέγονται με ψηφοφορία από οποιονδήποτε λογαριασμό, στον οποίο μέρος του το υπόλοιπο που χρησιμοποιήθηκε για την ψηφοφορία για τον επικυρωτή έχει παγώσει. Οποιοσδήποτε λογαριασμός έχει το κύριο διακριτικό BET στο υπόλοιπό του μπορεί να ψηφίσει για τον επιλεγμένο επικυρωτή με οποιοδήποτε μέρος του υπολοίπου του. Οι ψήφοι αθροίζονται και οι κορυφαίοι επικυρωτές δημιουργούνται με βάση τα αποτελέσματα. Σε διαφορετικές αλυσίδες μπλοκ, αυτή η διαδικασία οργανώνεται διαφορετικά, και συνήθως σε αυτό το κομμάτι διαφέρει η νέα αλυσίδα μπλοκ από τη μητρική και πρέπει να πω ότι στην περίπτωσή μας, η EOS δικαιολογεί πλήρως το "OS" στο όνομά της, χρησιμοποιούμε πραγματικά το EOS ως το βασικό λειτουργικό σύστημα για την ανάπτυξη μιας τροποποιημένης έκδοσης του blockchain για εργασίες DAOBet.

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

Πώς να επιλέξετε τους κορυφαίους νικητές;

Η κύρια τεχνική απαίτηση για το παιχνίδι είναι τα αποτελέσματά του να είναι δημόσια επαληθεύσιμα. Αυτό σημαίνει ότι τα αποτελέσματα του παιχνιδιού: ΚΟΡΥΦΑΙΟΙ νικητές, πρέπει να διαμορφώνονται αυστηρά με βάση δεδομένα που μπορούν να επαληθευτούν από οποιονδήποτε συμμετέχοντα. Σε ένα κεντρικό σύστημα, θα μπορούσαμε να μετρήσουμε το «χρόνο λειτουργίας» κάθε προγράμματος επικύρωσης και να ανταμείψουμε όσους ήταν συνδεδεμένοι περισσότερο ή πέρασαν από τη μέγιστη επισκεψιμότητα δικτύου. Μπορείτε να συλλέξετε δεδομένα σχετικά με το φορτίο του επεξεργαστή και της μνήμης και να επιβραβεύσετε όσους έχουν εργαστεί καλά. Αλλά οποιαδήποτε τέτοια συλλογή μετρήσεων σημαίνει την ύπαρξη ενός κέντρου συλλογής και οι κόμβοι είναι όλοι ανεξάρτητοι και μπορούν να συμπεριφέρονται όπως θέλουν και να στέλνουν οποιαδήποτε δεδομένα.

Επομένως, η φυσική λύση είναι ότι οι νικητές θα πρέπει να καθοριστούν με βάση τα δεδομένα από το blockchain, καθώς μπορεί να χρησιμοποιηθεί για να δει ποιος επικυρωτής παρήγαγε ποιο μπλοκ και ποιες συναλλαγές συμπεριλήφθηκαν σε αυτό. Ονομάσαμε αυτόν τον αριθμό Πόντους επικύρωσης (VP) και η απόκτησή τους είναι ο κύριος στόχος των επικυρωτών στο παιχνίδι. Στην περίπτωσή μας, η απλούστερη, εύκολα επαληθεύσιμη δημόσια και αποτελεσματική μέτρηση της «χρησιμότητας» ενός εργαλείου επικύρωσης είναι VP = αριθμός μπλοκ που παράγονται από τον επικυρωτή σε μια δεδομένη χρονική περίοδο.

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

Για άλλες αλυσίδες μπλοκ, ο τρόπος υπολογισμού των Πόντων Επικύρωσης μπορεί να διαφέρει, για παράδειγμα, για συναινέσεις που βασίζονται σε pBFT (Tendermint/Cosmos, Aura consensus από Parity Substrate), όπου κάθε μπλοκ πρέπει να υπογράφεται από πολλαπλούς επικυρωτές, είναι λογικό να υπολογίζονται μεμονωμένοι επικυρωτές Μπορεί να έχει νόημα να ληφθούν υπόψη οι ελλιπείς γύροι συναίνεσης, οι οποίοι σπαταλούν τους πόρους άλλων επικυρωτών, γενικά αυτό εξαρτάται σε μεγάλο βαθμό από τον τύπο της συναίνεσης.

Πώς να προσομοιώσετε πραγματικές συνθήκες λειτουργίας

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

Το να ζητάς μάρκες από μια βρύση και να επικυρώνεις ψήφους εξακολουθεί να μην μιμείται πλήρως τη λειτουργία μιας κεφαλής, ειδικά σε εξαιρετικά φορτισμένους τρόπους λειτουργίας. Επομένως, η ομάδα του blockchain θα πρέπει να γράψει πρόσθετα σημεία αναφοράς με τον ένα ή τον άλλο τρόπο για να φορτώσει το δίκτυο. Ιδιαίτερο ρόλο σε αυτό παίζουν τα ειδικά δημιουργημένα έξυπνα συμβόλαια που επιτρέπουν τη δοκιμή ενός ξεχωριστού υποσυστήματος. Για τη δοκιμή αποθήκευσης, το συμβόλαιο αποθηκεύει τυχαία δεδομένα στο blockchain και για να ελέγξει τους πόρους του δικτύου, το δοκιμαστικό συμβόλαιο απαιτεί μεγάλο όγκο δεδομένων εισόδου, διογκώνοντας έτσι τον όγκο των συναλλαγών - ξεκινώντας μια ροή τέτοιων συναλλαγών σε αυθαίρετα χρονικά σημεία, η ομάδα ελέγχει ταυτόχρονα τη σταθερότητα του κώδικα και την ισχύ των επικυρωτών.

Ένα ξεχωριστό ζήτημα είναι η ενημέρωση του κώδικα των κόμβων και η διεξαγωγή σκληρών περονών. Απαιτείται σε περίπτωση σφάλματος, ευπάθειας ή συμπαιγνίας κακόβουλων επικυρωτών, οι επικυρωτές να έχουν ένα σχέδιο δράσης που έχει ήδη επεξεργαστεί στο παιχνίδι των επικυρωτών. Εδώ μπορείτε να δημιουργήσετε σχέδια για τη συγκέντρωση VP για γρήγορη εφαρμογή σκληρού πιρουνιού, για παράδειγμα, επιβάλλοντας πρόστιμο σε όλους τους επικυρωτές που δεν έχουν ακόμη κυκλοφορήσει μια νέα έκδοση του κώδικα κόμβου, αλλά αυτό είναι δύσκολο να εφαρμοστεί και περιπλέκει τον υπολογισμό. Μπορείτε να προσομοιώσετε την κατάσταση έκτακτης χρήσης ενός σκληρού πιρουνιού «σπάζοντας» τεχνητά το blockchain σε ένα συγκεκριμένο μπλοκ. Η παραγωγή μπλοκ σταματά και στο τέλος οι νικητές θα είναι αυτοί που θα πηδήξουν πρώτοι και θα αρχίσουν να υπογράφουν μπλοκ, οπότε το VP με βάση τον αριθμό των υπογεγραμμένων μπλοκ ταιριάζει εδώ.

Πώς να ενημερώσετε τους συμμετέχοντες σχετικά με την κατάσταση του δικτύου και να διορθώσετε σφάλματα

Παρά τη δυσπιστία μεταξύ των επικυρωτών, η έγκαιρη λήψη ενημερωμένων πληροφοριών σχετικά με την κατάσταση του δικτύου είναι επωφελής για όλους προκειμένου να ληφθούν αποφάσεις πιο γρήγορα, επομένως η ομάδα του έργου δημιουργεί μια υπηρεσία για τη συλλογή και την απεικόνιση πολλών μετρήσεων από διακομιστές επικυρωτών, που σας επιτρέπει να βλέπετε την κατάσταση ταυτόχρονα για ολόκληρο το δίκτυο, επιτρέποντάς σας να προσδιορίζετε γρήγορα τι συμβαίνει. Επίσης, είναι επωφελές τόσο για τους επικυρωτές όσο και για το έργο η ομάδα του έργου να διορθώνει γρήγορα τα σφάλματα που εντοπίστηκαν, επομένως, εκτός από τη συλλογή μετρήσεων, είναι λογικό να ξεκινήσετε αμέσως τη συλλογή αρχείων καταγραφής και δεδομένων σφαλμάτων από μηχανήματα επικυρωτών σε ένα μηχάνημα προσβάσιμο στο blockchain προγραμματιστές. Εδώ, δεν είναι ωφέλιμο για κανέναν να παραμορφώνει τις πληροφορίες, επομένως αυτές οι υπηρεσίες αναπτύσσονται από την ομάδα του έργου και μπορούν να είναι αξιόπιστες. Είναι λογικό να συλλέγουμε μετρήσεις συστήματος από επικυρωτές και, φυσικά, οι πιο σημαντικές μετρήσεις της ίδιας της αλυσίδας μπλοκ - για το DAOBet - είναι ο χρόνος οριστικοποίησης και η καθυστέρηση του τελευταίου οριστικοποιημένου μπλοκ. Χάρη σε αυτό, η ομάδα βλέπει αύξηση στην κατανάλωση μνήμης στους κόμβους κατά την εκτέλεση του σημείου αναφοράς, προβλήματα με μεμονωμένους επικυρωτές

Σημαντικά σημεία για τη διεξαγωγή ενός παιχνιδιού επικύρωσης

Όπως αποδεικνύεται, εάν θέλετε να επιτρέψετε επίσημα στους επικυρωτές να επιτίθενται ο ένας στις μηχανές του άλλου (ανεπίσημα μπορούν να το κάνουν αυτό ούτως ή άλλως), πρέπει να το διαμορφώσετε ξεχωριστά νομικά ως δοκιμή ασφαλείας, καθώς σύμφωνα με τους νόμους ορισμένων χωρών DDoS ή επιθέσεις δικτύου μπορεί να είναι τιμωρούνται. Ένα άλλο σημαντικό ζήτημα είναι ο τρόπος επιβράβευσης των επικυρωτών. Τα φυσικά έπαθλα είναι μάρκες έργων, τα οποία θα μεταφερθούν στο κεντρικό δίκτυο, αλλά η μαζική διανομή κουπονιών σε όποιον μπόρεσε να ξεκινήσει έναν κόμβο δεν είναι επίσης η καλύτερη επιλογή. Πιθανότατα θα πρέπει να ισορροπήσετε ανάμεσα σε δύο ακραίες επιλογές:

Διανείμετε ολόκληρο το έπαθλο σύμφωνα με το VP που κερδίσατε
είναι πολύ δημοκρατικό και επιτρέπει σε όλους όσους έχουν επενδύσει χρόνο και πόρους στο παιχνίδι επικύρωσης να κερδίσουν χρήματα
αλλά προσελκύει τυχαίους ανθρώπους στο παιχνίδι χωρίς προετοιμασμένη υποδομή

Διανείμετε το top-N έπαθλο στους επικυρωτές με βάση τα αποτελέσματα του παιχνιδιού
Οι νικητές πιθανότατα θα είναι οι επικυρωτές που κράτησαν τη μεγαλύτερη σταθερότητα κατά τη διάρκεια του παιχνιδιού και είναι πολύ αυστηρά αποφασισμένοι να κερδίσουν
ορισμένοι επικυρωτές δεν θα θέλουν να συμμετάσχουν, εκτιμώντας χαμηλά τις πιθανότητές τους να κερδίσουν, ειδικά εάν οι συμμετέχοντες περιλαμβάνουν αξιοσέβαστους επικυρωτές

Ποια επιλογή να διαλέξετε εξαρτάται από εσάς

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

Συμπέρασμα

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

Τι πρέπει να κάνετε για να εκτελέσετε ένα πραγματικό παιχνίδι επικύρωσης:
αναπτύξτε το δικό σας blockchain :)

  • δημιουργήστε και δημιουργήστε μια διεπαφή ιστού και παρέχετε ένα CLI για ψηφοφορία για επικυρωτές
  • βεβαιωθείτε ότι οι μετρήσεις από έναν κόμβο επικύρωσης που εκτελείται μπορούν να σταλούν σε μια κεντρική υπηρεσία (για παράδειγμα Prometheus)
  • δημιουργήστε έναν διακομιστή συλλογής μετρήσεων (Prometheus + Grafana) για το παιχνίδι επικύρωσης
  • υπολογίστε πώς θα υπολογιστούν οι Πόντοι Επικύρωσης (VP).
  • αναπτύξτε ένα δημόσιο σενάριο που υπολογίζει το VP του επικυρωτή με βάση δεδομένα από την αλυσίδα μπλοκ
  • αναπτύξτε μια διεπαφή ιστού για να εμφανίσετε τα κορυφαία προγράμματα επικύρωσης και την κατάσταση του παιχνιδιού των επικυρωτών (πόσος χρόνος απομένει μέχρι το τέλος, ποιος έχει πόσα VP κ.λπ.)
  • αναπτύξτε και αυτοματοποιήστε την εκκίνηση ενός αυθαίρετου αριθμού δικών σας κόμβων, σχεδιάστε τη διαδικασία σύνδεσης επικυρωτών στο παιχνίδι (πότε και πώς να αποσυνδέσετε τους κόμβους σας, να υποβάλετε και να αφαιρέσετε ψήφους για αυτούς)
  • υπολογίστε πόσες μάρκες πρέπει να εκδοθούν και αναπτύξτε ένα συμβόλαιο βρύσης
  • δημιουργήστε ένα σενάριο αναφοράς (μεταφορές διακριτικών, μαζική χρήση αποθηκευτικού χώρου, μαζική χρήση δικτύου)
  • συγκεντρώστε όλους τους συμμετέχοντες σε μία συνομιλία για γρήγορη επικοινωνία
  • εκκινήστε το blockchain λίγο νωρίτερα από την έναρξη του παιχνιδιού
  • περιμένετε για το αρχικό μπλοκ, ξεκινήστε το παιχνίδι
  • δοκιμάστε το δίκτυο με διάφορους τύπους συναλλαγών
  • ανοίξτε ένα σκληρό πιρούνι
  • αλλάξτε τη λίστα επικυρωτών
  • επαναλάβετε τα βήματα 13,14,15, XNUMX, XNUMX με διαφορετικές σειρές, διατηρώντας τη σταθερότητα του δικτύου
  • περιμένετε για το τελικό μπλοκ, τερματίστε το παιχνίδι, μετρήστε VP

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο