Μια σύντομη επισκόπηση των εργαλείων δοκιμής και συγκριτικής αξιολόγησης Blockchain

Μια σύντομη επισκόπηση των εργαλείων δοκιμής και συγκριτικής αξιολόγησης Blockchain

Σήμερα, οι λύσεις για τη δοκιμή και τη συγκριτική αξιολόγηση των blockchain είναι προσαρμοσμένες σε ένα συγκεκριμένο blockchain ή στα forks του. Υπάρχουν όμως και πολλές πιο γενικές λύσεις που διαφέρουν ως προς τη λειτουργικότητα: ορισμένες από αυτές είναι έργα ανοιχτού κώδικα, άλλες παρέχονται ως SaaS, αλλά οι περισσότερες είναι εσωτερικές λύσεις που δημιουργούνται από την ομάδα ανάπτυξης blockchain. Ωστόσο, όλα λύνουν παρόμοια προβλήματα. Σε αυτό το άρθρο, προσπάθησα να αναθεωρήσω εν συντομία αρκετά προϊόντα που έχουν σχεδιαστεί ειδικά για τη δοκιμή blockchains.

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

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

Μια σύντομη επισκόπηση των εργαλείων δοκιμής και συγκριτικής αξιολόγησης Blockchain

Θα ξεκινήσω με ένα εργαλείο που, αν και δεν δημιουργήθηκε ειδικά για blockchains, σας επιτρέπει να δοκιμάσετε αποτελεσματικά τη λειτουργία τους, υπό την προϋπόθεση ότι υπάρχει ήδη ένα δίκτυο στο οποίο μπορείτε να πειραματιστείτε. Ο πιο σημαντικός παράγοντας για την αξιοπιστία ενός κατανεμημένου συστήματος είναι η δυνατότητα συνέχισης της εργασίας σε περίπτωση προβλημάτων με τους διακομιστές και το δίκτυο. Αυτό μπορεί να είναι καθυστερήσεις δικτύου, πληρότητα δίσκου, μη διαθεσιμότητα εξωτερικών υπηρεσιών (DNS), αστοχίες υλικού και εκατοντάδες άλλοι λόγοι. Για να ελέγξετε τη σταθερότητα οποιωνδήποτε συστημάτων που λειτουργούν συντονισμένα σε μεγάλο αριθμό μηχανημάτων συστημάτων, μπορείτε να χρησιμοποιήσετε Κακός δαίμον των αεροπόρων. Χρησιμοποιεί μια εξαιρετικά αποτελεσματική προσέγγιση που ονομάζεται Chaos Engineering.

Χρησιμοποιώντας τον δικό της πράκτορα δικτύου, η Gremlin δημιουργεί πολλούς διαφορετικούς τύπους προβλημάτων στον απαιτούμενο αριθμό μηχανημάτων: καθυστερήσεις δικτύου, υπερφόρτωση οποιουδήποτε πόρου (CPU, δίσκος, μνήμη, δίκτυο), απενεργοποιεί μεμονωμένα πρωτόκολλα κ.λπ. Για τις αλυσίδες μπλοκ, το Gremlin μπορεί να χρησιμοποιηθεί σε διακομιστές testnet, μιμούμενοι τα προβλήματα της πραγματικής ζωής και παρατηρώντας τη συμπεριφορά του δικτύου. Με αυτό, οι προγραμματιστές και οι διαχειριστές μπορούν να παρατηρήσουν σε ένα ελεγχόμενο περιβάλλον τι θα συμβεί εάν το σύστημα διακοπεί ή όταν ενημερωθεί ο κώδικας. Σε αυτήν την περίπτωση, το δίκτυο πρέπει να διαμορφωθεί και να αναπτυχθεί εκ των προτέρων, καθώς και να ρυθμιστεί ώστε να συλλέγει τις απαραίτητες μετρήσεις.

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

Μια σύντομη επισκόπηση των εργαλείων δοκιμής και συγκριτικής αξιολόγησης Blockchain

Το Hyperledger Caliper είναι μια πολύ πιο εξειδικευμένη λύση Δαγκάνα Hyperledger. Προς το παρόν, η Caliper υποστηρίζει πολλές blockchains ταυτόχρονα - εκπροσώπους της οικογένειας Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), καθώς και του Ethereum και του δικτύου FISCO BCOS.

