Blockchain-ի փորձարկման և համեմատական ​​գործիքների համառոտ ակնարկ

Blockchain-ի փորձարկման և համեմատական ​​գործիքների համառոտ ակնարկ

Այսօր բլոկչեյնների փորձարկման և չափանիշի լուծումները հարմարեցված են կոնկրետ բլոկչեյնի կամ դրա պատառաքաղների վրա: Բայց կան նաև մի քանի ընդհանուր լուծումներ, որոնք տարբերվում են ֆունկցիոնալությամբ. դրանցից մի քանիսը բաց կոդով նախագծեր են, մյուսները տրամադրվում են որպես SaaS, բայց մեծ մասը ներքին լուծումներ են, որոնք ստեղծված են բլոկչեյնի զարգացման թիմի կողմից: Այնուամենայնիվ, նրանք բոլորը լուծում են նմանատիպ խնդիրներ: Այս հոդվածում ես փորձեցի հակիրճ վերանայել մի քանի ապրանքներ, որոնք հատուկ նախագծված են բլոկչեյնների փորձարկման համար:

Բլոկչեյն ցանցի աշխատանքը նման է բաշխված տվյալների բազայի աշխատանքին, ուստի նմանատիպ գործիքներ և մեթոդներ կարող են օգտագործվել թեստավորման համար: Ավելի լավ հասկանալու համար, թե ինչպես են փորձարկվում բաշխված տվյալների բազաները, դիտեք ռեսուրսների և հոդվածների լավ ընտրանի ուստի. Օրինակ, ուշացումն այս դեպքում դասավորված է մասերի Հոդված, և հասկանալու համար, թե ինչպես են նրանք սխալներ փնտրում կրկնօրինակման ալգորիթմներում, խորհուրդ եմ տալիս կարդալ սա հոդվածներ.

Ես կնկարագրեմ մի քանի հայտնի լուծումներ բլոկչեյնների փորձարկման և չափորոշման համար: Ուրախ կլինեմ, եթե մեկնաբանություններում նկարագրեք նույն խնդիրները լուծելու այլ օգտակար ծրագրային արտադրանք:

Blockchain-ի փորձարկման և համեմատական ​​գործիքների համառոտ ակնարկ

Ես կսկսեմ մի գործիքից, որը, թեև ստեղծված չէ հատուկ բլոկչեյնների համար, թույլ է տալիս արդյունավետորեն փորձարկել դրանց գործունեությունը, պայմանով, որ կա արդեն գործող ցանց, որի վրա կարող եք փորձարկել: Բաշխված համակարգի հուսալիության ամենակարևոր գործոնը սերվերների և ցանցի հետ կապված խնդիրների դեպքում աշխատանքը շարունակելու ունակությունն է: Սա կարող է լինել ցանցի ուշացումներ, սկավառակի լրիվություն, արտաքին ծառայությունների (DNS) անհասանելիություն, ապարատային խափանումներ և հարյուրավոր այլ պատճառներ: Մեծ թվով համակարգերի մեքենաների վրա համատեղ գործող ցանկացած համակարգերի կայունությունը ստուգելու համար կարող եք օգտագործել Gremlin. Այն օգտագործում է չափազանց արդյունավետ մոտեցում, որը կոչվում է Chaos Engineering:

Օգտագործելով իր սեփական ցանցային գործակալը՝ Գրեմլինը ստեղծում է բազմաթիվ տարբեր տեսակի խնդիրներ անհրաժեշտ թվով մեքենաների վրա՝ ցանցի հետաձգում, ցանկացած ռեսուրսի գերբեռնում (CPU, սկավառակ, հիշողություն, ցանց), անջատում է անհատական ​​արձանագրությունները և այլն։ Բլոկչեյնների համար Gremlin-ը կարող է օգտագործվել testnet սերվերների վրա՝ ընդօրինակելով իրական կյանքի խնդիրները և դիտարկելով ցանցի վարքագիծը։ Դրա միջոցով մշակողները և ադմինիստրատորները կարող են դիտարկել վերահսկվող միջավայրում, թե ինչ կլինի, եթե համակարգը խափանվի կամ երբ կոդը թարմացվի: Այս դեպքում ցանցը պետք է նախապես կազմաձևվի և տեղակայվի, ինչպես նաև կազմաձևվի անհրաժեշտ չափորոշիչները հավաքելու համար:

Գրեմլինը հարմար գործիք է ճարտարապետների, մշակողների և անվտանգության մասնագետների համար և ունիվերսալ լուծում ցանկացած պատրաստի և գործող բաշխված համակարգերի, ներառյալ բլոկչեյնների փորձարկման համար:

Blockchain-ի փորձարկման և համեմատական ​​գործիքների համառոտ ակնարկ

Hyperledger Caliper-ը շատ ավելի մասնագիտացված լուծում է Hyperledger Caliper. Այս պահին Caliper-ն աջակցում է միանգամից մի քանի բլոկչեյնների՝ Hyperledger ընտանիքի (Fabric, Sawtooth, Iroha, Burrow, Besu), ինչպես նաև Ethereum-ի և FISCO BCOS ցանցի ներկայացուցիչներ:

