All Projects → descampsk → Wavevote

descampsk / Wavevote

Licence: mit
Voting system based on Ethereum

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Wavevote

Dapp
Censorship resistant democracies.
Stars: ✭ 1,326 (+5927.27%)
Mutual labels:  blockchain, ethereum, vote
Awesome Blockchain
区块链白皮书、书籍、交易所、币种、自媒体等资源汇总 💯
Stars: ✭ 747 (+3295.45%)
Mutual labels:  blockchain, ethereum
Graph Node
Graph Node indexes data from blockchains such as Ethereum and serves it over GraphQL
Stars: ✭ 884 (+3918.18%)
Mutual labels:  blockchain, ethereum
Ethereum Development With Go Book
📖 A little book on Ethereum Development with Go (golang)
Stars: ✭ 754 (+3327.27%)
Mutual labels:  blockchain, ethereum
Emerald Vault Archive
ARCHIVE. CODE MOVED TO:
Stars: ✭ 18 (-18.18%)
Mutual labels:  blockchain, ethereum
Client
(Aragon 1) Create and manage decentralized organizations on Ethereum.
Stars: ✭ 733 (+3231.82%)
Mutual labels:  blockchain, ethereum
Ssvm
SSVM is a high performance, extensible, and hardware optimized WebAssembly Virtual Machine for cloud, AI, and blockchain applications.
Stars: ✭ 751 (+3313.64%)
Mutual labels:  blockchain, ethereum
Wallet Core
Cross-platform, cross-blockchain wallet library.
Stars: ✭ 657 (+2886.36%)
Mutual labels:  blockchain, ethereum
Typechain
🔌 TypeScript bindings for Ethereum smart contracts
Stars: ✭ 769 (+3395.45%)
Mutual labels:  blockchain, ethereum
Parity Ethereum
The fast, light, and robust client for Ethereum-like networks.
Stars: ✭ 6,499 (+29440.91%)
Mutual labels:  blockchain, ethereum
Awesome Decentralized Finance
A curated list of awesome decentralized finance projects
Stars: ✭ 793 (+3504.55%)
Mutual labels:  blockchain, ethereum
Rotki
A portfolio tracking, analytics, accounting and tax reporting application that protects your privacy
Stars: ✭ 689 (+3031.82%)
Mutual labels:  blockchain, ethereum
Ethermint Archive
Ethereum on Tendermint using Cosmos-SDK!
Stars: ✭ 667 (+2931.82%)
Mutual labels:  blockchain, ethereum
Hardhat
Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software. Get Solidity stack traces & console.log.
Stars: ✭ 727 (+3204.55%)
Mutual labels:  blockchain, ethereum
Blockchain guide
Introduce blockchain related technologies, from theory to practice with bitcoin, ethereum and hyperledger.
Stars: ✭ 5,897 (+26704.55%)
Mutual labels:  blockchain, ethereum
Blockchain
Compilation of useful documents and scientific papers about Blockchain & cryptocurrencies.
Stars: ✭ 751 (+3313.64%)
Mutual labels:  blockchain, ethereum
Blockchain
블록체인 공부 중입니다.
Stars: ✭ 22 (+0%)
Mutual labels:  blockchain, ethereum
Token Core Android
a blockchain private key management library on android
Stars: ✭ 613 (+2686.36%)
Mutual labels:  blockchain, ethereum
Intellij Solidity
Solidity plugin for IntelliJ
Stars: ✭ 646 (+2836.36%)
Mutual labels:  blockchain, ethereum
Awesome Cryptoeconomics
An awesome curated list of Cryptoeconomic research and learning materials
Stars: ✭ 763 (+3368.18%)
Mutual labels:  blockchain, ethereum

WaveVote

WaveVote is a voting system based on Ethereum. It is inspired and is based on the work of https://github.com/stonecoldpat/
You can find his work here : https://github.com/stonecoldpat/anonymousvoting.
Thanks for his amazing job.

Based of this work, WaveVote :

  • Removed the limit of 40 voters
  • Removed the obligation of all voters to vote => secret is now corrupted by the administrator
  • Add a distributed administration => keep all secret safe until all administrators are corrupted. If one administrator is safe, then all secrets are safe (NOT IMPLEMENTED YET)
  • Add the possibility to organize a multi-candidates election
  • Cryptography is now hidden in the client
  • Use Electron to create a user friendly application
  • Many others things ...

I want directly test the WaveVote Client ! (Might be working !)

It's possible.
To achieve this, you have to download VirtualBox here : https://www.virtualbox.org/wiki/Downloads
Then, you need to download a Virtual Box LUbuntu image, which contains the client and a local private Ethereum Blockchain which mines automatically. You will find the image here : https://mega.nz/#!050DBCyY!VL3jBwU9wgMMj6SwIRxtDs-rcej3szHxs-rHHP5WcSA
Last thing, import the image into VirtualBox and let's have fun ! The administrator's password is : Vote and the password of all Ethereum's accounts are password.

How to install the WaveVote client ?

1 - git clone <location> https://github.com/descampsk/wavevote/
2 - cd \<location\>/WaveVote_Electron
3 - npm install --unsafe-perm
4 - npm start

Prerequisites

NodeJs

Download and install NodeJs here : https://nodejs.org/en/
The project has been tested with this versions :

  • Node : 8.9.3 & npm : 5.5.1

Public Blockchain

At the moment, this project is neither on the testnet nor on the mainnet.

Private Blockchain

A Geth client is included in the application. It will automatically create the genesis block (the genesis file can be changed) and connect to the Blockchain on the networkid 9876. You can change the networkid in the file config.json.
WARNING: the intern geth client work only under Windows. If you want to use the application under Linux or Mac, you have to use an external geth client.

{"networkid":458,...}

By default, the client will not mine new blocks and will act as a relay. However, you can change the "mine" value to true in the config file, so that the client will mine with a single thread.

{"mine":true, "minethreads":2, ...}

It's possible to set the client as a light node. In this case, the client mandatory act as a relay. To set this, change the value "lightNode" to true in the config file.

{"lightNode": true, ...}

It's possible to use an other geth client. To do this, change in the config file, the value "externGeth" to true and the value "addrProvider" to "IP:8545". For example :

{"externGeth": true, "addrProvider": localhost:8545, ...}

How to install the Smart Contract ?

1 - Install Ethereum-Wallet/Mist : https://github.com/ethereum/mist/releases/tag/v0.8.10
Warning : the version must be 0.8.10 or you won't be able to compile the contract.
2 - Compile and upload the 3 contracts : WaveVote.sol, LocalCrypto.sol and WaveVoteContractRegistry.sol.
3 - Edit the config file and change the param "WaveVoteContractRegistryAddress" to the new address of the contract WaveVoteContractRegistry.

{"WaveVoteContractRegistryAddress":"0xe73B1eBf7190A66e2b07F39A8cF9A117Db4d2740", ...}

4 - Send two transactions to the Contract WaveVoteContractRegistry to set the abi and the address of the contracts WaveVote and LocalCrypto.
5 - You can now use the client.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].