当前位置:首页 > 经济
区块链技术丛书  Hyperledger Fabric源代码分析与深入解读
区块链技术丛书  Hyperledger Fabric源代码分析与深入解读

区块链技术丛书 Hyperledger Fabric源代码分析与深入解读PDF电子书下载

经济

  • 电子书积分:13 积分如何计算积分?
  • 作 者:蔡亮,梁秀波,宣章炯著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111608707
  • 页数:384 页
图书介绍:本书是一本介绍Hyperledger Fabric架构、源代码及其底层实现的专业书籍。从编程语言、源码分析、网络节点、加密算法、智能合约、架构设计等多个角度深入解读Fabric项目,并通过项目实例的分析介绍,使得读者能够将理论结合实践,增强实际动手能力,更好地理解Fabric的实现原理。通过阅读本书,能够帮助读者零基础快速入门Fabric,是一本实际操作性极强的Hyperledger Fabric专业书籍。
《区块链技术丛书 Hyperledger Fabric源代码分析与深入解读》目录

第1章 准备工作 1

1.1 Go语言环境配置 1

1.1.1 Go语言简介 1

1.1.2 Go安装 2

1.1.3 Go标准包安装 4

1.1.4 第三方工具安装 6

1.1.5 Go环境配置 7

1.1.6 代码目录结构规划 8

1.1.7 编译应用 9

1.1.8 获取远程包 10

1.1.9 程序的整体结构 11

1.2 安装Docker 11

1.2.1 macOS 11

1.2.2 Ubuntu 12

1.2.3 Docker的简易使用 13

1.3 Hyperledger社区介绍 14

第2章 架构分析 18

2.1 Fabric整体架构 18

2.1.1 概述 18

2.1.2 系统架构 19

2.1.3 交易背书的基本工作流程 24

2.1.4 背书策略 27

2.1.5 证实账本和节点账本检查 28

2.2 Fabric交易流程 30

2.3 Fabric整体项目结构介绍 33

2.3.1 Fabric项目结构 33

2.3.2 Fabric源码中相关缩写的含义 34

第3章 源码分析 37

3.1 Logging日志模块浅析 37

3.1.1 go-logging简介 37

3.1.2 flogging 38

3.1.3 init函数、MustGetLogger函数与其他函数 38

3.2 Error错误机制设计 39

3.2.1 总体概览 39

3.2.2 使用说明 40

3.2.3 显示错误消息 40

3.2.4 错误处理的一般准则 41

3.3 Config配置模块的设计 41

3.3.1 viper简介 41

3.3.2 安全文件配置 44

3.3.3 命令选项配置 44

3.3.4 环境变量配置 44

3.4 grpc服务 45

3.4.1 grpc用法的Demo 45

3.4.2 Fabric中的grpe服务接口和实例 46

第4章 peer的设计与实现 53

4.1 CommandLine解析 53

4.1.1 peer目录结构 53

4.1.2 第三方包 54

4.1.3 peer命令结构解析 55

4.1.4 以node为例进行子命令结构解析 55

4.1.5 peer命令结构 55

4.2 Admin及Endorser服务的实现 56

4.2.1 Admin 56

4.2.2 Endorser 58

4.2.3 频道中的策略检查器 64

4.3 Committer的机制 66

4.3.1 committer.go分析 66

4.3.2 committer_impl.go分析 67

4.3.3 validator.go分析 70

4.3.4 vscc_validator.go分析 71

第5章 order的设计与实现 73

5.1 orderer内部机制窥探 73

5.1.1 kingpin 73

5.1.2 模块 74

5.1.3 配置 74

5.1.4 模块的初始化 75

5.2 kafka排序服务机制讲解 79

5.3 orderer在Fabric中的交互流程 82

5.3.1 建立连接 82

5.3.2 Broadcast 83

5.3.3 orderer 83

5.3.4 Deliver 86

第6章 chaincode的设计与实现 89

6.1 chaincode生命周期管理 89

6.1.1 打包 89

6.1.2 安装chaincode 91

6.1.3 实例化chaincode 91

6.1.4 升级chaincode 92

6.1.5 停止与启动 93

6.1.6 CLI 93

6.2 chaincode原理浅析 94

6.2.1 什么是chaincode 94

6.2.2 Chaincode Support服务 95

6.2.3 FSM 95

6.2.4 Register 96

6.2.5 Handler 97

6.2.6 processStream 97

6.2.7 HandleMessage 97

