●前言
章以太坊概述1
1.1区块链起源1
1.2以太坊发展之路3
1.3以太坊核心技术6
1.3.1智能合约6
1.3.2PoS7
1.4以太坊系统架构8
1.5以太坊社区9
1.6以太坊路线图10
1.7本章小结11
第2章设计理念12
2.1密码学13
2.1.1Hash13
2.1.2椭圆曲线的加解密18
2.1.3签名20
2.1.4Merkle树和验证24
2.1.5MPT状态树24
2.2共识问题28
2.2.1分布式一致性问题28
2.2.2Paxos和Rfat30
2.2.3拜占庭容错及PBFT31
2.2.4以太坊IBFT共识33
2.2.5PoW35
2.2.6Casper36
2.2.7以太坊性能38
2.3图灵完备40
2.3.1比特币脚本41
2.3.2EVM虚拟机44
2.3.3Gas机制46
2.4本章小结49
第3章技术架构50
3.1分层设计51
3.1.1应用层51
3.1.2合约层54
3.1.3激励层55
3.1.4共识层56
3.1.5网络层59
3.1.6数据层60
3.2数据结构设计62
3.2.1交易62
3.2.2状态树65
3.2.3区块67
3.2.4区块链71
3.2.5数据库72
3.3P2P网络76
3.3.1节点发现76
3.3.2节点管理78
3.4客户端84
3.4.1RPC85
3.4.2web388
3.5本章小结89
第4章共识算法90
4.1PoW90
4.1.1算法概述90
4.1.2设计实现93
4.1.3优缺点分析96
4.2PoA97
4.2.1算法概述97
4.2.2设计实现99
4.2.3优缺点分析102
4.3PoS103
4.3.1算法概述103
4.3.2优缺点分析111
4.4本章小结112
第5章智能合约开发113
5.1智能合约的诞生113
5.2以太坊上的智能合约114
5.2.1以太坊智能合约概述114
5.2.2关于智能合约的理解误区114
5.2.3合约账户115
5.2.4智能合约举例116
5.2.5智能合约在以太坊上的运行流程118
5.3智能合约编程语言119
5.4智能合约应用开发120
5.4.1连接和访问以太坊120
5.4.2以太坊集成开发环境remix120
5.4.3truffle126
5.4.4智能合约编译器solc129
5.5solidity语法详解130
5.5.1智能合约源文件130
5.5.2solidity数据类型132
5.5.3智能合约的内建全局变量和函数141
5.5.4智能合约中的单位143
5.5.5solidity表达式和控制结构144
5.5.6函数148
5.5.7常量状态变量152
5.5.8智能合约的事件153
5.5.9智能合约的继承性153
5.5.10智能合约的创建154
5.5.11智能合约的销毁154
5.6solidity编程规范155
5.6.1代码布局155
5.6.2编码约定157
5.6.3命名约定159
5.7本章小结159
第6章智能合约运行机制160
6.1调用智能合约函数160
6.1.1外部调用161
6.1.2内部调用162
6.2以太坊ABI协议163
6.2.1ABI接口定义164
6.2.2函数选择器165
6.2.3参数编码165
6.2.4abi编码举例166
6.3交易的费用和计算167
6.3.1什么是Gas机制167
6.3.2为什么需要Gas机制168
6.3.3交易费用计算法方法169
6.3.4交易费用的组成170
6.4智能合约的事件170
6.4.1事件的存储和解析170
6.4.2Logs的底层接口173
6.4.3事件的查询174
6.4.4事件查询过程174
6.5库和链接原理175
6.5.1库的定义175
6.5.2库的使用175
6.5.3库的连接176
6.5.4库中的事件176
6.6智能合约元数据177
6.7智能合约安全性分析179
6.7.1智能合约中的陷阱179
6.7.2建议182
6.7.3案例分析:资金回退流程183
6.8智能合约和外界的通信184
6.8.1oracle介绍184
6.8.2oracle需要解决的问题185
6.8.3数据商店185
6.9智能合约的动态升级185
6.9.1solidity是一个受限的语言185
6.9.2动态升级的实现186
6.10智能合约的数据存储187
6.10.1存储187
6.10.2内存187
6.10.3栈188
6.11本章小结188
第7章智能合约字节码与汇编189
7.1智能合约汇编指令集189
7.2智能合约字节码解析192
7.3状态变量的存储196
7.3.1普通状态变量的存储196
7.3.2动态数据的storage存储198
7.3.3总结201
7.4solidity内嵌汇编201
7.4.1内嵌汇编指令201
7.4.2单独使用汇编指令203
7.5本章小结204
第8章开发者工具205
8.1MetaMask205
8.1.1MetaMask安装205
8.1.2MetaMask作为Web钱包206
8.1.3MetaMask作为DApp客户端207
8.2以太坊测试网络209
8.2.1Morden209
8.2.2Ropsten210
8.2.3Kovan210
8.2.4Rinkeby211
8.2.5本地以太坊私链212
8.2.6连接测试网络213
8.3Remix213
8.3.1本地安装Remix213
8.3.2在线Remix214
8.4truffle217
8.4.1安装truffle218
8.4.2构建应用项目218
8.4.3demo合约实践220
8.4.4智能合约测试和验证221
8.5myetherwallet222
……
第9章企业以太坊
0章跨链
1章展望
内容简介
这是一本从原理和实践两个层面系统、深入讲解以太坊技术的专著,从设计理念、技术架构、共识算法、智能合约、以太坊虚拟机、开发工具、DApp开发、企业以太坊解决方案、跨链技术等近10个方面进行了详细讲解,既适合初学者系统学习以太坊的原理和应用开发,又适合有一定基础的开发者深入掌握以太坊的底层运行机制。全书一共11章:~3章对以太坊的系统架构、设计理念和技术架构进行了系统介绍,包括以太坊项目的起源和发展路线图、核心技术、共识问题、图灵完备性、整体设计思路和各模块的核心功能实现等核心内容。第4章深入剖析了PoW、PoA、PoS等共识算法的适用场景、设计思想、技术实现和优缺点。第5~7章围绕智能合约展开,系统讲解了智能合约语言Solidity、智能合约应用开发、智能合约运行原理和实现细节,以及以太坊虚拟机的运行原理和智能合约字节码的解析等内容。第8章介绍了以太坊周边的工具,教读者如何在不开......
评论晒单