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
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.
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
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 Hyperledger Caliper sokkal speciálisabb megoldás
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
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 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 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
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