以太坊合约的配置(以在私有链上配置投票合约为例)
以太坊合约配置步骤大体如下:
一.安装Mist浏览器(已经集成以太坊钱包)
二.安装配置基于Go语言的geth命令
三.在本地搭建私有链
四.在私有链上完成挖矿工作
五.使用Mist在私有链上配置投票合约
具体步骤如下:
一.安装Mist浏览器(已经集成以太坊钱包)
1登陆https://github.com/ethereum/mist/releases/根据需求下载最新版本的客户端:
下载完成解压压缩文件后找到可运行文件运行安装即可
安装过程中要同步区块数据,下载过程需要耐心等待,成功后会出现如下界面的客户端,这里我们进入的是以太坊的主网络,当然我们此后的实验操作都是在自己搭建的私有链网络中,并非在此。
这里是已经添加好三个账户的界面,初次安装成功不会有账户需要我们去手动添加,我们可以通过Mist中图形交互界面添加也可以在geth命令行中通过命令添加。
在geth命令行中我们可以通过命令 (当然这是你在配置好geth后才能完成的操作)
geth accounts new 来建立新账户
如图则建立新账户成功,新账户地址为
Address: {e64a1c6c5eb3e9638296f2d67d911d1e1b16b863}
在建立新账户时需注意记住账户密码,及时备份,Mist客户端中便提供备份,以太坊账户并没有账户密码找回的功能。
二.安装配置基于Go语言的geth命令
geth是以太坊的官方客户端,它是一个命令行工具,提供很多命令和选项,可以运行以太坊节点、创建和管理账户、发送交易、挖矿、部署智能合约等
- 以太坊开发团队提供了各个系统的编译好的geth可执行文件,最简单的办法便是直接下载安装文件,geth安装文件可以去官方下载网址(https://geth.ethereum.org/downloads/)下载或者去国内镜像网站(https://ethfans.org/wikis/Ethereum-Geth-Mirror)直接下载
下载运行安装文件
按照提示安装即可。
在下载安装后可以在输入查看geth的帮助命令:
此时geth安装成功可以进行下一步工作
三.在本地搭建私有链
在试验和测试时为了更快的进入网络和方便控制,我们大都会选择在私有链上进行这些工作,接下来我们看看如何进行私有链的搭建工作。
1.进入dos命令行
输入:mkdir private-geth
cd private-geth
- 找到刚才创建的private-geth文件并在private-geth中放入创世区块的.jason文件
其中genesis文件内容如下:
- 在dos行初始创世节点,并设置目录:
输入命令:geth --datadir ./data/00 init genesis.jason
4.启动节点
geth --datadir ./data/00 --networkid 15 console
注意在输入networkid时不要使用networkid 1,那是主网的id,而且此处的networkid必须与自己编写的创世区块中的networkid一致!!!
至此私有链已经搭建成功,需要有账户建立就能进行挖矿操作了。
四.在私有链上完成挖矿工作
- 在私有链上建立新的账户
此时输入如下命令查看私有链账户时
eth.accounts
表明还私有链上还没有账户,需要我们创建,输入如下命令:
personal.newAccount("123456789")
此时创建成功,引号中输入的123456789是我们的账户密码,当然,我们也可以通过Mist客户端来创建。
在我们的本地文件中也可以找到创建的用户账号文件,路径如下:
C:\Users\J\private-geth\data\00\keystore
此时打开Mist客户端会自动连接到我们刚才创建的私有链,并看到相关信息:
- 现在便可以开始进行挖矿操作了
在命令行输入 miner.start()
此时需要耐心等待(约有5分钟左右)开始开始挖矿工作
在mist客户端左下角位置也能看到一把铲子标识,表明开始挖矿。
停止挖矿工作需输入如下命令:
miner.stop()
可以在geth命令行中查看刚才挖到的以太币,应用命令如下:
Eth.getBalance(eth.accounts[0])
五.使用Mist在私有链上配置投票合约
- 打开已经安装好的Mist浏览器
- 进入合约界面
- 点击建立新的合约
输入solidity合约代码.Mist自带编译功能,编译通过后选择要部署的合约即可。
注意你所输入代码第一行的版本号必须与你下载的版本号一致,否则编译将无法通过!
选择合约后部署。输入密码后便可成功,注意交易时需要一个较大的gas值,并在部署合约的过程中保持挖矿操作的进行!
运行合约需要有其他的账户,此时我们需要多创建几个账户并由主账户存入以太币。
运行投票合约需要给其他账户授权(给第二个账户授权为例)
授权后账户便可进行投票
---恢复内容结束---