Архитектура системы¶
Система WE.Vote основан на блокчейн-платформе Waves Enterprise и представляет собой несколько серверов, развернутых в блокчейн-сети.
Система может быть развернута двумя способами:
в виде нескольких серверов в сети Waves Enterprise Mainnet;
в виде частной блокчейн-сети, состоящей из серверов организации.
Основные компоненты системы:
Сервер - узел системы, состоящий из следующих элементов:
Нода - узел блокчейн-сети, обрабатывающий транзакции, формирующий блоки и реализующий алгоритм консенсуса.
Криптографический сервис - сервис, участвующий в процессе распределенной генерации главного ключа и производящий частичную расшифровку результатов голосования.
Мастер-сервер - главный узел системы, который, помимо функций сервера, осуществляет функционирование системы в целом:
создание новых голосований;
мониторинг доступности криптографических сервисов;
формирование главного публичного ключа голосования;
необходимость опубликовать результаты голосования.
Смарт-контракт онлайн-голосования - блокчейн-приложение, выполняющее следующие функции:
хранение правил голосования и списков участников;
регистрация публичных данных, полученных при распределенной генерации ключа;
проверка и хранение отправленных голосов и результатов голосования.
Бэкэнд - серверная часть системы, которая:
обрабатывает запросы клиентской части;
взаимодействует с мастер-сервером;
хранит конфиденциальные данные, касающиеся голосования.
Клиент - клиентская часть системы, состоящая из следующих компонентов:
Клиентское приложение - веб-приложение, обеспечивающее взаимодействие пользователя с сервисом.
Сервис шифрования - сервис, выполняющий шифрование заполненного бюллетеня на публичной части главного ключа.