最近报名参加了硅谷区块链举办的《智能合约开发课》第二期培训班,根据培训要求,不能完全透露课程的内容,但我会在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个账号及私钥。
在这个界面里需要用命令 .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 ,欢迎大家踊跃参加。
您好,请问这个区块链学习有关于比特币内容的学习吗,还有最后文章末尾的币乎内容支持计划奖励是用来做什么的,我也注册了币乎,不过他们还没有上线产品。
区块链的基础要自己学,当然我推荐我写的《区块链生存训练》,币乎的KEY已经有价格了,但只给内测有影响力的用户发放。
http://mp.weixin.qq.com/s/cBK7Csx2BjynP5_BKTQD3g
好的谢谢您
币乎可以用这个链接注册,代币名字是KEY
https://zt.bihu.com/?id=26737
推荐两个区块链、以太坊开发DApp的实战教程:
适合区块链新手的以太坊DApp开发:
http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180415steemit
用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台:
http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6/?affid=20180415steemit