Blockchain Testing eta Benchmarking tresnen ikuspegi laburra

Blockchain Testing eta Benchmarking tresnen ikuspegi laburra

Gaur egun, blockchain-ak probatzeko eta benchmarkak egiteko soluzioak bloke-kate zehatz batera edo bere forketara egokitzen dira. Baina funtzionalitatean desberdinak diren hainbat soluzio orokorrago ere badaude: horietako batzuk kode irekiko proiektuak dira, beste batzuk SaaS gisa ematen dira, baina gehienak blockchain garapen-taldeak sortutako barne irtenbideak dira. Hala ere, guztiek konpontzen dituzte antzeko arazoak. Artikulu honetan, bloke-kateak probatzeko bereziki diseinatutako hainbat produktu laburki berrikusten saiatu naiz.

Blockchain sare baten funtzionamendua datu-base banatu baten funtzionamenduaren antza du, beraz, antzeko tresnak eta metodoak erabil daitezke probak egiteko. Banatutako datu-baseak nola probatzen diren hobeto ulertzeko, begiratu baliabide eta artikuluen aukeraketa on bati beraz,. Adibidez, latentzia zatitan ordenatzen da honetan Artikulu, eta erreplikazio-algoritmoetan akatsak nola bilatzen dituzten ulertzeko, hau irakurtzea gomendatzen dut Artikulu.

Blockchains probatzeko eta benchmarkak egiteko hainbat irtenbide ezagun deskribatuko ditut. Pozik egongo nintzateke iruzkinetan arazo berdinak konpontzeko beste software-produktu erabilgarriak deskribatuko badituzu.

Blockchain Testing eta Benchmarking tresnen ikuspegi laburra

Tresna batekin hasiko naiz, bloke-kateetarako bereziki sortu ez den arren, haien funtzionamendua eraginkortasunez probatzeko aukera ematen dizuna, baldin eta dagoeneko martxan dagoen sare bat badago eta bertan esperimentatu dezakezun. Banatutako sistema baten fidagarritasunaren faktore garrantzitsuena zerbitzariekin eta sarearekin arazoak izanez gero lanean jarraitzeko gaitasuna da. Hau izan daiteke sarearen atzerapenak, diskoaren betetasuna, kanpoko zerbitzuen (DNS) erabilgarritasunik eza, hardware-akatsak eta beste ehunka arrazoi. Sistema-makina ugaritan batera funtzionatzen duten sistemaren egonkortasuna egiaztatzeko, erabil dezakezu Gremlin. Chaos Engineering izeneko ikuspegi oso eraginkorra erabiltzen du.

Bere sareko agentea erabiliz, Gremlinek hainbat arazo mota sortzen ditu behar den makina kopuruan: sareko atzerapenak, edozein baliabideren gainkarga (CPU, diskoa, memoria, sarea), banakako protokoloak desgaitzen ditu, etab. Blokeoetarako, Gremlin testnet zerbitzarietan erabil daiteke, bizitza errealeko arazoak imitatuz eta sarearen portaera behatuz. Harekin, garatzaileek eta administratzaileek ingurune kontrolatu batean ikusi ahal izango dute zer gertatuko den sistema huts egiten bada edo kodea eguneratzen denean. Kasu honetan, sarea aldez aurretik konfiguratu eta zabaldu egin behar da, baita beharrezko neurriak biltzeko konfiguratu ere.

Gremlin arkitekto, devops eta segurtasun espezialistentzako tresna erosoa da eta prest egindako eta martxan dauden sistema banatuak probatzeko soluzio unibertsala, bloke-kateak barne.

Blockchain Testing eta Benchmarking tresnen ikuspegi laburra

Hyperledger Caliper askoz irtenbide espezializatuagoa da Hyperledger Caliper. Momentuz, Caliper-ek hainbat bloke onartzen ditu aldi berean - Hyperledger familiako ordezkariak (Fabric, Sawtooth, Iroha, Burrow, Besu), baita Ethereum eta FISCO BCOS sarea ere.

