EOS区块链应用开发指南
  • 推荐1
  • 收藏2
  • 浏览1.3K

EOS区块链应用开发指南

虞家男 (作者)  付睿 (责任编辑)

  • 书  号:978-7-121-35072-6
  • 出版日期:2018-11-14
  • 页  数:264
  • 开  本:16(170*240)
  • 出版状态:上市销售
  • 维护人:付睿
电子书 ¥39.00
购买电子书
纸质版 ¥69.00
EOS被称为区块链3.0,是下一代区块链技术,本书将向读者展示EOS区块链技术的众多概念和特性。全书共分为7章,分别是初识EOS、EOS的工作原理、开发工具和环境、编写智能合约、EOS RPC接口、创建和部署DApp、部署基于EOS的侧链等。
本书希望能够帮助开发者进入EOS的世界并比较容易地上手开发DApp。
本书结合实战经验,从基础的概念和原理,到一线的执行与案例,对EOS技术进行了系统且深入的阐述。
虞家男(Eric Yu),上海交通大学硕士,区块链技术专家,全栈开发者,麦子钱包CTO&联合创始人,EOSData.io技术社区联合创始人。
前言

科技界的发展规律遵循“天下大势,分久必合,合久必分”,区块链世界的发展也许正得益于“分”这个大势。
从中心化的传统信息系统世界逐渐过渡到去中心化的区块链新世界,我们正有幸经历着一场从“合”到“分”的生产关系伟大变革。在这个过程中,区块链也在现有如 PoW、PoS 这些完全去中心化的共识方式的基础上,开始了一些从“分”到“合”的有益探索,就像 EOS 的 DPoS+BFT 这
种去中心化与中心化相结合的共识模式一样。
在分分合合的大势下,EOS 主网正式上线。经历了比特币、以太坊两代区块链的发展,EOS 被称为区块链 3.0。
对开发者来说,应该怎样学习并进入 EOS 的世界?如何使用 EOS 开发DApp?本书希望能够在这些问题上给还未进入区块链世界的开发者们提供一些帮助。
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
√提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
√ 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/35072

目录

目录



