𝔖 Scriptorium
✦   LIBER   ✦

📁

Hyperledger Fabric源代码分析

✍ Scribed by 蔡亮; 梁秀波; 宣章炯


Publisher
机械工业出版社
Year
2018
Tongue
Chinese
Leaves
406
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


内容简介

这是一本深度解读Hyperledger Fabric架构设计与实现原理的著作,由国内知名区块链公司趣链科技的创始人和核心技术团队成员撰写。

全书的核心内容以Hyperledger Fabric的源代码为切入点,首先从宏观上分析了Hyperledger Fabric项目的整体架构与设计,然后深入源代码详细分析了Hyperledger Fabric各个重要模块的设计与实现原理。此外,为了兼顾没有区块链开发基础的读者,书中还加入了Hyperledger Fabric开发环境搭建、综合案例、项目部署等实战性内容,可使读者能在深入理解Hyperledger Fabric设计机制的基础上快速动手实践。

全书共14章,逻辑上分为两大部分:

第一部分:源码分析(第2~11章)

第2章首先从宏观的角度Hyperledger Fabric的整体架构、项目的结构...

内容简介

这是一本深度解读Hyperledger Fabric架构设计与实现原理的著作,由国内知名区块链公司趣链科技的创始人和核心技术团队成员撰写。

全书的核心内容以Hyperledger Fabric的源代码为切入点,首先从宏观上分析了Hyperledger Fabric项目的整体架构与设计,然后深入源代码详细分析了Hyperledger Fabric各个重要模块的设计与实现原理。此外,为了兼顾没有区块链开发基础的读者,书中还加入了Hyperledger Fabric开发环境搭建、综合案例、项目部署等实战性内容,可使读者能在深入理解Hyperledger Fabric设计机制的基础上快速动手实践。

全书共14章,逻辑上分为两大部分:

第一部分:源码分析(第2~11章)

第2章首先从宏观的角度Hyperledger Fabric的整体架构、项目的结构,以及交易流程,这为后面的源码分析打下基础;

第3章分析了Logging日志模块、Error错误处理框架、Config配置模块、GRPC服务4个模块的源码,对理解后续的源码有帮助;

第4~11章深入纤细地分析了Peer、Order、Chaincode、MSP、Gossip、BCCSP、Fabric-CA、账本机制等节点和功能的设计与实现,这部分内容能让读者全面、透彻了解整个Hyperledger Fabric的运作机制。

第二部分:开发实战(第1章,及第12~14章)

第1章主要是为开发Hyperledger Fabric应用做准备,讲解了Go语言开发环境的准备,以及Docker环境的准备;

第12~14章分别讲解了一个智能合约的案例、完整的Hyperledger Fabric项目案例,以及项目的部署方法。

实战部分不仅能提升读者的动手实践能力,而且还能辅助他们更好地理解源码分析的内容,使理论和实践完全融合到一起。

✦ Table of Contents


序一
序二
前言
目录
第1章 准备工作
1.1 Go语言环境配置
1.1.1 Go语言简介
1.1.2 Go安装
1.1.3 Go标准包安装
1.1.4 第三方工具安装
1.1.5 Go环境配置
1.1.6 代码目录结构规划
1.1.7 编译应用
1.1.8 获取远程包
1.1.9 程序的整体结构
1.2 安装Docker
1.2.1 macOS
1.2.2 Ubuntu
1.2.3 Docker的简易使用
1.3 Hyperledger社区介绍
第2章 架构分析
2.1 Fabric整体架构
2.1.1 概述
2.1.2 系统架构
2.1.3 交易背书的基本工作流程
2.1.4 背书策略
2.1.5 证实账本和节点账本检查
2.2 Fabric交易流程
2.3 Fabric整体项目结构介绍
2.3.1 Fabric项目结构
2.3.2 Fabric源码中相关缩写的含义
第3章 源码分析
3.1 Logging日志模块浅析
3.1.1 go-logging简介
3.1.2 flogging
3.1.3 init函数、MustGetLogger函数与其他函数
3.2 Error错误机制设计
3.2.1 总体概览
3.2.2 使用说明
3.2.3 显示错误消息
3.2.4 错误处理的一般准则
3.3 Config配置模块的设计
3.3.1 viper简介
3.3.2 安全文件配置
3.3.3 命令选项配置
3.3.4 环境变量配置
3.4 grpc服务
3.4.1 grpc用法的Demo
3.4.2 Fabric中的grpc服务接口和实例
第4章 peer的设计与实现
4.1 CommandLine解析
4.1.1 peer目录结构
4.1.2 第三方包
4.1.3 peer命令结构解析
4.1.4 以node为例进行子命令结构解析
4.1.5 peer命令结构
4.2 Admin及Endorser服务的实现
4.2.1 Admin
4.2.2 Endorser
4.2.3 频道中的策略检查器
4.3 Committer的机制
4.3.1 committer.go 分析
4.3.2 committer_impl.go 分析
4.3.3 validator.go 分析
4.3.4 vscc_validator.go分析
第5章 order的设计与实现
5.1 orderer内部机制窥探
5.1.1 kingpin
5.1.2 模块
5.1.3 配置
5.1.4 模块的初始化
5.2 kafka排序服务机制讲解
5.3 orderer在Fabric中的交互流程
5.3.1 建立连接
5.3.2 Broadcast
5.3.3 orderer
5.3.4 Deliver
第6章 chaincode的设计与实现
6.1 chaincode生命周期管理
6.1.1 打包
6.1.2 安装chaincode
6.1.3 实例化chaincode
6.1.4 升级chaincode
6.1.5 停止与启动
6.1.6 CLI
6.2 chaincode原理浅析
6.2.1 什么是chaincode
6.2.2 Chaincode Support服务
6.2.3 FSM
6.2.4 Register
6.2.5 Handler
6.2.6 processStream
6.2.7 HandleMessage
6.2.8 serialSend或serialSendAsync
6.2.9 系统chaincode
6.3 chaincode数据结构分析
6.3.1 chaincode元数据
6.3.2 chaincode的元工具
6.4 SystemChaincode讲解
6.4.1 SystemChaincode
6.4.2 预定义和注册
6.5 CSCC分析
6.5.1 结构体
6.5.2 函数
6.6 ESCC分析
6.6.1 结构体
6.6.2 Init函数
6.7 LSCC分析
6.7.1 结构体和接口
6.7.2 函数操作
6.7.3 安装、部署和升级
6.7.4 chaincode stub 接口实现
6.8 QSCC分析
6.8.1 结构体
6.8.2 函数操作
6.8.3 路由规则
6.9 VSCC分析
6.9.1 结构体
6.9.2 函数
6.10 SystemChaincode的注册和实例化
6.10.1 概述
6.10.2 安装
6.10.3 部署
6.10.4 Launch
6.10.5 Execute
6.10.6 部署后状态
6.11 ApplicationChaincode的部署
6.11.1 概述
6.11.2 生成签名申请包
6.11.3 处理安装申请
6.11.4 执行申请
6.11.5 Launch
6.11.6 Execute
6.11.7 一路返回
6.11.8 安装后的状态
6.12 ApplicationChaincode的实例化
6.12.1 概述
6.12.2 起点
6.12.3 部署
6.12.4 广播
6.12.5 部署后的状态
6.13 chaincode操作步骤
6.13.1 选择一个代码存放位置
6.13.2 内务处理
6.13.3 初始化chaincode
6.13.4 调用chaincode
6.13.5 实现chaincode应用
6.13.6 整合全部代码
6.13.7 编译chaincode
6.13.8 在开发者模式下测试
6.13.9 安装Hyperledger Fabric样例
6.13.10 下载Docker镜像
6.13.11 1号终端
6.13.12 2号终端
6.13.13 3号终端
6.13.14 测试新的chaincode
第7章 MSP成员服务提供者
7.1 MSP的设计思路
7.1.1 MSP配置
7.1.2 如何生成MSP证书和它们的签名匙
7.1.3 MSP setup on the peer & orderer side
7.1.4 Channel MSP setup
7.1.5 最佳实践
7.2 MSP实现剖析
7.2.1 目录结构
7.2.2 MSP配置
第8章 Gossip节点间的流言蜚语
8.1 Gossip协议原理解析
8.1.1 Gossip协议(Gossip protocol)
8.1.2 Gossip消息传输(Gossip messaging)
8.2 Gossip之服务组件
8.2.1 protos/gossip分析
8.2.2 Gossip服务组件
8.2.3 gossip消息发送方式详解
8.3 Gossip之服务初始化
8.3.1 gossipSvc 组件
8.3.2 chains组件
8.3.3 leaderElection组件
8.3.4 gossip服务的停止
8.4 Gossip之消息广播
8.4.1 gossip服务消息的散播过程
8.4.2 消息从何而来
8.4.3 消息如何散播
8.4.4 消息去往何方
8.5 channel通道的设计与实现
8.5.1 概述
8.5.2 配置文件
8.5.3 命令
8.6 事件机制
8.6.1 Fabric中Event相关实现
8.6.2 events/producer
8.6.3 Go SDK中Event相关实现
第9章 BCCSP加密服务提供者的设计与实现
9.1 密码学相关知识介绍
9.1.1 安全基础
9.1.2 加密基础
9.1.3 哈希函数
9.1.4 共享密钥加密
9.1.5 公钥加密
9.1.6 混合加密
9.1.7 消息验证码
9.1.8 数字签名
9.1.9 数字证书
9.2 BCCSP概要
9.2.1 BCCSP简介
9.2.2 陷阱函数
9.2.3 为什么要使用ECDSA
9.2.4 生成签名
9.2.5 验证签名
9.3 BCCSP源码剖析
9.3.1 BCCSP服务结构
9.3.2 BCCSP中的接口和选项
9.3.3 SW实现方式
9.3.4 pkcs11实现方式
第10章 Fabric CA架构设计与讲解
10.1 Fabric CA用户指南
10.2 Fabric-CA-Server
10.2.1 初始化服务端
10.2.2 算法和密钥长度
10.2.3 启动服务端
10.2.4 配置数据库
10.2.5 PostgreSQL
10.2.6 PostgreSQL SSL配置
10.2.7 MySQL
10.2.8 MySQL SSL配置
10.2.9 配置LDAP
10.2.10 构建一个集群
10.2.11 构建多个CA
10.2.12 登录一个中间CA
10.2.13 升级服务端
10.2.14 升级一个集群
10.3 fabric-ca-client
10.3.1 登录启动用户
10.3.2 注册一个新身份
10.3.3 登录一个节点
10.3.4 从另一个Fabric CA服务器获得CA证书链
10.3.5 重新登录一个身份
10.3.6 撤销一个证书或身份
10.3.7 生成一个CRL
10.3.8 启用TLS
10.3.9 基于属性的访问控制
10.3.10 动态更新服务器配置
10.3.11 联系特定的CA实例
10.4 HSM
第11章 账本机制的设计与实现
11.1 Ledger架构概述
11.1.1 总览
11.1.2 ledger部分摘要
11.2 Ledger之Block-Storage
11.2.1 peer节点中的leveldb
11.2.2 peer节点中的账本
11.2.3 创建
11.2.4 使用
11.2.5 idStore
11.2.6 存储账本ID
11.2.7 ConstructionFlag
11.2.8 账本恢复
11.2.9 BlockStore
11.3 Ledger之VersionedDB
11.3.1 peer节点使用VersionedDB
11.3.2 交易模拟器/交易查询器
11.3.3 重启恢复
11.4 Ledger之HistoryDB
11.4.1 历史查询器
11.4.2 使用
第12章 chaincode智能合约案例分析
12.1 encc_example
12.1.1 chaincode代码分析
12.1.2 使用EncCC
12.2 eventsender
12.3 example
12.4 example
12.5 example
12.6 example
12.7 example
12.8 invokereturnsvalue
12.9 map
12.10 marbles
12.11 passthru
12.12 sleeper
第13章 Fabric-samples项目分析与实践
13.1 Fabric-samples项目结构
13.2 First-network
13.2.1 安装预置环境
13.2.2 想要现在运行吗?
13.2.3 生成网络神器
13.2.4 启动网络
13.2.5 关闭网络
13.2.6 加密生成器
13.2.7 配置交易生成器
13.2.8 运行工具
13.2.9 启动网络
13.2.10 了解Docker Compose技术
13.2.11 使用CouchDB
13.2.12 关于数据持久化的提示
13.2.13 故障排除
13.3 basic-network
13.4 Fabcar
13.4.1 编写第一个应用
13.4.2 下载测试网络(Getting a Test Network)
13.4.3 应用程序如何与网络进行交互
13.4.4 查询账本
13.4.5 更新账本
13.5 Balance transfer
13.5.1 预置环境
13.5.2 工件
13.5.3 运行示例程序
13.5.4 示例—REST APIs请求
13.6 Hyperledger Fabric CA 示例
13.6.1 运行这个示例
13.6.2 了解这个例子
13.7 高性能网络
13.7.1 用例
13.7.2 如何使用
第14章 部署教程
14.1 下载部署环境
14.2 编译peer、orderer、configtxgen等程序
14.3 部署
14.4 Crypto Generator
14.4.1 crypto-config.yaml
14.4.2 crypto-config文件夹
14.5 Configuration Transaction Generator
14.6 networkUp-启动Fabric网络
14.7 运行容器+区域链操作
附录 专业术语


📜 SIMILAR VOLUMES


源代码分析
✍ 宫云战,邢颖,肖庆 📂 Library 📅 2018 🏛 科学出版社 🌐 Chinese