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
Kuvaan useita suosittuja ratkaisuja lohkoketjujen testaamiseen ja vertailuun. Olisin iloinen, jos kuvailet kommenteissa muita hyödyllisiä ohjelmistotuotteita samojen ongelmien ratkaisemiseen.
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
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.
Hyperledger Caliper on paljon erikoisempi ratkaisu
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
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.
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.
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 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