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

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

下一篇

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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

区块链的基础要自己学,当然我推荐我写的《区块链生存训练》,币乎的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