Caliper erabiliz, blockchain sarearen topologia eta probak egiteko kontratuak ezar ditzakezu, baita nodoaren konfigurazioa deskribatu ere. Blockchain-en nodoak docker edukiontzietan altxatzen dira makina batean. Ondoren, beharrezkoak hauta ditzakezu probaren konfigurazioak eta abiarazi ondoren probaren emaitzen txostena duen fitxategi bat jaso. Caliper-en neurketen eta benchmarking ikuspegien zerrenda osoa hemen aurki daiteke Hyperledger Blockchain-en errendimendu-neurriak, artikulu bikaina da blockchain benchmarking gaia interesatzen bazaizu. Prometheus/Grafana bereizi batean ere konfigura dezakezu metrika bilduma.

Hyperledger Caliper garatzaileei eta sistema-arkitektuei zuzendutako tresna da, probaren errepikakortasuna eta testen eta benchmarken automatizazioa eskaintzen baitu. Blockchain-en muina garatzeko erabiltzen da: adostasun algoritmoak, kontratu adimentsuak prozesatzeko makina birtual bat, peer-to-peer geruza eta beste sistema-mekanismo batzuk.

Blockchain Testing eta Benchmarking tresnen ikuspegi laburra

MixBytes Tank EOSean oinarritutako sareetarako adostasun eta behin betiko algoritmoak garatzeko eta Parity Substrate (Polkadot) oinarritutako parakateak probatzeko prozesuan sortu den tresna da. Funtzionalitateari dagokionez, Hyperledger Caliper-etik gertu dago, proba-scriptak exekutatzen ari diren edozein sistema banatutako nodoetatik eta test script-ak exekutatzen ari diren bezero-makinetatik metrika garrantzitsuak biltzeko aukera ematen baitu.

MixBytes Tank-ek hainbat hodeiko zerbitzu erabiltzen ditu (Digital Ocean, Google Cloud Engine, etab.), eta horietan nodo asko abiarazi ditzake, aurretiazko konfigurazio-prozedurak egin ditzake, hainbat erreferente paralelo exekutatu hainbat makinatan, beharrezko neurketak bildu eta automatikoki itzali. sarea.

MixBytes Tank-ek hodeiko zerbitzarietan dirua aurrezteko aukera ematen du, proba baten ondoren beharrezkoak ez diren baliabideak automatikoki gutxituz. Beste ezaugarri bereizgarri bat Molecule paketearen erabilera da, eta horri esker, garatzaileari nahi den bloke-katearen hedapena lokalean probatu dezake.

MixBytes Tank-ek geografikoki banatutako zerbitzari eta bezero ugari dituzten sare errealetan sortzen diren algoritmoetan botila-lepoak eta akatsak goiz detektatzeko aukera ematen du. Deposituak nodoetan zer gertatuko den ulertzen lagunduko dizu bezeroek tps jakin batekin transakzioak bidaltzen badituzte baldintza oso errepikagarrietan eta kontinente ezberdinetan banatutako nodo kopuru erreal batekin, beharrezkoa bada.

Blockchain Testing eta Benchmarking tresnen ikuspegi laburra

Whiteblock Genesis Ethereum-en oinarritutako bloke-kateen proba plataforma da. Tresna honek funtzionalitate nahiko zabala du: sare bat abiarazteko aukera ematen du, bertan behar den kontu-kopurua sortu, behar den bezero-kopurua igo, sarearen topologia konfiguratu, banda-zabalera eta pakete-galera parametroak zehaztu eta proba bat egin dezakezu.

Whiteblock Genesis-ek bere proba-instalazio propioak eskaintzen ditu. Garatzaileek proba-parametroak zehaztu besterik ez dute egin behar, prest egindako API bat erabiliz exekutatu eta aginte-panel eroso bat erabiliz emaitzak lortu.

