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最大特色就是集成了开发与测试一条龙的服 ...