Blokçeynlərin test edilməsi və benchmarking üçün alətlərin qısa icmalı

Blokçeynlərin test edilməsi və benchmarking üçün alətlərin qısa icmalı

Bugün blokçeyn test və benchmarking həlləri müəyyən bir blokçeyn və ya onun forkləri üçün nəzərdə tutulub. Lakin daha geniş funksionallığa malik bir neçə daha ümumi həll də vardır: bəziləri açıq mənbə layihələridir, digərləri SaaS olaraq təqdim edilir, amma əksəriyyəti blokçeyn inkişafı komandası tərəfindən yaradılan daxili həllərdir. Yenə də, onların hamısı oxşar məsələləri həll edir. Bu məqalədə blokçeyn testinə spesifik bir neçə məhsulu qısaca xarakterizə etməyə çalışdım.

Blokçeyn şəbəkəsinin işi paylanmış verilənlər bazasının işinə bənzəyir, buna görə də test üçün oxşar vasitə və metodlardan istifadə etmək mümkündür. Paylanmış verilənlər bazalarının necə test edildiyini daha yaxşı anlamaq üçün yaxşı bir resurs və məqalələr toplusuna baxın. buradan. Məsələn, latency bu məqalədə ətraflı tədqiq edilmişdir makalede, və replikasiya alqoritmlərindəki xətaları necə axtardıqlarını anlamaq üçün bu məqaləyə nəzər yetirməyi tövsiyə edirəm. məqaləyə.

Mən blokçeyn test və benchmarking üçün bir neçə məşhur həlli təsvir edəcəyəm. Şərhlərdə eyni məsələləri həll edən digər faydalı proqram məhsullarını təqdim etsəniz, məmnun olaram.

Blokçeynlərin test edilməsi və benchmarking üçün alətlərin qısa icmalı

Blokçeyn üçün xüsusi yaradılmayan, lakin artıq işə salınmış bir şəbəkədə onların işini effektiv test etməyə imkan verən bir alətlə başlayacağam. Paylanmış sistemin etibarlılığı üçün ən mühüm amil serverlər və şəbəkədə problemlər zamanı işini davam etdirə bilmə qabiliyyətidir. Bu, şəbəkə lagları, disk dolması, xarici xidmətlərin (DNS) əlçatmazlığı, avadanlıq nasazlıqları və yüzlərlə digər səbəb ola bilər. Eyni zamanda çox sayda maşında əlaqədə işləyən sistemlərin dayanıqlığını yoxlamaq üçün Gremlinistifadə oluna bilər. Burada, Chaos Engineering adlı son dərəcə effektiv bir yanaşma istifadə olunur.

Gremlin, öz şəbəkə agenti vasitəsilə, lazım olan sayda maşında müxtəlif problem növlərini yarada bilir: şəbəkə gecikmələri, istənilən resursun (CPU, disk, yaddaş, şəbəkə) yüklənməsi, ayrı-ayrı protokolların deaktiv edilməsi və s. Gremlin, blockchain-lər üçün test şəbəkəsi serverlərində real problemləri emulasiya edir və şəbəkənin davranışını izləmək üçün istifadə oluna bilər. Bununla, inkişafçılar və administratorlar, nəzarət olunan bir mühitdə sistemin nasazlıq zamanı və ya kodun yenilənməsi zamanı nə baş verəcəyini izləyə bilərlər. Eyni zamanda, şəbəkə əvvəlcədən konfiqurasiya edilməli, yerləşdirilməli və lazım olan metriklərin toplanması üçün konfiqurasiya edilməlidir.

Gremlin, memarlar, devops və təhlükəsizlik mütəxəssisləri üçün rahat bir alətdir və hər cür hazır və işə salınmış paylanmış sistemlərin, o cümlədən blockchain-lərin, test edilməsi üçün universal bir həllidir.

Blokçeynlərin test edilməsi və benchmarking üçün alətlərin qısa icmalı

Hyperledger Caliper — daha ixtisaslaşmış bir həlldir Hyperledger Caliper. Hal-hazırda Caliper eyni anda bir neçə blockchain-i dəstəkləyir — Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu) ailəsinə aid nümayəndələr, eləcə də Ethereum və FISCO BCOS şəbəkəsi.

