truffle和testrpc使用介绍
•
区块链
- (1)首先在终端中打开testrpc,直接输入testrpc命令即可。
- (2)新建一个文件夹,作为truffle的开发目录,我这里取名为hello。另开一个终端,命令行进入hello文件夹,执行truffle init命令。此时会自动生成如下文件:
- (3)这里我编写一个简单的智能合约SimpleStorage,保存为.sol后缀,然后放入contracts文件夹中。
- (4)执行”truffle compile”编译智能合约:
- (5)编译如果没有出错的话我们就可以部署合约了。首先进入migrations文件夹,编辑2_deploy_contracts文件,在最后一行插入”deployer.deploy(合约名)”,如下所示:
truffle是本地的用来编译、部署智能合约的工具,而testrpc不同于geth,geth是真正的以太坊环境,testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更为方便快捷,当你的合约在testrpc中测试通过后,再可以部署到geth中去。所以可以说truffle和testrpc就是两大杀器。这篇博客就来介绍它们的使用。
(1)首先在终端中打开testrpc,直接输入testrpc命令即可。
testrpc会默认给你十个测试账号用来调试。可以看到testrpc监听的端口为8545,当在truffle操作时,在当前终端中会打印日志信息。
(2)新建一个文件夹,作为truffle的开发目录,我这里取名为hello。另开一个终端,命令行进入hello文件夹,执行truffle init命令。此时会自动生成如下文件:
(3)这里我编写一个简单的智能合约SimpleStorage,保存为.sol后缀,然后放入contracts文件夹中。
pragma solidity ^0.4.0; contract SimpleStorage { uint storedData; function set(uint x) { storedData = x; } function get() constant returns (uint) { return storedData; } }
我们可以看到在原先的contracts中已经MetaCoin等几个合约了,如果你不想要这些合约,也可以删除,不会对后面的开发产生影响。我这里先不删除,下面还会有MetaCoin这个合约的演示。
(4)执行”truffle compile”编译智能合约:
在编译以后,目录下会多出一个build文件夹。
(5)编译如果没有出错的话我们就可以部署合约了。首先进入migrations文件夹,编辑2_deploy_contracts文件,在最后一行插入”deployer.deploy(合约名)”,如下所示:
然后执行”truffle migrate”命令部署合约到testrpc中。(注意在此步骤之前一定要在另一个终端中打开testrpc,否则会部署失败)