Блокчейнді тестілеу және салыстыру құралдарының қысқаша шолуы

Блокчейнді тестілеу және салыстыру құралдарының қысқаша шолуы

Бүгінгі күні блокчейндерді сынауға және салыстыруға арналған шешімдер белгілі бір блокчейнге немесе оның шанышқыларына бейімделген. Бірақ сонымен қатар функционалдық жағынан ерекшеленетін тағы бірнеше жалпы шешімдер бар: олардың кейбіреулері ашық бастапқы жобалар, басқалары SaaS ретінде ұсынылады, бірақ көпшілігі блокчейн әзірлеу тобы жасаған ішкі шешімдер. Дегенмен, олардың барлығы ұқсас мәселелерді шешеді. Бұл мақалада мен блокчейндерді сынау үшін арнайы жасалған бірнеше өнімдерді қысқаша шолуға тырыстым.

Блокчейн желісінің жұмысы таратылған деректер қорының жұмысына ұқсайды, сондықтан тестілеу үшін ұқсас құралдар мен әдістерді қолдануға болады. Бөлінген дерекқорлардың қалай тексерілетінін жақсырақ түсіну үшін ресурстар мен мақалалардың жақсы таңдауын қараңыз мұнда. Мысалы, кідіріс осында бөліктерге бөлінеді мақала, және олардың репликация алгоритмдеріндегі қателерді қалай іздейтінін түсіну үшін мен оны оқуды ұсынамын мақалалар.

Мен блокчейндерді сынауға және салыстыруға арналған бірнеше танымал шешімдерді сипаттаймын. Түсініктемелерде сіз сол мәселелерді шешуге арналған басқа пайдалы бағдарламалық өнімдерді сипаттасаңыз, мен қуаныштымын.

Блокчейнді тестілеу және салыстыру құралдарының қысқаша шолуы

Мен блокчейндер үшін арнайы жасалмағанымен, тәжірибе жасауға болатын желі бар болса, олардың жұмысын тиімді тексеруге мүмкіндік беретін құралдан бастаймын. Бөлінген жүйенің сенімділігінің ең маңызды факторы серверлер мен желіде ақаулар туындаған жағдайда жұмысты жалғастыру мүмкіндігі болып табылады. Бұл желінің кешігуі, дискінің толықтығы, сыртқы қызметтердің (DNS) қолжетімсіздігі, аппараттық құралдың ақаулары және басқа да жүздеген себептер болуы мүмкін. Көптеген жүйелік машиналарда үйлесімді жұмыс істейтін кез келген жүйелердің тұрақтылығын тексеру үшін сіз пайдалана аласыз Грмлин. Ол Chaos Engineering деп аталатын өте тиімді әдісті қолданады.

Өзінің желілік агентін пайдалана отырып, Gremlin қажетті машиналар санында көптеген әртүрлі мәселелер түрлерін жасайды: желілік лагтар, кез келген ресурстың (CPU, дискі, жад, желі) шамадан тыс жүктелуі, жеке протоколдарды өшіреді және т.б. Блокчейндер үшін Gremlin нақты өмірлік мәселелерді эмуляциялайтын және желінің әрекетін бақылай отырып, testnet серверлерінде қолданылуы мүмкін. Оның көмегімен әзірлеушілер мен әкімшілер басқарылатын ортада жүйе бұзылса немесе код жаңартылғанда не болатынын бақылай алады. Бұл жағдайда желі алдын ала конфигурациялануы және орналастырылуы, сондай-ақ қажетті көрсеткіштерді жинау үшін конфигурациялануы керек.

Gremlin - сәулетшілер, әзірлеушілер және қауіпсіздік мамандары үшін ыңғайлы құрал және кез келген дайын және іске қосылған таратылған жүйелерді, соның ішінде блокчейндерді сынауға арналған әмбебап шешім.

Блокчейнді тестілеу және салыстыру құралдарының қысқаша шолуы

