[套装书]区块链开发实战:基于JavaScript的公链与DApp开发+区块链开发实战:Hyperledger Fabric关键技术与案例分析(2册)

作者
梁培利 曹帅 吴延毅冯翔 刘涛 吴寿鹤 周广益
丛书名
区块链技术丛书
出版社
机械工业出版社
ISBN
9787190816114
简要
简介
内容简介书籍计算机书籍 ---------------------------区块链开发实战:基于JavaScript的公链与DApp开发--------------------------- 随着区块链技术的火热以及区块链应用开发平台的出现,越来越多的普通开发者都需要掌握区块链应用的开发,本书可带领读者快速入门区块链开发。 本书由ASCH 核心开发工程师撰写,深入浅出地介绍了区块链应用的开发方法与技巧,任何有JavaScript基础的开发人员都可以掌握,分为三大部分,第一部分“区块链”介绍区块链技术简史、商业价值、核心概念、账户模型、主流区块链项目、区块链领域的新技术,并带领读者用300行代码实现一个区块链系统。第二部分“ASCH 源码解读”详细介绍ASCH的技术架构、ASCH启动过程、加密和验证方式、P2P技术、交易流程、区块链实现、DPOS+PBFT、侧链技术实现等。第三部分“去中心化应用(DApp)开发”介绍一个综合DApp案例开发,包括准备工作、DApp 开发工具、搭建开发环境、设计数据结构、实现业务逻辑、引入主链资产、如何对 DApp 进行测试、发布方式等。 ---------------------------区块链开发实战:Hyperledger Fabric关键技术与案例分析--------------------------- 本书以HyperledgerFabric和比特币这两个典型区块链技术平台的核心技术、开发方法和相关的项目案例为核心内容,还提供了大量的命令脚本和代码示例供读者参考,力图使读者在短的时间内掌握这两个平台的使用方法。本书首先从基本认识的角度对区块链进行了宏观上的介绍,然后讲解了HyperledgerFabric的核心技术、原理、开发方法,以及多个项目案例,后讲解了比特币的原理、运行方式、重要模块和编程接口等内容,环环相扣,结构紧密,体系严谨。
目录



---------------------------区块链开发实战:基于JavaScript的公链与DApp开发---------------------------


序言
前言
第一部分 区块链开发概述
第1章 自己动手实现一个区块链系统3
1.1 从比特币到区块链3
1.1.1 比特币的诞生和发展3
1.1.2 区块链5
1.2 用300 行代码开发一个区块链系统13
1.2.1 区块和区块链的创建13
1.2.2 工作量证明19
1.2.3 提供和区块链进行交互的API22
1.3 本章总结30
第2章 DApp开发简介32
2.1 智能合约32
2.2 DApp简介34
2.3 区块链应用开发平台简介37
2.3.1 以太坊38
2.3.2 Asch40
2.3.3 Hyperledger41
2.4 本章总结42
第二部分 Asch源码解读
第3章 Asch—区块链应用开发平台47
3.1 Asch的诞生和架构47
3.2 开发工具50
3.3 客户端的基本使用50
3.4 如何基于 Asch 注册自己的资产55
3.5 DApp案例简介57
3.6 本章总结58
第4章 Asch源码概览59
4.1 Asch生态架构59
4.2 asch库简要解读60
4.2.1 数据结构61
4.2.2 合约62
4.2.3 接口63
4.2.4 配置文件64
4.3 asch-core库简要解读64
4.4 Asch主链的启动流程66
4.4.1 app.js66
4.4.2 index.js68
4.4.3 runtime.js69
4.4.4 init.js70
4.5 本章总结72
第5章 账户与安全73
5.1 区块链里的密码学73
5.1.1 非对称加密73
5.1.2 ECDSA算法75
5.2 Asch的账户生成流程80
5.2.1 BIP 3980
5.2.2 ED2551982
5.3 Asch的账户类型82
5.4 本章总结84
第6章 共识机制86
6.1 拜占庭将军问题86
6.2 区块链的共识算法88
6.3 从 DPoS 到 PBFT89
6.3.1 DPoS算法89
6.3.2 PBFT算法91
6.4 共识算法源码解读93
6.4.1 base/consensus.js94
6.4.2 core/delegates.js96
6.5 本章总结102
第7章 区块104
7.1 区块链的数据结构104
7.2 区块的源码解读105
7.2.1 base/block.js106
7.2.2 core/blocks.js110
7.3 本章总结122
第8章 交易123
8.1 Asch上的交易类型123
8.2 交易的生命周期及其实现124
8.2.1 创建交易124
8.2.2 广播交易127
8.2.3 验证交易127
8.2.4 写入区块链129
8.3 本章总结130
第9章 跨链实现132
9.1 跨链技术的提出与探索132
9.2 比特币多签名交易的实现135
9.2.1 m-of-n 多签名交易的脚本135
9.2.2 多签名脚本的执行136
9.2.3 比特币里实现多签名交易137
9.2.4 兑现多签名交易142
9.3 Asch的跨链实现149
9.3.1 网关提案的发起与投票150
9.3.2 跨链账户的开通156
9.3.3 对跨链网关的充值与提现159
9.3.4 对跨链网关的提现160
9.4 本章总结166
第三部分 DApp开发实战
第10章 DApp设计与开发环境搭建169
10.1 DApp整体设计169
10.1.1 前期准备169
10.1.2 业务需求描述170
10.1.3 角色171
10.1.4 经济模型172
10.1.5 代码设计174
10.1.6 DApp 的结构176
10.2 开发环境搭建184
10.2.1 Asch 的网络类型184
10.2.2 配置 localnet185
10.2.3 DApp Demo187
10.3 本章总结193
第11章 DApp合约开发与接口实现194
11.1 DApp合约的开发194
11.1.1 创建频道(createChannel)195
11.1.2 更新频道(updateChannel)198
11.1.3 发布文章(postArticle)199
11.1.4 打赏文章(voteArticle)202
11.1.5 抽奖设计207
11.1.6 发布评论(postComment)208
11.1.7 点赞评论(likeComment)209
11.1.8 举报(report)210
11.1.9 结算抽奖(calculatePrize)211
11.1.10 领取奖励(getReward)214
11.2 DApp 接口的实现215
11.2.1 频道接口217
11.2.2 文章接口219
11.2.3 投票接口222
11.3 DApp的前端实现224
11.3.1 登录224
11.3.2 调用合约225
11.3.3 调用接口226
11.4 本章总结226
第12章 DApp测试227
12.1 测试准备227
12.1.1 初始化函数227
12.1.2 区块等待229
12.1.3 账户生成与转账229
12.2 合约流程测试233
12.3 本章总结238



