这里使用测试网络完成智能合约的搭建和测试
按照上一章节的内容,已经部署了以太坊的私有链,并且创建了两个账户,现在我们看下钱包界面:
1、PRIVATE-NET说明是私有链。
2、0 peers说明没有其他客户端节点与我们连接。
3、区块数量为370,说明通过挖矿过程共产生了370次交易,注意,这个交易并非只能由我们通过转账产生。以太坊的主网络中每10分钟会自动产生一次系统交易,并将奖励发放给抢到记账权的矿工。
4、以太坊账户中以太币数量是1850,因为整个私有链只有你自己一个人在挖矿,所以奖励的所有以太币都发送给你,并默认保存到主账户中。
5、目前钱包中存在两个账户,账户信息如下:
红线标识的部分就是用来转账的账号。
我们可以尝试进行转账,将自己主账户的以太币转给第二个账户,过程如下:
我们将账户1向账户2转账100个以太币,需要支出0.000378个以太币,点击发送。
输入钱包账户1的密码,点击确定。这时候交易还未生效,需要有矿工进行记账。
我们在命令行窗口输入:miner.start(),开始挖矿后就可以看到这次交易已经成功。账户2中以太币增加了100,账户1(主账户)虽然支出了100,但是因为挖矿,所以获得了额外的收入。
通过以太坊钱包也可以看到交易记录:
点击查看交易(区块)信息,如下:
可以看到每一个区块记录者当前区块的哈希值,上一个区块的哈希值,以及交易内容和时间戳等。
智能合约就是运行在以太坊区块链平台上的合约代码,使用solidity语言编写。这里部署一个简单的智能合约,步骤如下:
1、创建智能合约
点击以太坊钱包“CONTRACT”按钮,选择部署一个新的合约:
选择部署合约账户,将合约代码粘贴进如下区域:
代码如下:
pragma solidity ^0.4.18;
contract MyTestContract {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public constant returns (uint retVal) {
return storedData;
}
}
点击部署,输入账户密码,点击发送交易,如下:
客户端执行挖矿命令,确保创建的合约被确认。确认完成的智能合约如下:
2、调用智能合约
选择创建的智能合约:
调用Set方法,输入199,点击确认。
客户端挖矿确认该交易。这时候再打开该智能合约,看到如下界面:
说明智能合约执行成功。