以太坊(三):从零开始搭建智能合约开发环境
Homebrew 安装
Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。
Mac下安装命令如下:其他平台参考:Homebrew官方安装指引
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
geth安装
brew tap ethereum/ethereum
brew install ethereum
启动geth
geth --datadir testNet --dev console 2>>test.log
执行命名后,会进入geth控制台,这时光标停在一个向右的箭头处,像这样:
为了更好的理解,建议新开一个命令行终端,实时显示日志:
tail -f test.log
查看账户
先查看默认账户信息。
> eth.accounts
里面有一个默认账户。
查看账户余额:
> eth.getBalance(eth.accounts[0])
开发者账号里默认有很多余额,如果用这个账号部署智能合约无法看到余额变化,为了更好的体验完整的过程,这里选择创建一个新的账户
新建账户
创建新账户、查看账户并查看余额
> personal.newAccount("Emilia")
> eth.accounts
> eth.getBalance(eth.accounts[1])
转账
发布智能合约账户需要有余额,所以我们将默认账户的1个以太币转账给新建的账户。
eth.sendTransaction({from: '0x5efc414b966be00fd4bca8f918c57821e325e9e0', to: '0x9066debde6583e1b0306f53b4769d8b162449dcc', value: web3.toWei(1, "ether")})
我转了两次,一次转了1给以太币,一次转了5个
默认账户上的余额转出去5个币看不出变化,转了两次帐,看到已经有2个区块生成了
我执行挖矿后,miner.start(),返回null
并且日志中显示:Block sealing failed err="waiting for transactions"
这是新版本的原因。在开发模式(dev)下,节点只在有交易的情况下才开采。做一个交易,节点将挖掘它。所以这里才会出现这个 warning 。
账户解锁
创建智能合约需要解锁账户。
personal.unlockAccount(eth.accounts[1],"Emilia");
解锁后就准备编写智能合约了。