---------------------------区块链开发实战:Hyperledger Fabric关键技术与案例分析---------------------------


前言
第1章 全面认识区块链 1
1.1 区块链技术的起源和解释 1
1.2 区块链的核心技术及其特性 2
1.2.1 区块链技术的特性 3
1.2.2 区块链的分布式存储技术特性 3
1.2.3 区块链的密码学技术特性 4
1.2.4 区块链中的共识机制 8
1.2.5 区块链中的智能合约 12
1.3 区块链技术演进过程 13
1.4 区块链技术的3个缺点 13
1.5 区块链技术常见的4个错误认识 14
1.6 区块链技术的应用领域 15
1.6.1 区块链在金融行业的应用 15
1.6.2 区块链在供应链中的应用 16
1.6.3 区块链在公证领域的应用 17
1.6.4 区块链在数字版权领域的应用 18
1.6.5 区块链在保险行业的应用 19
1.6.6 区块链在公益慈善领域的应用 21
1.6.7 区块链与智能制造 22
1.6.8 区块链在教育就业中的应用 23
1.7 区块链的其他常见技术框架 24
1.8 本章小结 25
第2章 实战准备 26
2.1 开发环境准备 26
2.1.1 操作系统的配置 26
2.1.2 Docker的使用 27
2.1.3 Git的使用 30
2.2 开发语言 30
2.2.1 GO语言 30
2.2.2 Node.js 32
2.3 常用工具 32
2.3.1 Curl 32
2.3.2 tree 33
2.3.3 Jq 33
2.4 本章小结 34
第3章 Hyperledger简介 35
3.1 Hyperledger综述 35
3.1.1 Hyperledger的项目背景 35
3.1.2 Hyperledger的项目成员 36
3.2 Hyperledger的体系结构 37
3.2.1 获取Hyperledger源代码并成为开发者 37
3.2.2 Hyperledger的9个正式项目 38
3.3 本章小结 43
第4章 Fabric快速入门 44
4.1 Fabric的技术特性 44
4.1.1 Fabric的多账本特性 44
4.1.2 Fabric的智能合约 45
4.1.3 Fabric的权限系统 46
4.1.4 Fabric的共识算法 47
4.2 Hyperledger中与Fabric相关的项目 47
4.3 Fabric的模块、安装和使用 48
4.3.1 Fabric的编译和安装 49
4.3.2 Fabric模块安装结果检查 50
4.3.3 利用Docker运行Fabric相关模块 51
4.4 快速运行一个简单的Fabric网络 53
4.4.1 Fabric环境准备 53
4.4.2 生成Fabric需要的证书文件 54
4.4.3 创始块的生成 56
4.4.4 Orderer节点的启动 59
4.4.5 Peer节点的启动 60
4.4.6 创建通道 64
4.4.7 Chaincode的部署和调用 65
4.5 本章小结 66
第5章 Fabric核心模块详解 67
5.1 Fabric的核心模块功能、通用选项和命令 67
5.1.1 Fabric核心模块及其功能 67
5.1.2 Fabric模块的通用选项和命令 68
5.2 Fabric模块的子命令、选项和配置文件 68
5.2.1 cryptogen 69
5.2.2 configtxgen 74
5.2.3 configtxlator 77
5.2.4 orderer 79
5.2.5 peer 85
5.3 Fabric模块在系统中的作用 92
5.3.1 peer模块在Fabric系统中的作用 92
5.3.2 orderer模块在Fabric系统中的作用 95
5.4 Fabric数据安全传输的方式 95
5.4.1 Fabric中orderer模块TLS设置 95
5.4.2 Fabric中peer模块TLS设置 96
5.5 本章小结 98
第6章 Fabric的账号体系 99
6.1 Fabric账号简介 99
6.1.1 Fabric账号是什么 99
6.1.2 什么地方需要使用Fabric的账号 101
6.2 基于cryptogen的账号管理体系 103
6.3 Fabric账号服务器:Fabric-ca 106
6.3.1 Fabric-ca的编译和安装 107
6.3.2 fabric-ca-server的启动和配置 108
6.3.3 fabric-ca-client的使用 115
6.4 将fabric-ca-server绑定到现有项目中 117
6.5 本章小结 120
第7章 Fabric的智能合约详解 121
7.1 Chaincode初探 121
7.2 快速编写和运行一个Chaincode 122
7.3 Golang版本的Chaincode的代码结构 125
7.3.1 Chaincode源代码的基本结构 125
7.3.2 shim包的核心方法 127
7.3.3 ChaincodeStubInterface接口中的核心方法 128
7.4 Chaincode相关的操作命令和选项 136
7.5 如何通过Chaincode进行交易的endorse 140
7.6 Chaincode的调试方法 142
7.6.1 Chaincode在Docker容器之外的运行 142
7.6.2 Chaincode在IDE中的调试 145
7.7 本章小结 148
第8章 Fabric和Fabric-ca的编程接口 149
8.1 Fabric接口的通信协议和功能划分 149
8.2 Fabric Nodejs SDK的使用 151
8.2.1 如何获取Fabric Nodejs SDK源代码 151
8.2.2 快速构建基于Nodejs的Fabric客户端 151
8.2.3 Fabric Nodejs SDK中TLS的设置 159
8.3 Fabric Java SDK 160
8.3.1 Fabric Java SDK的安装 160
8.3.2 Fabric Java SDK的常用接口 161
8.3.3 Fabirc Java SDK中TLS的设置 169
8.4 Fabric Go SDK 170
8.4.1 Fabric Golang的安装 170
8.4.2 创建配置文件 170
8.4.3 一个简单的Golang访问Fabric的例子 171
8.4.4 Fabric Golang SDK其他用法 174
8.4.5 Fabric Golang SDK的背书操作 176
8.5 本章小结 176
第9章 Fabric系统架构设计 177
9.1 Fabric架构中的组织规划 177
9.1.1 确认组织 178
9.1.2 组织的管理方式 178
9.2 Fabric系统的结构 179
9.2.1 Fabric系统的逻辑结构 179
9.2.2 Fabric系统的物理结构 181
9.3 Fabric中Channel的设计 181
9.4 Chaincode 182
9.5 数据访问层 183
9.6 历史遗留系统的兼容 185
9.7 Fabric系统的维护和管理 186
9.8 本章小结 187
第10章 Fabric开发实战:开发流程与实例详解 188
10.1 Fabric项目的开发流程 188
10.2 Fabric项目开发实例详解 191
10.2.1 系统初始化 191
10.2.2 Orderer节点的初始化和启动 193
10.2.3 启动第一个Peer 198
10.2.4 Channel的创建和加入 200
10.2.5 启动当前组织的Fabric-ca 202
10.2.6 测试Chaincode的部署和开发 202
10.2.7 客户端的开发 203
10.2.8 启动本组织的其他Peer 205
10.2.9 其他组织Peer节点的加入 208
10.2.10 背书交易的测试 210
10.2.11 非初始化组织的加入 214
10.3 本章小结 220
第11章 基于Fabric的区块链浏览器项目实战 221
11.1 项目介绍 221
11.2 开发过程 222
11.2.1 项目准备 222
11.2.2 项目开发 222
11.3 本章小结 229
第12章 基于Fabric的供应链金融项目实战 230
12.1 供应链金融的背景知识和痛点 230
12.1.1 供应链金融的背景知识 230
12.1.2 供应链金融的痛点 231
12.1.3 用Fabric解决供应链金融痛点的方法 231
12.2 用Fabric构建供应链金融系统的方法 232
12.2.1 系统的设计 232
12.2.2 系统环境搭建 233
12.2.3 客户端开发 239
12.3 本章小结 244
第13章 基于Fabric的食品溯源项目实战 245
13.1 数据溯源的背景知识和痛点 245
13.1.1 数据溯源的背景知识 245
13.1.2 数据溯源的痛点 245
13.2 Fabric如何优化数据溯源系统 246
13.3 Fabric如何构建数据溯源系统 246
13.3.1 系统环境搭建 247
13.3.2 客户端开发 262
13.4 本章小结 271
附录A 比特币的原理和运行方式 272
附录B 比特币的bitcoin-cli模块详解 282
附录C 比特币系统的编程接口 292
附录D 比特币系统客户端项目实战 297
附录E 区块链相关术语 304



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4