区块链2.0:以太坊应用开发指南
作 者: 赵其刚,陆斌,赵其国 著
出版时间: 2018
内容简介
本书主要介绍区块链第二代技术主导平台“以太坊”的应用开发方法。第1章主要讲解区块链的概念、发展历程、区块链的应用本质及思维模式;第2章主要讲解以太坊的技术原理、体系及其他重要基本概念;第3章主要讲解以太坊的安装、网络的配置及应用开发环境的搭建;第4章主要讲解以太坊应用开发的接口方式;第5章主要讲解以太坊的核心创新——智能合约的开发、编译、部署与应用;第6~8章主要讲解以太坊的经典应用案例、众筹的技术特征及去中心化自治组织等智能合约的创建思路、原理与源码。 本书主要面向有志于从事区块链研究,特别是以太坊应用开发的相关技术人员、管理人员及兴趣爱好者,同时可作为本科生、硕士研究生等学生学习与研究区块链技术的参考书籍。
第 1章 区块链概论 001
1.1 区块链概念及应用 002
1.1.1 区块链发展历程 002
1.1.2 区块链的概念 004
1.1.3 区块链的应用 006
1.1.4 区块链不适用场景及风险 007
1.2 区块链2.0:以太坊 008
1.2.1 区块链2.0特征 009
1.2.2 以太坊及关键支撑技术 009
1.2.3 以太坊:区块链2.0工业开发标准 012
1.3 区块链创造历史的机遇 014
1.3.1 程序员的区块链思维 015
1.3.2 用区块链模拟定义社会 015
1.3.3 挑战传统中心化系统 017
第 2章 以太坊工作原理与基础 019
2.1 以太坊工作原理 020
2.1.1 以太坊基本术语 020
2.1.2 以太坊工作机制 021
2.1.3 以太坊软件架构 023
2.2 以太坊客户端与网络 024
2.2.1 各类以太坊客户端 024
2.2.2 以太坊虚拟机 025
2.2.3 以太坊网络 026
2.3 账户与智能合约 028
2.3.1 以太坊账户 028
2.3.2 密钥文件 029
2.3.3 智能合约 029
2.4 以太币 030
2.4.1 以太币的面值 031
2.4.2 燃料和以太币 031
第3章 以太坊安装与开发环境配置 033
3.1 客户端安装 034
3.1.1 以太坊客户端软件安装 034
3.1.2 创建以太坊账户 035
3.1.3 发送以太币 038
3.1.4 客户端应用开发接口 039
3.2 以太坊网络配置 040
3.2.1 以太坊网络基本操作 040
3.2.2 使用以太坊测试网络 046
3.2.3 搭建私有网络 047
3.3 以太坊应用开发环境搭建 053
3.3.1 安装Truffle框架 053
3.3.2 使用VS Code 057
3.3.3 关于其他以太坊开发包 061
第4章 以太坊应用接口 063
4.1 命令行接口 064
4.1.1 Geth客户端操作 064
4.1.2 Parity客户端操作 070
4.2 JavaScript运行环境命令 078
4.2.1 交互式应用:JSRE REPL控制台 078
4.2.2 非交互状态下应用:JSRE描述模式 079
4.2.3 管理APIs 080
4.3 Web3 JavaScript应用程序API接口 085
4.3.1 加载Web3 085
4.3.2 使用回调 086
4.3.3 批处理请求 087
4.3.4 Web3.js中的超大数字 087
4.3.5 Web3.js API 088
4.4 JSON RPC API 092
4.4.1 默认JSON-RPC客户端 092
4.4.2 十六进制编码 094
4.4.3 默认区块参数 095
4.4.4 JSON-RPC方法列表 095
第5章 智能合约编码、部署与应用 99
5.1 智能合约账户与交易 100
5.1.1 智能合约账户 100
5.1.2 智能合约的交易 101
5.1.3 合约交易成本估算 103
5.1.4 合约之间的交互 105
5.2 一个简单的智能合约应用 109
5.2.1 创建项目 109
5.2.2 编译和运行项目 112
5.3 智能合约应用开发流程 117
5.3.1 加载Web3 118
5.3.2 智能合约编程 118
5.3.3 合约编译 119
5.3.4 合约创建与应用 123
5.3.5 与智能合约交互 124
5.3.6 合约元数据 125
5.3.7 测试合约和交易 127
第6章 智能合约“虚拟币”创建 129
6.1 智能合约“虚拟币” 130
6.1.1 “虚拟币”代码 131
6.1.2 简化“虚拟币”源码 135
6.2 “虚拟币”源码分析 136
6.2.1 关键代码解析 136
6.2.2 “虚拟币”合约部署 140
6.3 “虚拟币”优化 143
6.3.1 中心化管理员 144
6.3.2 中心造币者 146
6.3.3 自动化买卖交易 148
6.3.4 自动获取 150
6.3.5 工作量证明 152
6.3.6 改进“虚拟币”全部源码 155
6.4 部署与应用 162
6.4.1 基于Mist部署 162
6.4.2 使用用户的“虚拟币” 164
第7章 众筹智能合约设计 166
7.1 为优秀创意众筹 167
7.1.1 “虚拟币”与去中心化自治组织 168
7.1.2 众筹合约代码 169
7.1.3 关键代码说明 172
7.2 众筹合约的应用 173
7.2.1 众筹合约的部署 173
7.2.2 筹集资助 174
7.3 众筹合约的扩展 175
7.3.1 无限制众筹 175
7.3.2 定时合约调用 176
第8章 去中心化自治组织 181
8.1 会员制自治组织 182
8.1.1 会员制自治组织的合约代码 182
8.1.2 合约部署 191
8.1.3 与其他人分享 193
8.1.4 合约操作 193
8.2 股东会组织 198
8.2.1 合约代码 199
8.2.2 部署与应用 206
8.3 代表制民主 208
8.3.1 合约代码 209
8.3.2 合约部署 213
8.4 决策与行政分离 214
8.4.1 合约代码 214
8.4.2 行政部门 215
8.5 延时交易执行 217
8.5.1 工作机制 217
8.5.2 合约代码 218
8.5.3 部署和使用 227
参考文献 229