Përmbledhje e shpejtë e mjeteve për testimin dhe benchmarkingun e bllokzis

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmarkingun e bllokzis

Sotjetë për testimin dhe benchmarking-un e blockchain-ëve janë specifikuar për një blockchain të caktuar ose forcat e tij. Megjithatë, ka disa zgjidhje më të përgjithshme që ndryshojnë në funksionalitet: disa prej tyre janë projekte open-source, 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 probleme të ngjashme. Në këtë artikull kam për të shqyrtuar shkurtimisht disa produkte të fokusuar veçanërisht në testimin e blockchain-ëve.

Funksionimi i rrjetit blockchain ngjan me atë të një baze të dhënash të shpërndara, ndaj mund të përdoren mjete dhe metoda të ngjashme për testimin. Për të kuptuar më mirë se si testohet një bazë e dhënash e shpërndarë, shikoni një koleksion të shkëlqyer burimesh dhe artikujsh. këtu. Për shembull, latency është shpjeguar thellësisht në këtë artikullin, dhe për të kuptuar se si gjenden bug-et në algoritmet e replikimit, rekomandoj të njiheni me këtë artikullin.

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 do të përmendnit edhe produkte të tjera të dobishme software për të zgjidhur të njëjtat probleme.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmarkingun e bllokzis

Do ta filloj me një mjet, ndonëse jo të krijuar pikërisht për blockchain, por që lejon testimin efektiv të punës së tyre, me kusht që të ekzistojë një rrjet i nisur, mbi të cilin mund të eksperimentoni. Një faktor kyç i besueshmërisë së 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 rrjeti, mbinxehja e diskut, mungesa e shërbimeve të jashtme (DNS), defekte të pajisjeve dhe qindra arsye të tjera. Për të kontrolluar qëndrueshmërinë e çdo sistemi që punon në përputhje me një numër të madh makinash, mund të përdoret Gremlin. Ai përdor një qasje shumë efektive, të quajtur Inxhinieri e Kaosit.

Me ndihmën e agentit të tij rrjetë, Gremlin krijon në numrin e nevojshëm të makinave shumë tipe të ndryshme problemesh: vonesa rrjeti, ngarkesë të çdo burimi (CPU, disk, memorie, rrjet), çaktivizimin e protokolleve të veçanta, etj. Për blockchain-et, Gremlin mund të përdoret në serverët e rrjetit të testit, duke imituar probleme reale dhe duke vëzhguar sjelljen e rrjetit. Me ndihmën e tij, zhvilluesit dhe administratorët në një ambient të kontrolluar mund të monitorojnë se çfarë do të ndodhte me sistemin në rast të goditjeve ose gjatë përditësimit të kodit. Në të njëjtën kohë, rrjeti duhet të konfigurohet dhe të optimizohet paraprakisht, si dhe të konfigurohen metrikat e nevojshme.

Gremlin është një instrument i përshtatshëm për arkitektët, dev ops-at dhe sigurinë, dhe një zgjidhje universale për testimin e çdo sistemi të shpërndarë të gatshëm dhe të nisur, përfshirë blockchain-et.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmarkingun e bllokzis

Hyperledger Caliper është një zgjidhje shumë më e specializuar Hyperledger Caliper. Tani për tani, Caliper mbështet disa blockchain-e – përfaqësues të familjes Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), si dhe Ethereum dhe rrjetin FISCO BCOS.

Me ndihmën e Caliper, mund të përcaktoni topologjinë e rrjetit blockchain dhe kontratat për testim, si dhe të përshkruani konfiguracionin e nodës. Nodat e blockchain-it ngrihen në kontejnerë docker në një makinë. Më pas, mund të zgjidhni konfigurimet e nevojshme të testeve dhe të merrni një skedar me raportin e rezultateve të testit pas nisjes. Me një listë të plotë të metrikave të Caliper dhe qasjes ndaj benchmarking-ut mund të njoheni këtu Hyperledger Blockchain Performance Metrics, ky është një artikull i shkëlqyer nëse jeni të interesuar për temën e benchmarking-ut të blockchain-ëve. Gjithashtu, mund të konfiguroni mbledhjen e metrikave në mënyrë të veçantë në Prometheus/Grafana.

Hyperledger Caliper është një instrument i orientuar drejt zhvilluesve dhe arkitektëve të sistemeve, pasi ofron përsëritshmërinë e testeve dhe automatizimin e testimit dhe benchmarking-ut. Ai përdoret gjatë zhvillimit të zemrës së blockchain-eve: algoritmeve të konsensusit, makinerisë virtuale për procesimin e kontratave të mençura, katësisë peer-to-peer dhe mekanizmave të tjerë sistemorë.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmarkingun e bllokzis

MixBytes Tank – një instrument që u shfaq gjatë zhvillimit të algoritmeve të konsensusit dhe të finalitetit për rrjetet mbi bazën e EOS dhe testimin e parachain-eve mbi bazën e Parity Substrate (Polkadot). Në funksionalitet, ai është i afërt me Hyperledger Caliper, pasi lejon mbledhjen e metrikave të rëndësishme nga nodat e çdo sistemi të shpërndarë dhe makinave klient që punojnë skenarët e testit.

MixBytes Tank përdor disa shërbime cloud (Digital Ocean, Google Cloud Engine etj.) në të cilat mund të nisë një numër të madh nodash, të kryejë procedura përgatitore të konfigurimit, të nisë disa benchmark-e paralelisht në makina të ndryshme, të mbledhë metrikat e nevojshme dhe të ndalë automatikisht rrjetin.

