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

in #cn7 years ago (edited)

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 ,欢迎大家踊跃参加。

下一篇

Sort:  

您好,请问这个区块链学习有关于比特币内容的学习吗,还有最后文章末尾的币乎内容支持计划奖励是用来做什么的,我也注册了币乎,不过他们还没有上线产品。

区块链的基础要自己学,当然我推荐我写的《区块链生存训练》,币乎的KEY已经有价格了,但只给内测有影响力的用户发放。

http://mp.weixin.qq.com/s/cBK7Csx2BjynP5_BKTQD3g

好的谢谢您

币乎可以用这个链接注册,代币名字是KEY
https://zt.bihu.com/?id=26737

推荐两个区块链、以太坊开发DApp的实战教程:

  1. 适合区块链新手的以太坊DApp开发:
    http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180415steemit

  2. 用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台:
    http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6/?affid=20180415steemit