Dapp开发

智能合约的测试流程

2018-04-28  本文已影响198人  帅嘟

一、以太坊客户端的安装

下载地址说明:

       ①官网下载地址::https://geth.ethereum.org/downloads/(需要翻墙),根据系统选择相应的版本

       ②国内镜像地址:https://ethfans.org/wikis/Ethereum-Geth-Mirror,但是没有支持linux版本

以下基于windows客户端:

  Windows要求必须是64位系统,从官方网站下载编译好的win64客户端,安装步骤一步一步安装就可以:

   比如我的geth 安装程序在F:\geth\geth.exe 目录下,当然也可以配置环境变量,不需要输入全路径啦

 ①进入cmd命令shell界面: 输入:F:\Geth\geth.exe --testnet --rpc --rpcapi db,eth,net,web3,personal --cache=1024 --rpcport 8545 --rpcaddr 0.0.0.0 --rpccorsdomain "*" --datadir f:\data  consle   回车同步测试公链的账本数据,该步骤要很久很久(我之前同步了2天多),也可以硬盘拷贝已知的同步好的节点database的节点数据,这样同步就很快

geth 参数 简要说明:--testnet表示是测试的公链, --rpcport  8545是指端口 --datadir f:\data  数据同步的存入地址。 console >> geth.log 代表将控制台输出到文件geth.log中去 。详细的参数说明:geth  --help  地址:https://www.cnblogs.com/tinyxiong/p/7918706.html 讲解比较详细:

同步完成表示节点该设备已经连到测试公链的一个节点,可以发起操作。

二 、以太坊账号的创建

    ① 直接在geth 控制台  创建账号:personal.newAccount('password')回车 得到是该账号的地址Address;  password 是密码。创建好的的账号的创建文件在路径:testnet\keystore:创建的账号的文件私钥。

   ②开启挖矿  miner.start   miner stop 获取eth可以用来支付gas ,后续的很多操作支付gas(测试公链获取比较容易)默认是本地的第一个账号进行挖矿,eth.accounts[0]  ,或者用eth.coinbase()进行查看。也可以设置指定账号的来进行挖矿 miner.setEtherbase(账号),    miner.stop()停止挖矿

备注说明:Gas是一种特别的单位用于Ethereum(以太坊)里,它用来衡量一个行为或者一系列行为有多少“工作量”。后续所有的操作支付的gas费用是gas*gasPrice

   ③查询以太币账户余额 eth.getBalance('账号地址‘),新创建的钱包的以太币是0,挖矿模式开始之后,账号已经有余额,见图二

’                                   

④转账    eth.sendTransaction({from:a,to:b,value:1000000000000000000})  账号a 向账号b 转 1ehter .. 以太币的单位的转换 :https://www.jianshu.com/p/9e9914c99692

表示账号a需要密码解锁

personal.unlockAccount(a,'123456',600000)  解锁成功之后可进行转账:参数说明:a钱包地址;“123456”,密码,60000解锁的时间:单位是s.

⑤查询事务状态  eth.getTransactionReceipt('0xc1a4a91886be92d1bc708702364da58d44ead1afb9023f950b87bd5118976356') //查询合约交易状态。如查询数据的是否入区块且是成功。

三、部署合约

    合约是用solidity语言后缀.sol的文件,在线的语言IED(暂时支持调试还不那么友好,没有其他语言的编辑器成熟),https://ethereum.github.io/browser-solidity ,可以在线编辑,也可以外部导入文件

导入合约,点击detail ,进入detail页面

下拉到WEB3DEPLOY,目录下面的复制图标,复制好编译的文件复制在geth的控制台回车得到合约部署的是地址。 编译的文件表示是用web3.eth.accounts[0]用第一个账号来部署合约,也可以修改指定账号来部署,部署合约的账号需要有一定额度的eth.

得到合约地址contract 

四、测试合约

 需要安装node.js 的依赖包web3.  用npm install web3(选择合适的版本)

① npm install web3 

②在合约文件的目录内进入node.js控制台  

③初始化 web3实例

Web3 = require('web3');

web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); //节点地址

solc = require('solc');

④设置合约地址的变量  //设置地址

 Address = '0xcc68e336C41506D763469B6A76Befb7f5C935eCA';

⑤加载本地合约   

⑥ 调用对应合约的方法

四、 truffle框架

 ①首先按照truffle框架

上一篇下一篇

猜你喜欢

热点阅读