Այսօր բլոկչեյնների փորձարկման և չափանիշի լուծումները հարմարեցված են կոնկրետ բլոկչեյնի կամ դրա պատառաքաղների վրա: Բայց կան նաև մի քանի ընդհանուր լուծումներ, որոնք տարբերվում են ֆունկցիոնալությամբ. դրանցից մի քանիսը բաց կոդով նախագծեր են, մյուսները տրամադրվում են որպես SaaS, բայց մեծ մասը ներքին լուծումներ են, որոնք ստեղծված են բլոկչեյնի զարգացման թիմի կողմից: Այնուամենայնիվ, նրանք բոլորը լուծում են նմանատիպ խնդիրներ: Այս հոդվածում ես փորձեցի հակիրճ վերանայել մի քանի ապրանքներ, որոնք հատուկ նախագծված են բլոկչեյնների փորձարկման համար:
Բլոկչեյն ցանցի աշխատանքը նման է բաշխված տվյալների բազայի աշխատանքին, ուստի նմանատիպ գործիքներ և մեթոդներ կարող են օգտագործվել թեստավորման համար: Ավելի լավ հասկանալու համար, թե ինչպես են փորձարկվում բաշխված տվյալների բազաները, դիտեք ռեսուրսների և հոդվածների լավ ընտրանի
Ես կնկարագրեմ մի քանի հայտնի լուծումներ բլոկչեյնների փորձարկման և չափորոշման համար: Ուրախ կլինեմ, եթե մեկնաբանություններում նկարագրեք նույն խնդիրները լուծելու այլ օգտակար ծրագրային արտադրանք:
Ես կսկսեմ մի գործիքից, որը, թեև ստեղծված չէ հատուկ բլոկչեյնների համար, թույլ է տալիս արդյունավետորեն փորձարկել դրանց գործունեությունը, պայմանով, որ կա արդեն գործող ցանց, որի վրա կարող եք փորձարկել: Բաշխված համակարգի հուսալիության ամենակարևոր գործոնը սերվերների և ցանցի հետ կապված խնդիրների դեպքում աշխատանքը շարունակելու ունակությունն է: Սա կարող է լինել ցանցի ուշացումներ, սկավառակի լրիվություն, արտաքին ծառայությունների (DNS) անհասանելիություն, ապարատային խափանումներ և հարյուրավոր այլ պատճառներ: Մեծ թվով համակարգերի մեքենաների վրա համատեղ գործող ցանկացած համակարգերի կայունությունը ստուգելու համար կարող եք օգտագործել
Օգտագործելով իր սեփական ցանցային գործակալը՝ Գրեմլինը ստեղծում է բազմաթիվ տարբեր տեսակի խնդիրներ անհրաժեշտ թվով մեքենաների վրա՝ ցանցի հետաձգում, ցանկացած ռեսուրսի գերբեռնում (CPU, սկավառակ, հիշողություն, ցանց), անջատում է անհատական արձանագրությունները և այլն։ Բլոկչեյնների համար Gremlin-ը կարող է օգտագործվել testnet սերվերների վրա՝ ընդօրինակելով իրական կյանքի խնդիրները և դիտարկելով ցանցի վարքագիծը։ Դրա միջոցով մշակողները և ադմինիստրատորները կարող են դիտարկել վերահսկվող միջավայրում, թե ինչ կլինի, եթե համակարգը խափանվի կամ երբ կոդը թարմացվի: Այս դեպքում ցանցը պետք է նախապես կազմաձևվի և տեղակայվի, ինչպես նաև կազմաձևվի անհրաժեշտ չափորոշիչները հավաքելու համար:
Գրեմլինը հարմար գործիք է ճարտարապետների, մշակողների և անվտանգության մասնագետների համար և ունիվերսալ լուծում ցանկացած պատրաստի և գործող բաշխված համակարգերի, ներառյալ բլոկչեյնների փորձարկման համար:
Hyperledger Caliper-ը շատ ավելի մասնագիտացված լուծում է
Caliper-ի միջոցով դուք կարող եք սահմանել բլոկչեյն ցանցի տոպոլոգիան և պայմանագրերը թեստավորման համար, ինչպես նաև նկարագրել հանգույցի կոնֆիգուրացիան։ Բլոկչեյն հանգույցները բարձրացվում են դոկեր կոնտեյներով մեկ մեքենայի վրա: Հաջորդը, դուք կարող եք ընտրել անհրաժեշտը
Hyperledger Caliper-ը գործիք է, որն ուղղված է ծրագրավորողներին և համակարգերի ճարտարապետներին, քանի որ այն ապահովում է թեստի կրկնելիություն և ավտոմատացում թեստավորման և չափորոշիչների համար: Այն օգտագործվում է բլոկչեյնների միջուկի մշակման մեջ՝ կոնսենսուսի ալգորիթմներ, խելացի պայմանագրերի մշակման վիրտուալ մեքենա, հավասարազոր շերտ և այլ համակարգային մեխանիզմներ:
MixBytes Tank-ը օգտագործում է մի քանի ամպային ծառայություններ (Digital Ocean, Google Cloud Engine և այլն), որոնցում այն կարող է գործարկել բազմաթիվ հանգույցներ, իրականացնել նախնական կազմաձևման ընթացակարգեր, տարբեր մեքենաների վրա զուգահեռ գործարկել մի քանի հենանիշներ, հավաքել անհրաժեշտ չափումները և ավտոմատ կերպով անջատել ցանց։
MixBytes Tank-ը թույլ է տալիս գումար խնայել ամպային սերվերների վրա՝ փորձարկումից հետո ավտոմատ նվազագույնի հասցնելով ավելորդ ռեսուրսները: Մեկ այլ տարբերակիչ առանձնահատկություն է Molecule փաթեթի օգտագործումը, որը թույլ է տալիս ծրագրավորողին ստուգել ցանկալի բլոկչեյնի տեղակայումը տեղական մակարդակում:
MixBytes Tank-ը թույլ է տալիս վաղաժամ հայտնաբերել ալգորիթմների խցանումները և սխալները, որոնք առաջանում են իրական ցանցերում, որոնք ունեն մեծ թվով աշխարհագրական բաշխված սերվերներ և հաճախորդներ: Տանկը կօգնի ձեզ հասկանալ, թե ինչ կլինի հանգույցների վրա, եթե հաճախորդները ուղարկեն գործարքներ տվյալ tps-ով խիստ կրկնվող պայմաններում և անհրաժեշտության դեպքում տարբեր մայրցամաքներում տարածված իրական թվով հանգույցներով:
Whiteblock Genesis-ը Ethereum-ի վրա հիմնված բլոկչեյնների փորձարկման հարթակ է: Այս գործիքն ունի բավականին լայն ֆունկցիոնալություն. այն թույլ է տալիս գործարկել ցանց, ստեղծել դրա մեջ անհրաժեշտ թվով հաշիվներ, բարձրացնել հաճախորդների պահանջվող թիվը, կարգավորել ցանցի տոպոլոգիան, նշել թողունակության և փաթեթների կորստի պարամետրերը և կատարել թեստ:
Whiteblock Genesis-ն ապահովում է իր փորձարկման հնարավորությունները: Մշակողները պարզապես պետք է նշեն թեստի պարամետրերը, գործարկեն դրանք պատրաստի API-ի միջոցով և արդյունքներ ստանան՝ օգտագործելով հարմար վահանակ:
Whiteblock Genesis-ը թույլ է տալիս կարգավորել բավականին մանրամասն թեստ, որը պլատֆորմը ավտոմատ կերպով կանցկացնի կոդի յուրաքանչյուր նշանակալի փոփոխության համար: Սա թույլ կտա ձեզ հայտնաբերել սխալները վաղ փուլում և անմիջապես գնահատել փոփոխությունների ազդեցությունը ցանցի կարևոր պարամետրերի վրա, ինչպիսիք են գործարքների արագությունը և հանգույցների կողմից սպառվող ռեսուրսները:
Մադթ
Մեկ այլ հետաքրքիր երիտասարդ արտադրանք բաշխված համակարգերի փորձարկման համար
Madt-ը վերջերս է հայտնվել, բայց հաշվի առնելով նրա շատ ճկուն ճարտարապետությունը, այն կարող է վերածվել ֆունկցիոնալ արտադրանքի:
Այլ լուծումներ
Բլոկչեյնների համակարգի մասի գրեթե ցանկացած փորձարկում պահանջում է նախնական սկրիպտներ, հաշիվների և պայմանների պատրաստում թեստի համար (սա կարող է լինել կոնսենսուսի սխալների փորձարկում, որոնք կարող են առաջացնել շղթաների բազմաթիվ պատառաքաղներ, փորձարկել կոշտ պատառաքաղի սցենարներ, փոխել համակարգի պարամետրերը և այլն): Այս բոլոր մանիպուլյացիաները տարբեր բլոկչեյններում իրականացվում են տարբեր կերպ, ուստի թիմերի համար ավելի հեշտ է աստիճանաբար ադապտացնել արտադրանքի թեստավորումն ու չափորոշիչը ներքին CI/CD-ին և օգտագործել սեփական զարգացումները, որոնք աստիճանաբար բարդանում են բլոկչեյնի ֆունկցիոնալության զարգացման հետ:
Այնուամենայնիվ, պատրաստի լուծումների օգտագործումը կարող է զգալիորեն նվազեցնել այս թիմերի փորձարկման ժամանակը, ուստի կարծում եմ, որ այս ծրագրաշարը ակտիվորեն կզարգանա առաջիկա տարիներին։
Ամփոփում
Այս կարճ ակնարկն ավարտելու համար ես կթվարկեմ բլոկչեյնի փորձարկման գործիքների մի քանի կարևոր բնութագրեր.
- Կրկնվող պայմաններում բլոկչեյն ցանցը ավտոմատ կերպով տեղակայելու ունակություն: Այս գործոնը կարևոր է բլոկչեյնների համակարգի մասերի մշակման ժամանակ՝ կոնսենսուսի ալգորիթմներ, վերջնականություն, համակարգի խելացի պայմանագրեր:
- Համակարգի սեփականության արժեքը, սպառվող ռեսուրսները և մշտական օգտագործման հարմարավետությունը: Այս գործոնը նախագծին ապահովում է բարձրորակ թեստերով քիչ գումարով:
- Փորձարկման կոնֆիգուրացիայի ճկունություն և պարզություն: Այս գործոնը մեծացնում է համակարգի խնդիրների բացահայտման հնարավորությունները. ավելի քիչ հավանական է բաց թողնել որևէ կարևոր բան:
- Անհատականացում կոնկրետ տեսակի բլոկչեյնների համար: Գոյություն ունեցողի վրա հիմնված լուծումների մշակումը կարող է զգալիորեն բարելավել որակը և նվազեցնել ժամանակի ծախսերը:
- Ստացված արդյունքների և դրանց տեսակի (հաշվետվություններ, չափումներ, գրաֆիկներ, տեղեկամատյաններ և այլն) հարմարավետություն և մատչելիություն։ Սա բացարձակապես անհրաժեշտ է, եթե ցանկանում եք հետևել արտադրանքի զարգացման պատմությանը, կամ եթե պահանջում եք բլոկչեյն ցանցի վարքագծի խորը վերլուծություն:
Հաջողություն ձեր թեստավորման հետ կապված, և թող ձեր բլոկչեյնները լինեն արագ և սխալների նկատմամբ հանդուրժող:
Source: www.habr.com