Χρησιμοποιώντας το Caliper, μπορείτε να ορίσετε την τοπολογία του δικτύου blockchain και τις συμβάσεις για δοκιμή, καθώς και να περιγράψετε τη διαμόρφωση του κόμβου. Οι κόμβοι της αλυσίδας μπλοκ ανυψώνονται σε δοχεία βάσης σε ένα μηχάνημα. Στη συνέχεια, μπορείτε να επιλέξετε τα απαραίτητα διαμορφώσεις δοκιμής και λάβετε ένα αρχείο με μια αναφορά για τα αποτελέσματα των δοκιμών μετά την εκκίνηση. Μια πλήρης λίστα μετρήσεων Caliper και προσέγγισης συγκριτικής αξιολόγησης μπορείτε να βρείτε εδώ Μετρήσεις απόδοσης Hyperledger Blockchain, αυτό είναι ένα εξαιρετικό άρθρο εάν ενδιαφέρεστε για το θέμα της συγκριτικής αξιολόγησης της αλυσίδας μπλοκ. Μπορείτε επίσης να ρυθμίσετε τη συλλογή μετρήσεων σε ξεχωριστό Prometheus/Grafana.

Το Hyperledger Caliper είναι ένα εργαλείο που απευθύνεται σε προγραμματιστές και αρχιτέκτονες συστημάτων, καθώς παρέχει επαναληψιμότητα δοκιμών και αυτοματοποίηση δοκιμών και συγκριτικής αξιολόγησης. Χρησιμοποιείται στην ανάπτυξη του πυρήνα των blockchains: αλγόριθμοι συναίνεσης, μια εικονική μηχανή για την επεξεργασία έξυπνων συμβολαίων, ένα επίπεδο peer-to-peer και άλλους μηχανισμούς συστήματος.

Μια σύντομη επισκόπηση των εργαλείων δοκιμής και συγκριτικής αξιολόγησης Blockchain

Δεξαμενή MixBytes είναι ένα εργαλείο που προέκυψε στη διαδικασία ανάπτυξης αλγορίθμων συναίνεσης και οριστικότητας για δίκτυα που βασίζονται σε EOS και δοκιμών παρααλυσίδων με βάση το Υπόστρωμα Ισότητας (Polkadot). Όσον αφορά τη λειτουργικότητα, είναι κοντά στο Hyperledger Caliper, καθώς σας επιτρέπει να συλλέγετε σημαντικές μετρήσεις από κόμβους οποιουδήποτε κατανεμημένου συστήματος και υπολογιστών πελατών στους οποίους εκτελούνται δοκιμαστικά σενάρια.

Το MixBytes Tank χρησιμοποιεί πολλές υπηρεσίες cloud (Digital Ocean, Google Cloud Engine, κ.λπ.), στις οποίες μπορεί να εκκινήσει πολλούς κόμβους, να πραγματοποιήσει προκαταρκτικές διαδικασίες διαμόρφωσης, να εκτελέσει πολλά σημεία αναφοράς παράλληλα σε διαφορετικά μηχανήματα, να συλλέξει τις απαραίτητες μετρήσεις και να τερματίσει αυτόματα το δίκτυο.

Το MixBytes Tank σάς επιτρέπει να εξοικονομείτε χρήματα σε διακομιστές cloud ελαχιστοποιώντας αυτόματα τους περιττούς πόρους μετά από μια δοκιμή. Ένα άλλο χαρακτηριστικό γνώρισμα είναι η χρήση του πακέτου Molecule, το οποίο επιτρέπει στον προγραμματιστή να δοκιμάσει την ανάπτυξη του επιθυμητού blockchain τοπικά.

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

Μια σύντομη επισκόπηση των εργαλείων δοκιμής και συγκριτικής αξιολόγησης Blockchain

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

Το Whiteblock Genesis παρέχει τις δικές του εγκαταστάσεις δοκιμών. Οι προγραμματιστές πρέπει απλώς να καθορίσουν τις παραμέτρους δοκιμής, να τις εκτελέσουν χρησιμοποιώντας ένα έτοιμο API και να λάβουν αποτελέσματα χρησιμοποιώντας έναν βολικό πίνακα ελέγχου.

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

Μαντ

