Блог

Обновление основной сети Waves Enterprise

В новой версии появились атомарные транзакции для непрерывного исполнения бизнес-сценариев, улучшен пользовательский опыт и повышена производительность.

Основными источниками требований для версии 1.4 стали обратная связь от клиентов и партнеров в рамках проектов внедрения платформы, а также анализ поведения пользователей в основной сети Waves Enterprise. Возможность быстрого получения обратной связи помогла команде определить приоритетные направления развития платформы на данном этапе и сосредоточиться на них. Всего в ходе разработки новой версии было реализовано более 100 требований.

Нода

В новую версию ноды внесено более 50 изменений. Рассматривать каждое по отдельности не будем, потому что ценим ваше время, остановимся на самых важных.

Атомарные транзакции

Главной особенностью обновления платформы стало внедрение атомарного процесса исполнения транзакций, позволяющего объединять взаимосвязанные и взаимозависимые последовательности операций в группы. Такой подход позволяет объединить несколько транзакций в рамках одного бизнес-процесса в группу и выполнить их как единое целое, либо отменить выполнение всей группы, если одна или несколько транзакций в группе не прошли проверку и по какой-либо причине не выполнились.

Для реализации атомарных транзакций был основательно переработан механизм майнинга микроблоков.

В ближайшее время мы выпустим статью с разбором технических подробностей о реализации атомарных транзакций, но уже сейчас вы можете ознакомиться с технической документацией.

Событийная модель gRPC

Взаимодействие бизнес-приложений с блокчейн-сетью теперь можно реализовать по принципам push-модели, что значительно сократит нагрузку на узлы сети и откроет возможности для увеличения их производительности. Вместо отправления множества pull-запросов и ожидания нужного ответа, приложение можно настроить на ожидание необходимого уведомления от узла сети, которое будет отправлено как только произойдет ожидаемое событие. Переход на событийную модель позволит:

  • упростить интеграцию приложения с блокчейном за счет перехода на обработку входящих событий, вместо отправления регулярных запросов;
  • ускорить взаимодействие приложения и блокчейна, поскольку gRPC — это бинарный протокол с высокой скоростью передачи данных.

Обновленное хранилище данных

В рамках оптимизации платформы мы перевели хранилище данных на узлах блокчейн-сети с LevelDB на RocksDB, которая имеет ряд преимуществ и позволяет повысить производительность и надежность хранилища данных. В релиз входит механизм автоматической миграции, который при первом запуске произведет полную миграцию уже существующих узлов сети с LevelDB на RocksDB. Кроме этого, для хранилища данных теперь применяется вероятностная структура данных «фильтр Блума» (Bloom filter), которая позволяет быстро получать достоверные ответы на запросы об отсутствии каких-либо данных в хранилище, не требующие дополнительной проверки.

Другие обновления

Кроме этого, взаимодействие всех узлов сети между собой теперь может происходить по защищенному протоколу TLS, если есть такая потребность — все пересылаемые данные будут зашифрованы, что еще больше повысит безопасность.

При ручном развертывании узла в основной сети Waves Enterprise и генерации ключей, теперь нужно будет повторно вводить пароль. Таким образом, во время генерации ключевой пары будет сложнее допустить ошибку с паролем.

Клиент

В новую версию клиента команда внесла более 30 изменений различного характера, расскажем о самых важных вкратце.

Пользоваться веб-приложением кошелька стало удобнее и безопаснее благодаря изменению механизма хранения токена аутентификации на httpOnly cookies, что позволит хранить учетную информацию в безопасном хранилище, к которому нельзя получить доступ с помощью вредоносного ПО. На практике это позволит продлить авторизованную сессию пользователей до 24 часов.

Интерфейс веб-приложения и механика взаимодействия с ним тоже изменились в лучшую сторону. Навигацию по транзакциям теперь можно осуществлять с помощью горячих клавиш — стрелок «вверх» и «вниз». В смарт-контрактах появился поиск по ключевым словам, это упростит навигацию по данным в стейте контракта и сделает работу с ними гораздо удобнее.

Мы проанализировали то, как пользователи применяют поиск в обозревателе транзакций и нашли несколько запросов, которые замедляли процесс поиска и давали лишнюю нагрузку на сервис данных. В результате мы пересмотрели набор поисковых подсказок и пересмотрели запросы к дата-сервису. Теперь поиск будет работать быстрее. Если у вас есть пожелания по улучшению и оптимизации работы поиска, пожалуйста, напишите в поддержку — мы будем рады сделать этот интерфейс еще удобнее для пользователей.