A blokklánc tesztelési és benchmarking eszközök rövid áttekintése

A blokklánc tesztelési és benchmarking eszközök rövid áttekintése

Manapság a blokkláncok tesztelésére és összehasonlítására szolgáló megoldásokat egy adott blokkláncra vagy annak elágazásaira szabják. De van néhány általánosabb megoldás is, amelyek funkcionalitásban különböznek egymástól: ezek egy része nyílt forráskódú projekt, más része SaaS-ként van biztosítva, de a legtöbb belső megoldás, amelyet a blokklánc fejlesztőcsapat hozott létre. Azonban mindegyik hasonló problémákat old meg. Ebben a cikkben megpróbáltam röviden áttekinteni több, kifejezetten blokkláncok tesztelésére tervezett terméket.

A blokklánc hálózat működése egy elosztott adatbázis működéséhez hasonlít, így a teszteléshez hasonló eszközök és módszerek használhatók. Az elosztott adatbázisok tesztelésének jobb megértéséhez tekintse meg az erőforrások és cikkek jó választékát ezért. Például a késleltetést ebben darabokra rendezik cikk, és annak megértéséhez, hogyan keresik a hibákat a replikációs algoritmusokban, ajánlom ennek elolvasását cikk.

Leírok néhány népszerű megoldást a blokkláncok tesztelésére és összehasonlítására. Örülnék, ha a megjegyzésekben további hasznos szoftvereket írna le ugyanezen problémák megoldására.

A blokklánc tesztelési és benchmarking eszközök rövid áttekintése

Egy olyan eszközzel kezdem, amely bár nem kifejezetten blokkláncokhoz készült, de lehetővé teszi azok működésének hatékony tesztelését, feltéve, hogy van egy már futó hálózat, amelyen kísérletezhetsz. Az elosztott rendszer megbízhatóságának legfontosabb tényezője az, hogy a szerverekkel és a hálózattal kapcsolatos problémák esetén továbbra is működjön. Ennek oka lehet a hálózati késések, a lemez telítettsége, a külső szolgáltatások (DNS) elérhetetlensége, hardverhibák és több száz egyéb ok. A számos rendszergépen összehangoltan működő rendszerek stabilitásának ellenőrzéséhez használhatja Gonosz szellem. Ez egy rendkívül hatékony megközelítést alkalmaz, az úgynevezett Chaos Engineering.

Saját hálózati ügynöke segítségével a Gremlin sokféle problémát hoz létre a szükséges számú gépen: hálózati késések, bármilyen erőforrás (CPU, lemez, memória, hálózat) túlterhelése, letiltja az egyes protokollokat stb. Blokkláncokhoz a Gremlin használható testnet szervereken, valós problémák emulálásával és a hálózat viselkedésének megfigyelésével. Ezzel a fejlesztők és a rendszergazdák ellenőrzött környezetben figyelhetik meg, mi történik, ha a rendszer összeomlik, vagy ha frissül a kód. Ebben az esetben a hálózatot előre konfigurálni és telepíteni kell, valamint be kell állítani a szükséges mutatók összegyűjtésére.

A Gremlin egy kényelmes eszköz építészek, fejlesztők és biztonsági szakemberek számára, valamint univerzális megoldás bármely kész és futó elosztott rendszer tesztelésére, beleértve a blokkláncokat is.

A blokklánc tesztelési és benchmarking eszközök rövid áttekintése

A Hyperledger Caliper sokkal speciálisabb megoldás Hyperledger féknyereg. Jelenleg a Caliper több blokkláncot támogat egyszerre - a Hyperledger család képviselőit (Fabric, Sawtooth, Iroha, Burrow, Besu), valamint az Ethereumot és a FISCO BCOS hálózatot.

A Caliper segítségével beállíthatja a blokklánc hálózat topológiáját és a tesztelési szerződéseket, valamint leírhatja a csomópont konfigurációját. A blokklánc-csomópontok docker konténerekben vannak emelve egy gépen. Ezután kiválaszthatja a szükségeset tesztkonfigurációk és indítás után kap egy fájlt a teszteredményekről szóló jelentéssel. A Caliper metrikák és a benchmarking megközelítés teljes listája itt található Hyperledger Blockchain Performance Metrics, ez egy nagyszerű cikk, ha érdekel a blokklánc benchmarking témája. A metrikagyűjtést külön Prometheus/Grafana-ban is beállíthatja.

A Hyperledger Caliper egy fejlesztőknek és rendszertervezőknek szánt eszköz, mivel biztosítja a tesztek megismételhetőségét, valamint a tesztelés és a benchmarking automatizálását. A blokkláncok magjának fejlesztéséhez használják: konszenzusos algoritmusok, virtuális gép az intelligens szerződések feldolgozására, egyenrangú réteg és egyéb rendszermechanizmusok.

A blokklánc tesztelési és benchmarking eszközök rövid áttekintése

MixBytes tartály egy olyan eszköz, amely az EOS-alapú hálózatok konszenzusos és véglegesítési algoritmusainak fejlesztése, valamint a paritási szubsztrát (Polkadot) alapú parachain tesztelése során jelent meg. Funkcióit tekintve közel áll a Hyperledger Caliperhez, mivel lehetővé teszi a fontos metrikák összegyűjtését bármely elosztott rendszer és kliensgép csomópontjairól, amelyeken tesztszkriptek futnak.

A MixBytes Tank számos felhőszolgáltatást használ (Digital Ocean, Google Cloud Engine stb.), amelyekben számos csomópontot tud elindítani, előzetes konfigurációs eljárásokat hajthat végre, több benchmarkot futtathat párhuzamosan különböző gépeken, összegyűjti a szükséges mérőszámokat és automatikusan leállítja a hálózat.