Caliper vasitəsilə blockchain şəbəkəsinin topologiyasını və test üçün müqavilələri təyin etmək, həmçinin node konfiqurasiyasını təsvir etmək olar. Blockchain node-ları bir maşında docker konteynerlərində qaldırılır. Sonra, siz lazım olan test konfiqurasiyalarını seçərək, işə salındıqdan sonra test nəticələri ilə bağlı bir hesabat faylı əldə edə bilərsiniz. Caliper-in bütün metriklərini və benchmark yanaşmasını burada öyrənə bilərsiniz Hyperledger Blockchain Performans Metrikləri, bu, blockchain-lərin benchmark mövzusu ilə maraqlananlar üçün əla bir məqalədir. Eyni zamanda, metriklərin toplanmasını ayrı bir Prometheus/Grafana-də tənzimləmək də mümkündür.

Hyperledger Caliper, testlərin təkrarlanmasını və testlərin avtomatlaşdırılmasını təmin edən, inkişafçılar və sistem memarları üçün yönəlmiş bir alətdir. O, blockchain-lərin əsasını hazırlamaq üçün istifadə olunur: konsensus alqoritmləri, ağıllı müqavilələrin prosesini həyata keçirən virtual maşın, peer-to-peer səthi və digər sistem mexanizmləri.

Blokçeynlərin test edilməsi və benchmarking üçün alətlərin qısa icmalı

MixBytes Tank — bir alət, EOS əsaslı şəbəkələr üçün konsensus və sonluq alqoritmlərinin işlənməsi prosesi zamanı meydana gəlib və Parity Substrate (Polkadot) əsaslı parachain-ların test edilməsində istifadə olunur. Funksional baxımdan, o, Hyperledger Caliper-ə bənzəyir, çünki hər hansı bir paylanmış sistemin nodlarından və test skriptlərinin işlədildiyi müştəri cihazlarından vacib metrikaları toplamağa imkan verir.

MixBytes Tank bir neçə bulud xidmətini (Digital Ocean, Google Cloud Engine və s.) istifadə edərək, çoxsaylı nodları işə sala, əvvəlcədən konfiqurasiya prosedurlarını aparmağa, eyni anda müxtəlif maşınlarda bir neçə benchmark-u paralel olaraq işə sala, tələb olunan metrikaları toplaya və şəbəkəni avtomatik olaraq dayandıra bilir.

MixBytes Tank bulud serverlərinə xərcləri səmərəli şəkildə azaltmağa imkan tanıyır, test keçirildikdən sonra lazımsız resursları avtomatik olaraq söndürür. Başqa bir seçici xüsusiyyət, inkişaf etdiricinin lazım olan blokçeyni yerli olaraq test etməsinə imkan verən Molecule paketinin istifadəsidir.

MixBytes Tank, əsl şəbəkələrdə geniş coğrafi paylanmış serverlər və müştərilər olan alqoritmlərdə meydana gələn əngəl və səhvləri erkən aşkar etməyə imkan tanıyır. Tank, müştərilərin yüksək təkrarlayışlı şəraitdə və müxtəlif kontinentlərdə yayılmış real nodlarla müəyyən edilmiş tps ilə əməliyyatlar göndərdikdə nodlarda baş verəcək hadisələri anlamaqda sizə kömək edəcək.

Blokçeynlərin test edilməsi və benchmarking üçün alətlərin qısa icmalı

Whiteblock Genesis, Ethereum əsaslı blokçeynlərin test edilməsi platformasıdır. Bu alət kifayət qədər geniş funksionallığa malikdir: o, şəbəkəni işə salmağa, lazım olan sayda hesab yaratmağa, lazımi sayda müştəri quraşdırmağa, şəbəkə topologiyasını konfiqurasiya etməyə, bandwidth, packetloss parametrlərini göstərməyə və testi işə salmağa imkan verir.

Whiteblock Genesis testlərin aparılması üçün öz resurslarını təqdim edir. İnkişaf etdiricilər sadəcə test parametrlərini göstərə, onları hazır API vasitəsilə işə sala və rahat dashboard istifadə edərək nəticələr ala bilərlər.

