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
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.
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
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.
Hyperledger Caliper është një zgjidhje shumë më e specializuar
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
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.
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.
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ë
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