
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. . NÀiteks on latentsus pÔhjalikult lahti seletatud selles , ja et mÔista, kuidas otsitakse vigu replikatsiooni algoritmides, soovitan tutvuda selle .
Kavatsen kirjeldada mitmeid populaarsed lahendusi plokiahelate testimiseks ja tĂ”hususe hindamiseks. Oleksin tĂ€nulik, kui kommenteerides jagaksite teisi kasulikke tarkvaratooteid nende ĂŒlesannete lahendamiseks.

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 . 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.

Hyperledger Caliper on palju spetsiifilisem lahendus . 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 ja saada tulemuste raporti faili pĂ€rast kĂ€ivitamist. Caliperi tĂ€ieliku meetrikate loetelu ja lĂ€henemisviisiga bĂ€nhmarkingu osas saab tutvuda siit , 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.

â 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.

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 â . See on kirjutatud Pythonis ja vĂ”imaldab luua vajalikku vĂ”rgu topoloogiat ning vajalikku arvu servereid ja kliente lihtsa konfiguratsiooniskirjaga (). 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