第1章 初识EOS 1
1.1 区块链操作系统 1
1.1.1 什么是EOS 1
1.1.2 EOS要解决什么问题 1
1.1.3 EOS的解决方案 2
1.1.4 EOS的生态发展需要哪些支持 4
1.2 EOS开发团队 8
1.3 EOS基础名词解释 11
1.3.1 区块链 11
1.3.2 比特币 11
1.3.3 以太坊 12
1.3.4 智能合约 14
1.3.5 DApp去中心化应用 15
1.3.6 共识机制 16
1.3.7 出块时间 16
1.3.8 IPFS 16
1.4 EOS系统的特点 18
1.4.1 设计理念 18
1.4.2 功能特性 20
1.4.3 经济模型 21
1.5 EOS技术意义 22
1.5.1 EOS与BTC 22
1.5.2 EOS与ETH 22
1.5.3 EOS与腾讯服务器集群 23
1.5.4 并行执行智能合约 25
1.5.5 数据中心级节点 26
1.5.6 跨链通信与更加轻量级的默克尔树证明 27
1.5.7 拓展性 28
1.5.8 拒绝服务攻击DDoS 28
1.6 开发进度规划 30
1.6.1 阶段1:最小可行的测试环境(2017年夏季) 30
1.6.2 阶段2:最小可行的测试网络(2017年秋季) 32
1.6.3 阶段3:测试&安全审计(2017年冬季,2018
年春季) 33
1.6.4 阶段4:并行优化(2018年夏季/秋季) 34
1.6.5 阶段5:实现集群(未来) 34
1.7 EOS系统当前面临的挑战 34
1.7.1 开发者的成本 34
1.7.2 潜在的攻击EOS系统的方法 35
1.7.3 超级节点的服务器成本和稳定性 35
1.8 总结 36
第2章 EOS的工作原理 37
2.1 EOS系统架构 37
2.2 区块数据结构 39
2.2.1 区块头(block_header) 39
2.2.2 区块摘要(signed_block_summary) 40
2.2.3 区块 41
2.3 EOS的账户体系 41
2.3.1 什么是账户 41
2.3.2 什么是交易 42
2.3.3 什么是公钥 42
2.3.4 什么是密钥对 43
2.3.5 什么是权限 43
2.3.6 账户权限的更新 43
2.3.7 什么是钱包 44
2.3.8 账户和钱包的关系 44
2.3.9 EOS权限管理 46
2.3.10 丢失密码可恢复 53
2.4 EOS的共识机制 54
2.4.1 EOS共识机制的历史背景 54
2.4.2 什么是BFT-DPoS 54
2.4.3 交易的数据结构 56
2.4.4 每秒处理交易数(TPS) 57
2.4.5 交易确认 57
2.4.6 交易作为权益证明(TaPoS) 58
2.4.7 DPoS的不可逆确认算法 58
2.4.8 EOS共识机制的优势 59
2.4.9 EOS共识机制的问题 61
2.5 社区治理模式 62
2.5.1 超级节点 62
2.5.2 节点基础配置 62
2.5.3 节点收益 63
2.5.4 EOS主网启动过程 64
2.5.5 节点投票的设计 65
2.5.6 并行的EOS主网 68
2.6 EOS资源的经济模型 68
2.6.1 什么是EOS资源 68
2.6.2 EOS不是免费的吗?为什么还要消耗资源 70
2.6.3 EOS资源模型与ETH的不同 70
2.6.4 CPU和带宽的抵押模型 71
2.6.5 内存买卖模型 72
2.6.6 EOS收费模式可能存在的问题 73
2.7 总结 74
第3章 开发工具和环境 75
3.1 EOS客户端安装 75
3.1.1 硬件和系统要求 75
3.1.2 环境准备 76
3.1.3 安装EOS 76
3.1.4 验证安装结果 78
3.1.5 单节点测试 78
3.1.6 多节点测试 79
3.1.7 测试节点同步 80
3.1.8 主网节点同步测试 81
3.1.9 如何更新EOS版本 84
3.1.10 编译安装常见问题 86
3.2 nodeos命令行工具 89
3.3 cleos命令行工具 91
3.4 keosd钱包 95
3.4.1 如何运行keosd 95
3.4.2 命令参考 96
3.4.3 使用nodeos管理钱包 98
3.5 EOS源代码结构 99
3.6 EOS编程开发工具 103
3.6.1 Visual Studio Code 103
3.6.2 CLion 104
3.7 技术社区 105
3.8 总结 105
第4章 编写智能合约 106
4.1 什么是EOS智能合约 106
4.2 C/C++ 106
4.2.1 预处理和头文件 107
4.2.2 构造函数 107
4.2.3 私有函数 107
4.2.4 公有函数 108
4.2.5 设置Action 108
4.2.6 .h、.hpp和.cpp文件 108
4.3 WebAssembly 109
4.4 ABI 110
4.5 通信模式 115
4.5.1 Action 116
4.5.2 Transaction 117
4.6 控制结构 117
4.7 数据类型 117
4.7.1 自定义类型 117
4.7.2 结构体 119
4.7.3 结构体的别名 121
4.8 EOS智能合约数据库 122
4.8.1 什么是EOS智能合约数据库 122
4.8.2 多重索引数据库API(Multi-Index API) 123
4.8.3 数据表 124
4.8.4 多索引 125
4.8.5 迭代器 126
4.8.6 使用multi-index表 126
4.9 eosio账户 129
4.10 eosiolib库 129
4.11 系统合约 131
4.11.1 eosio.bios智能合约 131
4.11.2 eosio.token智能合约 133
4.11.3 exchange智能合约 133
4.11.4 eosio.msig智能合约 133
4.12 李嘉图合约(Ricardian Contract) 134
4.13 应用实践1:Hello World 135
4.13.1 你的第一个EOS DApp 135
4.13.2 搭建智能合约测试环境 135
4.13.3 创建DApp工程 140
4.13.4 编译智能合约 141
4.13.5 部署智能合约到账户 143
4.13.6 调用智能合约 144
4.13.7 李嘉图合约 144
4.14 资源消耗限制 147
4.15 调试智能合约 148
4.16 智能合约安全性 148
4.16.1 溢出漏洞处理 148
4.16.2 智能合约更新升级 149
4.16.3 EOS核心仲裁法庭解决争议 149
4.17 应用实践2:eosio.token智能合约 150
4.17.1 创建账户 150
4.17.2 部署智能合约 151
4.17.3 创建EOS Token 151
4.17.4 发行Token 152
4.17.5 转账 153
4.18 总结 154
第5章 EOS RPC接口 155
5.1 配置插件 155
5.2 测试工具 155
5.3 主网RPC接口地址 156
5.4 主要接口功能说明 157
5.4.1 API参数 157
5.4.2 Chain API 157
5.4.3 Wallet API 158
5.5 获取智能合约数据 158
5.6 客户端签名 160
5.6.1 keosd签名 160
5.6.2 eosjs库签名 162
5.6.3 eosjs2库签名 164
5.6.4 mds-eosjs库签名 166
5.7 应用实践3:EOS钱包 168
5.7.1 钱包的各种类型 169
5.7.2 钱包的数据和界面 169
5.7.3 查询账户余额 169
5.7.4 转账 170
5.7.5 开源EOS钱包 171
5.8 应用实践4:区块链浏览器 172
5.8.1 基本信息 172
5.8.2 区块列表与区块详情 173
5.8.3 交易详情 177
5.8.4 查询账户交易记录 181
5.9 总结 183
第6章 创建和部署DApp 184
6.1 什么是DApp(去中心化应用) 184
6.2 DApp基础架构 185
6.3 Demux DApp架构 186
6.4 MongoDB数据库插件 189
6.5 智能合约的资源消耗 191
6.6 应用实践5:TicTacToe 192
6.6.1 游戏规则 193
6.6.2 合约开发 193
6.6.3 创建ABI文件 205
6.6.4 编译合约 207
6.6.5 部署合约 207
6.6.6 命令行测试游戏 207
6.6.7 创建Web前端应用程序 209
6.7 应用实践6:Todolist DApp 211
6.7.1 创建table 212
6.7.2 创建Action 213
6.7.3 部署和命令行测试 214
6.7.4 前端实现 215
6.8 应用实践7:EOS Blog DApp 217
6.8.1 合约开发 217
6.8.2 前端开发 220
6.9 其他著名EOS DApp案例 222
6.9.1 Everipedia——基于EOS的维基百科 222
6.9.2 Chintai——EOS通证租赁平台 224
6.9.3 EOSfinex——基于EOS的去中心化交易所 226
6.9.4 RiskExchange——基于EOS的风险交易所 227
6.10 总结 228
第7章 部署基于EOS的侧链 229
7.1 主链和侧链 229
7.1.1 主链 229
7.1.2 侧链 229
7.1.3 分层网络架构 230
7.2 侧链的意义 231
7.2.1 根据资源付费的无币区块链 231
7.2.2 降低开发资源费用 231
7.3 启动多节点测试侧链 232
7.4 启动支持投票的EOS侧链 237
7.4.1 手动执行启动过程 237
7.4.2 配置初始启动节点 238
7.4.3 IP地址准备和P2P连接 238
7.4.4 启动genesis节点 238
7.4.5 为eosio账户创建密钥 239
7.4.6 创建重要的系统账户 239
7.4.7 部署eosio.token智能合约 240
7.4.8 部署eosio.msig智能合约 241
7.4.9 创建 SYS Token 242
7.4.10 部署eosio.system智能合约 243
7.4.11 切换到多节点 243
7.4.12 抵押Token和拓展网络 244
7.4.13 创建抵押账户 245
7.4.14 注册出块节点 246
7.4.15 eosio撤销权限 249
7.5 总结 250
本书总结 251
参考文献 252