Whiteblock Genesis, platformanın koddakı hər önəmli dəyişikliyə qarşı avtomatik test aparacağı kifayət qədər ətraflı testi konfiqurasiya etməyə imkan verir. Bu, erkən mərhələlərdə səhvləri aşkar etməyə və dəyişikliklərin şəbəkənin mühüm parametrlərinə, məsələn, əməliyyatların sürəti və nodların istehlak etdiyi resurslar üzərindəki təsirini dərhal qiymətləndirməyə imkan tanıyacaq.

Madt

Başqa bir maraqlı gənc məhsul, paylanmış sistemləri test etmək üçün — madt. Python-da yazılmışdır və tələb olunan şəbəkə topologiyasını və lazım olan server və müştəri sayını yaratmaq üçün sadə konfiqurasiya skripti ilə iş görməyə imkan verir (nümunə). Sonra xidmət bir neçə docker konteynerində şəbəkəni işə salır və serverlərdən və müştərilərdən gələn mesajları izləyə biləcəyiniz web interfeysini açır. Madt, blokçeyn testləri üçün istifadə oluna bilər — layihənin reposunda Kademlia protokoluna əsaslanan p2p şəbəkəsi testi var ki, burada verilənlərin nodlara çatdırılmasında gecikmələr tədricən artırılır və bu verilənlərin statusu yoxlanılır.

Madt çox təzə bir məhsuldur, lakin çox çevik arxitekturasını nəzərə alsaq, funksional bir məhsula çevrilə bilər.

Digər həllər

Demək olar ki, blokçeyn sisteminin sistem hissəsinin hər hansı bir testi əvvəlcədən ssenarilərin işə salınmasını, hesabların hazırlanmasını və test üçün şəraitlərin yaradılmasını tələb edir (bu, bir çox zəncirin forklara səbəb olan konsensus xətalarının test edilməsi, hard fork ssenarilərinin işlənməsi, sistem parametr dəyişiklikləri və s. ola bilər). Bu cür manipulyasiyalar fərqli blokçeynlərdə fərqli aparılır, buna görə də komandaların testlərin və məhsulun benchmark edilməsini daxili CI/CD-yə uyğundurması daha asandır və tədricən kompleksləşən öz inkişaflarını istifadə etməsi daha məqsədəuyğundur.

Bununla belə, hazır həllərin istifadəsi bu komandaların test etmə vaxtını əhəmiyyətli dərəcədə azaltmağa kömək edə bilər, buna görə də düşünürəm ki, bu proqram gələcək illərdə aktiv şəkildə inkişaf edəcək.

Nəticə

Bu kiçik icmalı bitirərkən, blokçeyn testləri üçün alətlərin bir neçə vacib xüsusiyyətini sadalayım:

  • Blokçeyn şəbəkəsinin avtomatik olaraq təkrarlanan şəraitdə yaradılması imkanı. Bu amil blokçeyn sistem hissələrinin, konsensus alqoritmlərinin, finality-nin, sistem smart-kontraktlarının hazırlanmasında əhəmiyyətlidir.
  • Sistemin saxlanma xərcləri, istehlak olunan resurslar və daimi istifadə üçün rahatlıq. Bu amil layihəyə az xərclə yüksək keyfiyyətli testlər təmin edir.
  • Testlərin çevikliyi və konfiqurasiyanın asanlığı. Bu amil sistem problemlərini aşkar etmək şansını artırır — əhəmiyyətli bir şeyi qaçırma riski azdır.
  • Müəyyən blockchain növləri üçün fərdiləşdirmə. Artıq mövcud olan bir baza üzərindən həllin hazırlanması keyfiyyəti ciddi şəkildə yaxşılaşdıra və zamanın sərfini azalda bilər.
  • Alınan nəticələrin rahatlığı və əlçatanlığı, eləcə də onların növü (hesabatlar, metrikalar, qrafiklər, loglar və s.). Bu, məhsulun inkişaf tarixinə nəzarət etmək və ya blockchain şəbəkəsinin davranışına dərindən analitika tələb etmək istədikdə tamamilə vacibdir.

Test etmədə uğurlar və blockchain-larınızın sürətli və etibarlı olmasını arzulayıram!

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster