Architecture¶
The WE.Vote system is based on the Waves Enterprise blockchain platform and consists of several servers deployed in a blockchain network.
The system can be deployed in two variatns:
in the form of several servers on the Waves Enterprise Mainnet;
in the form of a private blockchain network consisting of the organization’s servers.

WE.Vote architecture¶
Basic components of the system:
Server - a system node consisting of the following elements:
Node - a blockchain network node that processes transactions, forms blocks and implements the consensus algorithm.
Cryptographic service - a service that participates in the process of distributed main key generation and produces partial decryption of voting results.
Master server - the main node of the system, which, in addition to the functions of the server, carries out the functioning of the system as a whole:
creation of new polls;
access monitoring of cryptographic services;
formation of the voting main public key;
publishing voting results.
Online voting smart contract is a blockchain application that performs the following functions:
storage of voting rules and lists of participants;
registration of public data obtained during distributed key generation;
verification and storage of sent votes and voting results.
Backend - the server side of the system, which:
handles client requests;
interacts with the master server;
keeps confidential data related to voting.
Client - the client part of the system, consisting of the following components:
Client application - a web application that provides user interaction with the service.
Encryption service - a service that encrypts the filled-in ballot on the public part of the master key.