书籍详情
Hyperledger Fabric 技术内幕:架构设计与实现原理
作者:李鑫 著
出版社:机械工业出版社
出版时间:2019-03-01
ISBN:9787111618560
定价:¥129.00
购买这本书可以去
内容简介
近年来的企业实践表明,联盟链是极具重要应用前景与潜力的区块链落地技术方案,而超级账本Hyperledger Fabric已经成为联盟链领域中具有国际影响力的主流技术。 本书深入分析了Hyperledger Fabric的源代码,从宏观上分析了Hyperledger Fabric的整体架构、设计逻辑和运行机制,从微观上剖析了各核心模块的设计理念与实现原理,同时兼顾区块链系统底层架构研发者和上层应用开发者的需求,帮助读者掌握Hyperledger Fabric的精髓。 全书一共7章,以系统运行的流程为主线展开分析: 第1章主要介绍了区块链的核心技术、典型平台,以及Hyperledger Fabric的基本概念、部署流程、实验环境搭建、系统架构和源代码分析思路,是阅读全书的基础。 第2~7章详细分析和解读了Orderer排序节点、Peer节点、Endorser背书节点、Committer记账节点、Gossip消息模块、公共功能模块等核心功能和模块的设计理念、实现原理和运行机制,同时从应用角度阐释其难点及其优化细节。
作者简介
作者简介 李鑫(博士) 区块链技术专家,专注于区块链关键技术和行业解决方案的研究,对Hyperledger Fabric等联盟链技术有非常深入的研究,同时参与并积极推动超级账本开源社区的发展。 目前是国防科技大学的研究人员,计算机系统结构专业,研究兴趣包括分布式计算与区块链、容器云等新兴技术,长期参与高性能计算、863计划、国家自然科学基金等项目的研发与管理工作,曾获部级科技进步三等奖一项,发表学术论文十余篇,参与译著一部。
目录
前言
第1章 区块链基础与Hyperledger Fabric架构1
1.1 区块链背景、概念与现状1
1.1.1 区块链产生的背景及研究热潮1
1.1.2 区块链概念与核心技术6
1.1.3 区块链典型平台现状及趋势12
1.2 Hyperledger Fabric基本概念与架构15
1.2.1 基本概念15
1.2.2 Hyperledger Fabric架构22
1.2.3 安装基础环境与部署Fabric系统25
1.2.4 Fabric初始化启动流程30
1.2.5 Fabric交易处理流程58
1.3 Hyperledger Fabric源码分析说明60
1.3.1 源码分析思路60
1.3.2 配置机制64
1.4 小结66
第2章 Orderer排序节点67
2.1 功能概述68
2.2 Orderer节点启动流程70
2.2.1 加载orderer.yaml配置文件71
2.2.2 初始化日志与本地MSP组件73
2.2.3 启动Orderer排序节点74
2.3 Broadcast交易广播服务92
2.3.1 概述92
2.3.2 Broadcast服务消息处理93
2.4 Orderer共识排序服务(配置交易消息)102
2.4.1 概述102
2.4.2 Solo共识组件103
2.4.3 Kafka共识组件110
2.5 Orderer共识排序服务(普通交易消息)122
2.5.1 概述122
2.5.2 Solo共识组件123
2.5.3 Kafka共识组件126
2.6 Deliver区块分发服务131
2.6.1 概述132
2.6.2 Deliver服务消息处理133
2.6.3 Deliver服务客户端140
2.7 小结150
第3章 Peer节点151
3.1 功能概述152
3.1.1 链码生命周期管理152
3.1.2 系统链码155
3.1.3 用户链码156
3.2 Peer节点启动流程157
3.2.1 启动流程概述157
3.2.2 定义、注册命令与初始化配置157
3.2.3 初始化本地MSP组件159
3.2.4 执行启动Peer节点命令161
3.3 peer channel通道子命令183
3.3.1 定义注册channel子命令183
3.3.2 创建通道命令create189
3.3.3 Peer节点加入通道命令join193
3.3.4 获取区块命令fetch198
3.3.5 获取区块链信息getinfo201
3.3.6 获取已加入通道列表list205
3.3.7 签名配置交易文件signconfigtx207
3.3.8 更新通道配置update210
3.4 peer chaincode链码子命令212
3.4.1 定义注册chaincode子命令213
3.4.2 安装链码命令install216
3.4.3 实例化链码命令instantiate224
3.4.4 调用链码命令invoke232
3.4.5 查询链码命令query237
3.4.6 升级链码命令upgrade239
3.4.7 查询链码列表命令list244
3.4.8 打包链码命令package250
3.4.9 签名链码包命令signpackage254
3.5 其他子命令257
3.5.1 状态查询子命令257
3.5.2 版本子命令257
3.5.3 日志子命令257
3.6 小结258
第4章 Endorser背书节点259
4.1 功能概述259
4.2 Endorser背书服务261
4.3 预处理签名提案消息264
4.3.1 验证消息格式与签名合法性265
4.3.2 检查是否为允许外部调用的系统链码266
4.3.3 检查签名提案消息的唯一性266
4.3.4 检查是否满足通道的访问权限策略267
4.4 模拟执行提案268
4.4.1 检查实例化策略270
4.4.2 启动链码容器概述271
4.4.3 准备启动链码容器276
4.4.4 启动系统链码inprocContainer容器285
4.4.5 启动用户链码Docker容器290
4.4.6 消息处理核心函数300
4.4.7 请求链码执行311
4.4.8 停止链码容器321
4.4.9 处理模拟执行结果323
4.5 对模拟执行结果签名背书326
4.6 小结330
第5章 Committer记账节点331
5.1 功能概述332
5.2 创建与调用Committer功能模块333
5.2.1 创建Committer功能模块333
5.2.2 调用Committer功能模块335
5.3 交易验证器341
5.3.1 验证交易数据的合法性342
5.3.2 VSCC验证交易背书策略353
5.4 账本提交器370
5.4.1 验证与准备数据374
5.4.2 提交账本数据388
5.5 小结397
第6章 Gossip消息模块398
6.1 功能概述399
6.2 Gossip消息模块启动流程402
6.2.1 创建与初始化Gossip服务器实例402
6.2.2 初始化通道上的Gossip服务模块410
6.3 Gossip消息通信与处理机制418
6.3.1 Gossip消息概述418
6.3.2 Gossip消息通信与处理机制420
6.3.3 Gossip服务实例中的消息处理462
6.3.4 state模块中的数据消息处理485
6.3.5 state模块中的远程状态与隐私数据消息处理490
6.3.6 Fetcher组件中的隐私数据请求与响应消息处理494
6.3.7 election选举模块中的主节点选举消息处理499
6.4 Gossip节点管理机制501
6.4.1 管理新加入Peer节点501
6.4.2 选举Leader主节点503
6.4.3 更新节点相关信息机制508
6.5 Gossip数据分发与状态同步机制513
6.5.1 分发区块数据流程513
6.5.2 分发隐私数据流程515
6.5.3 更新通道状态信息521
6.5.4 更新数据消息522
6.6 Gossip反熵算法523
6.6.1 获取当前最大的账本高度523
6.6.2 分批发送远程状态请求消息525
6.6.3 处理远程状态请求消息527
6.7 小结530
第7章 公共功能模块531
7.1 账本数据存储模块531
7.1.1 Peer节点账本532
7.1.2 idStore数据库541
7.1.3 区块数据文件与隐私数据库542
7.1.4 区块索引数据库565
7.1.5 状态数据库565
7.1.6 历史数据库579
7.1.7 transient隐私数据库580
7.2 安全服务模块600
7.2.1 MS
第1章 区块链基础与Hyperledger Fabric架构1
1.1 区块链背景、概念与现状1
1.1.1 区块链产生的背景及研究热潮1
1.1.2 区块链概念与核心技术6
1.1.3 区块链典型平台现状及趋势12
1.2 Hyperledger Fabric基本概念与架构15
1.2.1 基本概念15
1.2.2 Hyperledger Fabric架构22
1.2.3 安装基础环境与部署Fabric系统25
1.2.4 Fabric初始化启动流程30
1.2.5 Fabric交易处理流程58
1.3 Hyperledger Fabric源码分析说明60
1.3.1 源码分析思路60
1.3.2 配置机制64
1.4 小结66
第2章 Orderer排序节点67
2.1 功能概述68
2.2 Orderer节点启动流程70
2.2.1 加载orderer.yaml配置文件71
2.2.2 初始化日志与本地MSP组件73
2.2.3 启动Orderer排序节点74
2.3 Broadcast交易广播服务92
2.3.1 概述92
2.3.2 Broadcast服务消息处理93
2.4 Orderer共识排序服务(配置交易消息)102
2.4.1 概述102
2.4.2 Solo共识组件103
2.4.3 Kafka共识组件110
2.5 Orderer共识排序服务(普通交易消息)122
2.5.1 概述122
2.5.2 Solo共识组件123
2.5.3 Kafka共识组件126
2.6 Deliver区块分发服务131
2.6.1 概述132
2.6.2 Deliver服务消息处理133
2.6.3 Deliver服务客户端140
2.7 小结150
第3章 Peer节点151
3.1 功能概述152
3.1.1 链码生命周期管理152
3.1.2 系统链码155
3.1.3 用户链码156
3.2 Peer节点启动流程157
3.2.1 启动流程概述157
3.2.2 定义、注册命令与初始化配置157
3.2.3 初始化本地MSP组件159
3.2.4 执行启动Peer节点命令161
3.3 peer channel通道子命令183
3.3.1 定义注册channel子命令183
3.3.2 创建通道命令create189
3.3.3 Peer节点加入通道命令join193
3.3.4 获取区块命令fetch198
3.3.5 获取区块链信息getinfo201
3.3.6 获取已加入通道列表list205
3.3.7 签名配置交易文件signconfigtx207
3.3.8 更新通道配置update210
3.4 peer chaincode链码子命令212
3.4.1 定义注册chaincode子命令213
3.4.2 安装链码命令install216
3.4.3 实例化链码命令instantiate224
3.4.4 调用链码命令invoke232
3.4.5 查询链码命令query237
3.4.6 升级链码命令upgrade239
3.4.7 查询链码列表命令list244
3.4.8 打包链码命令package250
3.4.9 签名链码包命令signpackage254
3.5 其他子命令257
3.5.1 状态查询子命令257
3.5.2 版本子命令257
3.5.3 日志子命令257
3.6 小结258
第4章 Endorser背书节点259
4.1 功能概述259
4.2 Endorser背书服务261
4.3 预处理签名提案消息264
4.3.1 验证消息格式与签名合法性265
4.3.2 检查是否为允许外部调用的系统链码266
4.3.3 检查签名提案消息的唯一性266
4.3.4 检查是否满足通道的访问权限策略267
4.4 模拟执行提案268
4.4.1 检查实例化策略270
4.4.2 启动链码容器概述271
4.4.3 准备启动链码容器276
4.4.4 启动系统链码inprocContainer容器285
4.4.5 启动用户链码Docker容器290
4.4.6 消息处理核心函数300
4.4.7 请求链码执行311
4.4.8 停止链码容器321
4.4.9 处理模拟执行结果323
4.5 对模拟执行结果签名背书326
4.6 小结330
第5章 Committer记账节点331
5.1 功能概述332
5.2 创建与调用Committer功能模块333
5.2.1 创建Committer功能模块333
5.2.2 调用Committer功能模块335
5.3 交易验证器341
5.3.1 验证交易数据的合法性342
5.3.2 VSCC验证交易背书策略353
5.4 账本提交器370
5.4.1 验证与准备数据374
5.4.2 提交账本数据388
5.5 小结397
第6章 Gossip消息模块398
6.1 功能概述399
6.2 Gossip消息模块启动流程402
6.2.1 创建与初始化Gossip服务器实例402
6.2.2 初始化通道上的Gossip服务模块410
6.3 Gossip消息通信与处理机制418
6.3.1 Gossip消息概述418
6.3.2 Gossip消息通信与处理机制420
6.3.3 Gossip服务实例中的消息处理462
6.3.4 state模块中的数据消息处理485
6.3.5 state模块中的远程状态与隐私数据消息处理490
6.3.6 Fetcher组件中的隐私数据请求与响应消息处理494
6.3.7 election选举模块中的主节点选举消息处理499
6.4 Gossip节点管理机制501
6.4.1 管理新加入Peer节点501
6.4.2 选举Leader主节点503
6.4.3 更新节点相关信息机制508
6.5 Gossip数据分发与状态同步机制513
6.5.1 分发区块数据流程513
6.5.2 分发隐私数据流程515
6.5.3 更新通道状态信息521
6.5.4 更新数据消息522
6.6 Gossip反熵算法523
6.6.1 获取当前最大的账本高度523
6.6.2 分批发送远程状态请求消息525
6.6.3 处理远程状态请求消息527
6.7 小结530
第7章 公共功能模块531
7.1 账本数据存储模块531
7.1.1 Peer节点账本532
7.1.2 idStore数据库541
7.1.3 区块数据文件与隐私数据库542
7.1.4 区块索引数据库565
7.1.5 状态数据库565
7.1.6 历史数据库579
7.1.7 transient隐私数据库580
7.2 安全服务模块600
7.2.1 MS
猜您喜欢