ÄŖss blokķēdes testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas rÄ«ku pārskats

ÄŖss blokķēdes testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas rÄ«ku pārskats

MÅ«sdienās blokķēžu testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas risinājumi ir pielāgoti konkrētai blokķēdei vai tās dakŔām. Taču ir arÄ« vairāki vispārÄ«gāki risinājumi, kas atŔķiras pēc funkcionalitātes: daži no tiem ir atvērtā pirmkoda projekti, citi tiek nodroÅ”ināti kā SaaS, bet lielākā daļa ir iekŔējie risinājumi, ko radÄ«jusi blokķēdes izstrādes komanda. Tomēr tie visi atrisina lÄ«dzÄ«gas problēmas. Å ajā rakstā es mēģināju Ä«si pārskatÄ«t vairākus produktus, kas Ä«paÅ”i paredzēti blokķēžu testÄ“Å”anai.

Blokķēdes tÄ«kla darbÄ«ba atgādina sadalÄ«tas datu bāzes darbÄ«bu, tāpēc testÄ“Å”anai var izmantot lÄ«dzÄ«gus rÄ«kus un metodes. Lai labāk izprastu, kā tiek pārbaudÄ«tas izplatÄ«tās datu bāzes, apskatiet labu resursu un rakstu izlasi tātad. Piemēram, latentums Å”ajā sadaļā tiek sakārtots gabalos raksts, un, lai saprastu, kā viņi meklē kļūdas replikācijas algoritmos, iesaku izlasÄ«t Å”o rakstus.

Es aprakstÄ«Å”u vairākus populārus risinājumus blokķēžu testÄ“Å”anai un salÄ«dzinoÅ”ajai novērtÄ“Å”anai. PriecāŔos, ja komentāros aprakstÄ«tu citus noderÄ«gus programmatÅ«ras produktus to paÅ”u problēmu risināŔanai.

ÄŖss blokķēdes testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas rÄ«ku pārskats

SākÅ”u ar rÄ«ku, kas, lai gan nav Ä«paÅ”i izveidots blokķēdēm, ļauj efektÄ«vi pārbaudÄ«t to darbÄ«bu, ar nosacÄ«jumu, ka jau ir izveidots tÄ«kls, kurā varat eksperimentēt. VissvarÄ«gākais sadalÄ«tās sistēmas uzticamÄ«bas faktors ir spēja turpināt darbu, ja rodas problēmas ar serveriem un tÄ«klu. Tas var bÅ«t tÄ«kla aizkavÄ“Å”anās, diska pilnÄ«ba, ārējo pakalpojumu (DNS) nepieejamÄ«ba, aparatÅ«ras kļūmes un simtiem citu iemeslu. Lai pārbaudÄ«tu jebkuras sistēmas stabilitāti, kas darbojas saskaņoti daudzās sistēmas maŔīnās, varat izmantot Gremlin. Tas izmanto ārkārtÄ«gi efektÄ«vu pieeju, ko sauc par haosa inženieriju.

Izmantojot savu tÄ«kla aÄ£entu, Gremlin rada daudz dažādu veidu problēmas vajadzÄ«gajam maŔīnu skaitam: tÄ«kla kavÄ“Å”anās, jebkura resursa (CPU, diska, atmiņas, tÄ«kla) pārslodze, atspējo atseviŔķus protokolus utt. Blokķēdēm Gremlin var izmantot testnet serveros, emulējot reālās dzÄ«ves problēmas un novērojot tÄ«kla uzvedÄ«bu. Ar to izstrādātāji un administratori var kontrolētā vidē novērot, kas notiks, ja sistēma avarēs vai kods tiks atjaunināts. Å ajā gadÄ«jumā tÄ«kls ir iepriekÅ” jākonfigurē un jāizvieto, kā arÄ« jākonfigurē, lai savāktu nepiecieÅ”amos rādÄ«tājus.

Gremlin ir ērts rÄ«ks arhitektiem, devops un droŔības speciālistiem un universāls risinājums jebkuru gatavu un darbināmu sadalÄ«to sistēmu, tostarp blokķēžu, testÄ“Å”anai.

ÄŖss blokķēdes testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas rÄ«ku pārskats

Hyperledger Caliper ir daudz specializētāks risinājums Hyperledger suports. Šobrīd Caliper atbalsta vairākas blokķēdes vienlaikus - Hyperledger ģimenes pārstāvjus (Fabric, Sawtooth, Iroha, Burrow, Besu), kā arī Ethereum un FISCO BCOS tīklu.

Izmantojot Caliper, varat iestatÄ«t blokķēdes tÄ«kla topoloÄ£iju un lÄ«gumus testÄ“Å”anai, kā arÄ« aprakstÄ«t mezgla konfigurāciju. Blockchain mezgli tiek pacelti dokera konteineros vienā maŔīnā. Tālāk jÅ«s varat izvēlēties vajadzÄ«go testa konfigurācijas un pēc palaiÅ”anas saņemt failu ar ziņojumu par testa rezultātiem. Pilns Caliper metrikas un salÄ«dzinoŔās novērtÄ“Å”anas pieejas saraksts ir atrodams Å”eit Hyperledger Blockchain veiktspējas metrika, Å”is ir lielisks raksts, ja jÅ«s interesē blokķēdes etalonuzdevumu tēma. Varat arÄ« iestatÄ«t metrikas kolekciju atseviŔķā Prometheus/Grafana.

Hyperledger Caliper ir izstrādātājiem un sistēmu arhitektiem paredzēts rÄ«ks, jo tas nodroÅ”ina testu atkārtojamÄ«bu un testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas automatizāciju. To izmanto blokķēžu kodola izstrādē: konsensa algoritmi, virtuālā maŔīna viedo lÄ«gumu apstrādei, vienādranga slānis un citi sistēmas mehānismi.

ÄŖss blokķēdes testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas rÄ«ku pārskats

MixBytes tvertne ir rÄ«ks, kas radās, izstrādājot vienprātÄ«bas un galÄ«guma algoritmus uz EOS balstÄ«tiem tÄ«kliem un testējot paraķēdes, kuru pamatā ir paritātes substrāts (Polkadot). Funkcionalitātes ziņā tas ir tuvu Hyperledger Caliper, jo tas ļauj apkopot svarÄ«gus rādÄ«tājus no jebkuras izplatÄ«tas sistēmas mezgliem un klientu maŔīnām, kurās darbojas testa skripti.

MixBytes Tank izmanto vairākus mākoņpakalpojumus (Digital Ocean, Google Cloud Engine u.c.), kuros var palaist daudzus mezglus, veikt sākotnējās konfigurācijas procedÅ«ras, palaist vairākus etalonus dažādās iekārtās, apkopot nepiecieÅ”amos rādÄ«tājus un automātiski izslēgt tÄ«klu.

MixBytes Tank ļauj ietaupÄ«t naudu mākoņserveros, automātiski samazinot nevajadzÄ«gos resursus pēc pārbaudes. Vēl viena atŔķirÄ«ga iezÄ«me ir Molecule pakotnes izmantoÅ”ana, kas ļauj izstrādātājam pārbaudÄ«t vēlamās blokķēdes izvietoÅ”anu lokāli.

MixBytes Tank ļauj savlaicÄ«gi atklāt vājās vietas un kļūdas algoritmos, kas rodas reālos tÄ«klos ar lielu skaitu Ä£eogrāfiski sadalÄ«tu serveru un klientu. Tvertne palÄ«dzēs jums saprast, kas notiks mezglos, ja klienti nosÅ«tÄ«s darÄ«jumus ar noteiktu tps ļoti atkārtojamos apstākļos un ar reālu mezglu skaitu, kas sadalÄ«ti dažādos kontinentos, ja nepiecieÅ”ams.

ÄŖss blokķēdes testÄ“Å”anas un salÄ«dzinoŔās novērtÄ“Å”anas rÄ«ku pārskats

Whiteblock Genesis ir Ethereum bāzes blokķēžu testÄ“Å”anas platforma. Å im rÄ«kam ir diezgan plaÅ”a funkcionalitāte: tas ļauj palaist tÄ«klu, izveidot tajā nepiecieÅ”amo kontu skaitu, palielināt nepiecieÅ”amo klientu skaitu, konfigurēt tÄ«kla topoloÄ£iju, norādÄ«t joslas platuma un pakeÅ”u zuduma parametrus un veikt testu.

Whiteblock Genesis nodroÅ”ina savas testÄ“Å”anas iekārtas. Izstrādātājiem vienkārÅ”i jānorāda testa parametri, jāpalaiž tie, izmantojot gatavu API, un jāsaņem rezultāti, izmantojot ērtu informācijas paneli.

Whiteblock Genesis ļauj konfigurēt diezgan detalizētu testu, ko platforma automātiski veiks katrai nozīmīgai koda maiņai. Tas ļaus jau agrīnā stadijā konstatēt kļūdas un nekavējoties novērtēt izmaiņu ietekmi uz svarīgiem tīkla parametriem, piemēram, darījumu ātrumu un mezglu patērētajiem resursiem.

Madt

Vēl viens interesants jauns produkts izplatÄ«to sistēmu testÄ“Å”anai ir madt. Tas ir rakstÄ«ts Python un ļauj izveidot nepiecieÅ”amo tÄ«kla topoloÄ£iju un nepiecieÅ”amo serveru un klientu skaitu, izmantojot vienkārÅ”u konfigurācijas skriptu (piemērs). Pēc tam pakalpojums izvieto tÄ«klu vairākos Docker konteineros un atver tÄ«mekļa saskarni, kurā varat novērot ziņojumus no tÄ«kla serveriem un klientiem. Madt var izmantot blokķēžu testÄ“Å”anai ā€“ projekta repozitorijā ir uz Kademlia protokola bāzēts p2p tÄ«kla tests, kurā pakāpeniski tiek palielināti datu piegādes mezglos kavējumi un tiek pārbaudÄ«ts Å”o datu statuss.

Madt parādījās tikai nesen, taču, ņemot vērā tā ļoti elastīgo arhitektūru, tas var izvērsties par funkcionālu produktu.

Citi risinājumi

GandrÄ«z jebkurai blokķēžu sistēmas daļas pārbaudei ir nepiecieÅ”ams palaist provizoriskus skriptus, sagatavot kontus un pārbaudes nosacÄ«jumus (tas var bÅ«t vienprātÄ«bas kļūdu pārbaude, kas var radÄ«t daudzas ķēdes, cieto dakÅ”u scenāriju pārbaude, sistēmas parametru maiņa utt.). Visas Ŕīs manipulācijas dažādās blokķēdēs tiek veiktas atŔķirÄ«gi, tāpēc komandām ir vieglāk pakāpeniski pielāgot produktu testÄ“Å”anu un salÄ«dzinoÅ”o novērtÄ“Å”anu iekŔējam CI/CD un izmantot savas izstrādes, kas pakāpeniski kļūst sarežģītākas, attÄ«stoties blokķēdes funkcionalitātei.

Neskatoties uz to, gatavu risinājumu izmantoÅ”ana var ievērojami samazināt Å”o komandu testÄ“Å”anas laiku, tāpēc domāju, ka Ŕī programmatÅ«ra tuvākajos gados tiks aktÄ«vi attÄ«stÄ«ta.

Secinājums

Noslēdzot Å”o Ä«so pārskatu, es uzskaitÄ«Å”u vairākas svarÄ«gas blokķēdes testÄ“Å”anas rÄ«ku Ä«paŔības:

  • Iespēja automātiski izvietot blokķēdes tÄ«klu atkārtojamos apstākļos. Å is faktors ir svarÄ«gs, izstrādājot blokķēžu sistēmas daļas: konsensa algoritmus, galÄ«gumu, sistēmas viedos lÄ«gumus.
  • Sistēmas Ä«paÅ”umtiesÄ«bu izmaksas, patērētie resursi un pastāvÄ«gas lietoÅ”anas ērtÄ«bas. Å is faktors nodroÅ”ina projektam augstas kvalitātes testus par nelielu naudu.
  • Testa konfigurācijas elastÄ«ba un vienkārŔība. Å is faktors palielina iespēju identificēt sistēmas problēmas ā€“ ir mazāka iespēja palaist garām kaut ko svarÄ«gu.
  • PielāgoÅ”ana konkrētiem blokķēžu veidiem. Izstrādājot risinājumu, pamatojoties uz esoÅ”u, var ievērojami uzlabot kvalitāti un samazināt laika izmaksas.
  • IegÅ«to rezultātu un to veida (atskaites, metrika, grafiki, žurnāli utt.) ērtÄ«ba un pieejamÄ«ba. Tas ir absolÅ«ti nepiecieÅ”ams, ja vēlaties izsekot produkta attÄ«stÄ«bas vēsturei vai ja jums ir nepiecieÅ”ama padziļināta blokķēdes tÄ«kla uzvedÄ«bas analÄ«ze.

Veiksmi testÄ“Å”anā un lai jÅ«su blokķēdes ir ātras un izturÄ«gas pret defektiem!

Avots: www.habr.com

Pievieno komentāru