Сегодня на блокчейн-рынке не существует единого стандарта тестирования производительности блокчейн-систем. Поэтому, вендоры формируют замеры скорости, количества обработанных транзакций и других метрик, в разных условиях, в том числе «лабораторных», не привязанных к реальным бизнес-ситуациям. В результате наблюдается значительная разница в показателях, а пользователям технологии сложно их сравнивать и получать объективную картину. Waves Enterprise предложили методологию тестирования, в которой имитируются реальные условия эксплуатации блокчейна и учитываются многие факторы, которые не берут во внимание другие производители. Компания рассматривает вариант создания бенчмарка для индустрии после получения обратной связи по методологии.
«Для получения достоверных рабочих результатов, которые бы воспроизводились у реального заказчика, необходимо правильно нагружать системы. Часто в тестах других компаний показывают срезы на кратковременных промежутках в момент пиковых нагрузок, либо работу в идеальных условиях, с идеальными настройками сети, на „широких“ каналах связи и мощном оборудовании с использованием самых „легких“ транзакций без логики и данных. В нашем тестировании мы используем полноценную блокчейн-сеть, максимально приближенную к реальным кейсам внедрения, запаса прочности которой хватает для обработки поданной по разным сценариям нагрузки, и, собственно, сами сценарии, отражающие наиболее распространенные типы блокчейн-решений», — подчеркнул директор по продукту Waves Enterprise Артем Калихов.
Тестирование проходило по трем реальным сценария работы платформы: платежное решение, передача и хранение данных и автоматизация бизнес-процесса. Для того, чтобы добиться объективных результатов был разработан стенд нагрузочного тестирования, аналогичный стендам заказчиков.
Ноды блокчейн-сети были развернуты в docker-контейнерах под управлением оркестратора Kubernetes. Лимит ресурсов на контейнер с нодой составлял 4 CPU и 16GB RAM, а нагрузка подавалась напрямую на TCP-порты ноды.
При тестировании платформы использовался алгоритм консенсуса Proof of Authority (PoA). Для каждого из сценариев транзакций были выбраны свои длительность раунда и размер блока.
Для имитации работы платежного решения нагрузка подавалась пакетами по 2500 транзакций на каждый узел сети таким образом, чтобы держать пул неподтвержденных транзакций на каждом узле не пустым. Размер каждой транзакции составлял около 600 байт.
Для имитации хранения транзакции записи данных размером 50 Кбайт отправлялись пакетами по 100 единиц, что показывало количество обрабатываемых данных.
Размер транзакции вызова смарт-контракта для имитации автоматизированных бизнес-процессов составил: 0,1 Кбайт, 10 Кбайт, 50 Кбайт и 100 Кбайт.
Длительность проведения нагрузочного тестирования для каждого сценария составила 8 часов.
Тестирование подтвердило стабильную работу сети под нагрузкой при всех сценариях и подтвердили заданные целевые показатели производительности. Подтверждены показатели: 1000 транзакций перевода в секунду, 16 Мбит данных в секунду, 100 вызовов смарт-контрактов в секунду. Эти результаты находятся на уровне лидеров современного рынка корпоративных блокчейн-платформ, а главное, отвечают задачам бизнеса и демонстрируют, что есть реальный потенциал для наращивания мощностей. Вместе с этим, сравнивать аналогичные показатели различных производителей некорректно, так как сегодня отсутствует единая методология замера.
«Развитие смарт-контрактов является одной из приоритетных задач для команды Waves Enterprise, а скорость их работы увеличивается с каждым релизом. В настоящий момент на этапе R&D и прототипирования находятся несколько решений, которые позволят кратно увеличить пропускную способность сети в этом сценарии», — отметил директор по продукту Waves Enterprise Артем Калихов.