Kohandatud ülevaade plokiahela testimise ja bänshimiskatsetuste tööriistadest

Kohandatud ülevaade plokiahela testimise ja bänshimiskatsetuste tööriistadest

Tänapäeval on plokiahelate testimise ja tõhususe hindamise lahendused kohandatud konkreetsete plokiahelate või nende harude jaoks. Kuid on ka mitmeid üldisemaid lahendusi, mis erinevad funktsionaalsuse poolest: mõned neist on avatud lähtekoodiga projektid, teised pakuvad SaaS-i vormingus teenuseid, kuid enamik on need sisemised lahendused, mille on loonud plokiahela arendustiim. Siiski lahendavad kõik nad sarnaseid ülesandeid. Käesolevas artiklis püüan lühidalt käsitleda mitmeid tooteid, mis on spetsiaalselt suunatud plokiahelate testimisele.

Plokiahelate võrgu toimimine meenutab jaotatud andmebaasi toimimist, seetõttu saab testimise käigus kasutada sarnaseid vahendeid ja meetodeid. Et paremini mõista, kuidas testitakse jaotatud andmebaase, tutvuge hea valiku ressurssidega ja artiklitega. siit. Näiteks on latentsus põhjalikult lahti seletatud selles artiklis, ja et mõista, kuidas otsitakse vigu replikatsiooni algoritmides, soovitan tutvuda selle artikkel.

Kavatsen kirjeldada mitmeid populaarsed lahendusi plokiahelate testimiseks ja tõhususe hindamiseks. Oleksin tänulik, kui kommenteerides jagaksite teisi kasulikke tarkvaratooteid nende ülesannete lahendamiseks.

Kohandatud ülevaade plokiahela testimise ja bänshimiskatsetuste tööriistadest

Alustan tööriistast, mis ei ole küll otseselt plokiahelate jaoks loodud, kuid võimaldab tõhusalt testida nende tööd, eeldusel et olemas on juba töötav võrk, millel katsetada. Üks tähtsamaid tegureid jaotatud süsteemi usaldusväärsuses on võime jätkata tööd serverite ja võrguga seotud probleemide korral. Need võivad olla võrguhäired, kõvakettaruumi täitumine, väliste teenuste (DNS) kättesaamatuse probleemid, riistvara tõrked ja sadade teiste põhjuste tõttu tekkinud probleemid. Et kontrollida, kui vastupidavad on kõik süsteemid, mis töötavad samas suurtes masinate süsteemides, saab kasutada Gremlin.. See kasutab äärmiselt tõhusat lähenemist, mida nimetatakse kaose inseneritehnoloogiat.

Gremlin loob oma võrguagendi abil palju erinevaid probleeme vajalikul hulgal masinates: võrgu viivitusi, igasuguste ressursside (CPU, ketas, mälu, võrk) ülemäärasuse, eraldi protokollide välja lülitamist jne. Blokeeringute jaoks saab Gremlini kasutada testvõrgu serverites, et emuleerida reaalseid probleeme ja jälgida võrgu käitumist. Selle abil saavad arendajad ja administraatorid kontrollitud keskkonnas jälgida, mis juhtub süsteemiga tõrgete korral või koodi uuendamisel. Selleks tuleb eelnevalt konfigureerida ja juurutada võrk ning seadistada vajalikud meetrika kogumise seadmed.

Gremlin on mugav tööriist arhitektide, DevOps'ide ja turbespetsialistide jaoks ning universaalne lahendus kõikide valmis ja käivitatud hajutatud süsteemide, sealhulgas blokeeringute, testimiseks.

Kohandatud ülevaade plokiahela testimise ja bänshimiskatsetuste tööriistadest

Hyperledger Caliper on palju spetsiifilisem lahendus Hyperledger Caliper. Praegu toetab Caliper mitmeid blokeeringute esindajaid Hyperledger perekonnast (Fabric, Sawtooth, Iroha, Burrow, Besu), samuti Ethereumit ja FISCO BCOS võrku.

Caliperi abil saab määrata blokeeringu võrgu topoloogia ja testimiseks vajalikud lepingud ning kirjeldada node'i konfiguratsiooni. Blokeeringu node'id tõstetakse Docker konteinerites ühel masinal. Edasi saate valida vajalikud testimise konfiguratsioonid ja saada tulemuste raporti faili pärast käivitamist. Caliperi täieliku meetrikate loetelu ja lähenemisviisiga bänhmarkingu osas saab tutvuda siit Hyperledger Blockchain Performance Metrics, see on suurepärane artikkel, kui teile meeldib blokeeringute bänhmarkingu teema. Samuti saab seadistada meetrikate kogumise eraldi Prometheus/Grafana.

Hyperledger Caliper on arendajatele ja süsteemi arhitektidele suunatud tööriist, sest see tagab testide korduvuse ning katsetamise ja bänhmarkingu automatiseerimise. Seda kasutatakse blokeeringute tuumade arendamisel: konsensuse algoritmid, nutilepingute töötlemiseks mõeldud virtuaalne masin, peer-to-peer-kiht ja muud süsteemimehhanismid.

Kohandatud ülevaade plokiahela testimise ja bänshimiskatsetuste tööriistadest

MixBytes Tank — tööriist, mis on välja töötatud konsensuse ja lõpptähtaja algoritmide arendamise protsessis EOS-põhiste võrkude ja Parity Substrate (Polkadot) parakuainete testimise jaoks. Funktsionaalsuse poolest sarnaneb see Hyperledger Caliperi, kuna võimaldab koguda olulisi mõõdikuid igasugustest jaotatud süsteemidest ning kliendimasinatest, millel töötavad testskriptid.