Whiteblock Genesis-ek plataformak automatikoki egingo duen kode aldaketa esanguratsu bakoitzeko proba nahiko zehatza konfiguratzeko aukera ematen du. Horrek akatsak hasiera batean harrapatzeko aukera emango dizu eta berehala ebaluatuko du aldaketek sareko parametro garrantzitsuetan duten eragina, hala nola transakzioen abiadura eta nodoek kontsumitzen dituzten baliabideetan.

Madt

Banatutako sistemak probatzeko beste produktu gazte interesgarri bat da madt. Python-en idatzita dago eta beharrezko sare-topologia eta behar den zerbitzari eta bezero kopurua sortzeko aukera ematen du konfigurazio script soil bat erabiliz (Adibidez). Horren ondoren, zerbitzuak Docker-eko hainbat edukiontzitan zabaltzen du sarea eta sareko zerbitzarien eta bezeroen mezuak ikus ditzakezun web-interfaze bat irekitzen du. Madt bloke-kateak probatzeko erabil daiteke - proiektuaren biltegiak Kademlia protokoloan oinarritutako p2p sareko proba bat du, non nodoetara datuak bidaltzeko atzerapenak pixkanaka handitzen diren eta datu horien egoera egiaztatzen den.

Madt duela gutxi agertu da, baina bere arkitektura oso malgua ikusita, produktu funtzional bilaka daiteke.

Beste irtenbide batzuk

Blockchains-en sistemaren zatiaren ia edozein probak aurretiazko script-ak exekutatzea eskatzen du, probarako kontuak eta baldintzak prestatzea (hau izan daiteke kate fork ugari sor ditzaketen adostasun akatsak probatzea, hard fork eszenatokiak probatzea, sistemaren parametroak aldatzea, etab.). Manipulazio horiek guztiak modu ezberdinean egiten dira blockchain ezberdinetan, beraz, taldeek errazagoa da pixkanaka produktuen probak eta benchmarking barneko CI/CDra egokitzea eta beren garapenak erabiltzea, pixkanaka konplexuagoak bihurtzen baitira blockchain-aren funtzionaltasuna garatzen den heinean.

Dena den, prest egindako irtenbideak erabiltzeak talde hauentzako proba-denbora asko murriztu dezake, beraz, software hau datozen urteetan aktiboki garatuko dela uste dut.

Ondorioa

Berrikuspen labur hau amaitzeko, blockchain probatzeko tresnen hainbat ezaugarri garrantzitsu zerrendatuko ditut:

  • Blockchain sare bat automatikoki zabaltzeko gaitasuna errepika daitezkeen baldintzetan. Faktore hau garrantzitsua da bloke-kateen sistema-zatiak garatzen direnean: adostasun algoritmoak, finaltasuna, sistemako kontratu adimendunak.
  • Sistemaren jabetzaren kostua, kontsumitutako baliabideak eta etengabe erabiltzeko erosotasuna. Faktore honek kalitate handiko probak eskaintzen dizkio proiektuari diru gutxigatik.
  • Probaren konfigurazioaren malgutasuna eta sinpletasuna. Faktore honek sistema-arazoak identifikatzeko aukerak areagotzen ditu - zerbait garrantzitsua galtzeko aukera gutxiago dago.
  • Blockchain mota zehatzetarako pertsonalizazioa. Lehendik dagoen batean oinarritutako irtenbide bat garatzeak kalitatea asko hobetu dezake eta denbora kostuak murrizten ditu.
  • Lortutako emaitzen eta haien motaren erosotasuna eta irisgarritasuna (txostenak, neurketak, grafikoak, erregistroak, etab.). Hau guztiz beharrezkoa da produktu baten garapenaren historia jarraitu nahi baduzu edo blockchain sarearen portaeraren analisi sakonak behar badituzu.

Zorte on zure probetan eta zure bloke-kateak azkarrak eta akatsak jasan ditzala!

Iturria: www.habr.com

Gehitu iruzkin berria