Lyhyt katsaus lohkoketjun testaus- ja vertailutyökaluihin

Lyhyt katsaus lohkoketjun testaus- ja vertailutyökaluihin

Nykyään lohkoketjujen testaamiseen ja vertailuun liittyvät ratkaisut on räätälöity tiettyyn lohkoketjuun tai sen haaroihin. Mutta on myös useita yleisempiä ratkaisuja, jotka eroavat toiminnallisesti: osa niistä on avoimen lähdekoodin projekteja, osa tarjotaan SaaS-muodossa, mutta suurin osa on lohkoketjun kehitystiimin luomia sisäisiä ratkaisuja. Ne kaikki kuitenkin ratkaisevat samanlaisia ​​ongelmia. Tässä artikkelissa yritin tarkastella lyhyesti useita tuotteita, jotka on suunniteltu erityisesti lohkoketjujen testaamiseen.

Lohkoketjuverkon toiminta muistuttaa hajautetun tietokannan toimintaa, joten samankaltaisia ​​työkaluja ja menetelmiä voidaan käyttää testaukseen. Ymmärtääksesi paremmin, kuinka hajautettuja tietokantoja testataan, katso hyvä valikoima resursseja ja artikkeleita siten. Esimerkiksi latenssi lajitellaan tässä osiin статье, ja ymmärtääksesi, kuinka he etsivät virheitä replikointialgoritmeista, suosittelen lukemaan tämän artikkeleita.

Kuvaan useita suosittuja ratkaisuja lohkoketjujen testaamiseen ja vertailuun. Olisin iloinen, jos kuvailet kommenteissa muita hyödyllisiä ohjelmistotuotteita samojen ongelmien ratkaisemiseen.

Lyhyt katsaus lohkoketjun testaus- ja vertailutyökaluihin

Aloitan työkalulla, jota ei ole luotu erityisesti lohkoketjuille, mutta jonka avulla voit testata niiden toimintaa tehokkaasti, edellyttäen, että on jo käynnissä oleva verkko, jossa voit kokeilla. Hajautetun järjestelmän luotettavuudessa tärkein tekijä on kyky jatkaa työskentelyä palvelimien ja verkon ongelmien sattuessa. Näitä voivat olla verkkoviiveet, levyn täyteys, ulkoisten palvelujen (DNS) käytettävyys, laitteistovikoja ja satoja muita syitä. Voit tarkistaa useissa järjestelmäkoneissa yhdessä toimivien järjestelmien vakauden pikkupaholainen. Se käyttää erittäin tehokasta lähestymistapaa nimeltä Chaos Engineering.

Gremlin luo omaa verkkoagenttiaan käyttämällä monenlaisia ​​​​ongelmia vaaditulle määrälle koneita: verkkoviiveitä, minkä tahansa resurssin (CPU, levy, muisti, verkko) ylikuormitusta, poistaa yksittäiset protokollat ​​käytöstä jne. Lohkoketjuissa Gremliniä voidaan käyttää testnet-palvelimissa emuloimaan tosielämän ongelmia ja tarkkailemaan verkon käyttäytymistä. Sen avulla kehittäjät ja järjestelmänvalvojat voivat tarkkailla valvotussa ympäristössä, mitä tapahtuu, jos järjestelmä kaatuu tai kun koodi päivitetään. Tässä tapauksessa verkko on määritettävä ja otettava käyttöön etukäteen sekä konfiguroitava keräämään tarvittavat tiedot.

Gremlin on kätevä työkalu arkkitehdeille, devops- ja tietoturvaasiantuntijoille ja universaali ratkaisu kaikkien valmiiden ja käynnissä olevien hajautettujen järjestelmien testaamiseen, mukaan lukien lohkoketjut.

Lyhyt katsaus lohkoketjun testaus- ja vertailutyökaluihin

Hyperledger Caliper on paljon erikoisempi ratkaisu Hyperledger-satula. Tällä hetkellä Caliper tukee useita lohkoketjuja kerralla - Hyperledger-perheen (Fabric, Sawtooth, Iroha, Burrow, Besu) edustajia sekä Ethereumia ja FISCO BCOS -verkkoa.

