Una Breve Panoramica di i Strumenti di Testing Blockchain è Benchmarking

Una Breve Panoramica di i Strumenti di Testing Blockchain è Benchmarking

Oghje, suluzioni per pruvà è benchmarking blockchains sò adattati à una blockchain specifica o i so forks. Ma ci sò ancu parechji suluzioni più generale chì sò diffirenti in funziunalità: alcuni di elli sò prughjetti open source, altri sò furniti cum'è SaaS, ma a maiò parte sò suluzioni internu creati da u squadra di sviluppu bluccatu. Tuttavia, tutti risolve i prublemi simili. In questu articulu, aghju pruvatu à riviseghjà brevemente parechji prudutti cuncepiti apposta per pruvà blockchains.

L'operazione di una reta di blockchain s'assumiglia à l'operazione di una basa di dati distribuita, cusì arnesi è metudi simili ponu esse utilizati per pruvà. Per capisce megliu cumu e basa di dati distribuite sò pruvati, fate un ochju à una bona selezzione di risorse è articuli da quì. Per esempiu, a latenza hè ordinata in pezzi in questu articulu, è per capiscenu cumu cercanu bug in l'algoritmi di replicazione, ricumandemu di leghje questu articulu.

Descriveraghju parechje soluzioni populari per pruvà è benchmarking blockchains. Saria cuntentu se in i cumenti descrivi altri prudutti di software utili per risolve i stessi prublemi.

Una Breve Panoramica di i Strumenti di Testing Blockchain è Benchmarking

Cumincià cù un strumentu chì, ancu s'ellu ùn hè micca creatu specificamente per i blockchains, vi permette di pruvà in modu efficace u so funziunamentu, sempre chì ci hè una reta già in esecuzione nantu à quale pudete sperimentà. U fattore più impurtante in l'affidabilità di un sistema distribuitu hè a capacità di cuntinuà à travaglià in casu di prublemi cù i servitori è a rete. Questu puderia esse ritardi di a rete, pienezza di discu, indisponibilità di servizii esterni (DNS), fallimenti di hardware è centinaie d'altri motivi. Per verificà a stabilità di qualsiasi sistemi chì operanu in cuncertu nantu à un gran numaru di macchine di sistemi, pudete aduprà Gremlin. Utiliza un approcciu estremamente efficace chjamatu Chaos Engineering.

Utilizendu u so propiu agentu di rete, Gremlin crea parechji tippi di prublemi nantu à u numeru necessariu di machini: lags di rete, sovraccarico di ogni risorsa (CPU, discu, memoria, rete), disattivate protokolli individuali, etc. Per i blockchains, Gremlin pò esse usatu in i servitori di testnet, emulendu i prublemi di a vita reale è osservendu u cumpurtamentu di a reta. Cù questu, i sviluppatori è l'amministratori ponu osservà in un ambiente cuntrullatu ciò chì succede se u sistema si sfonda o quandu u codice hè aghjurnatu. In questu casu, a reta deve esse cunfigurata è implementata in anticipu, è ancu cunfigurata per cullà i metrici necessarii.

Gremlin hè un strumentu convenientu per architetti, devops è specialisti di sicurezza è una soluzione universale per pruvà qualsiasi sistemi distribuiti pronti è in esecuzione, cumprese blockchains.

Una Breve Panoramica di i Strumenti di Testing Blockchain è Benchmarking

Hyperledger Caliper hè una suluzione assai più specializata Caliper Hyperledger. À u mumentu, Caliper sustene parechji blockchains à una volta - rapprisentanti di a famiglia Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), è ancu Ethereum è a reta FISCO BCOS.

Utilizendu Caliper, pudete stabilisce a topulugia di a reta di blockchain è i cuntratti per a prova, è ancu di descriverà a cunfigurazione di u node. I nodi di Blockchain sò alzati in cuntenituri docker in una macchina. Dopu, pudete selezziunà u necessariu cunfigurazioni di prova è riceve un schedariu cù un rapportu nantu à i risultati di a prova dopu u lanciu. Una lista completa di e metriche Caliper è l'approcciu di benchmarking pò esse truvata quì Hyperledger Blockchain Performance Metrics, Questu hè un grande articulu si avete interessatu in u tema di benchmarking blockchain. Pudete ancu stabilisce a cullezzione di metriche in un Prometheus / Grafana separatu.

Hyperledger Caliper hè un strumentu destinatu à i sviluppatori è l'architetti di u sistema, postu chì furnisce ripetibilità di teste è automatizazione di teste è benchmarking. Hè utilizatu in u sviluppu di u core di blockchains: algoritmi di cunsensu, una macchina virtuale per processà cuntratti intelligenti, una capa peer-to-peer è altri meccanismi di u sistema.

Una Breve Panoramica di i Strumenti di Testing Blockchain è Benchmarking

Tank MixBytes hè un strumentu chì emerge in u prucessu di sviluppà algoritmi di cunsensu è di finalità per e rete basate in EOS è teste di parachains basatu in Parity Substrate (Polkadot). In termini di funziunalità, hè vicinu à Hyperledger Caliper, postu chì vi permette di cullà metriche impurtanti da i nodi di qualsiasi sistema distribuitu è ​​macchine di clientella nantu à quale script di prova sò in esecuzione.

