Mallonga Superrigardo de Blockchain Testado kaj Benchmarking Iloj

Mallonga Superrigardo de Blockchain Testado kaj Benchmarking Iloj

Hodiaŭ, solvoj por testado kaj benchmarking blokĉenoj estas adaptitaj al specifa blokĉeno aŭ ĝiaj forkoj. Sed ekzistas ankaŭ pluraj pli ĝeneralaj solvoj, kiuj diferencas laŭ funkcieco: kelkaj el ili estas malfermfontaj projektoj, aliaj estas provizitaj kiel SaaS, sed la plej multaj estas internaj solvoj kreitaj de la blokĉena evolua teamo. Tamen, ili ĉiuj solvas similajn problemojn. En ĉi tiu artikolo, mi provis mallonge revizii plurajn produktojn dezajnitajn specife por provi blokĉenojn.

La funkciado de blokĉena reto similas la funkciadon de distribuita datumbazo, do similaj iloj kaj metodoj povas esti uzataj por testado. Por pli bone kompreni kiel distribuitaj datumbazoj estas testataj, rigardu bonan elekton de rimedoj kaj artikoloj de ĉi tie. Ekzemple, latenco estas ordigita en pecojn en ĉi tio artikolo, kaj por kompreni kiel ili serĉas cimojn en reproduktaj algoritmoj, mi rekomendas legi ĉi tion artikoloj.

Mi priskribos plurajn popularajn solvojn por testado kaj benchmarking blokĉenoj. Mi ĝojus, se en la komentoj vi priskribas aliajn utilajn programajn produktojn por solvi la samajn problemojn.

Mallonga Superrigardo de Blockchain Testado kaj Benchmarking Iloj

Mi komencos per ilo kiu, kvankam ne kreita specife por blokĉenoj, permesas vin efike testi ilian funkciadon kondiĉe ke ekzistas jam funkcianta reto, sur kiu vi povas eksperimenti. La plej grava faktoro en la fidindeco de distribuita sistemo estas la kapablo daŭrigi labori en okazo de problemoj kun la serviloj kaj reto. Ĉi tio povus esti retaj malfruoj, disko-pleneco, nehavebleco de eksteraj servoj (DNS), aparataj misfunkciadoj kaj centoj da aliaj kialoj. Por kontroli la stabilecon de iuj sistemoj funkcianta en koncerto sur granda nombro da sistemoj maŝinoj, vi povas uzi Gremlino. Ĝi uzas ekstreme efikan aliron nomitan Chaos Engineering.

Uzante sian propran retan agenton, Gremlin kreas multajn malsamajn specojn de problemoj sur la bezonata nombro da maŝinoj: retaj malfruoj, troŝarĝo de iu ajn rimedo (CPU, disko, memoro, reto), malfunkciigas individuajn protokolojn, ktp. Por blokĉenoj, Gremlin povas esti uzata sur testretaj serviloj, imitante realajn problemojn kaj observante la konduton de la reto. Kun ĝi, programistoj kaj administrantoj povas observi en kontrolita medio, kio okazos se la sistemo kraŝos aŭ kiam la kodo estas ĝisdatigita. En ĉi tiu kazo, la reto devas esti agordita kaj deplojita anticipe, same kiel agordita por kolekti la necesajn metrikojn.

Gremlin estas oportuna ilo por arkitektoj, devopoj kaj sekurecaj specialistoj kaj universala solvo por provi iujn ajn pretajn kaj funkciigajn distribuitajn sistemojn, inkluzive de blokĉenoj.

Mallonga Superrigardo de Blockchain Testado kaj Benchmarking Iloj

Hyperledger Caliper estas multe pli specialigita solvo Hyperledger Caliper. Nuntempe, Caliper subtenas plurajn blokĉenojn samtempe - reprezentantoj de la familio Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), same kiel Ethereum kaj la reto FISCO BCOS.

Uzante Caliper, vi povas agordi la topologion de la blokĉena reto kaj kontraktojn por testado, kaj ankaŭ priskribi la agordon de la nodo. Blockchain-nodoj estas levitaj en docker-ujoj sur unu maŝino. Poste, vi povas elekti la necesan testaj agordoj kaj ricevu dosieron kun raporto pri la testrezultoj post lanĉo. Plena listo de Caliper-metrikoj kaj benchmarking-aliro troveblas ĉi tie Hyperledger Blockchain Performance Metrics, ĉi tio estas bonega artikolo se vi interesiĝas pri la temo de blokĉena benchmarking. Vi ankaŭ povas agordi kalkulkolekton en aparta Prometheus/Grafana.

Hyperledger Caliper estas ilo celita al programistoj kaj sistemaj arkitektoj, ĉar ĝi provizas provajn ripeteblojn kaj aŭtomatigon de testado kaj benchmarking. Ĝi estas uzata en la disvolviĝo de la kerno de blokĉenoj: konsentaj algoritmoj, virtuala maŝino por prilaborado de inteligentaj kontraktoj, samulo-al-kunula tavolo kaj aliaj sistemaj mekanismoj.

Mallonga Superrigardo de Blockchain Testado kaj Benchmarking Iloj

MixBytes Tanko estas ilo, kiu aperis en la procezo de evoluigado de konsento kaj finaĵalgoritmoj por EOS-bazitaj retoj kaj testado de paraĉenoj bazitaj sur Parity Substrate (Polkadot). Koncerne funkciecon, ĝi estas proksima al Hyperledger Caliper, ĉar ĝi permesas vin kolekti gravajn metrikojn de nodoj de iu ajn distribuita sistemo kaj klientmaŝinoj sur kiuj testaj skriptoj funkcias.

