ElectoChain
A Decentralised digital Voting System based on Blockchain architecture. (e-Zest Hackathon 2018 Winner)
Install / Use
/learn @thephenom1708/ElectoChainREADME
ElectoChain
A Decentralised digital Voting System based on Blockchain architecture.
Research Paper
A research paper has also been written on this project click here
Technology-Stack:
- Front-End Development: HTML,CSS,Bootstrap,Vanilla JS,Jquery
- Data-Processing and Blockchain Development: Python 3.6.5
- Back-End Development: Django-Python Framework
- Database management: DB SQLite
Voter Authentication :
- The voter authentication is carried out in two steps and it is implemented using Aadhaar API services.
- A voter has to provide his Thumb impression ID and Aadhaar ID to the system which will serve as an input to Aadhaar API.
- Aadhaar API will provide the result as a basic detail of the voter if he/her has been successfully authenticated.
Vote Casting and Blockchain REST API Development:
- Here system will create a unique voter ID for the voter.
- Again the voter will cast a vote for any one of the candidate.
- After vote casting there are six different steps are carried out for which we have designed a special REST API:
- Transaction Verification
- Proof of Work Algorithm
- Block creation and Serialization
- Block Broadcasting and validation
- Consensus Algorithm
- Byzantine Fault Tolerance
Peer to Peer (Distributed) Network Design:
- A peer to peer distributed network on which the blockchain architecture works.
- A Web Socket request API for broadcasting the all the requests into P2P network.
- Handling concurrency by using a mutex lock mechanism.
Database Management:
- A relational DB SQLite is used as a database for the project.
- Many cryptographic and encryption algorithms are used to store the data securely in the database (SHA-256, CSPRNG, salt-hashing, etc).
- Complete normalization is also achieved in different relations of the database.
Admin Section:
- This panel is only reserved for the governing body of an election.
- Every admin is assigned a unique Election Commission ID for authentication.
- Result analysis of election is carried out in this section.
Architectural Control flow of the System
The operational flow of the System
Steps to run the application:
- Clone this repository.
- Change this to working directory.
- Hit command: "docker-compose up --build"
- Go to http://localhost:5000/auth/ in your browser.
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
