Skip to content

A guide to the [[vote]] contract

Prerequisites

This documentation has been intended for readers with a basic understanding on the Solidity smart contract programming language and on basic web developing tools. In order to run, the demo requires the following software to be installed. For verified functionality, the specified versions are recommended:

Ubuntu 18.04.0 LTS

Node.js, version 8.9.0

Ganache

MetaMask

Running an [[Ethereum]] client

Install dependencies

Before the first run, dependencies need to be installed for the test scripts and the status viewer.

cd scripts/
npm install

Vote Contract

There is no doubt that the revolutionary concept of the blockchain, which is the underlying technology behind the famous cryptocurrency Bitcoin and its successors, is triggering the start of a new era in the Internet and the online services. While most people focus only at cryptocurrencies; in fact, many administrative operations, fintech procedures, and everyday services that can only be done offline and/or in person, can now safely be moved to the Internet as online services. What makes it a powerful tool for digitalizing everyday services is the introduction of smart contracts, as in the Ethereum platform. Smart contracts are meaningful pieces of codes, to be integrated in the blockchain and executed as scheduled in every step of blockchain updates. E-voting on the other hand, is another trending, yet critical, topic related to the online services. The blockchain with the smart contracts, emerges as a good candidate to use in developments of safer, cheaper, more secure, more transparent, and easier-to-use e-voting systems. Ethereum and its network is one of the most suitable ones, due to its consistency, widespread use, and provision of smart contracts logic. An e-voting system must be secure, as it should not allow duplicated votes and be fully transparent, while protecting the privacy of the attendees. In this work, we have implemented and tested a sample e-voting application as a smart contract for the Ethereum network using the Ethereum wallets and the Solidity language.

In the following example, demonstrated a voting app on ethereum network which per-account will be have a franchise.

Features

  • Transparency
  • Distributed
  • Private Test Network
  • Integrate to the Metamask

Ganache Commands

npm run ganache ganache-cli --accounts

Sourcecode

Armanriazi-Github-Vote-Sample Project

[[Ethereum_Ecosystem_Research]]

[[smart-contract]]