MixBytes Tank usa parechji servizii di nuvola (Oceanu Digitale, Google Cloud Engine, etc.), in quale pò lancià parechji nodi, eseguisce prucedure di cunfigurazione preliminari, eseguisce parechji benchmarks in parallelu in diverse macchine, raccoglie e metriche necessarie è chjude automaticamente u reta.

MixBytes Tank permette di risparmià soldi nantu à i servitori di nuvola minimizendu automaticamente e risorse inutili dopu una prova. Un'altra caratteristica distintiva hè l'usu di u pacchettu Molecule, chì permette à u sviluppatore di pruvà a implementazione di u blockchain desideratu in u locu.

MixBytes Tank vi permette di scopre in anticipu i colli di bottiglia è l'errori in l'algoritmi chì si sviluppanu in reti reali cù un gran numaru di servitori è clienti distribuiti geograficamente. U tank vi aiuterà à capisce ciò chì succederà nantu à i nodi se i clienti mandanu transazzione cù un tps datu in cundizioni altamente ripetibili è cù un veru numaru di nodi spargugliati in diversi cuntinenti, se ne necessariu.

Una Breve Panoramica di i Strumenti di Testing Blockchain è Benchmarking

Whiteblock Genesis hè una piattaforma di prova per i blockchains basati in Ethereu. Stu strumentu hà una funziunalità abbastanza larga: permette di lancià una reta, creà u numeru necessariu di cunti in questu, elevà u numeru necessariu di clienti, cunfigurà a topologia di a rete, specificà i paràmetri di larghezza di banda è packetloss è eseguite una prova.

Whiteblock Genesis furnisce e so propiu strutture di prova. I sviluppatori solu bisognu di specificà i paràmetri di teste, eseguite cù una API pronta, è uttene risultati cù un dashboard convenientu.

Whiteblock Genesis permette di cunfigurà una prova abbastanza dettagliata chì a piattaforma realice automaticamente per ogni cambiamentu di codice significativu. Questu permetterà di catturà l'errori in una prima fase è valutà immediatamente l'impattu di i cambiamenti nantu à i paràmetri di rete impurtanti, cum'è a velocità di transazzione è e risorse cunsumate da i nodi.

Madt

Un altru pruduttu ghjovanu interessante per pruvà sistemi distribuiti hè madt. Hè scrittu in Python è vi permette di creà a topologia di rete necessaria è u numeru necessariu di servitori è clienti utilizendu un script di cunfigurazione simplice (esempiu). Dopu questu, u serviziu implementa a reta in parechji cuntenituri Docker è apre una interfaccia web in quale pudete osservà i missaghji da i servitori è i clienti di a reta. Madt pò esse usatu per pruvà blockchains - u repository di u prughjettu hà una prova di rete p2p basatu annantu à u protokollu Kademlia, in quale i ritardi in a consegna di dati à i nodi sò gradualmente aumentati è u statutu di sta dati hè verificatu.

Madt hè apparsu solu pocu tempu, ma datu a so architettura assai flexible, pò sviluppà in un pruduttu funziunale.

Altre suluzioni

Quasi ogni prova di a parte di u sistema di blockchains richiede l'esecuzione di scripts preliminari, a preparazione di cunti è e cundizioni per a prova (questu pò esse testing errori di cunsensu chì ponu generà numerosi furchetti di catene, testendu scenarii di furchetta dura, cambià i paràmetri di u sistema, etc.). Tutte queste manipulazioni sò realizate in modu diversu in diverse blockchain, cusì hè più faciule per e squadre per adattà gradualmente a prova di u produttu è u benchmarking à u CI / CD internu è aduprà i so sviluppi, chì gradualmente diventanu più cumplessi cum'è a funziunalità di u blockchain si sviluppa.

Tuttavia, l'usu di suluzioni pronti pò riduce assai u tempu di prova per queste squadre, cusì pensu chì stu software serà attivamente sviluppatu in l'anni à vene.

cunchiusioni

Per cuncludi sta breve rivista, elencu parechje caratteristiche impurtanti di l'arnesi di teste di blockchain:

  • A capacità di implementà automaticamente una rete di blockchain in cundizioni ripetibili. Stu fattore hè impurtante quandu si sviluppanu parti di sistema di blockchains: algoritmi di cunsensu, finalità, cuntratti intelligenti di sistema.
  • U costu di pussede u sistema, i risorse cunsumati è a cunvenzione per un usu constante. Stu fattore furnisce u prughjettu cù testi d'alta qualità per pocu soldi.
  • Flessibilità è simplicità di cunfigurazione di prova. Stu fattore aumenta a probabilità di identificà i prublemi di u sistema - ci hè menu chance di mancassi qualcosa impurtante.
  • Personalizazione per tippi specifichi di blockchain. Sviluppà una soluzione basata nantu à una esistente pò migliurà assai a qualità è riduce i costi di tempu.
  • Comodità è accessibilità di i risultati ottenuti è u so tipu (rapporti, metriche, grafici, logs, etc.). Questu hè assolutamente necessariu s'è vo vulete seguità a storia di u sviluppu di u produttu, o s'ellu avete bisognu di analitiche profonde di u cumpurtamentu di a reta di blockchain.

Bona furtuna cù e vostre teste è chì i vostri blockchains esse veloci è toleranti à i difetti!

Source: www.habr.com

Add a comment