Hyperledger Caliper - әлдеқайда мамандандырылған шешім Hyperledger Caliper. Қазіргі уақытта Caliper бірден бірнеше блокчейндерді қолдайды - Hyperledger отбасының өкілдері (Fabric, Sawtooth, Iroha, Burrow, Besu), сондай-ақ Ethereum және FISCO BCOS желісі.

Caliper көмегімен блокчейн желісінің топологиясын және тестілеуге арналған келісімшарттарды орнатуға, сондай-ақ түйіннің конфигурациясын сипаттауға болады. Блокчейн түйіндері бір машинадағы докер контейнерлерінде көтеріледі. Әрі қарай, сіз қажеттіні таңдай аласыз сынақ конфигурациялары және іске қосқаннан кейін сынақ нәтижелері туралы есебі бар файлды алыңыз. Caliper метрикасының және салыстыру тәсілінің толық тізімін мына жерден табуға болады Hyperledger Blockchain өнімділік көрсеткіштері, егер сізді блокчейнмен салыстыру тақырыбы қызықтырса, бұл тамаша мақала. Сондай-ақ, жеке Prometheus/Grafana ішінде көрсеткіштер жинағын орнатуға болады.

Hyperledger Caliper – әзірлеушілер мен жүйе сәулетшілеріне арналған құрал, өйткені ол сынақтың қайталануын және тестілеу мен салыстыруды автоматтандыруды қамтамасыз етеді. Ол блокчейндердің өзегін әзірлеуде қолданылады: консенсус алгоритмдері, смарт келісім-шарттарды өңдеуге арналған виртуалды машина, тең дәрежелі деңгей және басқа жүйелік механизмдер.

Блокчейнді тестілеу және салыстыру құралдарының қысқаша шолуы

MixBytes танкі EOS негізіндегі желілер үшін консенсус пен түпкілікті алгоритмдерді әзірлеу және Паритеттік субстрат (Полкадот) негізіндегі парачейндерді сынау процесінде пайда болған құрал. Функционалдық жағынан ол Hyperledger Caliper бағдарламасына жақын, себебі ол кез келген таратылған жүйенің түйіндерінен және сынақ сценарийлері жұмыс істейтін клиенттік машиналардан маңызды көрсеткіштерді жинауға мүмкіндік береді.

MixBytes Tank бірнеше бұлттық қызметтерді пайдаланады (Digital Ocean, Google Cloud Engine және т. желі.

MixBytes Tank сынақтан кейін қажет емес ресурстарды автоматты түрде азайту арқылы бұлттық серверлерде ақша үнемдеуге мүмкіндік береді. Тағы бір айрықша ерекшелігі - әзірлеушіге қалаған блокчейнді орналастыруды жергілікті түрде тексеруге мүмкіндік беретін Molecule пакетін пайдалану.

MixBytes Tank географиялық бөлінген серверлер мен клиенттердің үлкен саны бар нақты желілерде туындайтын алгоритмдердегі қиындықтар мен қателерді ерте анықтауға мүмкіндік береді. Резервуар, егер клиенттер қайталанатын жағдайларда берілген tps және қажет болған жағдайда әртүрлі континенттерге таралған түйіндердің нақты санымен транзакцияларды жіберсе, түйіндерде не болатынын түсінуге көмектеседі.

Блокчейнді тестілеу және салыстыру құралдарының қысқаша шолуы

Whiteblock Genesis – Ethereum негізіндегі блокчейндерге арналған сынақ платформасы. Бұл құралдың кең функционалдығы бар: ол желіні іске қосуға, ондағы тіркелгілердің қажетті санын жасауға, қажетті клиенттер санын арттыруға, желі топологиясын конфигурациялауға, өткізу қабілеттілігі мен пакеттерді жоғалту параметрлерін көрсетуге және сынақты орындауға мүмкіндік береді.

Whiteblock Genesis өзінің жеке сынақ құралдарын ұсынады. Әзірлеушілерге сынақ параметрлерін көрсету, оларды дайын API арқылы іске қосу және ыңғайлы бақылау тақтасын пайдаланып нәтижелерді алу жеткілікті.

Whiteblock Genesis бағдарламасы әрбір маңызды кодты өзгерту үшін платформа автоматты түрде жүргізетін жеткілікті егжей-тегжейлі сынақты конфигурациялауға мүмкіндік береді. Бұл қателерді ерте кезеңде анықтауға және өзгерістердің транзакция жылдамдығы мен түйіндер тұтынатын ресурстар сияқты маңызды желі параметрлеріне әсерін дереу бағалауға мүмкіндік береді.

Madt

Бөлінген жүйелерді сынауға арналған тағы бір қызықты жас өнім мадт. Ол Python тілінде жазылған және қарапайым конфигурация сценарийін пайдаланып қажетті желі топологиясын және серверлер мен клиенттердің қажетті санын жасауға мүмкіндік береді.мысал). Осыдан кейін қызмет желіні бірнеше Docker контейнерлерінде орналастырады және желі серверлері мен клиенттерінен хабарларды байқауға болатын веб-интерфейсті ашады. Madt блокчейндерін сынау үшін пайдаланылуы мүмкін - жоба репозиторийінде Kademlia протоколына негізделген p2p желілік сынағы бар, онда деректерді түйіндерге жеткізудегі кідірістер біртіндеп артады және бұл деректердің күйі тексеріледі.

