In koart oersjoch fan Blockchain-testen en benchmarking-ark

In koart oersjoch fan Blockchain-testen en benchmarking-ark

Tsjintwurdich binne oplossingen foar testen en benchmarking fan blokken oanpast oan in spesifike blockchain of har foarken. Mar d'r binne ek ferskate mear algemiene oplossingen dy't ferskille yn funksjonaliteit: guon fan harren binne iepen boarne projekten, oaren wurde levere as SaaS, mar de measte binne ynterne oplossings makke troch de blockchain ûntwikkeling team. Lykwols, se allegearre oplosse ferlykbere problemen. Yn dit artikel besocht ik koart ferskate produkten te besjen dy't spesifyk ûntworpen binne foar testen fan blockchains.

De wurking fan in blockchain-netwurk liket op de wurking fan in ferspraat databank, sadat ferlykbere ark en metoaden kinne wurde brûkt foar testen. Om better te begripen hoe't ferspraat databases wurde hifke, besjoch in goede seleksje fan boarnen en artikels fan hjir. Bygelyks, latency wurdt sortearre yn stikken yn dizze artikel, en om te begripen hoe't se nei bugs sykje yn replikaasjealgoritmen, advisearje ik dit te lêzen artikels.

Ik sil ferskate populêre oplossingen beskriuwe foar testen en benchmarking fan blockchains. Ik soe bliid wêze as jo yn 'e opmerkingen oare nuttige softwareprodukten beskriuwe foar it oplossen fan deselde problemen.

In koart oersjoch fan Blockchain-testen en benchmarking-ark

Ik sil begjinne mei in ark dat, hoewol net spesifyk makke foar blockchains, jo de operaasje effektyf kinne testen, op betingst dat d'r in al rinnend netwurk is wêrop jo kinne eksperimintearje. De wichtichste faktor yn 'e betrouberens fan in ferspraat systeem is de mooglikheid om troch te wurkjen yn gefal fan problemen mei de servers en netwurk. Dit kin netwurklags wêze, skiiffolens, ûnbeskikberens fan eksterne tsjinsten (DNS), hardwarefouten en hûnderten oare redenen. Om te kontrolearjen de stabiliteit fan alle systemen wurkje yn konsert op in grut oantal systemen masines, kinne jo brûke Gremlin. It brûkt in ekstreem effektive oanpak neamd Chaos Engineering.

Mei it brûken fan syn eigen netwurkagent makket Gremlin in protte ferskillende soarten problemen op it fereaske oantal masines: netwurklags, oerlêst fan elke boarne (CPU, skiif, ûnthâld, netwurk), skeakelet yndividuele protokollen, ensfh. Foar blockchains kin Gremlin brûkt wurde op testnet-servers, emulearje echte problemen en observearje it gedrach fan it netwurk. Dêrmei kinne ûntwikkelders en behearders yn in kontroleare omjouwing observearje wat der barre sil as it systeem crasht of as de koade bywurke wurdt. Yn dit gefal moat it netwurk foarôf konfigureare en ynset wurde, en ek konfigureare om de nedige metriken te sammeljen.

Gremlin is in handich ark foar arsjitekten, devops en feiligens spesjalisten en in universele oplossing foar it testen fan alle klear makke en rinnende ferspraat systemen, ynklusyf blockchains.

In koart oersjoch fan Blockchain-testen en benchmarking-ark

Hyperledger Caliper is in folle mear spesjalisearre oplossing Hyperledger Caliper. Op it stuit stipet Caliper ferskate blockchains tagelyk - fertsjintwurdigers fan 'e Hyperledger-famylje (Fabric, Sawtooth, Iroha, Burrow, Besu), lykas Ethereum en it FISCO BCOS-netwurk.

Mei help fan Caliper kinne jo de topology fan it blockchain-netwurk en kontrakten ynstelle foar testen, en ek de konfiguraasje fan 'e knooppunt beskriuwe. Blockchain-knooppunten wurde ferhege yn docker-konteners op ien masine. Folgjende, kinne jo selektearje de nedige test konfiguraasjes en ûntfange in bestân mei in rapport oer de testresultaten nei lansearring. In folsleine list mei Caliper-metriken en benchmarking-oanpak is hjir te finen Hyperledger Blockchain Performance Metrics, dit is in geweldich artikel as jo ynteressearre binne yn it ûnderwerp fan blockchain benchmarking. Jo kinne ek metrike kolleksje ynstelle yn in aparte Prometheus / Grafana.

Hyperledger Caliper is in ark rjochte op ûntwikkelders en systeemarsjitekten, om't it testrepetabiliteit en automatisearring fan testen en benchmarking leveret. It wurdt brûkt yn 'e ûntwikkeling fan' e kearn fan blockchains: konsensusalgoritmen, in firtuele masine foar it ferwurkjen fan tûke kontrakten, in peer-to-peer-laach en oare systeemmeganismen.

In koart oersjoch fan Blockchain-testen en benchmarking-ark

MixBytes Tank is in ark dat ûntstie yn it proses fan it ûntwikkeljen fan konsensus- en finaliteitalgoritmen foar EOS-basearre netwurken en testen fan parachains basearre op Parity Substrate (Polkadot). Wat funksjonaliteit oanbelanget, is it tichtby Hyperledger Caliper, om't it jo wichtige metriken kinne sammelje fan knooppunten fan elk ferspraat systeem en kliïntmasines wêrop testskripts rinne.

