Как устроена платформа

Архитектура

Устройство платформы

Платформа Waves Enterprise построена на базе технологии распределенного реестра и представляет собой фрактальную сеть, состоящую из двух элементов:

  • мастер-блокчейна (Waves Enterprise Mainnet), который обеспечивает работу сети в целом и выступает в качестве глобального арбитра как для опорной сети, так и для множества пользовательских;

  • отдельных сайдчейнов, создаваемых для решения конкретных бизнес-задач.

Взаимодействие между мастер-блокчейном и сайдчейнами обеспечивается при помощи механизма анкоринга сетей, который помещает криптографические доказательства транзакций в основную блокчейн-сеть. Механизм анкоринга позволяет свободно конфигурировать сайдчейны и использовать любой алгоритм консенсуса без потери связи с мастер-блокчейном. Например, мастер-блокчейн Waves Enterprise базируется на алгоритме консенсуса Proof-of-Stake, так как поддерживается независимыми участниками. В то же время корпоративные сайдчейны, в которых нет необходимости стимуляции майнеров за счёт комиссий за транзакции, могут использовать алгоритмы Proof-of-Authority или Crash Fault Tolerance.

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

Схематичное изображение архитектуры платформы:

Общая архитектура платформы

Устройство ноды и дополнительных сервисов

Каждая нода блокчейна – это самостоятельный участник сети, имеющий ПО для работы в ней. Нода состоит из следующих компонентов:

  • Сервисы консенсуса и криптографические библиотеки (Consensus and cryptolibraries) – компоненты, отвечающие за механизм достижения согласия между узлами, а также за криптографические алгоритмы.

  • API-интерфейсы ноды (Node API) – интерфейсы gRPC и REST API ноды, позволяющие получать данные из блокчейна, подписывать и отправлять транзакции, отправлять конфиденциальные данные, создавать и выполнять смарт-контракты и др.

  • Пул неподтвержденных транзакций (Unconfirmed transaction pool, UTX pool) – компонент, обеспечивающий хранение неподтвержденных транзакций до момента их проверки и отправки в блокчейн.

  • Майнер (Miner) – компонент, отвечающий за формирование блоков транзакций для записи в блокчейн, а также за взаимодействие со смарт-контрактами.

  • Хранилище ключей (Key store) – хранилище ключевых пар ноды и пользователей. Все ключи защищены паролем.

  • Сетевой слой (Network layer) – слой логики, обеспечивающий взаимодействие нод на прикладном уровне по сетевому протоколу поверх TCP.

  • Хранилище ноды (Node storage) – компонент системы на базе RockDB, обеспечивающий хранение пар ключ-значение для полного набора проверенных и подтверждённых транзакций и блоков, а также текущего состояния блокчейна.

  • Логика валидации (Validation logic) – слой логики, содержащий такие правила проверки транзакций, как базовая проверка подписи и расширенная проверка по сценарию.

  • Конфигурация (Config) – конфигурационные параметры ноды, задаваемые в файле node-name.conf.

Для каждой ноды предусмотрен набор дополнительных сервисов:

  • Сервис авторизации – сервис обеспечения авторизации для всех компонентов.

  • Дата-краулер – сервис извлечения данных с ноды и загрузки извлечённых данных в дата-сервис.

  • Генератор – сервис генерации ключевых пар для новых аккаунтов и создания api-key-hash.

  • Сервис мониторинга – внешний сервис мониторинга, использующий базу данных InfluxDB для хранения временных рядов с данными и метриками приложения.

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

Схематичное изображение устройства отдельной ноды и дополнительных сервисов:

Общая архитектура платформы