新書推薦:
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:NT$
305.0
《
560种野菜野果鉴别与食用手册
》
售價:NT$
305.0
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
《
锂电储能产品设计及案例详解
》
售價:NT$
505.0
《
首辅养成手册(全三册)
》
售價:NT$
551.0
《
清洁
》
售價:NT$
296.0
《
组队:超级个体时代的协作方式
》
售價:NT$
352.0
《
第十三位陪审员
》
售價:NT$
245.0
|
編輯推薦: |
(1)作者是中国以太坊企业联盟的联合发起人和核心成员,是中国区块链和以太坊技术的早期布道者。(2)三位作者在中兴、华为等大企业工作多年,有丰富的系统架构和软件开发经验,技术功底深厚。(3)从设计理念、技术架构、共识算法、智能合约、DApp开发、以太坊虚拟机等近10个维度系统、深入讲解以太坊。
|
內容簡介: |
内容简介
这是一本从原理和实践两个层面系统、深入讲解以太坊技术的专著,从设计理念、技术架构、共识算法、智能合约、以太坊虚拟机、开发工具、DApp开发、企业以太坊解决方案、跨链技术等近10个方面进行了详细讲解,既适合初学者系统学习以太坊的原理和应用开发,又适合有一定基础的开发者深入掌握以太坊的底层运行机制。
全书一共11章:
第1~3章对以太坊的系统架构、设计理念和技术架构进行了系统介绍,包括以太坊项目的起源和发展路线图、核心技术、共识问题、图灵完备性、整体设计思路和各模块的核心功能实现等核心内容。
第4章深入剖析了PoW、PoA、PoS等共识算法的适用场景、设计思想、技术实现和优缺点。
第5~7章围绕智能合约展开,系统讲解了智能合约语言Solidity、智能合约应用开发、智能合约运行原理和实现细节,以及以太坊虚拟机的运行原理和智能合约字节码的解析等内容。内容简介
这是一本从原理和实践两个层面系统、深入讲解以太坊技术的专著,从设计理念、技术架构、共识算法、智能合约、以太坊虚拟机、开发工具、DApp开发、企业以太坊解决方案、跨链技术等近10个方面进行了详细讲解,既适合初学者系统学习以太坊的原理和应用开发,又适合有一定基础的开发者深入掌握以太坊的底层运行机制。
全书一共11章:
第1~3章对以太坊的系统架构、设计理念和技术架构进行了系统介绍,包括以太坊项目的起源和发展路线图、核心技术、共识问题、图灵完备性、整体设计思路和各模块的核心功能实现等核心内容。
第4章深入剖析了PoW、PoA、PoS等共识算法的适用场景、设计思想、技术实现和优缺点。
第5~7章围绕智能合约展开,系统讲解了智能合约语言Solidity、智能合约应用开发、智能合约运行原理和实现细节,以及以太坊虚拟机的运行原理和智能合约字节码的解析等内容。
第8章介绍了以太坊周边的工具,教读者如何在不开发代码的情况下完成与以太坊网络的交互。
第9章介绍了以太坊技术的企业级应用以及企业以太坊联盟的标准化进展。
第10章对跨链技术和方案进行了方向性探讨,虽然目前跨链技术还不成熟,但被视为后以太坊时代的区块链技术热点。
第11章分析了以太坊现阶段面临的发展瓶颈,并对可能的解决方案进行了展望。
|
關於作者: |
作者介绍
王欣
前浙江华信区块链技术总监,中国企业以太坊联合发起人,对以太坊有非常深入的研究。
曾就职于爱立信和中兴通讯,有10余年软件架构和国际项目咨询经验。目前专注于区块链底层协议、智能合约安全以及隐私保护的研究。
史钦锋
前浙江华信区块链研究员,负责以太坊智能合约相关技术的研究和开发,对以太坊底层技术原理、智能合约、跨链技术以及EOS等有非常深入的认识。
曾就职于中兴通讯、华为和北京赛思信安等公司,精通C、Python和Go等多门语言,有多年通信产品底层驱动、通信网络协议和后端核心业务开发经验。
程杰
资深区块链技术专家和架构师,对以太坊、EOS等开源区块链协议和各种共识算法有深入研究,负责DApp的整体软件方案设计。作者介绍
王欣
前浙江华信区块链技术总监,中国企业以太坊联合发起人,对以太坊有非常深入的研究。
曾就职于爱立信和中兴通讯,有10余年软件架构和国际项目咨询经验。目前专注于区块链底层协议、智能合约安全以及隐私保护的研究。
史钦锋
前浙江华信区块链研究员,负责以太坊智能合约相关技术的研究和开发,对以太坊底层技术原理、智能合约、跨链技术以及EOS等有非常深入的认识。
曾就职于中兴通讯、华为和北京赛思信安等公司,精通C、Python和Go等多门语言,有多年通信产品底层驱动、通信网络协议和后端核心业务开发经验。
程杰
资深区块链技术专家和架构师,对以太坊、EOS等开源区块链协议和各种共识算法有深入研究,负责DApp的整体软件方案设计。
曾就职于世界500强企业,有超过13年的软件行业和通信行业的研发经验,熟悉大型分布式、微服务软件架构、软件设计模式相关技术,对基于云计算、区块链、微服务和DevOps的软件架构栈有丰富的实践经验,对可落地的高并发、高可用的软件系统有自己的见解。
|
目錄:
|
前言
第1章 以太坊概述1
1.1 区块链起源1
1.2 以太坊发展之路3
1.3 以太坊核心技术6
1.3.1 智能合约6
1.3.2 PoS7
1.4 以太坊系统架构8
1.5 以太坊社区9
1.6 以太坊路线图10
1.7 本章小结11
第2章 设计理念12
2.1 密码学13
2.1.1 Hash13
2.1.2 椭圆曲线的加解密18
2.1.3 签名20
2.1.4 Merkle树和验证24
2.1.5 MPT状态树 24
2.2 共识问题28
2.2.1 分布式一致性问题28
2.2.2 Paxos 和Rfat30
2.2.3 拜占庭容错及PBFT31
2.2.4 以太坊IBFT共识33
2.2.5 PoW35
2.2.6 Casper36
2.2.7 以太坊性能38
2.3 图灵完备40
2.3.1 比特币脚本41
2.3.2 EVM虚拟机44
2.3.3 Gas机制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.3 P2P网络76
3.3.1 节点发现76
3.3.2 节点管理78
3.4 客户端84
3.4.1 RPC85
3.4.2 web388
3.5 本章小结89
第4章 共识算法90
4.1 PoW90
4.1.1 算法概述90
4.1.2 设计实现93
4.1.3 优缺点分析96
4.2 PoA97
4.2.1 算法概述97
4.2.2 设计实现99
4.2.3 优缺点分析102
4.3 PoS103
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.3 truffle126
5.4.4 智能合约编译器solc129
5.5 solidity语法详解130
5.5.1 智能合约源文件130
5.5.2 solidity数据类型132
5.5.3 智能合约的内建全局变量和函数141
5.5.4 智能合约中的单位143
5.5.5 solidity表达式和控制结构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.6 solidity编程规范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.1 ABI接口定义164
6.2.2 函数选择器165
6.2.3 参数编码165
6.2.4 abi编码举例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.2 Logs的底层接口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.1 oracle介绍184
6.8.2 oracle需要解决的问题185
6.8.3 数据商店185
6.9 智能合约的动态升级185
6.9.1 solidity是一个受限的语言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.4 solidity内嵌汇编201
7.4.1 内嵌汇编指令201
7.4.2 单独使用汇编指令203
7.5 本章小结204
第8章 开发者工具205
8.1 MetaMask205
8.1.1 MetaMask安装205
8.1.2 MetaMask作为Web钱包206
8.1.3 MetaMask作为DApp客户端 207
8.2 以太坊测试网络209
8.2.1 Morden209
8.2.2 Ropsten210
8.2.3 Kovan210
8.2.4 Rinkeby211
8.2.5 本地以太坊私链212
8.2.6 连接测试网络213
8.3 Remix213
8.3.1 本地安装Remix213
8.3.2 在线Remix214
8.4 truffle217
8.4.1 安装truffle218
8.4.2 构建应用项目218
8.4.3 demo合约实践220
8.4.4 智能合约测试和验证222
8.5 myetherwall
|
內容試閱:
|
2017年年初,IBM宣布在德国慕尼黑设立物联网事业部,旨在围绕区块链、安全,通过Watson物联网技术,从嵌在机器、汽车、无人驾驶飞机、滚珠轴承、设备部件甚至医院中的数十亿传感器中获取实时数据,构建全新的物联网。
身处物联网行业的我,隐约感觉到区块链将会成为新的研究方向,为传统行业带来新的助力。随后,我查阅了大量相关资料,想尽可能多地了解区块链。一个偶然的机会,我结识了南京一家区块链初创公司的技术负责人,并受邀加入他们的团队,开始全身心投入区块链行业中。
我的初始工作围绕以太坊开源项目展开,范围包括白皮书、黄皮书、源码、工具、共识算法、智能合约、雷电网络、零知识证明等。短短几个月的时间,我学习到的新知识比过去几年加起来还要多。没过几个月,本书的另外两位作者史钦锋和程杰也加入团队,并一起成立了以太坊技术研究小组。在大家的共同努力下,我们从理论到实践,完整地总结出一套借助以太坊技术实现区块链应用落地的技术方案。
一路走来,我们深深感受到区块链理论涉及的概念之多,技术涉及的门类之广。这对于一个初学者来说实属不易。另外,一些不法分子利用区块链技术创新之名,行招摇撞骗、掳掠钱财之实。作为相关从业人员,我们有能力,也有必要尽自己的微薄之力,将自己所学和心得体会用文字记录下来,让广大的读者客观理性地认识这个新事物。如若读者能就其中一两点产生共鸣,激发创新、创造的热情,那实在是意外的收获。
本书仅仅针对以太坊开源项目。回想笔者的工作经历,虽然也接触过其他项目,但总体比较来看,以太坊是最适合初学者入门的技术栈。因为以太坊技术社区在全球范围最完善,参考资料多;以太坊核心团队最具备极客精神,开发速度快;以太坊主网上线运行时间长,经历了最严苛的安全性检验;以太坊的目标最远大,它要成为世界的计算机。
本书共分11章。书中不仅归纳总结了以太坊项目的整体现状,也对未来的发展和技术走向进行了总体预测和分析。
第1章 从比特币说起,谈以太坊项目的起源,对项目整体情况做了概述。
第2章 从理论入手,介绍了以太坊知识体系的诸多概念,比如密码学、共识和图灵完备特性。
第3章 从架构入手,介绍了以太坊设计的整体思路、模块划分以及核心功能实现。
第4章 讨论共识,共识是区块链最核心的问题,共识的设计也是区块链的难点所在。从PoW到PoA,再到PoS,我们比较了各种共识算法的优缺点,也分析了不同算法的适用场景。
第5~7章 围绕智能合约展开讨论。智能合约是以太坊的最大创新点,它将区块链变成了可以服务任何行业、任何场景的可编程平台。从开发步骤、技术原理到底层实现,覆盖了智能合约软件支持的方方面面。对于偏向区块链技术应用的开发者,我们建议将学习重点放在第5章;对于偏向底层的区块链协议开发者,相信第6、7章会带给你不少收获。
第8章 指导读者熟练掌握以太坊周边的工具,在不开发代码的情况下,完成与以太坊网络的交互。
第9章 介绍了以太坊技术的企业级应用以及企业以太坊联盟的标准化进展。
第10章 对跨链方案进行了探讨。由于目前跨链技术还不成熟,本章仅对大体的技术方向做了介绍。跨链也被视为后以太坊时代的区块链技术热点,将引领区块链3.0时代的到来。
第11章 分析了以太坊现阶段面临的发展瓶颈,并对可能的解决方案进行了展望。
本书内容包罗万象,有项目概述、架构设计、实现细节和开发方法,适合对区块链理论和实现感兴趣的读者阅读,也适合作为技术手册,供读者遇到具体问题时查阅参考。由于区块链技术发展迅速,水平有限,书中难免存在错误或不当之处,希望得到广大读者的批评指正。后续,我们将通过线上专栏(https:zhuanlan.zhihu.comc_210509549)的方式,保持和读者的沟通,并针对大家感兴趣的话题进行讨论。
感谢带领我进入区块链行业的技术大咖Denny,感谢曾经一起工作的同事,也感谢为本书出版费尽心血的华章出版社的各位老师。在本书的编写过程中,占用了很多陪伴家人的时间,但得到了家人充分的鼓励与支持,深深地感谢他们。
王欣
|
|