Caliperin avulla voit asettaa lohkoketjuverkon topologian ja sopimukset testausta varten sekä kuvata solmun konfiguraatiota. Blockchain-solmut nostetaan telakointisäiliöihin yhdellä koneella. Seuraavaksi voit valita tarvittavat testikokoonpanot ja vastaanottaa tiedoston, joka sisältää raportin testituloksista käynnistämisen jälkeen. Täydellinen luettelo Caliper-mittareista ja benchmarking-lähestymistavasta löytyy täältä Hyperledger Blockchain Performance -mittarit, tämä on loistava artikkeli, jos olet kiinnostunut blockchain-benchmarkingista. Voit myös määrittää mittaustietojen keräämisen erillisessä Prometheuksessa/Grafanassa.

Hyperledger Caliper on kehittäjille ja järjestelmäarkkitehdeille tarkoitettu työkalu, koska se tarjoaa testien toistettavuuden sekä testauksen ja benchmarkingin automatisoinnin. Sitä käytetään lohkoketjujen ytimen kehittämisessä: konsensusalgoritmit, virtuaalikone älykkäiden sopimusten käsittelyyn, peer-to-peer-kerros ja muut järjestelmämekanismit.

Lyhyt katsaus lohkoketjun testaus- ja vertailutyökaluihin

MixBytes-säiliö on työkalu, joka syntyi kehitettäessä konsensus- ja lopullisuusalgoritmeja EOS-pohjaisille verkoille ja testattaessa pariteettisubstraatteihin (Polkadot) perustuvia paraketjuja. Toiminnallisesti se on lähellä Hyperledger Caliperia, koska sen avulla voit kerätä tärkeitä mittareita minkä tahansa hajautetun järjestelmän solmuista ja asiakaskoneista, joissa testiskriptit ovat käynnissä.

MixBytes Tank käyttää useita pilvipalveluita (Digital Ocean, Google Cloud Engine jne.), joissa se voi käynnistää useita solmuja, suorittaa alustavia konfigurointitoimenpiteitä, ajaa useita benchmarkeja rinnakkain eri koneilla, kerätä tarvittavat mittarit ja sammuttaa automaattisesti verkkoon.

MixBytes Tankin avulla voit säästää rahaa pilvipalvelimissa minimoimalla automaattisesti tarpeettomat resurssit testin jälkeen. Toinen erottuva piirre on Molecule-paketin käyttö, jonka avulla kehittäjä voi testata halutun lohkoketjun käyttöönottoa paikallisesti.

MixBytes Tankin avulla voit havaita ajoissa pullonkaulat ja virheet algoritmeissa, jotka syntyvät todellisissa verkoissa, joissa on suuri määrä maantieteellisesti hajautettuja palvelimia ja asiakkaita. Säiliö auttaa ymmärtämään, mitä solmuissa tapahtuu, jos asiakkaat lähettävät tapahtumia tietyllä tps:llä erittäin toistettavissa olosuhteissa ja todellisella määrällä solmuja, jotka ovat hajallaan eri mantereilla tarvittaessa.

Lyhyt katsaus lohkoketjun testaus- ja vertailutyökaluihin

Whiteblock Genesis on Ethereum-pohjaisten lohkoketjujen testausalusta. Tällä työkalulla on melko laaja toiminnallisuus: sen avulla voit käynnistää verkon, luoda siihen tarvittavan määrän tilejä, kasvattaa vaadittua asiakasmäärää, konfiguroida verkon topologiaa, määrittää kaistanleveys- ja pakettihäviöparametrit ja suorittaa testin.

Whiteblock Genesis tarjoaa omat testaustilat. Kehittäjien tarvitsee vain määrittää testiparametrit, suorittaa ne valmiin API:n avulla ja saada tulokset kätevän kojelaudan avulla.

Whiteblock Genesiksen avulla voit määrittää melko yksityiskohtaisen testin, jonka alusta suorittaa automaattisesti jokaiselle merkittävälle koodimuutokselle. Näin voit havaita virheet varhaisessa vaiheessa ja arvioida välittömästi muutosten vaikutukset tärkeisiin verkon parametreihin, kuten tapahtuman nopeuteen ja solmujen kuluttamiin resursseihin.

Madt

Toinen mielenkiintoinen nuori tuote hajautettujen järjestelmien testaamiseen on madt. Se on kirjoitettu Pythonilla ja sen avulla voit luoda tarvittavan verkkotopologian ja tarvittavan määrän palvelimia ja asiakkaita käyttämällä yksinkertaista konfigurointiskriptiä (esimerkki). Tämän jälkeen palvelu ottaa verkon käyttöön useissa Docker-säiliöissä ja avaa verkkorajapinnan, jossa voit tarkkailla verkon palvelimilta ja asiakkailta tulevia viestejä. Madtilla voidaan testata lohkoketjuja - projektivarastossa on Kademlia-protokollaan perustuva p2p-verkkotesti, jossa datan toimittamisen viiveitä solmuille lisätään asteittain ja näiden tietojen tila tarkistetaan.

Madt on ilmestynyt vasta äskettäin, mutta erittäin joustavan arkkitehtuurinsa ansiosta siitä voi kehittyä toimiva tuote.

Muut ratkaisut

Lähes kaikki lohkoketjujen järjestelmäosan testaus vaatii alustavien komentosarjojen suorittamisen, tilien ja testiehtojen valmistelemisen (tämä voi olla konsensusvirheiden testaamista, jotka voivat tuottaa lukuisia ketjujen haaroja, kovan haarukan skenaarioiden testaamista, järjestelmäparametrien vaihtamista jne.). Kaikki nämä manipulaatiot suoritetaan eri lohkoketjuissa eri tavalla, joten ryhmien on helpompi mukauttaa tuotetestaus ja benchmarking asteittain sisäiseen CI/CD:hen ja käyttää omia kehitystöitä, jotka vähitellen monimutkaistuvat lohkoketjun toimivuuden kehittyessä.

Valmiiden ratkaisujen käyttö voi kuitenkin lyhentää näiden tiimien testausaikaa huomattavasti, joten uskon, että tätä ohjelmistoa kehitetään aktiivisesti tulevina vuosina.

Johtopäätös

Tämän lyhyen katsauksen päätteeksi luettelen useita tärkeitä blockchain-testaustyökalujen ominaisuuksia:

  • Mahdollisuus ottaa automaattisesti käyttöön lohkoketjuverkko toistettavissa olosuhteissa. Tämä tekijä on tärkeä kehitettäessä lohkoketjujen järjestelmäosia: konsensusalgoritmeja, lopullisuutta, järjestelmän älykkäitä sopimuksia.
  • Järjestelmän omistamisen kustannukset, kulutetut resurssit ja jatkuvan käytön mukavuus. Tämä tekijä tarjoaa projektille korkealaatuisia testejä pienellä rahalla.
  • Testikokoonpanon joustavuus ja yksinkertaisuus. Tämä tekijä lisää mahdollisuuksia tunnistaa järjestelmäongelmia - on pienempi mahdollisuus puuttua jotain tärkeää.
  • Räätälöinti tietyntyyppisille lohkoketjuille. Ratkaisun kehittäminen olemassa olevaan ratkaisuun voi parantaa huomattavasti laatua ja vähentää aikakustannuksia.
  • Saatujen tulosten ja niiden tyypin mukavuus ja saavutettavuus (raportit, mittarit, kaaviot, lokit jne.). Tämä on ehdottoman välttämätöntä, jos haluat seurata tuotteen kehityshistoriaa tai jos tarvitset syvällistä analytiikkaa lohkoketjuverkoston käyttäytymisestä.

Onnea testaamiseen ja olkoon lohkoketjusi nopeita ja vikasietoisia!

Lähde: will.com

Lisää kommentti