MixBytes Tank ju jep mundësinë të përdorë në mënyrë efikase burimet për serverët cloud duke shuar automatikisht burimet e panevojshme pas ekzekutimit të testeve. Një veçori tjetër dalluese është përdorimi i paketës Molecule, e cila i lejon zhvilluesit të testojë implementimin e blockchain-it lokalisht.

MixBytes Tank lejon identifikimin e pengesave dhe gabimeve në algoritme në fazat e hershme, të cilat ndodhin në rrjetet reale me një numër të madh serverësh dhe klientësh të shpërndarë gjeografikisht. Tani do t'ju ndihmojë të kuptoni çfarë do të ndodhë në nodet nëse klientët dërgojnë transaksione me një tps të caktuar në kushte shumë të përsëritshme dhe me një numër real nodash të shpërndara në kontinente të ndryshme, kur të jetë e nevojshme.

Përmbledhje e shpejtë e mjeteve për testimin dhe benchmarkingun e bllokzis

Whiteblock Genesis është një platformë për testimin e blockchain-eve mbi Ethereum. Ky mjet ka një gamë të gjerë funksionalitetesh: lejon ngritjen e një rrjeti, krijimin e numrit të kërkuar të llogarive, ngritjen e numrit të nevojshëm të klientëve, konfigurimin e topologjisë së rrjetit, përcaktimin e parametrave të bandwidth, packetloss dhe fillimin e testit.

Whiteblock Genesis ofron burime të veta për realizimin e testeve. Zhvilluesit thjesht duhet të specifikojnë parametrat e testeve, t'i fillojnë ato përmes një API të gatshëm dhe të marrin rezultatet përmes një dashboard-i të përshtatshëm.

Whiteblock Genesis lejon konfigurimin e një testi mjaft të detajuar, i cili do të realizohet automatikisht për çdo ndryshim të rëndësishëm të kodit. Kjo do të ndihmojë në kapjen e gabimeve në etapat 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 konsumuar nga nodet.

Madt

Një produkt tjetër interesant i ri për testimin e sistemeve të shpërndara — madt. Është shkruar në Python dhe lejon krijimin e topologjisë së kërkuar të rrjetit dhe numrit të nevojshëm të serverëve dhe klientëve me anë të një skripti konfigurimi të thjeshtë (shembull). Pas kësaj, shërbimi ngre rrjetin në disa konteinerë docker dhe aktivizon një ndërfaqe web, në të cilën mund të vëzhgoni mesazhet nga serverët dhe klientët e rrjetit. Madt mund të përdoret për testimin e blockchain-eve — në repositorin e projektit ka një test p2p rrjeti mbi protokollin Kademlia, ku vonesat gradualisht rriten gjatë dërgimit të të dhënave në nodet dhe kontrollohet statusi i këtyre të dhënave.

Madt sapo ka dalë, por duke marrë parasysh arkitekturën e tij shumë fleksibël, mund të zhvillohet në një produkt funksional.

Zgjidhje të tjera

Gjithashtu, çdo testim i pjesës sistemore të blockchain-eve kërkon aktivizimin e skenarëve paraprakë, përgatitjen e llogarive dhe kushteve për testin (kjo mund të përfshijë testimin e gabimeve të konsensusit, të cilat mund të shkaktojnë shumë forkime të zinxhirëve, provimin e skenarëve të hardfork-ut, ndryshimin e parametrave sistemorë, etj.). Të gjitha këto manovra realizohen ndryshe në blockchain-e të ndryshme, prandaj ekipet është më e lehtë të përshtatin gradualisht testimin dhe benchmark-un e produktit me CI/CD të brendshëm dhe të përdorin punën e vet të zhvilluar, e cila gradualisht bëhet më komplekse me zhvillimin e funksionalitetit të blockchain-it.

Megjithatë, përdorimi i zgjidhjeve të gatshme mund të ndihmojë shumë ekipet që të reduktojnë kohën e testimit, prandaj mendoj se ky soft do të zhvillohet aktivisht në vitet e ardhshme.

Përfundimi

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 blockchain-eve:

  • Mundësia e implementimit automatik të rrjetit blockchain në kushte të përsëritshme. Ky faktor është i rëndësishëm për zhvillimin e pjesëve sistemore të blockchain-eve: algoritmet e konsensusit, përfundimtarësinë, smart kontratat sistemore.
  • Kostoja e pronësisë së sistemit, burimet e konsumuar dhe përfitueshmëria për përdorim të vazhdueshëm. Ky faktor sigurон teste të klasit të lartë për projektet në kosto të ulët.
  • Fleksibiliteti dhe thjeshtësia e konfigurimit të testeve. Ky faktor rrit mundësitë për të kapur problemet e sistemit — ka më pak të ngjarë që të humbni diçka të rëndësishme.
  • Personalizimi për llojet specifike të blockchain-eve. Zhvillimi i një zgjidhjeje mbi një bazë ekzistuese mund të përmirësojë ndjeshëm cilësinë dhe të reduktojë kohët e zhvillimit.
  • Lehtësia dhe aksesueshmëria e rezultateve të marra dhe lloji i tyre (raporte, metrika, grafe, log, etj.). Kjo është e domosdoshme nëse dëshironi të ndjekni historinë e zhvillimit të produktit, ose keni nevojë për një analizë të thelluar të sjelljes së rrjetit blockchain.

Suksese në testim dhe le të jenë blockchain-et tuaj të shpejtë dhe të qëndrueshëm!

Burimi: habr.com

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster