一、Truffle是什么?
Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单,Truffle有以下:
- 内置的智能合约编译,链接,部署和二进制文件的管理。
- 快速开发下的自动合约测试。
- 脚本化的,可扩展的部署与发布框架。
- 部署到不管多少的公网或私网的网络环境管理功能
- 使用EthPM&NPM提供的包管理,使用ERC190标准。
- 与合约直接通信的直接交互控制台(写完合约就可以命令行里验证了)。
- 可配的构建流程,支持紧密集成。
- 在Truffle环境里支持执行外部的脚本。
二、下载MetaCoin样例进行环境搭建实战
2.1.下载MetaCoin
mkdir metacoin cd metacoin truffle unbox metacoin
truffle unbox 下载样例时,需要一个空的文件夹,因此我们这儿新建一个目录进行操作。
unbox
Truffle 的盒子Boxs装有很多非常实用的项目样板,可以让你忽略一些环境配置问题,从而可以集中与开发你自己的DApp的业务唯一性。
除此之外,Truffle Boxes能够容纳其他有用的组件、Solidity合约或者库,前后端视图等等。
所有这些都是一个完整的实例Dapp程序。都可以下载下来逐一研究,寻找适合自己目前业务模型的组件。
Truffle的官方Boxes地址:https://www.trufflesuite.com/boxes/
2.2.修改以太坊本地配置
vim truffle-config.js
2.3.启动ganache-cli
ganache-cli
原文使用的是testrpc,但是由于testrpc不能很好的处理拜占庭问题,会在合约部署的时候抛出异常。
testrpc
异常信息如下:
2.4.编译合约
truffle compile
根据编译输出的路径地址./build/contracts,我们去查看一下
可以看到原来所在在contracts目录下的智能合约文件(有合约contract,有库library)均被编译成了json文件。
这些json文件就是truffle用来部署合约的编译文件。
2.5.部署合约
truffle migrate
部署结果如下:
2.6.测试合约
truffle test
没有报错就说明通过了,测试结果如下:
参考链接:https://www.jianshu.com/p/2e2b3b12eb0e