![](https://img.haomeiwen.com/i5779748/33398daff1e553b5.jpg)
在前一篇我们了解了学习以太坊的重要性,以及开发以太坊必须掌握的基础知识,这一篇我们通过开发一个简单的智能合同,循序渐进地掌握其开发流程。
学习目标:
1、以太坊开发环境搭建
2、准备账户
3、用Solidity开发一个智能合同
4、编译合同代码
5、部署运行合同代码
以太坊开发环境搭建
1、Solidity编译器,因为选择用Solidity语言来开发智能合同,官方提供了基于web的编译器Browser-Solidity,所以不需要进行单独的安装和配置。如果自己有兴趣安装独立的编译器,可参考官方教程。
2、安装以太坊客户端——geth(官方还提供了以太坊钱包),为了体验以太坊开发的每一个流程的细节,我们选择命令行客户端,以Mac为例,执行以下命令——
brew tap ethereum/ethereum
brew install ethereum
其它平台类似(windows、linux),可参考官方教程。
3、用geth启动客户端
在Mac下打开命令行终端,执行以下命令
geth --datadir testDir --dev console 2>>mytest.log
![](https://img.haomeiwen.com/i5779748/25f2c7def04fc41d.png)
出现上图运行结果,代表启动成功。
命令参数说明:
--dev 启用开发者网络(模式),在此模式下,默认预分配一个开发者账户并且会自动开启挖矿。
--datadir 后面的参数是区块数据及秘钥存放目录,这里指定目录名为 testDir。执行命令后,当前目录下新建一个testDir目录来存放数据。
console 表示进入控制台
2>> mytest.log 表示把控制台日志输出到mytest.log文件
如果想看到实时的运行日志,可以新开一个命令行终端,然后执行以下命令
tail -f mytest.log
准备账户
为了能够部署智能合同代码,需要一个外部账户(合约账户只能运行不能部署合同代码),在命令行控制台执行以下命令
查看账户
eth.accounts
![](https://img.haomeiwen.com/i5779748/f771eb8bb93d03e0.png)
查看账户余额
eth.getBalance(eth.accounts[0])
![](https://img.haomeiwen.com/i5779748/73d94767510b8ce7.png)
创建新账户
personal.newAccount("mima123")
![](https://img.haomeiwen.com/i5779748/bdb8ac8aaf2031bb.png)
再次查看账户列表,多出一个新账户,新账户的密码为mima123
![](https://img.haomeiwen.com/i5779748/4a6b48e30fe4f34e.png)
查看新账户余额
eth.getBalance(eth.accounts[1])
![](https://img.haomeiwen.com/i5779748/c26a4aa0481cee6c.png)
账户转账
eth.sendTransaction({from: '0xff141bf97172f1b34882bc2a618ee94d08a85cf7', to: '0x2a054aa5137e7e05d68f7b3783f3b422542637e4', value: web3.toWei(1000, "ether")})
![](https://img.haomeiwen.com/i5779748/9effc1eb0efb67aa.png)
解锁账户
personal.unlockAccount(eth.accounts[1],"mima123")
![](https://img.haomeiwen.com/i5779748/26bbbffc20a9e746.png)
用Solidity开发一个智能合同
使用文本编辑器或IDE,编写如下代码
![](https://img.haomeiwen.com/i5779748/0b685563fd2e5471.png)
编译智能合同代码
打开在线编译器Browser-Solidity,选择新建
![](https://img.haomeiwen.com/i5779748/992c0c960e6ab47f.png)
复制粘贴编写好的合同代码,点击右边的Detatils按钮,进行编译
![](https://img.haomeiwen.com/i5779748/8f5a7eb61fdee62d.png)
复制编译成功的字节码到文本编辑器,进行必要的修改
![](https://img.haomeiwen.com/i5779748/58cfc1c15abc4bb4.png)
为了学习演示,进行以下四处修改
1-修改变量名称为Hello BlockChain
2-修改智能合同名称helloContract改为helloContract1
3-对外调用的回调函数名称hello改为hello1
4-修改部署账户,这里我们用新创建的账户来部署合同,所以索引改为1
![](https://img.haomeiwen.com/i5779748/752f38d053068736.png)
部署运行合同代码
在部署运行合约之前,先查看一下账户余额
![](https://img.haomeiwen.com/i5779748/dedc707f77e98afa.png)
将修改后的代码,复制到geth控制台,回车执行,出现如下图中结果代表部署成功
![](https://img.haomeiwen.com/i5779748/6c5555121ae53bd3.png)
再次查看账户余额
![](https://img.haomeiwen.com/i5779748/18ddcfd8d5a939f0.png)
运行一下合约
![](https://img.haomeiwen.com/i5779748/a254be408d2139ef.png)
大功告成,第一个智能合同开发、部署、运行成功了。
网友评论