Lühike ülevaade plokiahelate testimise ja võrdlemise tööriistadest

Lühike ülevaade plokiahelate testimise ja võrdlemise tööriistadest

Tänapäeval on lahendused plokiahelate testimiseks ja võrdlemiseks suunatud konkreetsele plokiahelale või selle harudele. Kuid on ka mitu üldisemat lahendust, millel on erinevad funktsioonid: mõned neist on avatud lähtekoodiga projektid, teised pakutakse SaaS-teenustena, kuid enamik on sised lahendused, mis on loodud plokiahela arendustiimi poolt. Siiski lahendavad kõik nad sarnaseid ülesandeid. Selles artiklis püüan lühidalt ülevaadata mitmeid tooteid, mis on suunatud plokiahelate testimisele.

Plokiahelate võrgud toimivad sarnaselt jaotatud andmebaasidele, seega saab testimiseks kasutada sarnaseid tööriistu ja meetodeid. Parema arusaamise saamiseks, kuidas testitakse jaotatud andmebaase, vaadake head valikut ressursse ja artikleid. siit. Näiteks on latency selgelt analüüsitud selles artiklis artiklis, ja et mõista, kuidas leitakse vigu replikatsioonialgoritmides, soovitan tutvuda selle artikliga. artikkel.

Kirjeldan mitmeid populaarsed lahendusi plokiahelate testimiseks ja võrdlemiseks. Olen tänulik, kui jagate kommentaarides teisi kasulikke tarkvaratooteid sama ülesande lahendamiseks.

Lühike ülevaade plokiahelate testimise ja võrdlemise tööriistadest

Alustan tööriistast, mis küll ei ole spetsiaalselt blokkahela jaoks loodud, kuid võimaldab tõhusalt testida nende toimimist olemasoleva võrgu puhul, mille kallal katsetusi teha. Jaotatud süsteemi usaldusväärsuse kõige olulisem aspekt on võime jätkata tööd serverite ja võrgu probleemide korral. Need võivad olla võrgu viivitused, kettaruumi ületäitumine, väliste teenuste (DNS) kättesaamatuse, riistvarahäired ja sadu teisi põhjuseid. Et kontrollida, kui vastupidavad on kõik süsteemid, mis töötavad ühtselt suure hulga masinate süsteemides, saab kasutada Gremlin. See kasutab äärmiselt tõhusat lähenemist, mida nimetatakse kaose inseneri viimaseks.

Gremlin loob oma võrguagendi abil mitmesuguseid probleeme paljusid masinad: võrgu viivitused, ülekoormuse mistahes ressursil (CPU, disk, mälu, võrk), eraldi protokollide keelamine jne. Blokeede jaoks saab Gremlinit kasutada testvõrgu serverites, simuleerides reaalseid probleeme ja jälgides võrgu käitumist. Arendajad ja administraatorid saavad kontrollitud keskkonnas jälgida, mis juhtub süsteemiga, kui esinevad rikked või koodiuuendused. Samuti tuleb eelnevalt konfigureerida ja rakendada võrk ning seadistada vajalike mõõdikute kogumine.

Gremlin on kasutajasõbralik tööriist arhitektidele, DevOps professionaalidele ja turvagurudele ning universaalne lahendus kõigi töötavate ja käivitatud jaotatud süsteemide, sealhulgas blokeede, testimiseks.

Lühike ülevaade plokiahelate testimise ja võrdlemise tööriistadest

Hyperledger Caliper on palju spetsialiseeritum lahendus Hyperledger Caliper. Praegu toetab Caliper mitmeid blokeede — Hyperledgeri perede (Fabric, Sawtooth, Iroha, Burrow, Besu) esindajaid, samuti Ethereumit ja FISCO BCOS võrku.

Caliperi abil on võimalik määratleda plokiahela võrgu topoloogia ja testimiseks vajalikud lepingud ning kirjeldada sõlme konfiguratsiooni. Plokiahela sõlmed tõstetakse docker-konteineritesse ühele masinale. Seejärel saate valida vajalikud testide konfiguratsioonid ja pärast käivitamist saada testitulemuste raportifail. Täieliku nimekirjaga Caliperi mõõdikute ja bänhimise lähenemisviisiga tutvuda siin Hyperledgeri plokiahela tulemusnäitajad, see on suurepärane artikkel, kui teid huvitab plokiahelate bänhimine. Samuti on võimalik seadistada mõõdikute kogumist eraldi Prometheus/Grafana.

Hyperledger Caliper on tööriist, mis on suunatud arendajatele ja süsteemi arhitektidele, kuna see tagab testide korduvuse ja testimise ning bänhimise automatiseerimise. Seda kasutatakse plokiahelate tuumade arendamisel: konsensusalgoritmid, nutilepingute töötlemiseks mõeldud virtuaalne masin, peer-to-peer kiht ja teised süsteemimehhanismid.

Lühike ülevaade plokiahelate testimise ja võrdlemise tööriistadest

MixBytes Tank — tööriist, mis on välja töötatud konsensuse ja lõplikkuse algoritmide arendamise protsessis EOS-põhiste võrkude ja Parity Substrate (Polkadot) parameetrite testimise jaoks. Funktsionaalsuse poolest on see sarnane Hyperledger Caliper'iga, võimaldades koguda olulisi mõõdikuid igasugustest jaotatud süsteemi nodidest ja kliendimasinatest, kus testskriptid töötavad.

MixBytes Tank kasutab mitmeid pilveteenuseid (Digital Ocean, Google Cloud Engine jne), et käivitada palju node, teostada eelnevaid konfigureerimise protseduure, samaaegselt käivitada mitmeid benchmark'e erinevates masinates, koguda vajalikud mõõdikud ja automaatselt peatada võrgu.

MixBytes Tank võimaldab säästlikult kulutada raha pilveserverite peale, automaatselt sulgedes mittevajalikud ressursid pärast testi läbiviimist. Veel üks iseloomulik joon on Molecule paketi kasutamine, mis võimaldab arendajal testida vajaliku plokiahela juurutamist kohalikult.

MixBytes Tank võimaldab varajases etapis tuvastada kitsaskohti ja vigu algoritmides, mis tekivad reaalsetes võrkudes, kus on palju geograafiliselt jaotatud servereid ja kliente. Tank aitab teil mõista, mis juhtub sõlmedes, kui kliendid saadavad tehinguid määratud tps juures kõrge korduvuse tingimustes ja reaalse arvu sõlmedega, mis on jaotatud erinevatele mandritele, kui see on vajalik.

Lühike ülevaade plokiahelate testimise ja võrdlemise tööriistadest

Whiteblock Genesis on platvorm Ethereum põhinevate plokiahelate testimiseks. See tööriist sisaldab üsna laia funktsionaalsust: see võimaldab luua võrgu, luua vajalikud kontod, tõsta soovitud arvu kliente, konfigureerida võrgu topoloogiat, määrata bandwidth'i, packetloss'i parameetreid ja käivitada testi.

Whiteblock Genesis pakub omaressursse testide läbiviimiseks. Arendajatel on piisav, et määrata testide parameetrid, käivitada need valmis API abil ja saada tulemusi kasutades mugavat dashboardi.

Whiteblock Genesis võimaldab konfigureerida piisavalt põhjaliku testi, mida platvorm viib automaatselt läbi iga olulise koodimuudatuse korral. See aitab varakult leida vigu ja kohe hinnata muudatuste mõju olulistele võrgu parameetritele, nagu tehingute kiirus ja sõlmede kasutatav ressurss.

Madt

Veel üks huvitav noor toode jaotatud süsteemide testimiseks — madt. See on kirjutatud Pythonis ja võimaldab luua vajaliku võrku topoloogia ja vajalikud serverite ja klientide arv lihtsa konfiguratsiooniskriptiga (an example). Pärast seda käivitab teenus võrgu mitmes docker-konteineris ja tõstab web-liidese, kus saab jälgida sõnumeid serveritelt ja klientidelt. Madt võib kasutada blokchainide testimiseks — projekti hoidlas on test p2p võrgustiku kohta, mis põhineb Kademlia protokollil, kus andmete edastamise viivitused suurenevad järk-järgult ja kontrollitakse nende andmete staatust.

Madt ilmus üsna hiljuti, kuid arvestades väga paindlikku arhitektuuri, võib see areneda funktsionaalseks tooteks.

Teised lahendused

Peaaegu iga plokiahela süsteemi testimine nõuab ettevalmistavate stsenaariumide käivitamist, kontode ja testimise tingimuste seadmist (see võib hõlmata konsensusvigade testimist, mis võivad genereerida mitmeid haru ketti, kõvaforkide stsenaariumite harjutamist, süsteemi parameetrite muutmist jne). Kõiki neid toiminguid erinevates plokiahelates tehakse erinevalt, seetõttu on meeskondadel lihtsam järk-järgult kohandada toote testimist ja võrdlemist sisemiste CI/CD- süsteemide järgi ning kasutada oma tööriistu, mis muutuvad järk-järgult keerukamaks plokiahela funktsionaalsuse arenguga.

Kuid valmislahenduste kasutamine suudab nende meeskondade testimise aega oluliselt lühendada, seega arvan, et see tarkvara areneb aktiivselt järgmiste aastate jooksul.

Kokkuvõte

Selle väikese ülevaate lõpetuseks loetlen mõned olulised plokiahelate testimisriistade omadused:

  • Automaatse plokiahela arendamise võimalus korduvates tingimustes. See on oluline tegur plokiahela süsteemide osade, näiteks konsensusalgoritmide, lõplikkuse ja süsteemsete nutilepingute väljatöötamisel.
  • Süsteemi omamise hind, tarbitavad ressursid ja mugavus pidevaks kasutamiseks. See tegur tagab projektile kõrgekvaliteedilised testid madalama hinnaga.
  • Testide paindlikkus ja lihtsus. See tegur suurendab tõenäosust süsteemi probleeme tuvastada – on vähem tõenäoline, et jääte midagi olulist tähelepanuta.
  • Kohandamine konkreetsete plokiahelate tüüpide jaoks. Olemasolevatele lahendustele tugineva arenduse abil on võimalik kvaliteeti oluliselt parandada ja aega kokku hoida.
  • Tulemusde mugavus ja kergesti kättesaadavus ning 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 käitumisest.

Edukat testimist ning olgu teie plokiahelad kiired ja rikkevad!

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster