猜你喜欢
区块链2.0实战:以太坊+Solidity编程从入门到精通

区块链2.0实战:以太坊+Solidity编程从入门到精通

书籍作者:黄振东 ISBN:9787121348778
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9897
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

  网络中的各种区块链知识虽然很多但难以构建成体系,本书根据读者的需求,以完整的体系介绍了当前*流行的区块链技术。全书从总体出发,介绍了区块链的发展历程、典型应用、在社会生活各方面的应用前景,并进一步深入到基础技术层面,详细介绍了区块链技术的各个组成部分,最后介绍了区块链2.0——以太坊的发展情况和开发编程,引导本书读者由远及近、由感性到理性、从原理到实践,建立起了全面的区块链知识体系,引导读者逐步深入地掌握区块链技术,并具备应用以太坊编程语言开发分布式应用程序的初步能力。

  《区块链2.0实战:以太坊+Solidity编程从入门到精通》以全球化的眼光专注于区块链技术的体系搭建,定位高端,专业性强,内容全面,便于实操,既适合金融行业的投资人员研究和掌握区块链的技术与商业价值,也适合想在区块链领域从事创业发展的创业者,还可以作为编程开发人员的参考资料,也适用于各类想了解区块链技术的大专院校作为学习资料。


作者简介

  黄振东

  经济管理学硕士,上市公司海外投资总监,长期关注全球金融、商业与投资领域的发展趋势,专注于金融、投资并购和互联网科技领域的前沿探索,应用深厚的理论框架和实践经验进行解读和分析,致力于从理论和实际操作层面掌握创新金融科技


编辑推荐
适读人群 :从事区块链项目投资的各类投资机构从业人员 希望进行区块链应用开发的软件开发人员 希望利用区块链开发创新业务的金融机构从业人员 大专院校金融或互联网科技等相关专业的学生 从事区块链研究的专家学者

  系统:囊括区块链4个层次、12个模块、100+知识点

  专业:5年区块链研究经验,紧盯全球主流区块链开发

  深入:从宏观到微观,从总体到局部,深度解码硬核知识

  前沿:超过40组官方推荐源代码,借鉴主流通用编程案例


前言

  2017年下半年以来,区块链技术在全世界掀起了又一轮高潮,无论是金融行业的从业人员、投资专家,还是普通的股民,甚至是从未接触过金融科技的人士,从网络、移动终端上都能感受到区块链的热浪。2018年春节期间,不眠不休的“三点钟投资群”也再次点燃了许多人的热情。更不用说,各种虚拟货币的币值剧烈波动,吸引了大量的资金投入进来。在全社会各个阶层的人们越来越多的投入到区块链领域时,许多国家的政府也在加强对区块链的监管,比如中国央行等7部委在2017年9月4日专门出台政策规范区块链领域的融资乱象,2018年1月中国央行再次强化对区块链领域虚拟货币的监管政策。进入到2018年中期,区块链带给全社会的热潮逐渐散去,虚拟货币的币值也逐步向价值回归,在这一轮炒作过去之后,区块链留给我们的,更多的是思考和行动。

  勿庸讳言,区块链技术是一种具备强大生命力的、可以改变现有商业规则的新技术。在一波又一波的热潮洗礼下,许多人都了解到区块链的一些特点,比如去中心化、分布式账本、不对称加密以及无法篡改的特点,也能说出一些基本道理。但是如果再深入思考,到底是什么是区块链技术?它的技术架构和技术体系是什么样的?面对这样体系化的问题,人们如果仅凭自已从社交媒体上获得的关于区块链的碎片式知识,显然是难以回答的,进而也难以在认知上建立起体系化的区块链知识结构。

  另外,从2009年1月比特币的首次出现到现在,区块链技术进入到人类社会已经过去了近10年,这期间的过程虽然有所曲折,但区块链技术在全球总的发展态势还是在向人们生活的各个层面不断深入之中,以软件版本为类比,区块链已经走过了1.0阶段,区块链2.0也已经成为很多从业人士的日常工作内容,区块链3.0正在向普通人走来,因此在这样一个时点上,如果想要了解区块链,除了从原理和基础知识上来掌握以外,更重要的还是进入到操作层面,从区块链2.0的以太坊应用开发入手,在具体实践中获得对于区块链的全新认知,正如古语有云:纸上得来终觉浅,绝知此事要躬行。

  从这一角度出发,本书选择了“体系化的知识结构”和“可操作性的开发指南”2个层面,为读者构建了区块链的知识体系,包括区块链的总体架构、发展历程、系统构造、基础技术等方面的内容,令读者对于区块链技术建立一个由宏观到微观的总体结构性认知;然后引领读者转入到区块链2.0——以太坊的深入了解过程,在区块链公有知识的基础上认识以太坊的独特之处,并由此进入到使用以太坊最流行语言Solidity的介绍,在了解Solidity语言的基础知识之后,以最鲜活的编程实践引导读者灵活运用Solidity语言开发出自已需要的区块链分布式应用(Dapp)。

  区块链是一项十分前沿的金融科技,为此,本书坚持全球化的视野,很多内容直接采用欧美区块链行业的信息,在编程开发的案例中也选用更新日期最近的开发案例,突出地展示了本书对时效性、紧盯科技前沿的鲜明特点。在写作方式上,本书采用了大量的图表,以图文并茂的方式增强可读性;全书行文朴实自然,力求表述准确,令读者可以清晰掌握区块链这种具备较强数理特性的技术。

  总之,关于区块链,我们已经讨论了很多,现在,是时候进入操作阶段了。

  因受作者水平和成书时间所限,本书难免存有疏漏和不当之处,敬请指正。

  本书特色

  1.内容全面、结构清晰,有助于读者建立区块链的系统性认知体系

  本书系统而全面地介绍了区块链技术的知识体系,从宏观到微观、从总体到局部、从感性认知到理性知识,有利于读者建立全面的区块链知识体系,不再局限于碎片式阅读产生的点状知识图,符合人们从浅层学习提升到深入思考的要求。

  2.行文朴实自然,表述准确,有利于促进读者对区块链技术的理解

  本书介绍的区块链知识体系、原理,以及采用以太坊编程开发的内容,都采用朴实自然的语言,在兼顾专业性、准确性的前提下,尽量做到行文通俗易懂,以便于读者阅读和掌握,提升对于区块链的掌握水平。

  3.充分使用图表方式,将抽象事物形象化

  由于区块链技术是一种数理性较强的技术,因此本书在介绍一些过于专业的知识点时,使用大量的图表来补充说明,通过这种方式使原本专业性很强的知识或信息转变为清晰、易理解的内容,促进本书的可读性。

  本书内容及体系结构

  第1章 区块链基础

  本章从宏观方面对区块链技术进行“空间扫描”,为读者呈现了区块链技术的总体图像,解释了区块链的定义,回顾了区块链技术在全球的发展历程和现状,着重介绍了区块链在中国的发展现状以及发展前景。

  第2章 区块链商业价值

  本章以区块链在国内商业环境下的5个典型行业——银行业、电子商务、法律行业、影音娱乐和媒体、医疗行业的商业价值,分析了区块链对于解决当前这些行业痛点、提升效率的价值,点明了区块链的商业价值。

  第3章 区块链技术原理

  本章首先介绍了区块链技术最成熟应用——比特币的技术原理、组成部分和运行机制,由此提炼并引申介绍了区块链的技术原理、系统框架、分布式网络等基础原理。

  第4章 区块链共识机制

  本章介绍了区块链技术最重要的运作机制——共识机制,并逐一介绍了当前最主流3种共识机制的详细情况。此外还介绍了区块链在不同规模等级下的3种区块链类型,以及各自的应用案例。

  第5章 区块链数据结构

  本章介绍了区块链的数据结构、区块链技术所依赖的核心算法哈希算法,并深入介绍了区块链不对称加密所用的椭圆曲线加密算法,在此基础上介绍了区块链的运行机制,以及怎样对区块的数据进行解读。

  第6章 以太坊区块链

  前3章为读者搭建了区块链技术的总体了解和完整体系,从第4章开始读者将深入到区块链2.0的世界,对以太坊区块链进行深入的了解。本章介绍了以太坊的创立和发展过程,并着重介绍了以太坊的各项技术原理。

  第7章 以太坊应用开发基础

  为了促进读者对于以太坊的实践应用,本章聚焦于介绍以太坊应用开发基础,主要是介绍5种常见的以太坊应用开发环境,对每种应用开发环境则介绍了其搭建的具体操作过程。另外本章还引入了对主流以太坊编程语言Solidity语言的初步介绍。

  第8章 Solidity开发基础

  本章介绍了Solidity语言的各种基础知识,为读者应用Solidity语言进行分布式应用开发打下坚实基础。其中,分别介绍了Solidity语言的17种数据类型、10种控制结构,另外着重介绍了以太坊合约和Solidity汇编过程,其中以太坊合约是分布式应用(Dapp)的核心要素。

  第9章 Solidity语言开发以太坊游戏

  本章介绍了一个采用Solidity语言开发以太坊游戏的实践案例,以实践案例来引导读者对灵活应用Solidity语言的各种基础元素开发自已的应用程序。其中,介绍了以太坊游戏的特点、开发准备,并介绍了以太坊游戏Influence的代码框架,并对其主要源代码进行了分析和解读。

  本书读者对象

  从事区块链项目投资的各类投资机构从业人员

  希望进行区块链应用开发的软件开发人员

  希望利用区块链开发创新业务的金融机构从业人员

  大专院校金融或互联网科技等相关专业的学生

  从事区块链研究的专家学者


目录

第1章 区块链基础 1

1.1 什么是区块链 1

1.1.1 定义区块链 2

1.1.2 区块链运行流程和特点 5

1.1.3 区块链类型 6

1.2 区块链的发展经过和现状 7

1.2.1 区块链产生的背景 7

1.2.2 比特币的诞生 9

1.2.3 比特币的底层技术是区块链 11

1.2.4 区块链全球发展的不均衡特点 12

1.2.5 区块链在全球的发展现状 13

1.3 区块链在中国的发展现状 18

1.3.1 重视底层突破,区块链技术创新加速 18

1.3.2 资本快速进入,区块链融资增长迅猛 19

1.3.3 全产业链布局,区块链应用领域逐步拓展 19

1.3.4 抱团发展,各种区块链行业组织纷纷成立 20

1.4 中国区块链行业发展前景 21

1.4.1 90后创业者人群大量入场 22

1.4.2 大型企业积极参与,区块链技术基础更加深厚 22

1.4.3 各地政府高度支持区块链 23

第2章 区块链的商业价值 24

2.1 区块链在银行业的应用 24

2.1.1 区块链对银行业的改变 25

2.1.2 国内银行业的区块链应用 25

2.2 区块链与电子商务 28

2.3 区块链在法律行业的应用 30

2.3.1 区块链证据 31

2.3.2 智能交易 31

2.3.3 区块链权证 32

2.4 区块链应用于影音娱乐和媒体业 33

2.5 区块链在医疗行业的应用 35

2.6 结语 37

第3章 区块链技术原理 39

3.1 比特币带来了区块链 39

3.2 比特币白皮书 41

3.2.1 简介 41

3.2.2 交易 42

3.2.3 时间戳服务器 43

3.2.4 工作量证明 44

3.2.5 网络 45

3.2.6 激励 46

3.2.7 回收硬盘空间 46

3.2.8 简化的支付确认 47

3.2.9 价值的组合与分割 48

3.2.10 隐私 49

3.2.11 计算 49

3.2.12 结论 52

3.3 比特币系统的参与者 53

3.4 比特币区块 56

3.4.1 比特币交易过程 56

3.4.2 比特币挖矿 57

3.5 长链与短链 59

3.6 比特币的安全性 61

3.7 比特币挖矿设备的发展 62

3.7.1 比特币挖矿设备的发展阶段 63

3.7.2 矿机与矿场 64

3.7.3 矿池 66

3.7.4 云挖矿的应用 68

3.8 比特币交易中的非对称加密 69

3.8.1 非对称加密原理 69

3.8.2 生成钱包地址 72

3.8.3 交易加密过程 73

3.9 从比特币到区块链 75

3.10 区块链的系统框架 77

3.11 分布式网络 79

3.11.1 分布式网络(又称P2P网络) 79

3.11.2 分布式网络的特点 80

3.11.3 分布式网络的两种架构 81

3.12 广播与验证机制 83

3.12.1 广播 84

3.12.2 验证 85

第4章 区块链共识机制 87

4.1 共识机制的意义 87

4.2 工作量证明机制(PoW) 88

4.2.1 哈希函数 89

4.2.2 工作量证明的基本原理 90

4.2.3 比特币的工作量证明过程 91

4.2.4 工作量证明机制PoW的优缺点 94

4.3 权益证明机制(PoS) 94

4.3.1 PoS与PoW的区别 95

4.3.2 PoS区块创建 98

4.3.3 PoS发展过程 99

4.4 授权股权证明机制(DPoS) 100

4.4.1 DPoS概述 100

4.4.2 选举见证人 101

4.4.3 授权代表 102

4.5 区块链的三大类型 103

4.5.1 公有链 103

4.5.2 私有链 105

4.5.3 联盟链 107

第5章 区块链数据结构 110

5.1 区块链的数据结构 110

5.1.1 区块的数据结构 111

5.1.2 区块链数据结构的技术基础 112

5.1.3 哈希值 113

5.1.4 Merkle根 114

5.1.5 时间戳 117

5.1.6 难度目标值Difficulty Target 118

5.1.7 Nonce随机数 120

5.2 区块链技术的算法 121

5.2.1 哈希算法概况 121

5.2.2 SHA256算法 124

5.3 椭圆曲线加密算法 131

5.3.1 椭圆曲线加密算法的特点 131

5.3.2 椭圆曲线加密算法的数学原理 132

5.3.3 椭圆曲线加密算法的加密原理 138

5.4 区块链运行机理 140

5.5 区块链的交易机理 141

5.5.1 交易流程 141

5.5.2 比特币钱包 143

5.5.3 交易身份验证 144

5.6 区块链的造链机理 146

5.6.1 验证接收信息 146

5.6.2 创建区块 149

5.7 区块数据解读 154

第6章 以太坊Ethereum区块链 162

6.1 以太坊概述 162

6.2 以太坊的创立和发展 163

6.3 以太坊技术原理 166

6.3.1 以太坊与比特币的联系 166

6.3.2 以太坊账户 168

6.3.3 交易和消息 169

6.3.4 燃料(Gas) 170

6.3.5 合约 172

6.3.6 智能合约示例 178

6.3.7 以太坊挖矿 180

6.3.8 以太坊区块 184

第7章 以太坊应用开发基础 196

7.1 以太坊开发环境的建立 196

7.2 Geth开发环境 199

7.2.1 初次启动 199

7.2.2 命令行安装模式 200

7.2.3 Geth的使用 201

7.2.4 Geth在私有链上的应用 203

7.3 轻节点模式 208

7.3.1 Ganache图形界面 208

7.3.2 安装Truffle 210

7.3.3 运行Ganache 212

7.4 网页模式 214

7.5 Mist浏览器 218

7.5.1 Mist安装 219

7.5.2 Mist应用 222

7.6 用MetaMask建立开发账户 226

7.7 以太坊开发的编程语言Solidity 230

7.7.1 Solidity简介 231

7.7.2 Solidity语言的常用语句 231

7.7.3 Solidity程序初步解读 237

第8章 Solidity开发基础 240

8.1 Solidity语言的数据类型 241

8.1.1 数值类型 241

8.1.2 地址类型 243

8.1.3 字节数组 245

8.1.4 地址常量 246

8.1.5 有理数和整数常量 246

8.1.6 字符串常量 247

8.1.7 十六进制常量 248

8.1.8 枚举类型 248

8.1.9 函数类型 249

8.1.10 数据位置 252

8.1.11 数组 253

8.1.12 结构structs 256

8.1.13 映射(mapping) 258

8.1.14 包含左值的运算符 259

8.1.15 删除delete 259

8.1.16 基本类型的转换 260

8.1.17 类型推导 261

8.2 Soldity语言的表达式和控制结构 262

8.2.1 函数的输入参数和输出参数 262

8.2.2 控制结构 263

8.2.3 返回多元值 263

8.2.4 函数调用 263

8.2.5 函数参数的显名调用 264

8.2.6 省略函数参数的名称 265

8.2.7 在合约中创建新合约 265

8.2.8 解构赋值和返回多元值 266

8.2.9 范围和声明 267

8.2.10 错误处理:断言、请求、还原与异常 268

8.3 以太坊合约 271

8.3.1 创建合约 271

8.3.2 可见性 273

8.3.3 取值函数 275

8.3.4 函数修饰符 276

8.3.5 常数状态变量 278

8.3.6 视图函数 278

8.3.7 纯函数(Pure Functions) 279

8.3.8 后备函数(Fallback Functions) 279

8.3.9 函数重载 280

8.3.10 事件 281

8.3.11 继承 283

8.3.12 构造器 286

8.3.13 抽象合约 287

8.3.14 接口 288

8.3.15 库 288

8.3.16 用于“using for” 292

8.4 Solidity汇编 293

8.4.1 内联汇编 293

8.4.2 句法 295

8.4.3 操作码 295

8.4.4 访问外部变量和函数 298

8.4.5 本地汇编变量的声明 299

8.4.6 赋值 300

8.4.7 if语句 300

8.4.8 switch语句 300

8.4.9 循环 301

8.4.10 函数 302

8.4.11 独立汇编 302

第9章 Solidity语言开发以太坊游戏 305

9.1 以太坊游戏的特点 305

9.2 以太坊游戏开发准备 307

9.3 以太坊游戏Influence代码框架 309

9.4 以太坊游戏Influence源代码解读 312

9.4.1 游戏界面 313

9.4.2 库文件lib 315

9.4.3 游戏主功能:小行星拍卖 324

9.4.4 游戏主功能:小行星代币 332

9.4.5 小结 342

后记 深入区块链,用技术改变未来 343


短评

我就是刷个评论,每次买书都是挺好的 这个不错的我比较喜欢

2018-10-17 10:50:08