Кратък преглед на инструментите за тестване и сравнителен анализ на блокчейн

Кратък преглед на инструментите за тестване и сравнителен анализ на блокчейн

Днес решенията за тестване и сравнителен анализ на блокови вериги са съобразени с конкретна блокова верига или нейните разклонения. Но има и няколко по-общи решения, които се различават по функционалност: някои от тях са проекти с отворен код, други се предоставят като SaaS, но повечето са вътрешни решения, създадени от екипа за разработка на блокчейн. Въпреки това, всички те решават подобни проблеми. В тази статия се опитах да прегледам накратко няколко продукта, предназначени специално за тестване на блокчейн.

Работата на блокчейн мрежа наподобява работата на разпределена база данни, така че подобни инструменти и методи могат да се използват за тестване. За да разберете по-добре как се тестват разпределените бази данни, разгледайте добра селекция от ресурси и статии следователно. Например латентността е сортирана на части в това Статия, и за да разберете как търсят грешки в алгоритмите за репликация, препоръчвам да прочетете това статия.

Ще опиша няколко популярни решения за тестване и сравнителен анализ на блокчейни. Ще се радвам, ако в коментарите опишете други полезни софтуерни продукти за решаване на същите проблеми.

Кратък преглед на инструментите за тестване и сравнителен анализ на блокчейн

Ще започна с инструмент, който, въпреки че не е създаден специално за блокчейн, ви позволява ефективно да тествате тяхната работа, при условие че има вече работеща мрежа, върху която можете да експериментирате. Най-важният фактор за надеждността на една разпределена система е способността да продължи да работи при проблеми със сървърите и мрежата. Това може да са мрежови лагове, пълен диск, недостъпност на външни услуги (DNS), хардуерни повреди и стотици други причини. За да проверите стабилността на всички системи, работещи съвместно на голям брой системни машини, можете да използвате Гремлин. Той използва изключително ефективен подход, наречен Chaos Engineering.

Използвайки свой собствен мрежов агент, Gremlin създава много различни видове проблеми на необходимия брой машини: мрежови лагове, претоварване на всеки ресурс (CPU, диск, памет, мрежа), деактивира отделни протоколи и т.н. За блокчейни Gremlin може да се използва на тестови сървъри, емулиращи проблеми от реалния живот и наблюдаващи поведението на мрежата. С него разработчиците и администраторите могат да наблюдават в контролирана среда какво ще се случи, ако системата се срине или когато кодът се актуализира. В този случай мрежата трябва да бъде конфигурирана и разгърната предварително, както и конфигурирана за събиране на необходимите показатели.

Gremlin е удобен инструмент за архитекти, devops и специалисти по сигурността и универсално решение за тестване на всякакви готови и работещи разпределени системи, включително блокчейн.

Кратък преглед на инструментите за тестване и сравнителен анализ на блокчейн

Hyperledger Caliper е много по-специализирано решение Hyperledger Caliper. В момента Caliper поддържа няколко блокчейна наведнъж - представители на семейството Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), както и Ethereum и мрежата FISCO BCOS.

С помощта на Caliper можете да зададете топологията на блокчейн мрежата и договорите за тестване, както и да опишете конфигурацията на възела. Блокчейн възлите се издигат в докер контейнери на една машина. След това можете да изберете необходимото тестови конфигурации и получавате файл с отчет за резултатите от теста след стартиране. Пълен списък с показатели на Caliper и подход за сравнителен анализ можете да намерите тук Показатели за ефективност на Hyperledger Blockchain, това е страхотна статия, ако се интересувате от темата за сравнителния анализ на блокчейн. Можете също да настроите колекция от метрики в отделен Prometheus/Grafana.

Hyperledger Caliper е инструмент, насочен към разработчици и системни архитекти, тъй като осигурява повторяемост на тестовете и автоматизиране на тестването и бенчмаркинга. Използва се при разработването на ядрото на блокчейните: консенсусни алгоритми, виртуална машина за обработка на интелигентни договори, ниво равноправен към партньор и други системни механизми.

Кратък преглед на инструментите за тестване и сравнителен анализ на блокчейн

MixBytes Tank е инструмент, който се появи в процеса на разработване на алгоритми за консенсус и окончателност за базирани на EOS мрежи и тестване на паравериги, базирани на Parity Substrate (Polkadot). По отношение на функционалността той е близо до Hyperledger Caliper, тъй като ви позволява да събирате важни показатели от възли на всяка разпределена система и клиентски машини, на които се изпълняват тестови скриптове.

