本书从架构,核心部件,到实际开发,涉及多个维度,共11章。第1章,Hyperledger Fabric的认识与环境搭建。第2章,深入浅出Fabric架构设计。第3章,化繁为简自行搭建你的Fabric网络。第4章,全方位认识链码:链码作用及对链码进行管理与测试。第5章,链码开发与实践。第6章,深入MSP成员管理与Fabric CA服务实现。第7章,白话Fabric共识机制。第8章,Fabric中数据分发机制的实现。第9章,Fabric分布式账本数据存储。第10-13章,Web应用环境搭建、架构以及基于区块链技术的学历信息征信系统实现。
前 言
基 础 篇
第1章Hyperledger Fabric认知与环境搭建 3
1.1全面认识超级账本 3
1.1.1超级账本由来 3
1.1.2超级账本分类 4
1.1.3认识Hyperledger Fabric 4
1.2迈出第一步:搭建环境 5
1.2.1操作系统 5
1.2.2安装所需工具 5
1.3安装Hyperledger Fabric 10
1.3.1下载fabric-samples与二进制文件 10
1.3.2Hyperledger Fabric源码方式编译 12
1.4测试Hyperledger Fabric网络环境 17
1.4.1测试Hyperledger Fabric环境 18
1.4.2构建你的第一个Hyperledger Fabric网络 18
第2章深入浅出介绍Hyperledger Fabric架构设计 21
2.1透视逻辑架构与运行时架构 21
2.1.1逻辑架构 21
2.1.2运行时架构 22
2.2Hyperledger Fabric交易流程分析 24
2.3Hyperledger Fabric核心配置文件详解 28
2.3.1core.yaml详解 29
2.3.2orderer.yaml详解 36
第3章搭建自己的Hyperledger Fabric网络 39
3.1生成组织结构与身份证书 39
3.1.1与组织结构及身份证书关联的配置文件 39
3.1.2如何生成组织结构及身份证书 40
3.2不可或缺的配置文件 45
3.2.1conf?igtx.yaml配置文件指定的核心内容 45
3.2.2Orderer服务启动初始区块的创建 47
3.2.3创建必需的应用通道交易配置文件 48
3.2.4生成锚节点更新配置文件 49
3.3一分钟启动分布式网络 49
3.3.1网络服务的配置 50
3.3.2关联的docker-compose-base.yaml 52
3.3.3又被关联的peer-base.yaml 54
3.3.4启动网络 55
3.4以最快的方式完成应用通道的创建 57
3.4.1创建应用通道 57
3.4.2将节点加入应用通道 58
3.4.3更新锚节点 59
链 码 篇
第4章全方位认识链码:链码管理与测试 63
4.1初识链码:链码的概念与原理 63
4.2链码使用:安装、实例化、查询与调用 65
4.2.1安装链码 66
4.2.2实例化链码 66
4.2.3查询链码 67
4.2.4调用链码 67
4.3链码的其他操作:实现链码的打包与升级 69
4.3.1链码的打包与签名 69
4.3.2链码的升级 70
4.4开发模式下的测试:简化链码的测试过程 72
4.4.1启动网络 72
4.4.2构建并启动链码 73
4.4.3调用链码 74
第5章链码开发与实践 77
5.1如何利用Fabric提供的接口编写链码 77
5.1.1链码接口 78
5.1.2必要结构 78
5.2如何操作账本数据:熟悉链码相关API 79
5.3链码实现的Hello World 81
5.3.1链码开发 82
5.3.2链码测试 84
5.4动手编码一:链码实现资产管理 85
5.4.1资产链码开发 85
5.4.2链码测试 88
5.5动手编码二:链码实现转账 89
5.5.1转账链码开发 89
5.5.2链码测试 97
核 心 篇
第6章MSP成员管理与Hyperledger Fabric CA服务实现 101
6.1走进MSP 101
6.1.1MSP的定义与作用 101
6.1.2MSP的组成结构 102
6.1.3MSP应用 103
6.2认识与安装Hyperledger Fabric CA 105
6.3启动Hyperledger Fabric CA 107
6.3.1初始化 107
6.3.2快速启动 108
6.3.3配置数据库 109
6.3.4配置LDAP 110
6.4应用Hyperledger Fabric CA的客户端命令 111
6.4.1Hyperledger Fabric CA客户端命令 112
6.4.2查看AKI和序列号 116
第7章白话Hyperledger Fabric共识机制 118
7.1Hyperledger Fabric中的共识实现 118
7.1.1共识算法的属性和类型 118
7.1.2Hyperledger Fabric中的共识实现 120
7.2基于Kafka排序服务的实现 121
7.2.1指定Kafka实现排序服务 122
7.2.2配置网络环境 123
7.2.3启动网络 129
7.2.4测试Kafka排序服务 131
7.3多链及多通道实现 133
7.3.1多链及多通道 133
7.3.2应用多通道 135
第8章Hyperledger Fabric中数据分发机制的实现 139
8.1认识Gossip 139
8.1.1Gossip协议 139
8.1.2Gossip数据传输 140
8.2Hyperledger Fabric中数据同步的实现 141
8.2.1Hyperledger Fabric中的Gossip 141
8.2.2Hyperledger Fabric的数据同步实现 144
第9章Hyperledger Fabric分布式账本数据存储 147
9.1交易数据的存储 147
9.1.1区块链账本数据 147
9.1.2数据存储 150
9.2Hyperledger Fabric状态数据库 154
9.2.1CouchDB数据库简介 154
9.2.2CouchDB在Hyperledger Fabric中的具体实现 154
9.2.3测试CouchDB 159
项目实战篇
第10章 Web项目实战之环境搭建 165
10.1 环境准备清单 165
10.2 搭建网络环境 166
10.2.1网络环境准备 166
10.2.2配置docker-compose.yml文件 167
10.2.3测试网络环境 171
第11章 Web项目实战之使用Fabric-SDK-Go 173
11.1 创建Fabric-SDK对象并建立通道 173
11.1.1配置Fabric-SDK 173
11.1.2定义所需结构体 177
11.1.3创建Fabric-SDK 178
11.1.4测试创建通道 179
11.2 满足依赖 180
11.2.1安装dep工具 180
11.2.2下载所需依赖 181
11.2.3测试Fabric-SDK 181
11.2.4关闭网络并清理环境 182
11.2.5利用Makef?ile简化步骤 182
11.3 链码实现 184
11.4 使用Fabric-SDK实现链码的自动部署 186
11.4.1添加结构体成员 186
11.4.2使用Fabric-SDK安装及实例化链码 187
11.4.3在main中调用 188
11.4.4测试 188
第12章 Web项目实战之Web应用实现 190
12.1 理解MVC,合理地设计应用 190
12.2 调用链码:设计业务层 192
12.2.1事件处理 192
12.2.2调用链码添加状态 193
12.2.3调用链码查询状态 194
12.3 MVC架构应用实现 196
第13章 实战:构建学历信息征信系统 201
13.1 需求分析与架构设计 201
13.1.1需求分析 201
13.1.2架构设计 202
13.1.3数据模型设计 202
13.1.4网络环境 203
13.1.5测试网络环境 205
13.2 SDK与链码的实现 205
13.2.1创建conf?ig.yaml文件 205
13.2.2声明结构体 205
13.2.3编写链码 206
13.2.4Fabric-SDK-Go实现 211
13.2.5安装依赖 214
13.2.6链码自动部署 216
13.3 业务层实现 218
13.3.1事件处理 218
13.3.2业务层调用链码实现添加状态 219
13.3.3根据证书编号与姓名查询状态 221
13.3.4根据身份证号码查询状态 223
13.3.5修改/添加信息状态 224
13.4 控制层实现 226
13.4.1设置系统用户 226
13.4.2处理响应 228
13.4.3处理请求 228
13.4.4指定路由 228
13.5 视图层实现 228
13.5.1目录结构 228
13.5.2相关源码实现 229
13.5.3照片上传 230
13.6 项目交互演示 231
13.6.1启动Web服务 231
13.6.2访问页面 232
附录 词汇术语表 235