Truffle 合约开发
在公司开发流程和在家里业余编程不太一样。
我们的要求逐渐从合约的编写与演示转变为团队协作、流程化部署以及对代码可靠性的追求。从代码编辑开始,单元测试,持续集成测试,到最后的合约部署都要求一气呵成。代码从开发环境到生产环境都会经过反复地进行安全测试,因为智能合约承载的数字资产关系到千万人的利益。
在第6章里面我们学习了用Solc编译器编译、发布智能合约,它有以下几个缺陷。
- 需要在Geth节点上直接操作以太坊区块链。
- 编译过程工具复杂,各种语言、命令行工具混搭。
- 测试环境与生产环境容易泄漏秘钥。
同样小型项目使用网页版的Remix IDE作为一站式服务来编辑、编译、部署智能合约。它的优点有不少,但是短板也是非常明显的。
- 不利于团队管理器Git的整合,代码都在浏览器内。
- 目录结构适用于中小型项目、个人项目。不适合大型项目。
- 代码调试手动,没有自动化。
- 需要一个本地Geth节点或者测试网络的支持。
在实际的公司生产环境里,我们希望项目在开发中拥有如下的特性。
- 有命令行界面,可进行持续集成测试。
- 代码本地编辑,利于 Git 整合。
- 测试工具丰富,测试运行速度快。
- 半自动/全自动部署并加以测试,减少人工干预。
Truffle是一个慢速上述特性的主流开发工具。让我们来看一下吧!
- 编译、测试工具安装
- Truffle的安装
- Ganache的安装
- Truffle启动样例项目
- 下载样例
- 编译项目
- 部署项目到 Ganache
- 测试项目
- 上手实践:ERC20合约
- 新建项目目录
- ERC20 Basic合约接口
- ERC20 合约接口
- SafeMath基础数学库
- 猫币:CAT数字资产合约
- 上手实践:ERC20合约测试
- 准备工作
- 测试辅助函数与库
- 测试代码分析
- 测试运行与结果
编译、测试工具安装:我们来学习一下Truffle这个进阶工具。Truffle [1] 在以太坊的开发环境里扮演了举足轻重的角色,作为一个基于JavaScript的Solidity开发框架,Truffle最大特色就是集成了开发与测试一条龙的服 ...