'n Kort oorsig van Blockchain-toets- en maatstafinstrumente

'n Kort oorsig van Blockchain-toets- en maatstafinstrumente

Vandag word oplossings vir die toets en benchmarking van blokkettings aangepas vir 'n spesifieke blokketting of sy vurke. Maar daar is ook verskeie meer algemene oplossings wat in funksionaliteit verskil: sommige van hulle is oopbronprojekte, ander word as SaaS verskaf, maar die meeste is interne oplossings wat deur die blockchain-ontwikkelingspan geskep is. Hulle los egter almal soortgelyke probleme op. In hierdie artikel het ek probeer om kortliks verskeie produkte te hersien wat spesifiek ontwerp is vir die toets van blokkettings.

Die werking van 'n blokkettingnetwerk lyk soos die werking van 'n verspreide databasis, so soortgelyke gereedskap en metodes kan vir toetsing gebruik word. Om beter te verstaan ​​hoe verspreide databasisse getoets word, kyk na 'n goeie keuse van hulpbronne en artikels vandaar. Latensie word byvoorbeeld hierin in stukke gesorteer Artikel, en om te verstaan ​​hoe hulle soek na foute in replikasie-algoritmes, beveel ek aan om dit te lees artikel.

Ek sal verskeie gewilde oplossings beskryf vir die toets en maatstaf van blokkettings. Ek sal bly wees as u in die kommentaar ander nuttige sagtewareprodukte beskryf om dieselfde probleme op te los.

'n Kort oorsig van Blockchain-toets- en maatstafinstrumente

Ek begin met 'n instrument wat, hoewel dit nie spesifiek vir blokkettings geskep is nie, jou in staat stel om hul werking effektief te toets, mits daar 'n reeds lopende netwerk is waarop jy kan eksperimenteer. Die belangrikste faktor in die betroubaarheid van 'n verspreide stelsel is die vermoë om aan te hou werk in die geval van probleme met die bedieners en netwerk. Dit kan netwerkagterstande, skyfvolheid, onbeskikbaarheid van eksterne dienste (DNS), hardewarefoute en honderde ander redes wees. Om die stabiliteit van enige stelsels wat saam op 'n groot aantal stelselmasjiene werk, na te gaan, kan u dit gebruik Gremlin. Dit gebruik 'n uiters effektiewe benadering genaamd Chaos Engineering.

Deur sy eie netwerkagent te gebruik, skep Gremlin baie verskillende tipes probleme op die vereiste aantal masjiene: netwerkvertragings, oorlading van enige hulpbron (CPU, skyf, geheue, netwerk), deaktiveer individuele protokolle, ens. Vir blokkettings kan Gremlin op toetsnetbedieners gebruik word, wat werklike probleme naboots en die gedrag van die netwerk waarneem. Daarmee kan ontwikkelaars en administrateurs in 'n beheerde omgewing waarneem wat sal gebeur as die stelsel ineenstort of wanneer die kode opgedateer word. In hierdie geval moet die netwerk vooraf gekonfigureer en ontplooi word, asook gekonfigureer word om die nodige maatstawwe in te samel.

Gremlin is 'n gerieflike hulpmiddel vir argitekte, devops en sekuriteitspesialiste en 'n universele oplossing vir die toets van enige gereedgemaakte en lopende verspreide stelsels, insluitend blokkettings.

'n Kort oorsig van Blockchain-toets- en maatstafinstrumente

Hyperledger Caliper is 'n baie meer gespesialiseerde oplossing Hyperledger Kaliper. Op die oomblik ondersteun Caliper verskeie blokkettings gelyktydig - verteenwoordigers van die Hyperledger-familie (Fabric, Sawtooth, Iroha, Burrow, Besu), sowel as Ethereum en die FISCO BCOS-netwerk.

Met behulp van Caliper kan jy die topologie van die blokkettingnetwerk en kontrakte vir toetsing stel, asook die konfigurasie van die nodus beskryf. Blockchain-nodusse word in docker-houers op een masjien verhoog. Vervolgens kan u die nodige kies toets konfigurasies en ontvang 'n lêer met 'n verslag oor die toetsresultate na bekendstelling. 'n Volledige lys van Caliper-metrieke en benchmarking-benadering kan hier gevind word Hyperledger Blockchain-prestasiestatistieke, Dit is 'n wonderlike artikel as jy belangstel in die onderwerp van blokketting-benchmarking. Jy kan ook metriekeversameling in 'n aparte Prometheus/Grafana opstel.

Hyperledger Caliper is 'n instrument wat gemik is op ontwikkelaars en stelselargitekte, aangesien dit toetsherhaalbaarheid en outomatisering van toetsing en maatstaf bied. Dit word gebruik in die ontwikkeling van die kern van blokkettings: konsensusalgoritmes, 'n virtuele masjien vir die verwerking van slim kontrakte, 'n eweknie-laag en ander stelselmeganismes.

'n Kort oorsig van Blockchain-toets- en maatstafinstrumente

MixBytes-tenk is 'n instrument wat na vore gekom het in die proses van die ontwikkeling van konsensus- en finaliteitalgoritmes vir EOS-gebaseerde netwerke en die toets van parachains gebaseer op Parity Substrate (Polkadot). Wat funksionaliteit betref, is dit naby Hyperledger Caliper, aangesien dit jou toelaat om belangrike maatstawwe te versamel vanaf nodusse van enige verspreide stelsel en kliëntmasjiene waarop toetsskrifte loop.

MixBytes Tank gebruik verskeie wolkdienste (Digital Ocean, Google Cloud Engine, ens.), waarin dit baie nodusse kan begin, voorlopige konfigurasieprosedures kan uitvoer, verskeie maatstawwe parallel op verskillende masjiene kan uitvoer, die nodige statistieke kan versamel en outomaties die netwerk.

Met MixBytes Tank kan u geld bespaar op wolkbedieners deur outomaties onnodige hulpbronne na 'n toets te minimaliseer. Nog 'n kenmerkende kenmerk is die gebruik van die Molecule-pakket, wat die ontwikkelaar toelaat om die ontplooiing van die verlangde blokketting plaaslik te toets.

Met MixBytes Tank kan u vroegtydig knelpunte en foute in algoritmes opspoor wat in werklike netwerke met 'n groot aantal geografies verspreide bedieners en kliënte voorkom. Die tenk sal jou help om te verstaan ​​wat op die nodusse sal gebeur as kliënte transaksies stuur met 'n gegewe tps in hoogs herhaalbare toestande en met 'n werklike aantal nodusse wat oor verskillende kontinente versprei is, indien nodig.

'n Kort oorsig van Blockchain-toets- en maatstafinstrumente

Whiteblock Genesis is 'n toetsplatform vir Ethereum-gebaseerde blokkettings. Hierdie instrument het nogal 'n wye funksionaliteit: dit laat jou toe om 'n netwerk te begin, die vereiste aantal rekeninge daarin te skep, die vereiste aantal kliënte te verhoog, die netwerktopologie op te stel, die bandwydte en pakkieverliesparameters te spesifiseer en 'n toets uit te voer.

Whiteblock Genesis bied sy eie toetsfasiliteite. Ontwikkelaars hoef net toetsparameters te spesifiseer, dit met 'n klaargemaakte API uit te voer en resultate te kry met 'n gerieflike dashboard.

Whiteblock Genesis laat jou toe om 'n redelik gedetailleerde toets op te stel wat die platform outomaties sal uitvoer vir elke beduidende kodeverandering. Dit sal jou toelaat om foute op 'n vroeë stadium te vang en onmiddellik die impak van veranderinge op belangrike netwerkparameters, soos transaksiespoed en hulpbronne wat deur nodusse verbruik word, te evalueer.

Madt

Nog 'n interessante jong produk vir die toets van verspreide stelsels is madt. Dit is in Python geskryf en laat jou toe om die vereiste netwerktopologie en die vereiste aantal bedieners en kliënte te skep met behulp van 'n eenvoudige konfigurasieskrip (Byvoorbeeld). Hierna ontplooi die diens die netwerk in verskeie Docker-houers en maak 'n webkoppelvlak oop waarin u boodskappe van bedieners en kliënte van die netwerk kan waarneem. Madt kan gebruik word om blokkettings te toets - die projekbewaarplek het 'n p2p-netwerktoets gebaseer op die Kademlia-protokol, waarin vertragings in die lewering van data aan nodusse geleidelik verhoog word en die status van hierdie data nagegaan word.

Madt het eers onlangs verskyn, maar gegewe sy baie buigsame argitektuur, kan dit ontwikkel tot 'n funksionele produk.

Ander oplossings

Byna enige toetsing van die stelseldeel van blokkettings vereis die uitvoer van voorlopige skrifte, die voorbereiding van rekeninge en voorwaardes vir die toets (dit kan die toets van konsensusfoute wees wat talle vurke van kettings kan genereer, hardevurk-scenario's toets, stelselparameters verander, ens.). Al hierdie manipulasies word verskillend in verskillende blokkettings uitgevoer, dus is dit makliker vir spanne om produktoetsing en maatstaf geleidelik aan te pas by interne CI/CD en hul eie ontwikkelings te gebruik, wat geleidelik meer kompleks word namate die funksionaliteit van die blokketting ontwikkel.

Nietemin kan die gebruik van klaargemaakte oplossings die toetstyd vir hierdie spanne aansienlik verminder, so ek dink dat hierdie sagteware aktief ontwikkel sal word in die komende jare.

Gevolgtrekking

Om hierdie kort oorsig af te sluit, sal ek verskeie belangrike kenmerke van blockchain-toetsinstrumente lys:

  • Die vermoë om 'n blokkettingnetwerk outomaties te ontplooi onder herhaalbare toestande. Hierdie faktor is belangrik by die ontwikkeling van stelseldele van blokkettings: konsensusalgoritmes, finaliteit, stelsel slim kontrakte.
  • Die koste om die stelsel te besit, die hulpbronne wat verbruik word en die gerief vir konstante gebruik. Hierdie faktor voorsien die projek van hoë gehalte toetse vir min geld.
  • Buigsaamheid en eenvoud van toetskonfigurasie. Hierdie faktor verhoog die kanse om stelselprobleme te identifiseer – daar is minder kans om iets belangrik te mis.
  • Aanpassing vir spesifieke tipes blokkettings. Die ontwikkeling van 'n oplossing gebaseer op 'n bestaande een kan kwaliteit aansienlik verbeter en tydskoste verminder.
  • Gerieflikheid en toeganklikheid van die resultate wat verkry is en hul tipe (verslae, statistieke, grafieke, logs, ens.). Dit is absoluut noodsaaklik as jy die geskiedenis van 'n produk se ontwikkeling wil volg, of as jy diepgaande ontledings van die gedrag van die blokkettingnetwerk benodig.

Sterkte met jou toetsing en mag jou blokkettings vinnig en foutverdraagsaam wees!

Bron: will.com

Voeg 'n opmerking