A MixBytes Tank segítségével pénzt takaríthat meg a felhőkiszolgálókon azáltal, hogy a teszt után automatikusan minimalizálja a felesleges erőforrásokat. Egy másik megkülönböztető jellemzője a Molecule csomag használata, amely lehetővé teszi a fejlesztő számára a kívánt blokklánc telepítésének helyi tesztelését.

A MixBytes Tank lehetővé teszi az algoritmusok szűk keresztmetszetek és hibáinak korai felismerését, amelyek a valós hálózatokban merülnek fel, nagyszámú földrajzilag elosztott szerverrel és klienssel. A tank segít megérteni, hogy mi fog történni a csomópontokon, ha a kliensek adott tps-vel, nagymértékben megismételhető feltételek mellett, és ha szükséges, valós számú csomóponttal, különböző kontinenseken elosztva küldenek tranzakciókat.

A blokklánc tesztelési és benchmarking eszközök rövid áttekintése

A Whiteblock Genesis egy tesztelési platform az Ethereum-alapú blokkláncokhoz. Ez az eszköz meglehetősen széles funkcionalitással rendelkezik: lehetővé teszi a hálózat indítását, a szükséges számú fiók létrehozását, a szükséges kliensszám növelését, a hálózati topológia konfigurálását, a sávszélesség és a csomagvesztés paramétereinek megadását és a teszt futtatását.

A Whiteblock Genesis saját tesztelési létesítményeket biztosít. A fejlesztőknek csak meg kell adniuk a tesztparamétereket, futtatniuk kell őket egy kész API-val, és egy kényelmes irányítópulton kell eredményt elérniük.

A Whiteblock Genesis lehetővé teszi egy meglehetősen részletes teszt konfigurálását, amelyet a platform minden jelentős kódmódosítás esetén automatikusan elvégz. Ez lehetővé teszi a hibák korai szakaszában történő észlelését, és azonnal felmérheti a változtatások hatását a fontos hálózati paraméterekre, például a tranzakció sebességére és a csomópontok által felhasznált erőforrásokra.

Madt

Egy másik érdekes fiatal termék az elosztott rendszerek tesztelésére madt. Pythonban íródott, és lehetővé teszi a szükséges hálózati topológia, valamint a szükséges számú kiszolgáló és kliens létrehozását egy egyszerű konfigurációs szkript segítségével (példa). Ezt követően a szolgáltatás több Docker-tárolóban telepíti a hálózatot, és megnyit egy webes felületet, amelyen megfigyelheti a hálózat szervereitől és klienseitől érkező üzeneteket. A Madt blokkláncok tesztelésére használható - a projekttárban van egy Kademlia protokollon alapuló p2p hálózati teszt, amelyben fokozatosan növelik az adatok csomópontokhoz való eljuttatásának késedelmét, és ellenőrzik ezen adatok állapotát.

A Madt csak nemrég jelent meg, de nagyon rugalmas architektúrájának köszönhetően funkcionális termékké fejlődhet.

Egyéb megoldások

A blokkláncok rendszerrészének szinte minden tesztelése előzetes szkriptek futtatását, fiókok és feltételek elkészítését igényli a teszthez (ez lehet a konszenzusos hibák tesztelése, amelyek számos láncágat generálhatnak, hard fork forgatókönyvek tesztelése, rendszerparaméterek megváltoztatása stb.). Mindezeket a manipulációkat a különböző blokkláncokban eltérően hajtják végre, így a csapatok könnyebben tudják fokozatosan hozzáigazítani a terméktesztet és a benchmarkingot a belső CI/CD-hez, és saját fejlesztéseket alkalmaznak, amelyek a blokklánc funkcionalitásának fejlődésével fokozatosan összetettebbé válnak.

Ennek ellenére a kész megoldások használata nagymértékben lerövidítheti ezeknek a csapatoknak a tesztelési idejét, ezért úgy gondolom, hogy ez a szoftver a következő években aktívan fejlődik majd.

Következtetés

E rövid áttekintés befejezéseként a blokklánc tesztelő eszközök néhány fontos jellemzőjét sorolom fel:

  • A blokklánc hálózat automatikus telepítésének képessége megismételhető feltételek mellett. Ez a tényező fontos a blokkláncok rendszerrészeinek fejlesztésénél: konszenzusos algoritmusok, véglegesség, rendszerintelligens szerződések.
  • A rendszer birtoklási költsége, a felhasznált erőforrások és az állandó használat kényelme. Ez a tényező alacsony pénzért kiváló minőségű teszteket biztosít a projekt számára.
  • A tesztkonfiguráció rugalmassága és egyszerűsége. Ez a tényező növeli a rendszerproblémák azonosításának esélyét – kisebb az esélye annak, hogy valami fontosat kihagyunk.
  • Testreszabás bizonyos típusú blokkláncokhoz. Egy meglévő megoldáson alapuló megoldás fejlesztése nagymértékben javíthatja a minőséget és csökkentheti az időköltséget.
  • A kapott eredmények és típusuk kényelme és hozzáférhetősége (jelentések, metrikák, grafikonok, naplók stb.). Ez feltétlenül szükséges, ha nyomon szeretné követni egy termék fejlődésének történetét, vagy ha mély elemzésre van szüksége a blokklánc-hálózat viselkedéséről.

Sok sikert a teszteléshez, és legyen gyors és hibatűrő a blokkláncod!

Forrás: will.com

Hozzászólás