MixBytes Tank uzas plurajn nubservojn (Digital Ocean, Google Cloud Engine, ktp.), en kiuj ĝi povas lanĉi multajn nodojn, efektivigi antaŭajn agordajn procedurojn, ruli plurajn komparnormojn paralele sur malsamaj maŝinoj, kolekti la necesajn metrikojn kaj aŭtomate malŝalti la reto.

MixBytes Tank permesas ŝpari monon en nubaj serviloj aŭtomate minimumigante nenecesajn rimedojn post testo. Alia karakteriza trajto estas la uzo de la Molecule-pakaĵo, kiu permesas al la programisto testi la disfaldiĝon de la dezirata blokĉeno loke.

MixBytes Tank ebligas vin frue detekti botelojn kaj erarojn en algoritmoj, kiuj aperas en realaj retoj kun granda nombro da geografie distribuitaj serviloj kaj klientoj. La tanko helpos vin kompreni, kio okazos sur la nodoj, se klientoj sendas transakciojn kun donita tps en tre ripeteblaj kondiĉoj kaj kun reala nombro da nodoj disvastigitaj tra malsamaj kontinentoj, se necese.

Mallonga Superrigardo de Blockchain Testado kaj Benchmarking Iloj

Whiteblock Genesis estas testa platformo por blokĉenoj bazitaj en Ethereum. Ĉi tiu ilo havas sufiĉe ampleksan funkciecon: ĝi ebligas al vi lanĉi reton, krei la bezonatan nombron da kontoj en ĝi, altigi la bezonatan nombron da klientoj, agordi la retan topologion, specifi la bendolarĝon kaj pakaĵajn parametrojn kaj fari teston.

Whiteblock Genesis disponigas siajn proprajn testajn instalaĵojn. Programistoj nur bezonas specifi testajn parametrojn, ruli ilin per preta API kaj akiri rezultojn per oportuna panelo.

Whiteblock Genesis permesas al vi agordi sufiĉe detalan teston, kiun la platformo aŭtomate faros por ĉiu grava kodŝanĝo. Ĉi tio permesos vin kapti erarojn en frua etapo kaj tuj taksi la efikon de ŝanĝoj sur gravaj retaj parametroj, kiel transakcia rapideco kaj rimedoj konsumitaj de nodoj.

Madt

Alia interesa juna produkto por provi distribuitajn sistemojn estas madt. Ĝi estas skribita en Python kaj permesas krei la bezonatan retan topologion kaj la bezonatan nombron da serviloj kaj klientoj per simpla agorda skripto (ekzemplo). Post ĉi tio, la servo disfaldas la reton en pluraj Docker-ujoj kaj malfermas retan interfacon en kiu vi povas observi mesaĝojn de serviloj kaj klientoj de la reto. Madt povas esti uzata por provi blokĉenojn - la projekta deponejo havas p2p-reton-teston bazitan sur la protokolo Kademlia, en kiu malfruoj en liverado de datumoj al nodoj estas iom post iom pliigitaj kaj la stato de ĉi tiuj datumoj estas kontrolita.

Madt nur lastatempe aperis, sed pro ĝia tre fleksebla arkitekturo, ĝi povas evolui al funkcia produkto.

Aliaj solvoj

Preskaŭ ajna testado de la sistema parto de blokĉenoj postulas ruli antaŭajn skriptojn, prepari kontojn kaj kondiĉojn por la testo (ĉi tio povas esti testado de konsentaj eraroj, kiuj povas generi multajn forkojn de ĉenoj, testado de malfacilaj forkaj scenaroj, ŝanĝado de sistemaj parametroj, ktp.). Ĉiuj ĉi tiuj manipuladoj estas faritaj malsame en malsamaj blokĉenoj, do estas pli facile por teamoj iom post iom adapti produktan testadon kaj benchmarking al interna CI/KD kaj uzi siajn proprajn evoluojn, kiuj iom post iom iĝas pli kompleksaj kiam la funkcieco de la blokĉeno evoluas.

Tamen, la uzo de pretaj solvoj povas multe redukti la testan tempon por ĉi tiuj teamoj, do mi pensas, ke ĉi tiu programaro estos aktive evoluigita en la venontaj jaroj.

konkludo

Por fini ĉi tiun mallongan recenzon, mi listigos plurajn gravajn karakterizaĵojn de blokĉenaj testaj iloj:

  • La kapablo aŭtomate deploji blokĉenan reton sub ripeteblaj kondiĉoj. Ĉi tiu faktoro estas grava kiam disvolvas sistemajn partojn de blokĉenoj: konsentaj algoritmoj, fineco, sistemaj inteligentaj kontraktoj.
  • La kosto de posedado de la sistemo, la konsumitaj rimedoj kaj la komforto por konstanta uzo. Ĉi tiu faktoro provizas la projekton per altkvalitaj testoj por malmulte da mono.
  • Fleksebleco kaj simpleco de testa agordo. Ĉi tiu faktoro pliigas la ŝancojn identigi sistemajn problemojn - estas malpli da ŝanco perdi ion gravan.
  • Personigo por specifaj specoj de blokĉenoj. Disvolvi solvon bazitan sur ekzistanta povas multe plibonigi kvaliton kaj redukti tempokostojn.
  • Komforto kaj alirebleco de la rezultoj akiritaj kaj ilia tipo (raportoj, metrikoj, grafikaĵoj, protokoloj, ktp.). Ĉi tio estas absolute necesa se vi volas spuri la historion de la evoluo de produkto, aŭ se vi postulas profundan analizon de la konduto de la blokĉena reto.

Bonŝancon kun via testado kaj viaj blokĉenoj estu rapidaj kaj toleremaj al misfunkciadoj!

fonto: www.habr.com

Aldoni komenton