Author : Htet Aung Hlaing (Victor)
- Vote Database that stores Vote ID (which will be returned to the user as mentioned in No.3), Vote (which candidate was it (Joe Biden or Donald Trump)), Digital Signature.
- Vote Blockchain with Maschain with Audit Service enabled that will store the ID and the Hash of a particular vote entry from Vote Database
- Voting Service API that allows the IoT Machine to vote. When a vote is received, the verification process starts by using a similar way as No.5 in the Context section. (Comparing every public key with the digital signature). If the vote is valid as signed and proved by the digital signature and exposed public keys, the entry is added to the Voting Database. The hash of this particular entry is also added onto Vote Blockchain.
- Using the
data-setup.py
, the database system is setup - the database has a transaction hash which can be related with the audit record on the blockchain for later purposes
voting-service-api.py
exposes three apis to the public- History (allows anybody to see the history with blockchain hashes)
- Results (allows anybody to view the latest result)
- Vote (allows the user to vote for a particular candidate)
To set things up easily, I have quickly created a Makefile.
make install
Install the necessary python packagesmake setup
clean the database and set up a new databasemake
install the packages starts the api server