
Бүгүнкү күндө блокчейндерди сыноо жана салыштыруу үчүн чечимдер белгилүү бир блокчейнге же анын айрыларына ылайыкташтырылган. Бирок функционалдуулугу боюнча айырмаланган дагы бир нече жалпы чечимдер бар: алардын айрымдары ачык булак долбоорлору, башкалары SaaS катары берилген, бирок көпчүлүгү блокчейнди иштеп чыгуу тобу тарабынан түзүлгөн ички чечимдер. Бирок, алардын баары окшош көйгөйлөрдү чечет. Бул макалада мен блокчейндерди сыноо үчүн атайын иштелип чыккан бир нече өнүмдөрдү кыскача карап чыгууга аракет кылдым.
Блокчейн тармагынын иштеши бөлүштүрүлгөн маалымат базасынын иштешине окшош, ошондуктан тестирлөө үчүн окшош инструменттер жана ыкмалар колдонулушу мүмкүн. Бөлүштүрүлгөн маалымат базалары кантип текшерилгенин жакшыраак түшүнүү үчүн ресурстардын жана макалалардын жакшы тандоосун карап көрүңүз . Мисалы, кечигүү мында бөлүктөргө бөлүнөт , жана алар репликация алгоритмдериндеги мүчүлүштүктөрдү кантип издешерин түшүнүү үчүн мен муну окууну сунуштайм .
Мен блокчейндерди сыноо жана салыштыруу үчүн бир нече популярдуу чечимдерди сүрөттөп берем. Комментарийлерде ошол эле көйгөйлөрдү чечүү үчүн башка пайдалуу программалык продуктуларды сүрөттөп берсеңиз, мен кубанычтамын.

Мен блокчейндер үчүн атайын түзүлбөсө да, сиз эксперимент кыла турган иштеп жаткан тармак бар болсо, алардын иштешин натыйжалуу сынап көрүүгө мүмкүндүк берген куралдан баштайм. Бөлүштүрүлгөн системанын ишенимдүүлүгүнүн эң маанилүү фактору серверлер жана тармак менен көйгөйлөр пайда болгон учурда ишти улантуу мүмкүнчүлүгү болуп саналат. Бул тармактын артта калуулары, дисктин толуктугу, тышкы кызматтардын (DNS) жеткиликсиздиги, аппараттык камсыздоонун бузулушу жана башка жүздөгөн себептер болушу мүмкүн. Көп сандаган системалык машиналарда чогуу иштеген ар кандай системалардын туруктуулугун текшерүү үчүн сиз колдоно аласыз . Бул Chaos Engineering деп аталган абдан натыйжалуу ыкманы колдонот.
Өзүнүн тармактык агентин колдонуп, Gremlin керектүү сандагы машиналарда ар кандай көйгөйлөрдү жаратат: тармактын артта калышы, кандайдыр бир ресурстун (CPU, диск, эстутум, тармак) ашыкча жүктөлүшү, жеке протоколдорду өчүрүү ж.б. Блокчейндер үчүн Gremlin тестнет серверлеринде колдонулушу мүмкүн, чыныгы жашоодогу көйгөйлөрдү туурап жана тармактын жүрүм-турумун байкайт. Анын жардамы менен иштеп чыгуучулар жана администраторлор контролдонуучу чөйрөдө система бузулуп калса же код жаңыртылганда эмне болорун байкай алышат. Бул учурда, тармак алдын ала конфигурацияланууга жана жайылтууга, ошондой эле керектүү көрсөткүчтөрдү чогултууга конфигурацияланышы керек.
Gremlin - архитекторлор, иштеп чыгуучулар жана коопсуздук адистери үчүн ыңгайлуу курал жана ар кандай даяр жана иштеп жаткан бөлүштүрүлгөн системаларды, анын ичинде блокчейндерди сыноо үчүн универсалдуу чечим.

Hyperledger Caliper бир кыйла адистештирилген чечим болуп саналат . Азыркы учурда, Caliper бир эле учурда бир нече блокчейндерди колдойт - Hyperledger үй-бүлөсүнүн өкүлдөрү (Fabric, Sawtooth, Iroha, Burrow, Besu), ошондой эле Ethereum жана FISCO BCOS тармагын.
Калиперди колдонуу менен сиз блокчейн тармагынын топологиясын жана тестирлөө үчүн келишимдерди орното аласыз, ошондой эле түйүндүн конфигурациясын сүрөттөй аласыз. Блокчейн түйүндөрү бир машинада докер контейнерлеринде көтөрүлөт. Андан кийин, сиз керектүүсүн тандай аласыз жана ишке киргизгенден кийин тесттин натыйжалары жөнүндө отчет менен файлды алыңыз. Caliper метрикасынын жана салыштыруу ыкмасынын толук тизмесин бул жерден тапса болот , эгер сиз блокчейн менен салыштыруу темасына кызыксаңыз, бул эң сонун макала. Сиз ошондой эле өзүнчө Prometheus/Grafanaда метрика жыйнагын орното аласыз.
Hyperledger Caliper - бул иштеп чыгуучуларга жана системанын архитекторлоруна багытталган курал, анткени ал тесттин кайталанышын жана тестирлөөнүн жана бенчмаркингди автоматташтырууну камсыз кылат. Ал блокчейндердин өзөгүн иштеп чыгууда колдонулат: консенсус алгоритмдери, акылдуу контракттарды иштетүү үчүн виртуалдык машина, теңдүү катмар жана башка система механизмдери.

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 тармагынын жүрүм-турумунун терең аналитикасын талап кылсаңыз, бул абдан зарыл.
Сынооңузга ийгилик жана блокчейндериңиз тез жана каталарга чыдамдуу болсун!
Source: www.habr.com
