内容简介
这是一部从源码层面剖析EOS原理和全方位讲解EOS开发实战的著作。
作者是EOS全球生态系统中具有影响力的EOS社区引力区的联合创始人和核心团队成员,是引力区在EOS主网上的研究和实践成果,得到了EOS官方原产品副总等多位EOS生态领袖的一致好评和强烈推荐。
全书一共7章,从EOS的优势技术、源码实现、原生功能使用、智能合约开发、基于EOS的Dapp开发和侧链开发等6个方面,详细的讲解了从系统原理到软件部署,再到开发的全部细节,适合初学者和具有一定开发基础的读者阅读。
第一部分 原理篇(第1~3章)
首先,从EOS项目诞生的初衷、愿景、发展历程和版本更迭等角度宏观地介绍了EOS项目本身;然后,从EOS的共识机制、账户体系、网络资源Token化、节点治理、脚本与虚拟机等角度展现了EOS的技术优势;最后,从源码角度分析了EOS项目的整体架构、共识算法代码实现、网络层代码实现、区块打包与广播代码的实现和关键工具的代码实现。
第二部分 实战篇(第4~7章)
这部分主要从实战开发的角度详细讲解了EOS网络的启动、原生功能的使用、智能合约的开发、DApp的开发、基于EOS的侧链和竞争链的开发等内容。不仅详细讲解了各项开发所涉及的技术点、开发方法、开发技巧,而且还包含大量的实战案例。
附录部分展望了EOS主网优化的方向,涉及百万TPS目标如何实现和跨链交互等方面的内容。
封面图
目录
- 推荐序
- 前言
- 第一部分原理篇
- 第1章EOS基本介绍2
- 1.1区块链2.0的痛点2
- 1.2EOS项目定义与愿景5
- 1.3EOS项目的发展历程8
- 1.4EOS项目版本更迭简况与现状11
- 第2章EOS项目技术优势解析15
- 2.1EOS的共识机制(BFT-DPoS)16
- 2.1.1超级节点竞选18
- 2.1.2持币者投票19
- 2.1.3超级节点治理20
- 2.2EOS的账户体系20
- 2.2.1基于角色的多层级账户体系21
- 2.2.2账户权限管理21
- 2.2.3强制延迟消息执行策略22
- 2.2.4密钥丢失或被盗后的恢复23
- 2.3网络资源Token化23
- 2.3.1带宽和日志存储23
- 2.3.2计算和计算积压(CPU)24
- 2.3.3状态存储器(RAM)24
- 2.4EOS的节点治理25
- 2.4.1宪法和协议指导下的关键操作25
- 2.4.2宪法和协议的升级26
- 2.5脚本与虚拟机27
- 第3章EOS代码原理分析29
- 3.1EOS项目代码框架总览29
- 3.1.1脚本层29
- 3.1.2插件层31
- 3.1.3合约层36
- 3.1.4支持层39
- 3.2共识算法代码实现42
- 3.2.1DPoS机制实现关键代码分析43
- 3.2.2BFT算法实现关键代码分析53
- 3.3网络层代码实现61
- 3.4区块打包与广播的代码实现66
- 3.5系统合约层代码实现70
- 3.5.1eosio.system合约代码分析71
- 3.5.2eosio.Token合约代码分析79
- 3.5.3eosio.msig合约代码分析82
- 3.5.4eosiolib依赖库84
- 3.6EOS关键工具的代码实现89
- 3.6.1nodeos代码实现89
- 3.6.2cleos代码实现92
- 3.6.3keosd代码实现94
- 第二部分实战篇
- 第4章EOS网络启动与原生功能介绍104
- 4.1EOS项目安装部署与编译104
- 4.2配置文件修改与测试106
- 4.3EOS测试网启动108
- 4.3.1Bios节点109
- 4.3.2预出块节点109
- 4.3.3普通节点111
- 4.4EOS项目常用功能112
- 4.4.1链上信息查询112
- 4.4.2钱包管理126
- 4.4.3账户创建与权限管理132
- 4.4.4代币的交易135
- 4.4.5交易的签名与发送137
- 4.4.6系统资源获取138
- 4.5智能合约的部署与调用140
- 第5章智能合约开发142
- 5.1智能合约简介142
- 5.1.1智能合约定义143
- 5.1.2智能合约历史148
- 5.1.3智能合约优劣势154
- 5.1.4智能合约应用场景155
- 5.2EOS中的智能合约165
- 5.3EOS智能合约文件结构169
- 5.3.1.abi文件170
- 5.3.2.wasm/.wast文件171
- 5.3.3eosioapp编译器使用172
- 5.4EOS智能合约依赖库介绍179
- 5.5EOS智能合约实战项目196
- 5.5.1HelloWorld合约196
- 5.5.2数据库合约200
- 5.6常见bug与debug思路总结205
- 第6章基于EOS的DApp开发207
- 6.1什么是DApp207
- 6.1.1比特币是第一个DApp208
- 6.1.2DApp命名的原因208
- 6.1.3DApp运作的法律模型209
- 6.2开发DApp的一般流程210
- 6.2.1建立共识的机制210
- 6.2.2设计分发Token的机制211
- 6.2.3常见DApp开发阶段213
- 6.3DApp的应用领域214
- 6.3.1游戏领域214
- 6.3.2社交/内容分发平台216
- 6.3.3数字货币钱包216
- 6.4基于EOS的DApp开发思路217
- 6.5DApp开发实例—网页发币227
- 第7章基于EOS的侧链/竞争链开发232
- 7.1侧链/竞争链的概念与起源232
- 7.2侧链实现方式235
- 7.3主流侧链项目239
- 7.4EOS侧链242
- 7.5EOS竞争链245
- 附录AEOS系统优化方向展望248