Ένα άλλο ενδιαφέρον νέο προϊόν για τη δοκιμή κατανεμημένων συστημάτων είναι τρελό. Είναι γραμμένο σε Python και σας επιτρέπει να δημιουργήσετε την απαιτούμενη τοπολογία δικτύου και τον απαιτούμενο αριθμό διακομιστών και πελατών χρησιμοποιώντας ένα απλό σενάριο διαμόρφωσης (παράδειγμα). Μετά από αυτό, η υπηρεσία αναπτύσσει το δίκτυο σε πολλά κοντέινερ Docker και ανοίγει μια διεπαφή ιστού στην οποία μπορείτε να παρατηρήσετε μηνύματα από διακομιστές και πελάτες του δικτύου. Το Madt μπορεί να χρησιμοποιηθεί για τη δοκιμή blockchains - το αποθετήριο του έργου έχει μια δοκιμή δικτύου p2p που βασίζεται στο πρωτόκολλο Kademlia, στο οποίο οι καθυστερήσεις στην παράδοση δεδομένων στους κόμβους αυξάνονται σταδιακά και ελέγχεται η κατάσταση αυτών των δεδομένων.

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

Άλλες λύσεις

Σχεδόν κάθε δοκιμή του τμήματος συστήματος των blockchains απαιτεί εκτέλεση προκαταρκτικών σεναρίων, προετοιμασία λογαριασμών και συνθηκών για τη δοκιμή (αυτό μπορεί να είναι ο έλεγχος συναινετικών σφαλμάτων που μπορούν να δημιουργήσουν πολυάριθμες διχάλες αλυσίδων, δοκιμή σεναρίων hard fork, αλλαγή παραμέτρων συστήματος κ.λπ.). Όλοι αυτοί οι χειρισμοί πραγματοποιούνται διαφορετικά σε διαφορετικές αλυσίδες μπλοκ, επομένως είναι ευκολότερο για τις ομάδες να προσαρμόσουν σταδιακά τη δοκιμή και τη συγκριτική αξιολόγηση προϊόντων σε εσωτερικούς CI/CD και να χρησιμοποιήσουν τις δικές τους εξελίξεις, οι οποίες σταδιακά γίνονται πιο περίπλοκες καθώς αναπτύσσεται η λειτουργικότητα του blockchain.

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

Συμπέρασμα

Για να ολοκληρώσω αυτήν τη σύντομη ανασκόπηση, θα απαριθμήσω αρκετά σημαντικά χαρακτηριστικά των εργαλείων δοκιμής blockchain:

  • Η δυνατότητα αυτόματης ανάπτυξης ενός δικτύου blockchain υπό επαναλαμβανόμενες συνθήκες. Αυτός ο παράγοντας είναι σημαντικός κατά την ανάπτυξη τμημάτων συστήματος των blockchains: αλγόριθμοι συναίνεσης, οριστικότητα, έξυπνες συμβάσεις συστήματος.
  • Το κόστος κατοχής του συστήματος, οι πόροι που καταναλώνονται και η ευκολία για συνεχή χρήση. Αυτός ο παράγοντας παρέχει στο έργο δοκιμές υψηλής ποιότητας για λίγα χρήματα.
  • Ευελιξία και απλότητα της διαμόρφωσης δοκιμής. Αυτός ο παράγοντας αυξάνει τις πιθανότητες εντοπισμού προβλημάτων συστήματος - υπάρχουν λιγότερες πιθανότητες να χάσετε κάτι σημαντικό.
  • Προσαρμογή για συγκεκριμένους τύπους blockchains. Η ανάπτυξη μιας λύσης που βασίζεται σε μια υπάρχουσα μπορεί να βελτιώσει σημαντικά την ποιότητα και να μειώσει το κόστος χρόνου.
  • Ευκολία και προσβασιμότητα των αποτελεσμάτων που λαμβάνονται και του τύπου τους (αναφορές, μετρήσεις, γραφήματα, αρχεία καταγραφής κ.λπ.). Αυτό είναι απολύτως απαραίτητο εάν θέλετε να παρακολουθείτε το ιστορικό ανάπτυξης ενός προϊόντος ή εάν χρειάζεστε βαθιά ανάλυση της συμπεριφοράς του δικτύου blockchain.

Καλή τύχη με τις δοκιμές σας και μακάρι τα blockchain σας να είναι γρήγορα και ανεκτικά σε σφάλματα!

Πηγή: www.habr.com

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