1,创建账户

  • 使用METAMASK钱包来进行操作,具体的创建过程请自行查阅。创建好的账户如下图所示,账户余额显示为0
  • 详情下面显示对应账户的地址,这个是最关键的信息
  • 首先选择左上角头像旁边的按键,切换网络,此处选择Ropsten测试网络
  • 然后点击存入,向水管智能合约申请以太币进行测试

  • 选择测试水管这一条目选项,点击获取Ether

 2,转账

进入如下的页面

  • 首先查看user里面的地址是是否和先前创建的账户一致,如果一致代表没有问题
  • 点击faucet的绿色按键,request 1 ether from faucet,点击一下申请一个比特币

  • 如果网络状况良好,只需要10多秒以内,就可以看到transactions显示的一串哈希序列的交易信息,理论上只需要点击这个哈希序列就可以看到这笔交易的具体信息,但是由于不可抗力原因,查询网站是访问不了的

3,查看交易

  • 点开查询网址,输入账户的地址(点击账户地址就可以自动复制),最下面显示的是刚才交易的具体信息,上面以546d757结尾的哈希序列就是交易信息,下一行的以397647结尾的字符串是合约账户的地址,后面是账户地址。表示一笔交易从合约账户转到用户的账户地址。

  • 这次点击交易的哈希序列,就可以查看更加具体的信息,截屏如下

相关信息介绍如下

  • Time 区块创建的时间
  • Block 交易信息所处的高度
  • Confirmations确认数
  • Nonce 防止重放攻击/双花攻击
  • Value 交易的钱数
  • Fee费用
  • Gas limit消耗gas的上限,
  • Gas used用了多少gas
  • gas price指gas的价格
  • Input data相当于微信的转账说明,转账添加input data少见,一般用在智能合约中

4,编写合约

写一个智能合约,实现水管合约的功能

  • 进入Remix Ethereum IDE网站,这是一个智能合约的在线编写运行的网站
  • 整体的界面如下图所示

  • 首先,在COMPLIER里面选择和程序代码相互匹配的编译器,比如代码写的是编译器版本大于0.4.17,那么我选择的编译器版本是0.4.26
  • 可以勾选Auto compline开启自动编译或者不勾选,手动编译
  • 如果编译成功的界面如上图所示,如果不成功,会显示出错的信息,对应修改代码即可

程序代码如下

pragma solidity ^0.4.17;contract Faucet{function withdraw(uint amount) public{require(amount <= 100000000000000000);msg.sender.transfer(amount);}function () public payable{}
}

5,部署合约

  • 参考如下界面
  • 首先切换ENVIROMNMENT为Injected Web3环境下
  • 如果正确无误的情况下,ACCOUNT会显示账户地址
  • 剩余选项选择默认值
  • 点击Deploy进行合约部署

  • 点击后,需要回到METAMASK钱包对于合约的创建和发布进行确认,确认成功之后,会显示如下界面

  • 回到remix Ethereum IDE,就可以看到我们发布的合约的地址,点击复制地址,我们需要给合约地址转账

  • 给合约地址转账,注意,需要将数量填写转账的钱数

  • 查询相关信息,将智能合约的地址复制、粘贴到搜索框中,显示相关信息如下
  • 可以看到,可以将该地址识别为以太坊 合约,也可以看到先前的转账信息

6,测试水管合约的功能

  • 输入10000000,点击withdraw,向智能合约发起请求