MixBytes Tank brûkt ferskate wolktsjinsten (Digital Ocean, Google Cloud Engine, ensfh.), wêryn it in protte knooppunten kin starte, foarriedige konfiguraasjeprosedueres útfiere, ferskate benchmarks parallel op ferskate masines útfiere, de nedige metriken sammelje en de automatyske ôfslute fan de netwurk.

MixBytes Tank lit jo jild besparje op wolkservers troch automatysk oerstallige boarnen nei in test te minimalisearjen. In oar ûnderskiedend skaaimerk is it gebrûk fan it Molecule-pakket, wêrtroch de ûntwikkelder de ynset fan 'e winske blockchain lokaal testje kin.

MixBytes Tank kinne jo betiid detect knelpunten en flaters yn algoritmen dy't ûntsteane yn echte netwurken mei in grut oantal geografysk ferspraat tsjinners en kliïnten. De tank sil jo helpe om te begripen wat der sil barre op 'e knopen as kliïnten transaksjes stjoere mei in opjûne tps yn heul werhelle omstannichheden en mei in echt oantal knopen ferspraat oer ferskate kontininten, as nedich.

In koart oersjoch fan Blockchain-testen en benchmarking-ark

Whiteblock Genesis is in testplatfoarm foar Ethereum-basearre blockchains. Dit ark hat in frij brede funksjonaliteit: it lit jo in netwurk starte, it fereaske oantal akkounts dêryn oanmeitsje, it fereaske oantal kliïnten ferheegje, de netwurktopology konfigurearje, de parameters foar bânbreedte en pakketferlies opjaan en in test útfiere.

Whiteblock Genesis leveret har eigen testfasiliteiten. Untwikkelders moatte gewoan testparameters opjaan, se útfiere mei in ready-made API, en resultaten krije mei in handich dashboard.

Whiteblock Genesis lit jo in frij detaillearre test konfigurearje dy't it platfoarm automatysk sil útfiere foar elke wichtige koadeferoaring. Hjirmei kinne jo flaters yn in ier stadium fange en fuortendaliks de ynfloed fan feroaringen op wichtige netwurkparameters beoardielje, lykas transaksjesnelheid en boarnen konsumeare troch knopen.

Madt

In oar nijsgjirrich jong produkt foar testen fan ferspraat systemen is madt. It is skreaun yn Python en lit jo de fereaske netwurktopology en it fereaske oantal servers en kliïnten oanmeitsje mei in ienfâldich konfiguraasjeskript (foarbyld). Hjirnei ynset de tsjinst it netwurk yn ferskate Docker-konteners en iepenet in webynterface wêryn jo berjochten kinne observearje fan servers en kliïnten fan it netwurk. Madt kin brûkt wurde foar testen fan blockchains - it projektrepository hat in p2p-netwurktest basearre op it Kademlia-protokol, wêryn fertragingen yn it leverjen fan gegevens oan knopen stadichoan ferhege wurde en de status fan dizze gegevens wurdt kontrolearre.

Madt is pas koartlyn ferskynd, mar sjoen syn tige fleksibele arsjitektuer kin it ûntwikkelje ta in funksjoneel produkt.

Oare oplossingen

Hast alle testen fan it systeemdiel fan blockchains fereasket it útfieren fan foarriedige skripts, it tarieden fan akkounts en betingsten foar de test (dit kin wêze testen fan konsensusflaters dy't in protte foarken fan keatlingen kinne generearje, testen fan hurde gabelsenario's, feroarjen fan systeemparameters, ensfh.). Al dizze manipulaasjes wurde oars útfierd yn ferskate blockchains, dus it is makliker foar teams om produkttesten en benchmarking stadichoan oan te passen oan ynterne CI / CD en har eigen ûntwikkelingen te brûken, dy't stadichoan komplekser wurde as de funksjonaliteit fan 'e blockchain ûntwikkelet.

Dochs kin it gebrûk fan klearmakke oplossingen de testtiid foar dizze teams sterk ferminderje, dus ik tink dat dizze software yn 'e kommende jierren aktyf ûntwikkele wurde sil.

konklúzje

Om dizze koarte resinsje te sluten, sil ik ferskate wichtige skaaimerken fan blockchain-testynstruminten listje:

  • De mooglikheid om automatysk in blockchain-netwurk yn te setten ûnder werhelle betingsten. Dizze faktor is wichtich by it ûntwikkeljen fan systeemdielen fan blockchains: konsensusalgoritmen, finaliteit, systeemtûke kontrakten.
  • De kosten fan it besit fan it systeem, de konsumearre middels en it gemak foar konstant gebrûk. Dizze faktor jout it projekt tests fan hege kwaliteit foar in bytsje jild.
  • Fleksibiliteit en ienfâld fan test konfiguraasje. Dizze faktor fergruttet de kânsen om systeemproblemen te identifisearjen - d'r is minder kâns om wat wichtichs te missen.
  • Oanpassing foar spesifike soarten blockchains. It ûntwikkeljen fan in oplossing basearre op in besteande kin de kwaliteit gâns ferbetterje en tiidkosten ferminderje.
  • Gemak en tagonklikens fan 'e krigen resultaten en har type (rapporten, metriken, grafiken, logs, ensfh.). Dit is perfoarst needsaaklik as jo de skiednis fan 'e ûntwikkeling fan in produkt wolle folgje, of as jo djippe analytiken nedich binne fan it gedrach fan it blockchain-netwurk.

Sukses mei jo testen en meie jo blockchains rap en fouttolerant wêze!

Boarne: www.habr.com

Add a comment