Skip to content

NetworkPoll is Ethereum network based E2E secure voting system using IPFS and Blockchain to maintain voter confidentiality.

License

Notifications You must be signed in to change notification settings

siddhantprateek/networkpoll

Repository files navigation

NetworkPoll

Networkpoll is a decentralised, blockchain-based, end-to-end secure, anonymous, anti-quantum, and tamper-resistant electronic voting system. To protect itself against quantum attacks, our application employs quantum cryptography. For automating the execution, our programme makes use of Solidity smart contracts as well as several additional libraries. Through the Polygon network, which utilizes a modified proof-of-stake consensus process, our application contracts are distributed. We offer a number of security features that make it difficult for a third party to access the voting data.

1_labeledARCHITECTURE

Tech Stack

Grafana Prometheus Docker React React Native JavaScript Solidity Ethereum Python Express.js CircleCI GitHub Actions

Project File Description

Files/Folders (Path) Description
assets Consist public assets and architecture diagrams
build Consist Contracts ABIs for interactions with smart contract.
client Folder consists React framework to build client voting window.
contract It consists of Solidity smart contract
migrations Contains Deployment Scripts
mobile Voter/Client-side Mobile device
src Application encryptions using Flask framework - python based framework
test Contract Testing folder
truffle-config.js Truffle configuration file
src/modules Contains Encryption algorithms
client/src React Source Code
client/src/components React Components
mobile/components React Native Components

Application Setup

Setting up Python-dev environment

  • Install Python3 and above python.org

  •   cd services
      mkdir <service-name>
      python -m venv .venv
      source .venv/Scripts/activate

Setting up Nodejs-dev environment

  • Install NodeJs

  •   cd services
      mkdir <service-name>; cd <service-name>
      npm init -y

Project Report

  • ✅ Connected to Layer 2 Blockchain Network (Polygon)
  • ✅ Elliptical Curve Deffie-Hellman Key Generation Integration
  • ✅ Quantum Key Generation Algorithm Integration
  • ❌ Create Mobile Client
  • ❌ Web Browser based client
  • ✅ Contract deployed over polygon Network
  • ✅ Contract Tested over network
  • ✅ Test Mutliple transactions processing for Smart Contract
  • ✅ Python server response rate analytics
  • ✅ NodeJs server response rate analytics
  • ✅ Interaction with Smart Contract
  • ✅ Integration IPFS and Blockchain storage (OrbitDB)

Endpoints

Endpoint Description
/ Description
/keys Description
docker-compose up -d prometheus
docker-compose up -d grafana
docker-compose up -d grafana-dashboards