HyperLedger Fabric开发实战:快速掌握区块链技术
内容介绍
本书系统地介绍了超级账本HyperLedger Fabric v1.1架构的设计和应用方法,包括环境及源码部署、Solo单机多节点部署、Kafka多节点集群具体应用、智能合约编写等。同时,针对第三方可插拔式插件CouchDB实战应用,JAVASDK的应用、编写方案和具体接口执行策略也进行了详细讲解。另外,本书以搭建一个反欺诈区块链平台项目为例进行了实战演练,读者可以快速掌握区块链技术。
目录
- 第1章 基本环境部署 1
- 1.1 环境整理 1
- 1.2 Docker安装 2
- 1.2.1 卸载旧版本 3
- 1.2.2 在线安装Docker CE 3
- 1.2.3 离线安装Docker CE 5
- 1.2.4 Docker启动及常用命令 5
- 1.3 Docker-Compose安装 6
- 1.3.1 在线安装Docker-Compose 6
- 1.3.2 离线安装Docker-Compose 7
- 1.4 Go语言环境安装 8
- 1.4.1 下载Go语言包 8
- 1.4.2 配置Go语言环境变量 9
- 1.5 本章小结 9
- 第2章 Fabric及环境部署 10
- 2.1 Fabric介绍 10
- 2.1.1 什么是区块链 10
- 2.1.2 区块链的作用 12
- 2.1.3 超级账本是什么 14
- 2.2 Fabric功能汇总 16
- 2.3 Fabric组成模型 17
- 2.3.1 资产 18
- 2.3.2 智能合约 18
- 2.3.3 账本特征 18
- 2.3.4 隐私频道 19
- 2.3.5 成员安全性 20
- 2.3.6 共识机制 20
- 2.4 Fabric环境部署 20
- 2.4.1 Fabric源码安装 20
- 2.4.2 下载Fabric镜像 22
- 2.4.3 镜像备份和迁移 26
- 2.5 本章小结 28
- 第3章 End-2-End案例 29
- 3.1 平台特定文件 29
- 3.2 运行e2e_cli 31
- 3.3 e2e_cli案例分析 38
- 3.3.1 容器服务脚本 38
- 3.3.2 容器启动配置文件 52
- 3.3.3 Fabric网络解析 55
- 3.4 本章小结 62
- 第4章 部署单机多节点网络 64
- 4.1 生成证书文件 65
- 4.2 部署Orderer节点 69
- 4.3 部署peer0.org1节点 70
- 4.4 搭建Fabric网络 75
- 4.5 初步接触智能合约 78
- 4.6 部署peer0.org2节点 84
- 4.7 本章小结 88
- 第5章 Solo多机部署 89
- 5.1 网络拓扑 89
- 5.2 部署Orderer节点 91
- 5.3 部署peer0.org1节点 92
- 5.4 部署peer1.org1节点 97
- 5.5 部署peer0.org2节点 101
- 5.6 本章小结 107
- 第6章 Kafka集群部署 108
- 6.1 Fabric账本 108
- 6.2 事务处理流程 110
- 6.2.1 客户端发起事务 111
- 6.2.2 验证签名并执行事务 112
- 6.2.3 检查返回协议 112
- 6.2.4 客户端将背书合并到交易中 113
- 6.2.5 提交并验证事务 113
- 6.2.6 账本更新 114
- 6.3 读写集规则 114
- 6.4 Kafka集群配置 116
- 6.4.1 crypto-config.yaml配置 119
- 6.4.2 configtx配置 121
- 6.4.3 Zookeeper配置 125
- 6.4.4 Kafka配置 127
- 6.4.5 Orderer配置 132
- 6.5 启动集群 138
- 6.5.1 启动Zookeeper集群 138
- 6.5.2 启动Kafka集群 140
- 6.5.3 启动Orderer集群 144
- 6.6 集群环境测试 146
- 6.7 本章小结 158
- 第7章 智能合约 159
- 7.1 智能合约概述 159
- 7.2 背书策略 160
- 7.3 使用智能合约 161
- 7.3.1 智能合约是什么? 161
- 7.3.2 智能合约的生命周期 161
- 7.3.3 Packaging(包) 162
- 7.3.4 创建package(包) 162
- 7.3.5 包签名(Package signing) 163
- 7.3.6 安装智能合约 164
- 7.3.7 智能合约实例化 164
- 7.3.8 升级智能合约 165
- 7.3.9 停止及启动智能合约 166
- 7.3.10 CLI(客户端) 166
- 7.3.11 系统智能合约 168
- 7.4 编写智能合约 168
- 7.4.1 开发人员眼中的智能合约 168
- 7.4.2 智能合约接口 169
- 7.4.3 一个简单的资产智能合约 169
- 7.5 加密智能合约 178
- 7.6 系统合约插件 180
- 7.7 智能合约API 182
- 7.8 Peer节点与合智能约 184
- 7.8.1 安装智能合约 185
- 7.8.2 实例化智能合约 187
- 7.8.3 调用智能合约 188
- 7.8.4 列出智能合约 190
- 7.8.5 打包智能合约 191
- 7.8.6 查询智能合约 192
- 7.8.7 签名智能合约包 193
- 7.8.8 升级智能合约 194
- 7.9 本章小结 196
- 第8章 CouchDB 197
- 8.1 CouchDB介绍 197
- 8.2 启动部署 201
- 8.3 索引应用 206
- 8.4 查询应用 216
- 8.5 选择器语法 218
- 8.5.1 基本语法 218
- 8.5.2 嵌套对象 219
- 8.5.3 运算符 219
- 8.5.4 隐式运算符 220
- 8.5.5 显示运算符 222
- 8.6 本章小结 226
- 第9章 J -SDK客户端 227
- 9.1 SDK项目前置条件 227
- 9.2 SDK代码使用 232
- 9.2.1 Orderers对象 233
- 9.2.2 Peers对象 235
- 9.2.3 Chaincode对象 238
- 9.2.4 FabricUser 240
- 9.2.5 FabricStore 245
- 9.2.6 FabricOrg 250
- 9.2.7 FabricConfig 256
- 9.2.8 ChaincodeManager 257
- 9.3 SDK使用方法 264
- 9.4 本章小结 269
- 第10章 项目演练 270
- 10.1 反欺诈系统 271
- 10.1.1 需求分析 271
- 10.1.2 编写合约 272
- 10.1.3 线上验证 278
- 10.3 本章小结 283