Архитектура системы

Ядром системы Waves Enterprise Voting является блокчейн-платформа Waves Enterprise. Блокчейн-сеть представлена несколькими нодами, развернутыми заинтересованными участниками системы, либо в сети Waves Enterprise Mainnet. Помимо распределенного реестра в системе существуют дополнительные сервисы, обеспечивающие шифрование, хранение данных и интеграцию. Сервисы размещаются на распределенных серверах системы.

Архитектура системы Waves Enterprise Voting

Архитектура системы Waves Enterprise Voting

Server (Сервер) - основной узел системы, содержащий следующие сервисы:

  • Node (Нода) - узел блокчейн сети, обрабатывающий транзакции, формирующий блоки и реализующий алгоритм консенсуса;

  • DecryptService - криптографический сервис, участвующий в процессе распределенной генерации главного ключа и производящий частичную расшифровку результатов голосования;

  • CryptoProvider - библиотека, реализующая все криптографические примитивы в системе;

  • Backend + Database - серверная часть бизнес-приложения, которая:

    • обрабатывает запросы клиентской части;

    • взаимодействует с блокчейном;

    • хранит конфиденциальные данные, касающиеся голосования;

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

Подсказка

Главный ключ - это ключ, открытой частью которого шифруются заполненные бюллетени, а закрытой частью расшифровываются результаты голосования.

MasterServer - узел системы, включающий в себя следующие сервисы:

  • все сервисы узла Server;

  • MainService - сервис, осуществляющий мониторинг системы в целом, в том числе:

    • создание новых голосований;

    • доступность DecryptServices;

    • необходимость сформировать главный ключ (MainPublicKey);

    • необходимость опубликовать результаты голосования.

Client - клиентская часть системы в виде мобильного или web-приложения, включающая:

  • ClientApp - бизнес-приложение;

  • EncryptService - сервис, выполняющий шифрование заполненного бюллетеня на публичной части главного ключа;

  • CryptoProvider - библиотека, реализующая все криптографические примитивы в системе.