Një përmbledhje e shkurtër e Mjeteve të Testimit dhe Benchmarking të Blockchain

Një përmbledhje e shkurtër e Mjeteve të Testimit dhe Benchmarking të Blockchain

Sot, zgjidhjet për testimin dhe krahasimin e blockchain-eve janë përshtatur për një blockchain specifik ose forks të tij. Por ka edhe disa zgjidhje më të përgjithshme që ndryshojnë në funksionalitet: disa prej tyre janë projekte me burim të hapur, të tjerat ofrohen si SaaS, por shumica janë zgjidhje të brendshme të krijuara nga ekipi i zhvillimit të blockchain. Megjithatë, të gjithë ata zgjidhin probleme të ngjashme. Në këtë artikull, u përpoqa të shqyrtoj shkurtimisht disa produkte të krijuara posaçërisht për testimin e zinxhirëve të bllokimit.

Funksionimi i një rrjeti blockchain i ngjan funksionimit të një baze të dhënash të shpërndarë, kështu që mjete dhe metoda të ngjashme mund të përdoren për testim. Për të kuptuar më mirë se si testohen bazat e të dhënave të shpërndara, hidhini një sy një përzgjedhjeje të mirë burimesh dhe artikujsh prandaj. Për shembull, vonesa është renditur në pjesë në këtë artikull, dhe për të kuptuar se si ata kërkojnë gabime në algoritmet e përsëritjes, unë rekomandoj ta lexoni këtë artikull.

Unë do të përshkruaj disa zgjidhje të njohura për testimin dhe krahasimin e zinxhirëve të bllokut. Do të isha i lumtur nëse në komente përshkruani produkte të tjera softuerike të dobishme për zgjidhjen e të njëjtave probleme.

Një përmbledhje e shkurtër e Mjeteve të Testimit dhe Benchmarking të Blockchain

Do të filloj me një mjet që, megjithëse nuk është krijuar posaçërisht për blockchains, ju lejon të testoni në mënyrë efektive funksionimin e tyre, me kusht që të ekzistojë një rrjet tashmë funksional në të cilin mund të eksperimentoni. Faktori më i rëndësishëm në besueshmë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. Kjo mund të jetë vonesa në rrjet, plotësia e diskut, mosdisponueshmëria e shërbimeve të jashtme (DNS), dështimet e harduerit dhe qindra arsye të tjera. Për të kontrolluar stabilitetin e çdo sistemi që funksionon së bashku në një numër të madh makinerish sistemesh, mund të përdorni shpirt i keq. Ai përdor një qasje jashtëzakonisht efektive të quajtur Inxhinieria e Kaosit.

Duke përdorur agjentin e vet të rrjetit, Gremlin krijon shumë lloje të ndryshme problemesh në numrin e kërkuar të makinerive: vonesa në rrjet, mbingarkesë e çdo burimi (CPU, disk, memorie, rrjet), çaktivizon protokollet individuale, etj. Për blockchains, Gremlin mund të përdoret në serverët testnet, duke emuluar problemet e jetës reale dhe duke vëzhguar sjelljen e rrjetit. Me të, zhvilluesit dhe administratorët mund të vëzhgojnë në një mjedis të kontrolluar se çfarë do të ndodhë nëse sistemi rrëzohet ose kur kodi përditësohet. Në këtë rast, rrjeti duhet të konfigurohet dhe vendoset paraprakisht, si dhe të konfigurohet për të mbledhur matjet e nevojshme.

Gremlin është një mjet i përshtatshëm për arkitektët, zhvilluesit dhe specialistët e sigurisë dhe një zgjidhje universale për testimin e çdo sistemi të gatshëm dhe funksional të shpërndarë, duke përfshirë blockchains.

Një përmbledhje e shkurtër e Mjeteve të Testimit dhe Benchmarking të Blockchain

Hyperledger Caliper është një zgjidhje shumë më e specializuar Hyperledger Caliper. Për momentin, Caliper mbështet disa zinxhirë bllokimi menjëherë - përfaqësues të familjes Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), si dhe Ethereum dhe rrjetin FISCO BCOS.