6.2.8 serialSend或serialSendAsync 99

6.2.9 系统chaincode 99

6.3 chaincode数据结构分析 100

6.3.1 chaincode元数据 100

6.3.2 chaincode的元工具 102

6.4 SystemChaincode讲解 103

6.4.1 SystemChaincode 104

6.4.2 预定义和注册 104

6.5 CSCC分析 106

6.5.1 结构体 106

6.5.2 函数 106

6.6 ESCC分析 108

6.6.1 结构体 108

6.6.2 Init函数 108

6.7 LSCC分析 109

6.7.1 结构体和接口 110

6.7.2 函数操作 110

6.7.3 安装、部署和升级 111

6.7.4 chaincode stub接口实现 112

6.8 QSCC分析 113

6.8.1 结构体 113

6.8.2 函数操作 114

6.8.3 路由规则 114

6.9 VSCC分析 115

6.9.1 结构体 115

6.9.2 函数 115

6.10 SystemChaincode的注册和实例化 116

6.10.1 概述 116

6.10.2 安装 117

6.10.3 部署 117

6.10.4 Launch 118

6.10.5 Execute 123

6.10.6 部署后状态 124

6.11 ApplicationChaincode的部署 124

6.11.1 概述 125

6.11.2 生成签名申请包 125

6.11.3 处理安装申请 125

6.11.4 执行申请 126

6.11.5 Launch 127

6.11.6 Execute 127

6.11.7 一路返回 128

6.11.8 安装后的状态 129

6.12 ApplicationChaincode的实例化 129

6.12.1 概述 129

6.12.2 起点 130

6.12.3 部署 130

6.12.4 广播 139

6.12.5 部署后的状态 139

6.13 chaincode操作步骤 140

6.13.1 选择一个代码存放位置 140

6.13.2 内务处理 140

6.13.3 初始化chaincode 140

6.13.4 调用chaincode 142

6.13.5 实现chaincode应用 143

6.13.6 整合全部代码 143

6.13.7 编译chaincode 145

6.13.8 在开发者模式下测试 145

6.13.9 安装Hyperledger Fabric样例 145

6.13.10 下载Docker镜像 146

6.13.11 1号终端 146

6.13.12 2号终端 146

6.13.13 3号终端 147

6.13.14 测试新的chaincode 147

第7章 MSP成员服务提供者 148

7.1 MSP的设计思路 148

7.1.1 MSP配置 149

7.1.2 如何生成MSP证书和它们的签名匙 150

7.1.3 MSP setup on the peer&orderer side 150

7.1.4 Channel MSP setup 150

7.1.5 最佳实践 151

7.2 MSP实现剖析 153

7.2.1 目录结构 153

7.2.2 MSP配置 154

第8章 Gossip节点间的流言蜚语 162

8.1 Gossip协议原理解析 162

8.1.1 Gossip协议(Gossip protocol) 162

8.1.2 Gossip消息传输(Gossip messaging) 163

8.2 Gossip之服务组件 163

8.2.1 protos/gossip分析 163

8.2.2 Gossip服务组件 169

8.2.3 gossip消息发送方式详解 176

8.3 Gossip之服务初始化 178

8.3.1 gossipSvc组件 179

8.3.2 chains组件 185

8.3.3 leaderElection组件 187

8.3.4 gossip服务的停止 193

8.4 Gossip之消息广播 194

8.4.1 gossip服务消息的散播过程 194

8.4.2 消息从何而来 194

8.4.3 消息如何散播 196

8.4.4 消息去往何方 200

8.5 channel通道的设计与实现 201

8.5.1 概述 201

8.5.2 配置文件 202

8.5.3 命令 203

8.6 事件机制 208

8.6.1 Fabric中Event相关实现 208

8.6.2 events/producer 209

8.6.3 Go SDK中Event相关实现 210

第9章 BCCSP加密服务提供者的设计与实现 212

9.1 密码学相关知识介绍 212

9.1.1 安全基础 212

9.1.2 加密基础 213

9.1.3 哈希函数 214

9.1.4 共享密钥加密 214

9.1.5 公钥加密 215

9.1.6 混合加密 216

9.1.7 消息验证码 216

9.1.8 数字签名 218

9.1.9 数字证书 219

9.2 BCCSP概要 220

9.2.1 BCCSP简介 220

9.2.2 陷阱函数 222

9.2.3 为什么要使用ECDSA 223

9.2.4 生成签名 223

9.2.5 验证签名 224

