以太坊智能合约应用MetaCoin(truffle + ganache-cli)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjw6463/article/details/82988304

 

操作系统:Mac OS

go :  go version go1.10.3 darwin/amd64

npm:    6.1.0

node :  v10.6.0

Truffle v4.1.14 (core: 4.1.14)

Solidity v0.4.24 (solc-js)        //Truffle 自带

geth:    1.8.11-stable

ganache:          Ganache CLI v6.1.8 (ganache-core: 2.2.1)

##Truffle

是一个以太坊开发框架,提供合约编译,合约部署,虚拟环境等功能。

3.0以上项目结构中无app目录,安装如下

npm install -g truffle

##ganache

testRpc,提供的虚拟以太坊环境,用于开发测试。

由于geth挖矿耗费cpu使用ganache会比较简单。安装如下

npm install -g ganache-cli

 

1、自动下载构建项目,新建项目文件MetaCoin, 由于版本更新,truffle init webpack已不适用,采用truffle unbox webpack,结果如下图:

2、直接运行输入ganache-cli,运行客户端,它会自动初始10个账户给你。注意其端口是8545

3、然后新开一个终端,进入MetaCoin目录下,输入truffle compile编译

有个小警告,提示function声明构造函数已经废弃了,要使用constructor来声明构造函数,这是在0.4.22.版本开始。只需将contracts目录下的Migration.sol文件中的function Migration() public 改为 constructor () public 即可,如下图

4、然后输入truffle migrate 部署合约,注意要先修改truffle.js中的网络配置,不然可能会有Error: No network specified. Cannot determine current network.

然后重新编译,再部署即可。

truffle compile --compile-all //重新编译所有
truffle migrate --reset //重新部署所有

 

5、输入npm run dev运行,然后在浏览器中输入localhost:8080即可

注意:此时页面可能会出现There was an error fetching your accounts.的提示且如上图you have META中没显示余额信息。

解决方法:找到app/scripts 下的index.js文件,将window.addEventListener(‘load’, function())这函数里的ip端口改为8545即可,如下图所示

重新运行后界面为

输入转账数额,然后在ganache-cli客户端复制一个账号地址,点击转账如下图

猜你喜欢

转载自blog.csdn.net/zjw6463/article/details/82988304