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
Kirjeldan mitmeid populaarseid lahendusi plokiahelate testimiseks ja võrdlemiseks. Mul oleks hea meel, kui kirjeldaksite kommentaarides teisi kasulikke tarkvaratooteid samade probleemide lahendamiseks.
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
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.
Hyperledger Caliper on palju spetsialiseeritud lahendus
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
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.
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.
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 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