MixBytes Tank използва няколко облачни услуги (Digital Ocean, Google Cloud Engine и т.н.), в които може да стартира много възли, да извършва предварителни конфигурационни процедури, да изпълнява няколко бенчмарка паралелно на различни машини, да събира необходимите показатели и автоматично да изключва мрежа.

MixBytes Tank ви позволява да спестите пари от облачни сървъри чрез автоматично минимизиране на ненужните ресурси след тест. Друга отличителна черта е използването на пакета Molecule, който позволява на разработчика да тества локално внедряването на желания блокчейн.

MixBytes Tank ви позволява ранно откриване на тесни места и грешки в алгоритмите, които възникват в реални мрежи с голям брой географски разпределени сървъри и клиенти. Резервоарът ще ви помогне да разберете какво ще се случи на възлите, ако клиентите изпращат транзакции с даден tps при силно повтарящи се условия и с реален брой възли, разпределени на различни континенти, ако е необходимо.

Кратък преглед на инструментите за тестване и сравнителен анализ на блокчейн

Whiteblock Genesis е платформа за тестване на базирани на Ethereum блокчейни. Този инструмент има доста широка функционалност: позволява ви да стартирате мрежа, да създадете необходимия брой акаунти в нея, да увеличите необходимия брой клиенти, да конфигурирате мрежовата топология, да посочите параметрите за честотна лента и загуба на пакети и да изпълните тест.

Whiteblock Genesis предоставя свои собствени съоръжения за тестване. Разработчиците просто трябва да зададат тестови параметри, да ги стартират с помощта на готов API и да получат резултати с помощта на удобно табло за управление.

Whiteblock Genesis ви позволява да конфигурирате доста подробен тест, който платформата ще провежда автоматично за всяка значителна промяна на кода. Това ще ви позволи да уловите грешки на ранен етап и незабавно да оцените въздействието на промените върху важни мрежови параметри, като скорост на транзакция и ресурси, консумирани от възлите.

Мадт

Друг интересен млад продукт за тестване на разпределени системи е луд. Написан е на Python и ви позволява да създадете необходимата мрежова топология и необходимия брой сървъри и клиенти с помощта на прост конфигурационен скрипт (пример). След това услугата разгръща мрежата в няколко Docker контейнера и отваря уеб интерфейс, в който можете да наблюдавате съобщения от сървъри и клиенти на мрежата. Madt може да се използва за тестване на блокчейни - хранилището на проекта има p2p мрежов тест, базиран на протокола Kademlia, при който закъсненията в доставянето на данни до възлите постепенно се увеличават и състоянието на тези данни се проверява.

Madt се появи съвсем наскоро, но предвид много гъвкавата си архитектура може да се развие във функционален продукт.

Други решения

Почти всяко тестване на системната част на блокчейните изисква стартиране на предварителни скриптове, подготовка на акаунти и условия за теста (това може да бъде тестване на консенсусни грешки, които могат да генерират множество разклонения на вериги, тестване на сценарии за хард форк, промяна на системни параметри и т.н.). Всички тези манипулации се извършват по различен начин в различните блокчейни, така че е по-лесно за екипите постепенно да адаптират продуктовото тестване и сравнителния анализ към вътрешния CI/CD и да използват собствените си разработки, които постепенно стават по-сложни с развитието на функционалността на блокчейна.

Въпреки това използването на готови решения може значително да намали времето за тестване на тези екипи, така че смятам, че този софтуер ще се развива активно през следващите години.

Заключение

За да завърша този кратък преглед, ще изброя няколко важни характеристики на инструментите за тестване на блокчейн:

  • Възможността за автоматично разгръщане на блокчейн мрежа при повтарящи се условия. Този фактор е важен при разработването на системни части от блокчейни: консенсусни алгоритми, окончателност, системни интелигентни договори.
  • Цената за притежаване на системата, изразходваните ресурси и удобството за постоянно използване. Този фактор осигурява на проекта висококачествени тестове за малко пари.
  • Гъвкавост и простота на конфигурацията на теста. Този фактор увеличава шансовете за идентифициране на системни проблеми - има по-малък шанс да пропуснете нещо важно.
  • Персонализиране за специфични типове блокчейн. Разработването на решение, базирано на съществуващо, може значително да подобри качеството и да намали разходите за време.
  • Удобство и достъпност на получените резултати и техния вид (отчети, метрики, графики, дневници и др.). Това е абсолютно необходимо, ако искате да проследите историята на развитието на продукта или ако имате нужда от задълбочен анализ на поведението на блокчейн мрежата.

Успех с тестването и нека вашите блокчейни са бързи и устойчиви на грешки!

Източник: www.habr.com

Добавяне на нов коментар