《智能合约开发课》学习2:小试Truffle

By @speeding12/27/2017cn

img
最近报名参加了硅谷区块链举办的《智能合约开发课》第二期培训班,根据培训要求,不能完全透露课程的内容,但我会在steemit上记录我的成长过程。

课程还没有正式开始,我先多多预习一些相关内容,前面看了两个合约代码,但没看到编译和运行结果。从网上听说Truffle是一个非常成熟的框架,可以方便地跑通编译、运行和测试一个合约的全过程,必须先尝试一下它。

Truffle的官方网站在: http://truffleframework.com

安装Node.js

从这个文档开始: http://truffleframework.com/docs/getting_started/installation

想跑起来Truffle,需要安装node.js 5.0以上的开发环境,直接到 https://nodejs.org 下载和安装环境,我安装了8.9.3 LTS(Long Term Support)版本,全部用默认的参数安装即可。

安装Truffle

启动一个node.js控制台窗口,用一行命令安装好Truffle,版本是4.0.4。

npm install -g truffle

创建一个新项目

我在D盘的根目录下建立一个MetaCoin项目。

mkdir MetaCoin
cd MetaCoin
truffle unbox metacoin

以前的truffle文档都是用truffle init命令来建立项目,现在可以直接从网上下载一个现成的项目(称为box),执行完truffle unbox命令后,在d:\MetaCoin文件夹之下就有三个子文件夹和几个文件。

D:\MetaCoin
│  truffle-config.js
│  truffle.js
│
├─contracts   
│      .placeholder
│      ConvertLib.sol
│      MetaCoin.sol
│      Migrations.sol
│
├─migrations
│      1_initial_migration.js
│      2_deploy_contracts.js
│
└─test
        .placeholder
        metacoin.js
        TestMetacoin.sol

选择一个Ethereum客户端

在开发阶段,可以选择Ganache或Truffle develop两种客户端,既然用truffle了,我就先试试Truffle Develop。

truffle develop

这里遇到了命令无法执行的问题。回去看前面的安装说明,是一个命名冲突问题,解决办法在这里,用几下的一种即可解决:

  • 每次调用truffle的时候,用truffle.cmd
  • 从PATHEXT环境变量中把 .JS 删除掉(这里我采用的办法)
  • 把truffle.js改名,比如改成truffle-config.js
  • 用Windows PowerShell或Git BASH控制台

再次运行truffle develo!p,会要求开放9545端口,正常完成后会建立了10个账号及私钥。

truffle-develop.jpg

在这个界面里需要用命令 .exit 退出。

编译

现在可以方便地编译刚才建立好的MetaCoin项目了。

truffle compile

编译完成之后,会出来一个build\contracts文件夹,里面的文件是truffle自动维护的,不要手工编辑。

自动测试

truffle test

自动编译并启动测试,给出相应的结果,太方便了。在这种开发环境下测试既高效,还不花Gas。

不过想使用这种便利,当然得要学会写自动化测试代码,这里又出现了2个新名词,Mocha 测试框架和 Chai 断言,还得会Javascript。今天先学到这里,明天继续。


本文由币乎(bihu.com)内容支持计划奖励

2017年年底前与 @yellowbird 共同发起了一项2017年终总结抽奖活动,参与链接:https://steemit.com/cn/@yellowbird/steemit-2017 ,欢迎大家踊跃参加。

下一篇

comments