/truffle-Voting

ethereum voting

Primary LanguageJavaScript

投票系统

开发环境

Ubuntu 16.10
web3 0.2.x
ganache
metamask
truffle4.0.5
webstorm

写在前面

使用truffle框架开发一个投票系统 原生web3js开发可以先看下之前写的 https://github.com/jsphLim/VotingSystem

项目结构

src/ - 你的应用文件运行的默认目录。这里面包括推荐的javascript文件和css样式文件目录.
contract/ - Truffle默认的合约文件存放地址。
migrations/ - 存放发布脚本文件
test/ - 用来测试应用和合约的测试文件
truffle.js - Truffle的配置文件

环境搭建

项目环境搭建可以参考文档:http://truffle.tryblockchain.org/

1.创建项目目录

mkdir truffle-Voting && cd truffle-Voting

2.先下载truffle

(前提是安装nodejs和npm 如果你不知道如何安装 请先看https://github.com/jsphLim/VotingSystem)

npm install -g truffle

3.初始化truffle

truffle init

配置truffle.js

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  // for more about customizing your Truffle configuration!
  networks: {
    development: {
      host: "127.0.0.1", 
      port: 7545,
      network_id: "*" // Match any network id
    }
  }
};

4.部署合约

放入自己的合约到contracts目录下,切记不要删除./contract/Migrations.sol合约,它是Truffle用来帮助部署的。
接着,在migrations目录中创建一个2_deploy_contract.js,加入以下内容:

var Voting = artifacts.require("Voting");
module.exports = function(deployer) {
  deployer.deploy(Voting); //配置合约的发布
};

配置完成后,在控制台输入以下命令来编译合约

truffle compile

合约编译成功后会在build/contracts中生成一个json文件。
接着输入以下指令来部署合约

truffle migrate

部署成功的话你会在控制台看到合约的地址。(每次修改合约或者重启都需要重新编译部署)

5.ethereum客户端安装,这里我们使用ganache 安装地址:http://truffleframework.com/ganache/

安装完成后启动客户端,可看到如下界面:
Image text

6.安装metamask

metamask是一个浏览器的插件 安装地址: https://metamask.io/
Image text

接着点左上角,cunstom RPC

Image text
接着,从ganache客户端中复制第一个地址的privateKey
回到metamask右上角Import Account
Image text
基本就配置完毕

运行结果

以上配置完毕后,保持ganache和metamask是启动状态,在控制台输入以下指令启动项目

npm run dev

在浏览器的控制台可以观察项目的一些相关输出用于debug,在网页输入投票人姓名并提交,不出意外的话metamask会自动弹出来让你确认交易,点击submit即可
在ganache中可以看到交易发送的过程。
接下来就是编写js了,这个通过以下文档自学即可:
http://truffleframework.com/docs/