Skip to content

A Decentralized Ethereum Voting Application Tutorial -- With React

License

Notifications You must be signed in to change notification settings

ArchLinuxStudio/blockchain-election-react

Repository files navigation

blockchain-election-react

A election sample write with react and truffle. Basic version please check https://github.com/ArchLinuxStudio/blockchain-election-sample

Dependencies

NPM: https://nodejs.org
Truffle: https://github.com/trufflesuite/truffle
Ganache: http://truffleframework.com/ganache/
Metamask: https://metamask.io/

Run

yarn install
yarn migrate
yarn start

IPFS

ipfs add -r dist/
ipfs name publish YOUR_HASH

Deploy to rinkeby test network

  1. Run geth node
geth --rinkeby --http --http.api personal,eth,net,web3 --allow-insecure-unlock

This can take dozens of hours, depending on your machine configuration and internet speed.
This will cost you close to 100GB or so of hard drive space.

  1. Create a new account
geth --rinkeby account new
  1. Attach into geth console
geth --rinkeby attach

And you can do many things in geth console

eth.syncing     #check the syncing status
eth.accounts    #check all accounts
eth.getBalance(eth.accounts[0]) #check account balance
personal.unlockAccount(eth.accounts[0],null,1200)   #unlock a certain accont for 20 minutes
  1. Acquire eth from https://www.rinkeby.io/#faucet

Here they require that you have to post a twitter or facebook, which is disgusting.

  1. Migrate
truffle migrate --reset --compile-all --network rinkeby
  1. Verify deployment
geth --rinkeby attach
var contractAddress = "Your_Contract_Address"
var contractAbi = [Your_ABI_Array] #copy the abi array in build/contracts/Election.json, turn it into one line style
var electionContract = web3.eth.contract(contractAbi)
var electionInstance = electionContract.at(contractAddress)
electionInstance.candidates(1)
electionInstance.vote(1, {from: eth.accounts[0]});

About

A Decentralized Ethereum Voting Application Tutorial -- With React

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published