欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
全部教程·
区块链·
以太坊指南
[目录]
·
Truffle 合约开发
以太坊指南
第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法
以太坊指南
第1章 一台全球计算机
以太坊 历史 以太坊 发展阶段 以太坊 特色第2章 账户是什么
以太坊 基础知识 Keystore 与私钥保存 以太坊 常用钱包 以太坊 EIP-55 账户地址第3章 交易是驱动力
以太坊 交易是驱动力 以太坊 交易发送 以太坊 交易方法 以太坊 交易生命周期 共识与工作量证明 矿工与挖矿奖励第4章 数据结构
以太坊 数据结构 以太坊 Radix树 以太坊 Merkle树 Merkle Patricia树 以太坊 RLP编码 以太坊 状态树 以太坊 交易树 以太坊 收据树 以太坊 区块第5章 构建私链
以太坊 安装geth 以太坊 启动私链 以太坊 接收挖矿奖励 以太坊 转账与收款第6章 部署智能合约
以太坊 部署智能合约 以太坊 什么是智能合约 以太坊 安装编译器 Solc 编译智能合约 智能合约发布准备 部署智能合约 调用智能合约第7章 以太坊虚拟机
以太坊虚拟机 虚拟机的执行结果 虚拟机的执行资源 合约调用合约 虚拟机的输入输出 Gas 花费与退回 虚拟机指令集第8章 Solidity 语法
Solidity 语法练习 Solidity 基础语法 Solidity 语法进阶 Solidity 高级语法 Solidity 安全第9章 Truffle 开发
Truffle 合约开发 编译、测试工具安装 Truffle 启动样例 Truffle ERC20合约 Truffle ERC20合约测试Truffle 冷知识
Truffle 冷知识 短地址攻击 比特币的区块 以太坊与比特币账户的区别 “不可能的三角”问题 ETHASH 挖矿算法Truffle 合约开发
在公司开发流程和在家里业余编程不太一样。
我们的要求逐渐从合约的编写与演示转变为团队协作、流程化部署以及对代码可靠性的追求。从代码编辑开始,单元测试,持续集成测试,到最后的合约部署都要求一气呵成。代码从开发环境到生产环境都会经过反复地进行安全测试,因为智能合约承载的数字资产关系到千万人的利益。
在第6章里面我们学习了用Solc编译器编译、发布智能合约,它有以下几个缺陷。
- 需要在Geth节点上直接操作以太坊区块链。
- 编译过程工具复杂,各种语言、命令行工具混搭。
- 测试环境与生产环境容易泄漏秘钥。
同样小型项目使用网页版的Remix IDE作为一站式服务来编辑、编译、部署智能合约。它的优点有不少,但是短板也是非常明显的。
- 不利于团队管理器Git的整合,代码都在浏览器内。
- 目录结构适用于中小型项目、个人项目。不适合大型项目。
- 代码调试手动,没有自动化。
- 需要一个本地Geth节点或者测试网络的支持。
在实际的公司生产环境里,我们希望项目在开发中拥有如下的特性。
- 有命令行界面,可进行持续集成测试。
- 代码本地编辑,利于 Git 整合。
- 测试工具丰富,测试运行速度快。
- 半自动/全自动部署并加以测试,减少人工干预。
Truffle是一个慢速上述特性的主流开发工具。让我们来看一下吧!
- 编译、测试工具安装
- Truffle的安装
- Ganache的安装
- Truffle启动样例项目
- 下载样例
- 编译项目
- 部署项目到 Ganache
- 测试项目
- 上手实践:ERC20合约
- 新建项目目录
- ERC20 Basic合约接口
- ERC20 合约接口
- SafeMath基础数学库
- 猫币:CAT数字资产合约
- 上手实践:ERC20合约测试
- 准备工作
- 测试辅助函数与库
- 测试代码分析
- 测试运行与结果
下一章:Truffle 编译、测试工具安装
编译、测试工具安装:我们来学习一下Truffle这个进阶工具。Truffle [1] 在以太坊的开发环境里扮演了举足轻重的角色,作为一个基于JavaScript的Solidity开发框架,Truffle最大特色就是集成了开发与测试一条龙的服 ...
AI 中文社