区块链技术丛书 区块链开发实战:Hyperledger Fabric关键技术与案例分析
作者:冯翔,刘涛,吴寿鹤,周广益 著
出版时间:2018
丛编项: 区块链技术丛书
内容简介
本书是“区块链开发实战”系列的第1本,旨在让零基础的读者也能迅速掌握Hyperledger Fabric的各种基本概念、关键技术、工作原理、应用开发方法。作者是国内区块链领域的早期实践者和布道者,Hyperledger核心项目的核心开发者,在区块链技术开发领域积累了丰富的项目经验,这本书得到了ChinaLedger技术委员会主任白硕、MATRIX区块链首席AI科学家邓仰东、阿希链CTO钱汉涛、元界CEO陈浩等多位专家的鼎力推荐。 全书主要内容在逻辑上分为三个部分: 第一部分 准备篇(第1~2章)这部分介绍了从事区块链开发需要具备的预备知识,如区块链的各种概念的了解、开发环境的搭建和开发工具的使用等。 第二部分 以太坊篇(第3~13章) 这部分是本书的核心内容,系统、全面地讲解和分析了Hyperledger Fabric的各种基本概念、关键技术、工作原理,以及应用开发方法。如Hyperledger的技术体系,以及Hyperledger Fabric的基本概念、核心模块、账号体系、智能合约、编程接口、系统架构设计、应用开发流程。除此之外,还有区块链浏览器、供应链金融和食品溯源方面的3个综合案例。 第三部分 扩展篇(附录) 详细介绍了比特币的工作原理、运行方式、功能模块、编程接口,以及基于比特币的应用开发方法,对于想研究比特币技术原理和从事比特币应用开发的读者来说,是一份难得的资料。
目录
Contents?目 录
前言
第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.2Hyperledger中与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.1Fabric的核心模块功能、通用选项和命令 67
5.1.1 Fabric核心模块及其功能 67
5.1.2 Fabric模块的通用选项和命令 68
5.2Fabric模块的子命令、选项和配置文件 68
5.2.1 cryptogen 69
5.2.2 conf?igtxgen 74
5.2.3 conf?igtxlator 77
5.2.4 orderer 79
5.2.5 peer 85
5.3 Fabric模块在系统中的作用 92
5.3.1peer模块在Fabric系统中的作用 92
5.3.2orderer模块在Fabric系统中的作用 95
5.4Fabric数据安全传输的方式 95
5.4.1Fabric中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.2fabric-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.3Golang版本的Chaincode的代码结构 125
7.3.1 Chaincode源代码的基本结构 125
7.3.2 shim包的核心方法 127
7.3.3ChaincodeStubInterface接口中的核心方法 128
7.4Chaincode相关的操作命令和选项 136
7.5如何通过Chaincode进行交易的endorse 140
7.6 Chaincode的调试方法 142
7.6.1Chaincode在Docker容器之外的运行 142
7.6.2 Chaincode在IDE中的调试 145
7.7 本章小结 148
第8章Fabric和Fabric-ca的编程接口 149
8.1Fabric接口的通信协议和功能划分 149
8.2 Fabric Nodejs SDK的使用 151
8.2.1如何获取Fabric Nodejs SDK源代码 151
8.2.2快速构建基于Nodejs的Fabric客户端 151
8.2.3Fabric Nodejs SDK中TLS的设置 159
8.3 Fabric Java SDK 160
8.3.1 Fabric Java SDK的安装 160
8.3.2Fabric Java SDK的常用接口 161
8.3.3Fabirc 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.4Fabric Golang SDK其他用法 174
8.4.5Fabric 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中Channe