Duke përdorur Caliper, mund të vendosni topologjinë e rrjetit blockchain dhe kontratat për testim, si dhe të përshkruani konfigurimin e nyjes. Nyjet e Blockchain ngrihen në kontejnerë docker në një makinë. Tjetra, ju mund të zgjidhni të nevojshme konfigurimet e testimit dhe merrni një skedar me një raport mbi rezultatet e testimit pas nisjes. Një listë e plotë e matjeve të Caliper dhe qasjes së krahasimit mund të gjendet këtu Matjet e Performancës së Blockchain Hyperledger, ky është një artikull i mrekullueshëm nëse jeni të interesuar për temën e krahasimit të blockchain. Ju gjithashtu mund të konfiguroni koleksionin e matjeve në një Prometheus/Grafana të veçantë.

Hyperledger Caliper është një mjet që synon zhvilluesit dhe arkitektët e sistemit, pasi siguron përsëritshmërinë e testit dhe automatizimin e testimit dhe krahasimit. Përdoret në zhvillimin e bërthamës së blockchains: algoritme konsensusi, një makinë virtuale për përpunimin e kontratave inteligjente, një shtresë peer-to-peer dhe mekanizma të tjerë të sistemit.

Një përmbledhje e shkurtër e Mjeteve të Testimit dhe Benchmarking të Blockchain

Tank MixBytes është një mjet që u shfaq në procesin e zhvillimit të algoritmeve të konsensusit dhe finalitetit për rrjetet e bazuara në EOS dhe testimin e parazinxhirëve të bazuar në Parity Substrate (Polkadot). Për sa i përket funksionalitetit, është afër Hyperledger Caliper, pasi ju lejon të grumbulloni metrika të rëndësishme nga nyjet e çdo sistemi të shpërndarë dhe makineritë e klientëve në të cilat funksionojnë skriptet e testimit.

MixBytes Tank përdor disa shërbime cloud (Digital Ocean, Google Cloud Engine, etj.), në të cilat mund të nisë shumë nyje, të kryejë procedura paraprake të konfigurimit, të ekzekutojë disa standarde paralelisht në makina të ndryshme, të mbledhë matjet e nevojshme dhe të mbyllë automatikisht rrjeti.

MixBytes Tank ju lejon të kurseni para në serverët cloud duke minimizuar automatikisht burimet e panevojshme pas një prove. Një tipar tjetër dallues është përdorimi i paketës Molecule, i cili i lejon zhvilluesit të testojë vendosjen e blockchain-it të dëshiruar në nivel lokal.

MixBytes Tank ju lejon të zbuloni herët pengesat dhe gabimet në algoritme që lindin në rrjetet reale me një numër të madh serverësh dhe klientësh të shpërndarë gjeografikisht. Rezervuari do t'ju ndihmojë të kuptoni se çfarë do të ndodhë në nyje 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 nyjesh të shpërndara nëpër kontinente të ndryshme, nëse është e nevojshme.

Një përmbledhje e shkurtër e Mjeteve të Testimit dhe Benchmarking të Blockchain

Whiteblock Genesis është një platformë testimi për blockchains të bazuara në Ethereum. Ky mjet ka një funksionalitet mjaft të gjerë: ju lejon të hapni një rrjet, të krijoni numrin e kërkuar të llogarive në të, të rritni numrin e kërkuar të klientëve, të konfiguroni topologjinë e rrjetit, të specifikoni parametrat e gjerësisë së brezit dhe humbjes së paketave dhe të kryeni një provë.

Whiteblock Genesis ofron pajisjet e veta të testimit. Zhvilluesit duhet vetëm të specifikojnë parametrat e testimit, t'i ekzekutojnë ato duke përdorur një API të gatshme dhe të marrin rezultate duke përdorur një panel të përshtatshëm.