MixBytes Tank kasutab mitmeid pilveteenuseid (Digital Ocean, Google Cloud Engine jne), mis võimaldavad käivitada mitmeid node'e, teha eelseadistusprotseduure, samaaegselt käivitada mitmeid benchmark'e erinevates masinates, koguda vajalikke mõõdikuid ja automaatselt lõpetada võrgu töö.

MixBytes Tank võimaldab säästlikult kulutada ressursse pilveserveritele, automaatselt sulgedes mitte vajalikud ressursid pärast katse sooritamist. Veel üks eripära on molekuli paketi kasutamine, mis võimaldab arendajal testida vajaliku plokiahela käivitamist kohapeal.

MixBytes Tank võimaldab varajases etapis avastada kitsaskohti ja vigu algoritmides, mis tekivad reaalsetes võrkudes, kus on palju geograafiliselt hajutatud servereid ja kliente. Tanke aitab mõista, mida juhtuda node'ides, kui kliendid saadavad tehinguid antud tps-ga kõrge korduvuse tingimustes ja reaalse node'ide arvuga, mis on hajutatud eri mandritele, kui see on vajalik.

Kohandatud ülevaade plokiahela testimise ja bänshimiskatsetuste tööriistadest

Whiteblock Genesis on Ethereum-põhine plokiahelate testimise platvorm. See tööriist omab piisavalt laia funktsionaalsust: see võimaldab käivitada võrgu, luua selles vajaliku arvu kontosid, tõsta vajaliku arvu kliente, konfigureerida võrgu topoloogiat, määrata parameetrid, nagu ribalaius ja pakikaotus ning käivitada testi.

Whiteblock Genesis pakub oma ressurse testide läbiviimiseks. Arendajatel on piisavalt näidata testide parameetreid, käivitada need valmis API abil ja saada tulemusi mugavalt juhtpaneeli abil.

Whiteblock Genesis võimaldab seadistada piisavalt detailse testi, mida platvorm automaatselt viib läbi iga olulise koodimuutuse korral. See võimaldab varajases etapis tabada vigu ja kohe hinnata, kuidas muudatused mõjutavad olulisi võrgu parameetreid, nagu tehingute kiirus ja node'ide kasutatavad ressursid.

Madt

Veel huvitav noor toode hajutatute süsteemide testimiseks — madt. See on kirjutatud Pythonis ja võimaldab luua vajalikku võrgu topoloogiat ning vajalikku arvu servereid ja kliente lihtsa konfiguratsiooniskirjaga (näide). Pärast seda teeb teenus võrgu juurutamise mitmes docker-konteineris ja tõstab üles veebiliidese, mille kaudu saab jälgida sõnumeid serveritelt ja võrgu klientidelt. Madt'i saab kasutada plokiahelate testimiseks — projekti hoidlas on p2p võrgu test, mis põhineb Kademlia protokollil, kus andmeedastuse viivitused suurenevad järk-järgult sõlmedele ja kontrollitakse nende andmete staatust.

Madt tekkis alles hiljuti, kuid arvestades selle väga paindlikku arhitektuuri, võib see areneda funktsionaalseks tooteks.

Teised lahendused

Peaaegu iga plokiahelate süsteemiosade testimine nõuab eelsete stsenaariumide käivitamist, kontode ja testimise tingimuste ettevalmistamist (see võib hõlmata konsensuse vigu, mis võivad genereerida arvukalt dünaamilisi harusid, hard fork'i stsenaariumite töötlemist, süsteemsete parameetrite muutmise ja nii edasi). Kõik need manipulatsioonid erinevates plokiahelates toimuvad erinevalt, seega on meeskondadel lihtsam järk-järgult kohandada testimist ja tootmise tõhususe hindamist sisemise CI/CD-ga ning kasutada oma arengut, mis ajaga keerulisemaks muutub.

Siiski suudavad valmis lahenduste kasutamine nende meeskondade testimisaega oluliselt vähendada, seega arvan, et see tarkvara areneb aktiivselt lähiaastatel.

Kokkuvõte

Kokkuvõttes toome välja mõned olulised omadused plokiahela testimise tööriistade jaoks:

  • Võime automaatselt juurutada plokiahelavõrku korduvates tingimustes. See tegur on oluline plokiahelate süsteemiosade, nagu konsensuse algoritmid, lõplikkus ja süsteemsed nutilepingud, arendamise puhul.
  • Süsteemi omamise hind, tarbitavad ressursid ja mugavus pidevaks kasutamiseks. See tegur tagab projektile kvaliteetsed testid väikese raha eest.
  • Paindlikkus ja testide lihtne konfigureerimine. See tegur suurendab tõenäosust tuvastada süsteemiprobleeme — vähem tõenäosust, et midagi olulist jääb kahe silma vahele.
  • Kohandamine konkreetsete plokiahelate tüüpide jaoks. Olemasoleva süsteemi põhjal lahenduse arendamine võib märkimisväärselt parandada kvaliteeti ja vähendada ajakulu.
  • Tulemustele juurdepääsetavus ja nende tüüp (aruanded, mõõdikud, graafikud, logid jne). See on hädavajalik, kui soovite jälgida toote arengulugu või vajate süvitsi minevat analüüsi plokiahela võrgu käitumisest.

Edu katsetamisel ja olgu teie plokiahelad kiiread ja tõrgeteta!

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster