Përmbledhje e shpejtë e mjeteve për testimin dhe benchmark-ing e blockchains

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmark-ing e blockchains

Sot shërbimet për testimin dhe benchmarking-un e blockchain-ëve janë të optizuara për një blockchain të caktuar ose degët e tij. Por ka edhe disa zgjidhje më të përgjithshme që dallohen për funksionalitetin e tyre: disa nga ato janë projekte me kod të hapur, të tjera ofrohen si SaaS, por pjesa më e madhe janë zgjidhje të brendshme të krijuara nga ekipi i zhvillimit të blockchain-it. Megjithatë, të gjitha ato zgjidhin detyra të ngjashme. Në këtë artikull do të përpiqem të shqyrtoj shkurtimisht disa produkte që janë specifikisht të dizajnuara për testimin e blockchain-ëve.

Funksionimi i rrjetit blockchain ngjason me atë të një baze të dhënash të shpërndara, prandaj për testimin e tij mund të aplikohen mjete dhe metoda të ngjashme. Për të kuptuar më mirë se si testohet baza e të dhënave të shpërndara, shihni një seleksion të mirë burimesh dhe artikujsh. këtu. Për shembull, latenca është shpjeguar hollësisht në këtë artikulli ynë, dhe për të kuptuar se si kërkohen gabime në algoritmet e replikimit, rekomandoj që të njiheni me këtë artikull.

Do të përshkruaj disa zgjidhje të njohura për testimin dhe benchmarking-un e blockchain-ëve. Do të isha i lumtur nëse në komentet e mëposhtme do të përmendni produkte të tjera të dobishme softuerike për të zgjidhur të njëjtat detyra.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmark-ing e blockchains

Do ta filloj me një mjet, edhe pse nuk është krijuar posaçërisht për blockchain-e, por lejon testimin efikas të funksionimit të tyre në rast se ekziston një rrjet i aktivizuar mbi të cilin mund të eksperimentoni. Një faktor kyç për qëndrueshmërinë e një sistemi të shpërndarë është aftësia për të vazhduar punën në rast të problemeve me serverët dhe rrjetin. Këto mund të jenë vonesa në rrjet, mbingarkesë disku, papërfshirje të shërbimeve të jashtme (DNS), defekte harduerike dhe qindra arsyesh të tjera. Për të kontrolluar qëndrushmërinë e çdo sistemi që funksionon në përputhje me një numër të madh makinerish, mund të përdoren Gremlin. Në të përdoret një qasje tejet efektive, e quajtur Inxhinieria e Kaosit.

Me falĂ« agjentit tĂ« tij tĂ« rrjetit, Gremlin krijon shumĂ« lloje problemesh nĂ« numrin e nevojshĂ«m tĂ« makinave: vonesa nĂ« rrjet, ngarkesĂ«n e çdo burimi (CPU, disk, memorie, rrjet), çaktivizon protokolle tĂ« veçanta, etj. PĂ«r blockchain-at, Gremlin mund tĂ« pĂ«rdoret nĂ« serverĂ«t e rrjetit tĂ« testit, duke imituar probleme tĂ« vĂ«rteta dhe duke vĂ«zhguar sjelljen e rrjetit. Me ndihmĂ«n e tij, zhvilluesit dhe administratorĂ«t nĂ« njĂ« mjedis tĂ« kontrolluar mund tĂ« vĂ«zhgojnĂ« se çfarĂ« do tĂ« ndodhte nĂ« sistem nĂ« rast tĂ« ç’rregullimeve ose gjatĂ« pĂ«rditĂ«simit tĂ« kodit. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, rrjeti duhet tĂ« konfigurohet dhe vendoset paraprakisht, si dhe tĂ« konfigurohen metrikat e nevojshme.

Gremlin është një mjet i përshtatshëm për arkitektët, devops-ët dhe profesionistët e sigurisë, si dhe një zgjidhje universale për testimin e çdo sistemi të shpërndarë të gatshëm dhe të ngarkuar, përfshirë blockchain-at.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmark-ing e blockchains

Hyperledger Caliper është një zgjidhje shumë më e specializuar Hyperledger Caliper. Aktualisht Caliper mbështet disa blockchain të familjes Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), si dhe Ethereum dhe rrjetin FISCO BCOS.

Me Caliper mund të përcaktoni topologjinë e rrjetit blockchain dhe kontratat për testim, si dhe të përshkruani konfigurimin e nodit. Nodat e blockchain-it ngrihen në konteinerë docker në një makinë. Më pas, mund të zgjidhni konfigurimet e nevojshme të testeve dhe të merrni një skedar me raportin për rezultatet e testit pas ekzekutimit. Mund të konsultoheni këtu për listën e plotë të metrikave Caliper dhe qasjen ndaj benchmarking-ut Metrikat e Performancës së Blockchain-it Hyperledger, kjo është një artikull i shk excellent te, nëse ju intereson tema e benchmarking-ut të blockchain-eve. Gjithashtu, mund të konfiguroni mbledhjen e metrikave në një Prometheus/Grafana të veçantë.

Hyperledger Caliper është një mjet i orientuar ndaj zhvilluesve dhe arkitektëve të sistemeve, pasi siguron ripërsëritshmëri të testeve dhe automatizimin e testimit dhe benchmarking-ut. Përdoret në zhvillimin e bërthamës së blockchain-eve: algoritme konsensusi, një makinë virtuale për procesimin e kontratave inteligjente, shtresën peer-to-peer dhe mekanizma të tjerë sistemikë.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmark-ing e blockchains

MixBytes Tank — njĂ« mjet qĂ« ka dalĂ« nĂ« procesin e zhvillimit tĂ« algoritmeve tĂ« konsensusit dhe finalitetit pĂ«r rrjetet e bazuara nĂ« EOS dhe testimin e parachain-eve mbi bazĂ«n e Parity Substrate (Polkadot). NĂ« funksionalitet Ă«shtĂ« i ngjashĂ«m me Hyperledger Caliper, pasi lejon grumbullimin e metrikave tĂ« rĂ«ndĂ«sishme nga nodet e çdo sistemi tĂ« shpĂ«rndarĂ« dhe nga makinat klient qĂ« punojnĂ« skenarĂ«t testues.

MixBytes Tank përdor disa shërbime cloud (Digital Ocean, Google Cloud Engine etj.), ku mund të nisë shumë nodet, të kryejë procedurat e konfigurimit paraprak, të nisë në mënyrë paralele disa benchmark-e në makina të ndryshme, të mbledhë metrikat e nevojshme dhe të mbyllë automatikisht rrjetin.

MixBytes Tank lejon shpenzimin ekonomik të fondeve për serverat cloud, duke mbyllur automatikisht burimet e panevojshme pas kryerjes së testit. Një karakteristikë tjetër dalluese është përdorimi i paketës Molecule, e cila lejon zhvilluesin të testojë shpërndarjen e një bllokçaini të nevojshëm në mënyrë lokale.

MixBytes Tank lejon identifikimin e ngushticave dhe gabimeve në algoritme në fazat e hershme, të cilat ndodhin në rrjetet reale me një numër të madh serverash dhe klientësh gjeografikisht të shpërndarë. Tanka do t'ju ndihmojë të kuptoni se çfarë do të ndodhë në nodet nëse klientët dërgojnë transaksione me një tps të caktuar në kushte të përsëritura me saktësi dhe me numrin e vërtetë të nodëve, të shpërndarë në kontinente të ndryshme, nëse është e nevojshme.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmark-ing e blockchains

Whiteblock Genesis — Ă«shtĂ« njĂ« platformĂ« pĂ«r testimin e bllokçain-eve tĂ« bazuara nĂ« Ethereum. Ky mjet ka njĂ« funksionalitet tĂ« gjerĂ«: lejon krijimin e njĂ« rrjeti, krijimin e numrit tĂ« nevojshĂ«m tĂ« llogarive, ngritjen e numrit tĂ« nevojshĂ«m tĂ« klientĂ«ve, konfigurojtopologjinĂ« e rrjetit, pĂ«rcaktimin e parametrave tĂ« bandwidth, packetloss dhe fillimin e testit.

Whiteblock Genesis ofron burimet e saj për të kryer testet. Zhvilluesit mjafton të përcaktojnë parametrat e testeve, t'i fillojnë ato përmes një API të gatshëm dhe të marrin rezultatet duke përdorur një dashboard të rehatshëm.

Whiteblock Genesis lejon konfigurimin e testeve mjaft të detajuara, të cilat platforma do t'i kryejë automatikisht për çdo ndryshim të rëndësishëm në kod. Kjo do të lejojë kapjen e gabimeve në fazat e hershme dhe menjëherë vlerësimin e ndikimit të ndryshimeve në parametrat e rëndësishëm të rrjetit, si shpejtësia e transaksioneve dhe burimet e përdorura nga nodet.

Madt

NjĂ« produkt tjetĂ«r interesant i ri pĂ«r provimin e sistemeve tĂ« shpĂ«rndara — madt. Ai Ă«shtĂ« shkruar nĂ« Python dhe lejon tĂ« krijoni topologjinĂ« e nevojshme tĂ« rrjetit dhe numrin e duhur tĂ« serverĂ«ve dhe klientĂ«ve pĂ«rmes njĂ« skenari konfigurimi tĂ« thjeshtĂ« (Ă«shtĂ«). Pas kĂ«saj, shĂ«rbimi vendos rrjetin nĂ« disa kontenierĂ« docker dhe ngre njĂ« ndĂ«rfaqe web, ku mund tĂ« vĂ«zhgoni mesazhet nga serverĂ«t dhe klientĂ«t e rrjetit. Madt mund tĂ« pĂ«rdoret pĂ«r testimin e blokçeinĂ«ve — nĂ« depozitat e projektit ka njĂ« test tĂ« rrjetit p2p tĂ« bazuar nĂ« protokollin Kademlia, ku gradualisht rriten vonesat nĂ« dĂ«rgimin e tĂ« dhĂ«nave nĂ« nodet dhe verifikohet statusi i kĂ«tyre tĂ« dhĂ«nave.

Madt ka lindur shumë kohët e fundit, por duke marrë parasysh arkitekturën jashtëzakonisht fleksibël, mund të zhvillohet në një produkt funksional.

Zgjidhje të tjera

Praktikisht çdo provim i pjesës sistemore të blokçeinëve kërkon aktivizimin e skenarëve paraprak, përgatitjen e llogarive dhe kushteve për testimin (kjo mund të jetë provimi i gabimeve të konsensusit, që mund të shkaktojnë shumë forka të zinxhirëve, provimi i skenarëve të hardfork-ut, ndryshimet e parametrave sistemorë, etj.). Të gjitha këto manipulime në blloqe të ndryshme bëhen ndryshe, prandaj ekipet e kanë më të lehtë të adaptojnë gradualisht testimin dhe benchmark-un e produktit në CI/CD-në e brendshme dhe të përdorin përpjekjet e veta, të cilat gradualisht komplikohet me zhvillimin e funksionalitetit të bllokçein-it.

Megjithatë, përdorimi i zgjidhjeve të gatshme mund të zvogëlojë ndjeshëm kohën e testimit për këto ekipe, prandaj besoj se ky soft do të zhvillohet aktivisht në vitet e ardhshme.

Përfundim

Duke përfunduar këtë përmbledhje të vogël, do të përmend disa karakteristika të rëndësishme të mjeteve për testimin e blokçeinëve:

  • MundĂ«sia pĂ«r shpĂ«rndarjen automatike tĂ« rrjetit blokçein nĂ« kushte tĂ« pĂ«rsĂ«ritshme. Ky faktor Ă«shtĂ« i rĂ«ndĂ«sishĂ«m gjatĂ« zhvillimit tĂ« pjesĂ«ve sistemore tĂ« bllokçeinĂ«ve: algoritmeve tĂ« konsensusit, finalitetit, kontratave smart sistemore.
  • Çmimi i pronĂ«sisĂ« sĂ« sistemit, burimet e konsumuar dhe lehtĂ«sia pĂ«r pĂ«rdorim tĂ« vazhdueshĂ«m. Ky faktor i ofron projektit teste tĂ« klasit tĂ« lartĂ« pĂ«r njĂ« çmim tĂ« vogĂ«l.
  • Fleksibiliteti dhe thjeshtĂ«sia e konfigurimit tĂ« testeve. Ky faktor rrit mundĂ«sitĂ« pĂ«r tĂ« zbuluar probleme tĂ« sistemit — Ă«shtĂ« mĂ« pak e mundur tĂ« humbasĂ«sh ndonjĂ« gjĂ« tĂ« rĂ«ndĂ«sishme.
  • Personalizimi pĂ«r lloje specifike tĂ« blockchain-eve. Zhvillimi i njĂ« zgjidhjeje mbi bazĂ«n e asaj qĂ« ekziston tashmĂ« mund tĂ« pĂ«rmirĂ«sojĂ« ndjeshĂ«m cilĂ«sinĂ« dhe tĂ« reduktojĂ« shpenzimet e kohĂ«s.
  • Komoditeti dhe aksesueshmĂ«ria e rezultateve tĂ« marra dhe lloji i tyre (raporte, metrike, grafikĂ«, regjistra, etj.). Kjo Ă«shtĂ« absolutisht e nevojshme nĂ«se dĂ«shironi tĂ« ndiqni historinĂ« e zhvillimit tĂ« produktit, ose ju nevojitet njĂ« analiza e thellĂ« e sjelljes sĂ« rrjetit blockchain.

Suksese në testim dhe le të jenë blockchain-et tuaja të shpejtë dhe të qëndrueshme!

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster