Lühiülevaade plokiahela testimise ja võrdlusuuringu tööriistadest

Lühiülevaade plokiahela testimise ja võrdlusuuringu tööriistadest

Tänapäeval on plokiahelate testimise ja võrdlusuuringu lahendused kohandatud konkreetsele plokiahelale või selle harudele. Kuid on ka mitmeid üldisemaid lahendusi, mis erinevad funktsionaalsuse poolest: osad neist on avatud lähtekoodiga projektid, teised on pakutud SaaS-ina, kuid enamus on plokiahela arendusmeeskonna loodud siselahendused. Kuid nad kõik lahendavad sarnaseid probleeme. Selles artiklis püüdsin lühidalt üle vaadata mitmed spetsiaalselt plokiahelate testimiseks mõeldud tooted.

Plokiahela võrgu toimimine meenutab hajutatud andmebaasi tööd, seega saab testimiseks kasutada sarnaseid tööriistu ja meetodeid. Et paremini mõista, kuidas hajutatud andmebaase testitakse, vaadake head valikut ressursse ja artikleid siit. Näiteks latentsusaeg sorteeritakse selles tükkideks siit, ja et mõista, kuidas nad replikatsioonialgoritmides vigu otsivad, soovitan seda lugeda artikliga.

Kirjeldan mitmeid populaarseid lahendusi plokiahelate testimiseks ja võrdlemiseks. Mul oleks hea meel, kui kirjeldaksite kommentaarides teisi kasulikke tarkvaratooteid samade probleemide lahendamiseks.

Lühiülevaade plokiahela testimise ja võrdlusuuringu tööriistadest

Alustan tööriistaga, mis pole küll spetsiaalselt plokiahelate jaoks loodud, kuid võimaldab teil nende toimimist tõhusalt testida, eeldusel, et katsetamiseks on juba töötav võrk. Hajutatud süsteemi töökindluse kõige olulisem tegur on võime jätkata tööd serverite ja võrguga seotud probleemide korral. See võib olla võrguviivitus, ketta täituvus, välisteenuste (DNS) kättesaamatus, riistvararikked ja sadu muid põhjuseid. Suurel hulgal süsteemimasinatel koos töötavate süsteemide stabiilsuse kontrollimiseks võite kasutada Gremlin. See kasutab äärmiselt tõhusat lähenemisviisi nimega Chaos Engineering.

Kasutades oma võrguagenti, tekitab Gremlin vajaliku arvu masinate jaoks palju erinevat tüüpi probleeme: võrguviivitused, mis tahes ressursi (CPU, ketas, mälu, võrk) ülekoormus, blokeerib üksikud protokollid jne. Plokiahelate jaoks saab Gremlinit kasutada testneti serverites, emuleerides reaalseid probleeme ja jälgides võrgu käitumist. Selle abil saavad arendajad ja administraatorid kontrollitud keskkonnas jälgida, mis juhtub, kui süsteem jookseb kokku või kui koodi uuendatakse. Sel juhul tuleb võrk eelnevalt konfigureerida ja juurutada, samuti konfigureerida vajalike mõõdikute kogumiseks.

Gremlin on mugav tööriist arhitektidele, devoppidele ja turvaspetsialistidele ning universaalne lahendus mis tahes valmis ja töötavate hajutatud süsteemide, sealhulgas plokiahelate testimiseks.

Lühiülevaade plokiahela testimise ja võrdlusuuringu tööriistadest

Hyperledger Caliper on palju spetsialiseeritud lahendus Hüperleedri nihik. Praegu toetab Caliper mitut plokiahelat korraga - Hyperledgeri perekonna esindajaid (Fabric, Sawtooth, Iroha, Burrow, Besu), aga ka Ethereumi ja FISCO BCOS-i võrgustikku.

Caliperi abil saate määrata plokiahela võrgu topoloogia ja testimiseks lepingud, samuti kirjeldada sõlme konfiguratsiooni. Plokiahela sõlmed tõstetakse ühel masinal dokkimiskonteinerites. Järgmisena saate valida vajaliku testi konfiguratsioonid ja saada pärast käivitamist fail koos aruandega testitulemuste kohta. Caliperi mõõdikute ja võrdlusuuringute täieliku loendi leiate siit Hyperledgeri plokiahela jõudluse mõõdikud, see on suurepärane artikkel, kui olete huvitatud plokiahela võrdlusuuringu teemast. Mõõdikute kogumise saate seadistada ka eraldi Prometheus/Grafanas.

Hyperledger Caliper on arendajatele ja süsteemiarhitektidele suunatud tööriist, kuna see pakub testi korratavust ning testimise ja võrdlusuuringu automatiseerimist. Seda kasutatakse plokiahelate tuuma väljatöötamisel: konsensusalgoritmid, virtuaalne masin nutikate lepingute töötlemiseks, peer-to-peer kiht ja muud süsteemimehhanismid.

Lühiülevaade plokiahela testimise ja võrdlusuuringu tööriistadest

MixBytes'i paak on tööriist, mis tekkis EOS-põhiste võrkude konsensus- ja lõplikkuse algoritmide väljatöötamise ning pariteedi substraadil (Polkadot) põhinevate paraahelate testimise käigus. Funktsionaalsuse poolest on see lähedane Hyperledger Caliperile, kuna võimaldab koguda olulisi mõõdikuid mis tahes hajutatud süsteemi sõlmedest ja klientmasinatest, millel testiskripte töötavad.

MixBytes Tank kasutab mitmeid pilveteenuseid (Digital Ocean, Google Cloud Engine jne), milles saab käivitada palju sõlmpunkte, teostada eelkonfiguratsiooniprotseduure, käivitada erinevatel masinatel paralleelselt mitut etaloni, koguda vajalikke mõõdikuid ja automaatselt välja lülitada võrku.

MixBytes Tank võimaldab säästa raha pilveserverite pealt, minimeerides automaatselt mittevajalikud ressursid pärast testimist. Teine eristav omadus on paketi Molecule kasutamine, mis võimaldab arendajal testida soovitud plokiahela juurutamist kohapeal.

MixBytes Tank võimaldab varakult avastada kitsaskohti ja vigu algoritmides, mis tekivad reaalsetes võrkudes, kus on suur hulk geograafiliselt hajutatud servereid ja kliente. Tank aitab teil mõista, mis juhtub sõlmedes, kui kliendid saadavad tehinguid antud tps-ga väga korratavates tingimustes ja vajaduse korral reaalse arvu sõlmedega, mis on hajutatud erinevatel kontinentidel.

Lühiülevaade plokiahela testimise ja võrdlusuuringu tööriistadest

Whiteblock Genesis on Ethereumil põhinevate plokiahelate testimisplatvorm. Sellel tööriistal on üsna lai funktsionaalsus: see võimaldab käivitada võrgu, luua selles vajalik arv kontosid, kasvatada vajalikku arvu kliente, seadistada võrgu topoloogiat, määrata ribalaiuse ja pakettide kadumise parameetrid ning käivitada test.

Whiteblock Genesis pakub oma testimisvõimalusi. Arendajad peavad lihtsalt määrama testiparameetrid, käivitama need valmis API abil ja saama tulemusi mugava armatuurlaua abil.

Whiteblock Genesis võimaldab teil konfigureerida üsna üksikasjalikku testi, mille platvorm viib automaatselt läbi iga olulise koodimuudatuse korral. See võimaldab teil varakult vead tabada ja kohe hinnata muudatuste mõju olulistele võrguparameetritele, nagu tehingukiirus ja sõlmede tarbitavad ressursid.

Madt

Teine huvitav noor toode hajutatud süsteemide testimiseks on madt. See on kirjutatud Pythonis ja võimaldab lihtsa konfiguratsiooniskripti abil luua vajaliku võrgutopoloogia ning vajaliku arvu servereid ja kliente (näide). Pärast seda juurutab teenus võrgu mitmes Dockeri konteineris ja avab veebiliidese, milles saate jälgida võrgu serveritelt ja klientidelt sõnumeid. Madt saab kasutada plokiahelate testimiseks - projekti repositooriumis on Kademlia protokollil põhinev p2p võrgu test, mille käigus suurendatakse järk-järgult viivitusi andmete sõlmedesse edastamisel ja kontrollitakse nende andmete olekut.

Madt ilmus alles hiljuti, kuid arvestades selle väga paindlikku arhitektuuri, võib sellest areneda funktsionaalne toode.

Muud lahendused

Peaaegu igasugune plokiahelate süsteemiosa testimine nõuab eelskriptide käivitamist, kontode ja tingimuste ettevalmistamist testimiseks (see võib olla konsensusvigade testimine, mis võivad genereerida arvukalt ahelaid, kõva kahvli stsenaariumide testimine, süsteemi parameetrite muutmine jne). Kõik need manipulatsioonid viiakse erinevates plokiahelates läbi erinevalt, mistõttu on tiimidel lihtsam järk-järgult kohandada toodete testimist ja võrdlusuuringuid sisemise CI/CD-ga ning kasutada enda arendusi, mis plokiahela funktsionaalsuse arenedes muutuvad järk-järgult keerukamaks.

Sellegipoolest võib valmislahenduste kasutamine nende meeskondade testimisaega kõvasti lühendada, seega arvan, et lähiaastatel hakatakse seda tarkvara aktiivselt arendama.

Järeldus

Selle lühikese ülevaate lõpetuseks loetlen ma plokiahela testimise tööriistade mitmeid olulisi omadusi:

  • Võimalus plokiahela võrku korratavates tingimustes automaatselt juurutada. See tegur on oluline plokiahelate süsteemiosade väljatöötamisel: konsensusalgoritmid, lõplikkus, süsteemi targad lepingud.
  • Süsteemi omamise kulu, kulutatud ressursid ja pideva kasutamise mugavus. See tegur pakub projektile väikese raha eest kvaliteetseid teste.
  • Testi konfiguratsiooni paindlikkus ja lihtsus. See tegur suurendab võimalusi süsteemiprobleemide tuvastamiseks – on väiksem võimalus millestki olulisest ilma jääda.
  • Kohandamine teatud tüüpi plokiahelate jaoks. Olemasoleval põhineva lahenduse väljatöötamine võib oluliselt parandada kvaliteeti ja vähendada ajakulu.
  • Saadud tulemuste ja nende tüübi (aruanded, mõõdikud, graafikud, logid jne) mugavus ja juurdepääsetavus. See on hädavajalik, kui soovite jälgida toote arendamise ajalugu või kui vajate plokiahela võrgustiku käitumise põhjalikku analüüsi.

Edu testimisel ja olgu teie plokiahelad kiired ja veakindlad!

Allikas: www.habr.com

Lisa kommentaar