深入理解以太坊

深入理解以太坊
作 者: 王欣 史钦锋 程杰
出版社: 机械工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者介绍王欣前浙江华信区块链技术总监,中国企业以太坊联合发起人,对以太坊有非常深入的研究。曾就职于爱立信和中兴通讯,有10余年软件架构和国际项目咨询经验。目前专注于区块链底层协议、智能合约安全以及隐私保护的研究。史钦锋前浙江华信区块链研究员,负责以太坊智能合约相关技术的研究和开发,对以太坊底层技术原理、智能合约、跨链技术以及EOS等有非常深入的认识。曾就职于中兴通讯、华为和北京赛思信安等公司,精通C、Python和Go等多门语言,有多年通信产品底层驱动、通信网络协议和后端核心业务开发经验。程杰资深区块链技术专家和架构师,对以太坊、EOS等开源区块链协议和各种共识算法有深入研究,负责DApp的整体软件方案设计。曾就职于世界500强企业,有超过13年的软件行业和通信行业的研发经验,熟悉大型分布式、微服务软件架构、软件设计模式相关技术,对基于云计算、区块链、微服务和DevOps的软件架构栈有丰富的实践经验,对可落地的高并发、高可用的软件系统有自己的见解。

内容简介

内容简介 这是一本从原理和实践两个层面系统、深入讲解以太坊技术的专著,从设计理念、技术架构、共识算法、智能合约、以太坊虚拟机、开发工具、DApp开发、企业以太坊解决方案、跨链技术等近10个方面进行了详细讲解,既适合初学者系统学习以太坊的原理和应用开发,又适合有一定基础的开发者深入掌握以太坊的底层运行机制。 全书一共11章: 第1~3章对以太坊的系统架构、设计理念和技术架构进行了系统介绍,包括以太坊项目的起源和发展路线图、核心技术、共识问题、图灵完备性、整体设计思路和各模块的核心功能实现等核心内容。 第4章深入剖析了PoW、PoA、PoS等共识算法的适用场景、设计思想、技术实现和优缺点。 第5~7章围绕智能合约展开,系统讲解了智能合约语言Solidity、智能合约应用开发、智能合约运行原理和实现细节,以及以太坊虚拟机的运行原理和智能合约字节码的解析等内容。 第8章介绍了以太坊周边的工具,教读者如何在不开发代码的情况下完成与以太坊网络的交互。 第9章介绍了以太坊技术的企业级应用以及企业以太坊联盟的标准化进展。 第10章对跨链技术和方案进行了方向性探讨,虽然目前跨链技术还不成熟,但被视为后以太坊时代的区块链技术热点。 第11章分析了以太坊现阶段面临的发展瓶颈,并对可能的解决方案进行了展望。

图书目录

前言

第1章 以太坊概述 1

11 区块链起源 1

12 以太坊发展之路 3

13 以太坊核心技术 6

131 智能合约 6

132 PoS 7

14 以太坊系统架构 8

15 以太坊社区 9

16 以太坊路线图 10

17 本章小结 11

第2章 设计理念 12

21 密码学 13

211 Hash 13

212 椭圆曲线的加解密 18

213 签名 20

214 Merkle树和验证 24

215 MPT状态树 24

22 共识问题 28

221 分布式一致性问题 28

222 Paxos 和Rfat 30

223 拜占庭容错及PBFT 31

224 以太坊IBFT共识 33

225 PoW 35

226 Casper 36

227 以太坊性能 38

23 图灵完备 40

231 比特币脚本 41

232 EVM虚拟机 44

233 Gas机制 46

24 本章小结 49

第3章 技术架构 50

31 分层设计 51

311 应用层 51

312 合约层 54

313 激励层 55

314 共识层 56

315 网络层 59

316 数据层 60

32 数据结构设计 62

321 交易 62

322 状态树 65

323 区块 67

324 区块链 71

325 数据库 72

33 P2P网络 76

331 节点发现 76

332 节点管理 78

34 客户端 84

341 RPC 85

342 web3 88

35 本章小结 89

第4章 共识算法 90

41 PoW 90

411 算法概述 90

412 设计实现 93

413 优缺点分析 96

42 PoA 97

421 算法概述 97

422 设计实现 99

423 优缺点分析 102

43 PoS 103

431 算法概述 103

432 优缺点分析 111

44 本章小结 112

第5章 智能合约开发 113

51 智能合约的诞生 113

52 以太坊上的智能合约 114

521 以太坊智能合约概述 114

522 关于智能合约的理解误区 114

523 合约账户 115

524 智能合约举例 116

525 智能合约在以太坊上的运行流程 118

53 智能合约编程语言 119

54 智能合约应用开发 120

541 连接和访问以太坊 120

542 以太坊集成开发环境remix 120

543 truffle 126

544 智能合约编译器solc 129

55 solidity语法详解 130

551 智能合约源文件 130

552 solidity数据类型 132

553 智能合约的内建全局变量和函数 141

554 智能合约中的单位 143

555 solidity表达式和控制结构 144

556 函数 148

557 常量状态变量 152

558 智能合约的事件 153

559 智能合约的继承性 153

5510 智能合约的创建 154

5511 智能合约的销毁 154

56 solidity编程规范 155

561 代码布局 155

562 编码约定 157

563 命名约定 159

57 本章小结 159

第6章 智能合约运行机制 160

61 调用智能合约函数 160

611 外部调用 161

612 内部调用 162

62 以太坊ABI协议 163

621 ABI接口定义 164

622 函数选择器 165

623 参数编码 165

624 abi编码举例 166

63 交易的费用和计算 167

631 什么是Gas机制 167

632 为什么需要Gas机制 168

633 交易费用计算法方法 169

634 交易费用的组成 170

64 智能合约的事件 170

641 事件的存储和解析 170

642 Logs的底层接口 173

643 事件的查询 174

644 事件查询过程 174

65 库和链接原理 175

651 库的定义 175

652 库的使用 175

653 库的连接 176

654 库中的事件 176

66 智能合约元数据 177

67 智能合约安全性分析 179

671 智能合约中的陷阱 179

672 建议 182

673 案例分析:资金回退流程 183

68 智能合约和外界的通信 184

681 oracle介绍 184

682 oracle需要解决的问题 185

683 数据商店 185

69 智能合约的动态升级 185

691 solidity是一个受限的语言 185

692 动态升级的实现 186

610 智能合约的数据存储 187

6101 存储 187

6102 内存 187

6103 栈 188

611 本章小结 188

第7章 智能合约字节码与汇编 189

71 智能合约汇编指令集 189

72 智能合约字节码解析 192

73 状态变量的存储 196

731 普通状态变量的存储 196

732 动态数据的storage存储 198

733 总结 201

74 solidity内嵌汇编 201

741 内嵌汇编指令 201

742 单独使用汇编指令 203

75 本章小结 204

第8章 开发者工具 205

81 MetaMask 205

811 MetaMask安装 205

812 MetaMask作为Web钱包 206

813 MetaMask作为DApp客户端 207

82 以太坊测试网络 209

821 Morden 209

822 Ropsten 210

823 Kovan 210

824 Rinkeby 211

825 本地以太坊私链 212

826 连接测试网络 213

83 Remix 213

831 本地安装Remix 213

832 在线Remix 214

84 truffle 217

841 安装truffle 218

842 构建应用项目 218

843 demo合约实践 220

844 智能合约测试和验证 222

85 myetherwall