Caliper-ի միջոցով դուք կարող եք սահմանել բլոկչեյն ցանցի տոպոլոգիան և պայմանագրերը թեստավորման համար, ինչպես նաև նկարագրել հանգույցի կոնֆիգուրացիան։ Բլոկչեյն հանգույցները բարձրացվում են դոկեր կոնտեյներով մեկ մեքենայի վրա: Հաջորդը, դուք կարող եք ընտրել անհրաժեշտը փորձարկման կոնֆիգուրացիաներ և գործարկումից հետո ստացեք ֆայլ՝ թեստի արդյունքների վերաբերյալ զեկույցով: Caliper-ի չափումների և համեմատական ​​մոտեցման ամբողջական ցանկը կարող եք գտնել այստեղ Hyperledger Blockchain Performance Metrics, սա հիանալի հոդված է, եթե ձեզ հետաքրքրում է բլոկչեյնի չափորոշիչի թեման։ Դուք կարող եք նաև ստեղծել չափումների հավաքածու առանձին Prometheus/Grafana-ում:

Hyperledger Caliper-ը գործիք է, որն ուղղված է ծրագրավորողներին և համակարգերի ճարտարապետներին, քանի որ այն ապահովում է թեստի կրկնելիություն և ավտոմատացում թեստավորման և չափորոշիչների համար: Այն օգտագործվում է բլոկչեյնների միջուկի մշակման մեջ՝ կոնսենսուսի ալգորիթմներ, խելացի պայմանագրերի մշակման վիրտուալ մեքենա, հավասարազոր շերտ և այլ համակարգային մեխանիզմներ:

Blockchain-ի փորձարկման և համեմատական ​​գործիքների համառոտ ակնարկ

MixBytes տանկ գործիք է, որը ի հայտ է եկել EOS-ի վրա հիմնված ցանցերի համար կոնսենսուսի և վերջնականության ալգորիթմների մշակման գործընթացում և պարաշեյնների փորձարկման ընթացքում՝ հիմնված Parity Substrate-ի (Polkadot) վրա: Ֆունկցիոնալ առումով այն մոտ է Hyperledger Caliper-ին, քանի որ թույլ է տալիս հավաքել կարևոր չափումներ ցանկացած բաշխված համակարգի հանգույցներից և հաճախորդի մեքենաներից, որոնց վրա աշխատում են թեստային սկրիպտները:

MixBytes Tank-ը օգտագործում է մի քանի ամպային ծառայություններ (Digital Ocean, Google Cloud Engine և այլն), որոնցում այն ​​կարող է գործարկել բազմաթիվ հանգույցներ, իրականացնել նախնական կազմաձևման ընթացակարգեր, տարբեր մեքենաների վրա զուգահեռ գործարկել մի քանի հենանիշներ, հավաքել անհրաժեշտ չափումները և ավտոմատ կերպով անջատել ցանց։

MixBytes Tank-ը թույլ է տալիս գումար խնայել ամպային սերվերների վրա՝ փորձարկումից հետո ավտոմատ նվազագույնի հասցնելով ավելորդ ռեսուրսները: Մեկ այլ տարբերակիչ առանձնահատկություն է Molecule փաթեթի օգտագործումը, որը թույլ է տալիս ծրագրավորողին ստուգել ցանկալի բլոկչեյնի տեղակայումը տեղական մակարդակում:

MixBytes Tank-ը թույլ է տալիս վաղաժամ հայտնաբերել ալգորիթմների խցանումները և սխալները, որոնք առաջանում են իրական ցանցերում, որոնք ունեն մեծ թվով աշխարհագրական բաշխված սերվերներ և հաճախորդներ: Տանկը կօգնի ձեզ հասկանալ, թե ինչ կլինի հանգույցների վրա, եթե հաճախորդները ուղարկեն գործարքներ տվյալ tps-ով խիստ կրկնվող պայմաններում և անհրաժեշտության դեպքում տարբեր մայրցամաքներում տարածված իրական թվով հանգույցներով:

Blockchain-ի փորձարկման և համեմատական ​​գործիքների համառոտ ակնարկ

Whiteblock Genesis-ը Ethereum-ի վրա հիմնված բլոկչեյնների փորձարկման հարթակ է: Այս գործիքն ունի բավականին լայն ֆունկցիոնալություն. այն թույլ է տալիս գործարկել ցանց, ստեղծել դրա մեջ անհրաժեշտ թվով հաշիվներ, բարձրացնել հաճախորդների պահանջվող թիվը, կարգավորել ցանցի տոպոլոգիան, նշել թողունակության և փաթեթների կորստի պարամետրերը և կատարել թեստ:

Whiteblock Genesis-ն ապահովում է իր փորձարկման հնարավորությունները: Մշակողները պարզապես պետք է նշեն թեստի պարամետրերը, գործարկեն դրանք պատրաստի API-ի միջոցով և արդյունքներ ստանան՝ օգտագործելով հարմար վահանակ:

Whiteblock Genesis-ը թույլ է տալիս կարգավորել բավականին մանրամասն թեստ, որը պլատֆորմը ավտոմատ կերպով կանցկացնի կոդի յուրաքանչյուր նշանակալի փոփոխության համար: Սա թույլ կտա ձեզ հայտնաբերել սխալները վաղ փուլում և անմիջապես գնահատել փոփոխությունների ազդեցությունը ցանցի կարևոր պարամետրերի վրա, ինչպիսիք են գործարքների արագությունը և հանգույցների կողմից սպառվող ռեսուրսները:

Մադթ

Մեկ այլ հետաքրքիր երիտասարդ արտադրանք բաշխված համակարգերի փորձարկման համար խելագար. Այն գրված է Python-ով և թույլ է տալիս ստեղծել անհրաժեշտ ցանցի տոպոլոգիա և պահանջվող քանակի սերվերներ և հաճախորդներ՝ օգտագործելով պարզ կազմաձևման սցենար (օրինակ). Դրանից հետո ծառայությունը տեղակայում է ցանցը մի քանի Docker կոնտեյներներում և բացում է վեբ ինտերֆեյս, որտեղ կարող եք դիտել ցանցի սերվերների և հաճախորդների հաղորդագրությունները: Madt-ը կարող է օգտագործվել բլոկչեյնների փորձարկման համար. նախագծի պահոցն ունի p2p ցանցի թեստ՝ հիմնված Kademlia արձանագրության վրա, որտեղ աստիճանաբար ավելանում են տվյալների հանգույցներին փոխանցելու ձգձգումները և ստուգվում է այս տվյալների կարգավիճակը:

Madt-ը վերջերս է հայտնվել, բայց հաշվի առնելով նրա շատ ճկուն ճարտարապետությունը, այն կարող է վերածվել ֆունկցիոնալ արտադրանքի:

Այլ լուծումներ

Բլոկչեյնների համակարգի մասի գրեթե ցանկացած փորձարկում պահանջում է նախնական սկրիպտներ, հաշիվների և պայմանների պատրաստում թեստի համար (սա կարող է լինել կոնսենսուսի սխալների փորձարկում, որոնք կարող են առաջացնել շղթաների բազմաթիվ պատառաքաղներ, փորձարկել կոշտ պատառաքաղի սցենարներ, փոխել համակարգի պարամետրերը և այլն): Այս բոլոր մանիպուլյացիաները տարբեր բլոկչեյններում իրականացվում են տարբեր կերպ, ուստի թիմերի համար ավելի հեշտ է աստիճանաբար ադապտացնել արտադրանքի թեստավորումն ու չափորոշիչը ներքին CI/CD-ին և օգտագործել սեփական զարգացումները, որոնք աստիճանաբար բարդանում են բլոկչեյնի ֆունկցիոնալության զարգացման հետ:

Այնուամենայնիվ, պատրաստի լուծումների օգտագործումը կարող է զգալիորեն նվազեցնել այս թիմերի փորձարկման ժամանակը, ուստի կարծում եմ, որ այս ծրագրաշարը ակտիվորեն կզարգանա առաջիկա տարիներին։

Ամփոփում

Այս կարճ ակնարկն ավարտելու համար ես կթվարկեմ բլոկչեյնի փորձարկման գործիքների մի քանի կարևոր բնութագրեր.

  • Կրկնվող պայմաններում բլոկչեյն ցանցը ավտոմատ կերպով տեղակայելու ունակություն: Այս գործոնը կարևոր է բլոկչեյնների համակարգի մասերի մշակման ժամանակ՝ կոնսենսուսի ալգորիթմներ, վերջնականություն, համակարգի խելացի պայմանագրեր:
  • Համակարգի սեփականության արժեքը, սպառվող ռեսուրսները և մշտական ​​օգտագործման հարմարավետությունը: Այս գործոնը նախագծին ապահովում է բարձրորակ թեստերով քիչ գումարով:
  • Փորձարկման կոնֆիգուրացիայի ճկունություն և պարզություն: Այս գործոնը մեծացնում է համակարգի խնդիրների բացահայտման հնարավորությունները. ավելի քիչ հավանական է բաց թողնել որևէ կարևոր բան:
  • Անհատականացում կոնկրետ տեսակի բլոկչեյնների համար: Գոյություն ունեցողի վրա հիմնված լուծումների մշակումը կարող է զգալիորեն բարելավել որակը և նվազեցնել ժամանակի ծախսերը:
  • Ստացված արդյունքների և դրանց տեսակի (հաշվետվություններ, չափումներ, գրաֆիկներ, տեղեկամատյաններ և այլն) հարմարավետություն և մատչելիություն։ Սա բացարձակապես անհրաժեշտ է, եթե ցանկանում եք հետևել արտադրանքի զարգացման պատմությանը, կամ եթե պահանջում եք բլոկչեյն ցանցի վարքագծի խորը վերլուծություն:

Հաջողություն ձեր թեստավորման հետ կապված, և թող ձեր բլոկչեյնները լինեն արագ և սխալների նկատմամբ հանդուրժող:

Source: www.habr.com

Добавить комментарий