Madt жақында ғана пайда болды, бірақ оның өте икемді архитектурасын ескере отырып, ол функционалды өнімге айнала алады.

Басқа шешімдер

Блокчейндердің жүйелік бөлігін кез келген дерлік тестілеу алдын ала сценарийлерді іске қосуды, тіркелгілерді және сынақ шарттарын дайындауды талап етеді (бұл көптеген тізбектердің шанышқыларын тудыруы мүмкін консенсус қателерін сынау, қатты шанышқы сценарийлерін сынау, жүйе параметрлерін өзгерту және т.б. болуы мүмкін). Барлық осы манипуляциялар әртүрлі блокчейндерде әртүрлі жүзеге асырылады, сондықтан командаларға өнімді тестілеуді және салыстыруды ішкі CI/CD-ге біртіндеп бейімдеу және блокчейннің функционалдығы дамыған сайын біртіндеп күрделене түсетін өздерінің әзірлемелерін пайдалану оңайырақ.

Дегенмен, дайын шешімдерді пайдалану бұл командалардың тестілеу уақытын айтарлықтай қысқартуы мүмкін, сондықтан бұл бағдарламалық жасақтама алдағы жылдары белсенді түрде әзірленеді деп ойлаймын.

қорытынды

Осы қысқаша шолуды аяқтау үшін мен блокчейнді тестілеу құралдарының бірнеше маңызды сипаттамаларын тізімдеймін:

  • Қайталанатын жағдайларда блокчейн желісін автоматты түрде орналастыру мүмкіндігі. Бұл фактор блокчейндердің жүйелік бөліктерін әзірлеу кезінде маңызды: консенсус алгоритмдері, түпкіліктілік, жүйелік смарт келісімшарттар.
  • Жүйені иелену құны, тұтынылатын ресурстар және тұрақты пайдалану ыңғайлылығы. Бұл фактор жобаны аз ақшаға жоғары сапалы сынақтармен қамтамасыз етеді.
  • Сынақ конфигурациясының икемділігі мен қарапайымдылығы. Бұл фактор жүйе ақауларын анықтау мүмкіндігін арттырады - маңызды нәрсені жіберіп алу мүмкіндігі аз.
  • Блокчейндердің белгілі бір түрлеріне теңшеу. Қолданыстағы шешімге негізделген шешімді әзірлеу сапаны айтарлықтай жақсартады және уақыт шығындарын азайтады.
  • Алынған нәтижелердің және олардың түрлерінің (есептер, метрика, графиктер, журналдар және т.б.) ыңғайлылығы мен қолжетімділігі. Егер сіз өнімнің даму тарихын қадағалағыңыз келсе немесе blockchain желісінің әрекетінің терең талдауын қажет етсеңіз, бұл өте қажет.

Тестілеуге сәттілік тілейміз және блокчейндеріңіз жылдам және қателерге төзімді болсын!

Ақпарат көзі: www.habr.com

пікір қалдыру