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
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.
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
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.
Hyperledger Caliper is 'n baie meer gespesialiseerde oplossing
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
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.
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.
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 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