Whiteblock Genesis ju lejon të konfiguroni një test mjaft të detajuar që platforma do të kryejë automatikisht për çdo ndryshim të rëndësishëm të kodit. Kjo do t'ju lejojë të kapni gabimet në një fazë të hershme dhe të vlerësoni menjëherë ndikimin e ndryshimeve në parametrat e rëndësishëm të rrjetit, si shpejtësia e transaksionit dhe burimet e konsumuara nga nyjet.

Madt

Një tjetër produkt i ri interesant për testimin e sistemeve të shpërndara është i çmendur. Është shkruar në Python dhe ju lejon të krijoni topologjinë e kërkuar të rrjetit dhe numrin e kërkuar të serverëve dhe klientëve duke përdorur një skript të thjeshtë konfigurimi (shembull). Pas kësaj, shërbimi vendos rrjetin në disa kontejnerë Docker dhe hap një ndërfaqe në internet në të cilën mund të vëzhgoni mesazhe nga serverët dhe klientët e rrjetit. Madt mund të përdoret për testimin e blockchains - depoja e projektit ka një test të rrjetit p2p bazuar në protokollin Kademlia, në të cilin vonesat në dërgimin e të dhënave në nyje rriten gradualisht dhe kontrollohet statusi i këtyre të dhënave.

Madt është shfaqur vetëm kohët e fundit, por duke pasur parasysh arkitekturën e tij shumë fleksibël, ai mund të zhvillohet në një produkt funksional.

Zgjidhje të tjera

Pothuajse çdo testim i pjesës së sistemit të blockchains kërkon ekzekutimin e skripteve paraprake, përgatitjen e llogarive dhe kushteve për testin (kjo mund të jetë testimi i gabimeve të konsensusit që mund të gjenerojnë shumë zinxhirë zinxhirësh, testimin e skenarëve të hard fork, ndryshimin e parametrave të sistemit, etj.). Të gjitha këto manipulime kryhen ndryshe në blockchain të ndryshëm, kështu që është më e lehtë për ekipet që gradualisht të përshtatin testimin dhe krahasimin e produktit me CI/CD të brendshme dhe të përdorin zhvillimet e tyre, të cilat gradualisht bëhen më komplekse me zhvillimin e funksionalitetit të blockchain.

Sidoqoftë, përdorimi i zgjidhjeve të gatshme mund të zvogëlojë shumë kohën e testimit për këto ekipe, kështu që mendoj se ky softuer do të zhvillohet në mënyrë aktive në vitet e ardhshme.

Përfundim

Për të përfunduar këtë përmbledhje të shkurtër, unë do të rendis disa karakteristika të rëndësishme të mjeteve të testimit të blockchain:

  • Aftësia për të vendosur automatikisht një rrjet blockchain në kushte të përsëritshme. Ky faktor është i rëndësishëm kur zhvillohen pjesë të sistemit të blockchains: algoritmet e konsensusit, përfundimi, kontratat e zgjuara të sistemit.
  • Kostoja e posedimit të sistemit, burimet e konsumuara dhe komoditeti për përdorim të vazhdueshëm. Ky faktor i siguron projektit teste me cilësi të lartë për pak para.
  • Fleksibiliteti dhe thjeshtësia e konfigurimit të testit. Ky faktor rrit shanset për të identifikuar problemet e sistemit - ka më pak mundësi për të humbur diçka të rëndësishme.
  • Përshtatje për lloje specifike të blockchains. Zhvillimi i një zgjidhjeje të bazuar në një zgjidhje ekzistuese mund të përmirësojë shumë cilësinë dhe të zvogëlojë kostot e kohës.
  • Komoditeti dhe aksesueshmëria e rezultateve të marra dhe lloji i tyre (raporte, metrikë, grafikë, regjistra, etj.). Kjo është absolutisht e nevojshme nëse doni të gjurmoni historinë e zhvillimit të një produkti, ose nëse keni nevojë për analiza të thella të sjelljes së rrjetit blockchain.

Fat i mirë me testimin tuaj dhe blloqet tuaja mund të jenë të shpejta dhe tolerante ndaj gabimeve!

Burimi: www.habr.com

Shto një koment