本书勘误

印次
  • 页码:59  •  行数:3  •  印次: 1  •  修订印次: 1

    “权利”应为“权力”

    LucienSong 提交于 2018/12/20 8:59:26
    付睿 确认于 2018/12/20 12:55:44

读者评论

电子书版本

  • Epub

推荐用户

相关图书

Python一行流:像专家一样写代码

Christian Mayer (作者) 苏丹 (译者)

本书专注于从初学迈向进阶的Python编码技术:如何像专家一样写出优雅、准确、简洁高效的Python 单行代码;阅读任意一行Python 代码时,如何系统性地对...

¥89.00

剑指Offer(专项强化版):数据结构与算法名企面试题精讲

何海涛 (作者)

本书全面、系统地总结了在准备程序员面试过程中必备的数据结构与算法。本书首先详细讨论整数、数组、链表、字符串、哈希表、栈、队列、二叉树、堆和前缀树等常用的数据结构...

¥89.00

C++服务器开发精髓

张远龙 (作者)

本书从操作系统原理角度讲解进行C++服务器开发所需掌握的技术栈。全书总计9章,第1~2章讲解C++ 11/14/17新标准中的常用特性、新增类库,以及C++开发...

 

PHP编程(第4版)

Rasmus Lerdorf(拉斯马斯·勒多夫), Kevin Tatroe(凯文·塔特罗), Peter MacIntyre(彼得·麦金太尔) (作者) 卢涛 (译者)

PHP是一种被广泛使用的Web编程语言,它简单易用,而且与时俱进,不断进化,提升性能。本书基于PHP 7.4,深入介绍 PHP编程技术,涵盖了 PHP 所有基本...

¥109.00

深入理解Spring Cloud与实战

方剑 (作者)

本书共分10章,主要介绍Spring Cloud各个核心组件的设计原理,以及目前流行的Spring Cloud Alibaba和 Netflix组件,并且剖析S...

¥106.00

基于Kotlin的Spring Boot微服务实战

袁康 (作者)

本书介绍了Kotlin在Spring Boot微服务开发中的实践,并使用Kotlin作为开发语言,介绍了函数式编程思想、Kotlin的语法、Kotlin在常用中...

¥69.30