9.3 BCCSP源码剖析 224

9.3.1 BCCSP服务结构 224

9.3.2 BCCSP中的接口和选项 225

9.3.3 SW实现方式 227

9.3.4 pkcs11实现方式 230

第10章 Fabric CA架构设计与讲解 233

10.1 Fabric CA用户指南 233

10.2 Fabric-CA-Server 240

10.2.1 初始化服务端 241

10.2.2 算法和密钥长度 242

10.2.3 启动服务端 243

10.2.4 配置数据库 243

10.2.5 PostgreSQL 243

10.2.6 PostgreSQL SSL配置 244

10.2.7 MySQL 245

10.2.8 MySQL SSL配置 245

10.2.9 配置LDAP 246

10.2.10 构建一个集群 249

10.2.11 构建多个CA 249

10.2.12 登录一个中间CA 250

10.2.13 升级服务端 251

10.2.14 升级一个集群 251

10.3 fabric-ca-client 253

10.3.1 登录启动用户 253

10.3.2 注册一个新身份 253

10.3.3 登录一个节点 256

10.3.4 从另一个Fabric CA服务器获得CA证书链 257

10.3.5 重新登录一个身份 257

10.3.6 撤销一个证书或身份 257

10.3.7 生成一个CRL 259

10.3.8 启用TLS 259

10.3.9 基于属性的访问控制 260

10.3.10 动态更新服务器配置 261

10.3.11 联系特定的CA实例 265

10.4 HSM 265

第11章 账本机制的设计与实现 267

11.1 Ledger架构概述 267

11.1.1 总览 267

11.1.2 ledger部分摘要 268

11.2 Ledger之Block-Storage 275

11.2.1 peer节点中的leveldb 276

11.2.2 peer节点中的账本 276

11.2.3 创建 276

11.2.4 使用 277

11.2.5 idStore 278

11.2.6 存储账本ID 278

11.2.7 ConstructionFlag 278

11.2.8 账本恢复 279

11.2.9 BlockStore 280

11.3 Ledger之VersionedDB 286

11.3.1 peer节点使用VersionedDB 286

11.3.2 交易模拟器/交易查询器 288

11.3.3 重启恢复 298

11.4 Ledger之HistoryDB 300

11.4.1 历史查询器 300

11.4.2 使用 301

第12章 chaincode智能合约案例分析 303

12.1 encc_example 303

12.1.1 chaincode代码分析 303

12.1.2 使用EncCC 307

12.2 eventsender 308

12.3 example01 310

12.4 example02 311

12.5 example03 314

12.6 example04 315

12.7 example05 317

12.8 invokereturnsvalue 319

12.9 map 320

12.10 marbles02 324

12.11 passthru 332

12.12 sleeper 332

第13章 Fabric-samples项目分析与实践 334

13.1 Fabric-samples项目结构 334

13.2 First-network 335

13.2.1 安装预置环境 335

13.2.2 想要现在运行吗? 335

13.2.3 生成网络神器 336

13.2.4 启动网络 337

13.2.5 关闭网络 339

13.2.6 加密生成器 339

13.2.7 配置交易生成器 340

13.2.8 运行工具 341

13.2.9 启动网络 342

13.2.10 了解DockerCompose技术 347

13.2.11 使用CouchDB 348

13.2.12 关于数据持久化的提示 350

13.2.13 故障排除 350

13.3 basic-network 351

13.4 Fabcar 353

13.4.1 编写第一个应用 353

13.4.2 下载测试网络(Getting a Test Network) 354

13.4.3 应用程序如何与网络进行交互 355

13.4.4 查询账本 355

13.4.5 更新账本 358

13.5 Balance transfer 360

13.5.1 预置环境 360

13.5.2 工件 360

13.5.3 运行示例程序 360

13.5.4 示例——REST APIs请求 361

13.6 Hyperledger Fabric CA示例 365

13.6.1 运行这个示例 366

13.6.2 了解这个例子 366

13.7 高性能网络 367

13.7.1 用例 368

13.7.2 如何使用 368

第14章 部署教程 371

14.1 下载部署环境 371

14.2 编译peer、orderer、configtxgen等程序 373

14.3 部署 374

14.4 Crypto Generator 374

14.4.1 crypto-config.yaml 375

14.4.2 crypto-config文件夹 375

14.5 Configuration Transaction Generator 376

14.6 networkUp-启动Fabric网络 378

14.7 运行容器+区域链操作 378

附录 专业术语 381

返回顶部