区块链网络构建和应用:基于超级账本Fabric的商业实践
出版时间:2018
内容简介
从一个区块链商业项目的可研、设计、落地建设和运维的角度去理解、分析和解决问题,囊括了区块链入门、具体开源社区版本Fabric技术架构及核心原理、网络及存储方案、行业实践指南以及发展趋势等方面的内容
目录
推荐序
前 言
第1章 区块链基础 1
1.1 区块链常用名词解释 2
1.2 区块链的发展历程 4
1.3 区块链概念 7
1.3.1 区块链是什么 7
1.3.2 区块链的特性 7
1.3.3 区块链分类 8
1.3.4 区块链构建信任 9
1.3.5 区块链的社会价值 10
1.4 区块链核心技术 10
1.4.1 综述 10
1.4.2 区块链结构 15
1.4.3 智能合约 17
1.4.4 跨链技术 20
1.4.5 ILP详解及应用 26
1.5 热门区块链平台对比分析 31
1.5.1 分析背景 31
1.5.2 平台简介 31
1.5.3 类别对比 33
1.5.4 共识机制对比 34
1.5.5 性能对比 35
1.5.6 隐私保护对比 36
1.5.7 智能合约对比 37
1.5.8 技术路线对比 37
1.5.9 经济模型对比 38
第2章 分布式系统技术 41
2.1 一致性问题 41
2.1.1 问题挑战 42
2.1.2 一致性的要求 42
2.1.3 一致性模型 43
2.2 一致性的共识算法 45
2.2.1 问题挑战 45
2.2.2 常见算法 45
2.2.3 理论界限 48
2.3 F?lP不可能原理 49
2.4 CAP原理 49
2.4.1 CAP原理定义 49
2.4.2 应用场景 50
2.5 ACID原则 51
2.6 可靠性指标 52
2.7 小结 53
第3章 密码学安全技术 54
3.1 Hash算法与数字摘要 54
3.1.1 Hash定义 55
3.1.2 常见算法 55
3.1.3 性能 56
3.1.4 数字摘要 56
3.1.5 Hash攻击与防护 56
3.1.6 区块链中的Hash应用 57
3.2 加密算法 57
3.2.1 加解密系统基本组成 57
3.2.2 对称加密算法 58
3.2.3 非对称加密算法 59
3.2.4 选择明文攻击 60
3.2.5 混合加密机制 60
3.2.6 离散对数与DH密钥交换协议 61
3.2.7 区块链加密技术 62
3.3 消息认证码与数字签名 64
3.3.1 消息认证码 64
3.3.2 数字签名 64
3.3.3 安全性 65
3.3.4 区块链数字签名 65
3.4 数字证书 66
3.4.1 X.509证书规范 66
3.4.2 证书格式 67
3.4.3 证书信任链 68
3.5 PKI体系 69
3.5.1 PKI基本组件 69
3.5.2 证书的签发 69
3.5.3 证书的撤销 71
3.6 Merkle树结构 71
3.6.1 快速对比大量数据 72
3.6.2 快速定位修改 72
3.6.3 零知识证明 72
3.7 布隆过滤器 72
3.7.1 基于Hash值的快速查找 73
3.7.2 更高效的布隆过滤器 73
3.8 同态加密 73
3.8.1 定义 73
3.8.2 问题与挑战 74
3.8.3 函数加密 75
3.9 其他问题 75
3.9.1 零知识证明概述 75
3.9.2 量子密码学 75
3.9.3 社交工程学 76
3.9.4 安全多方计算 76
3.10 小结 76
第4章 构建Fabric区块链网络 78
4.1 超级账本Fabric简介 78
4.2 Fabric特性和架构设计 80
4.2.1 Fabric特性 80
4.2.2 Fabric系统架构 82
4.3 Fabric部署 85
4.3.1 单节点部署 85
4.3.2 多节点区块链网络部署 90
4.4 Fabric开发 97
4.4.1 ChainCode开发 97
4.4.2 应用开发示例 117
4.5 Fabric方案设计 125
4.5.1 数据库选用方案 125
4.5.2 私钥证书管理方案 127
4.5.3 数据上链方案 132
4.5.4 背书验证方案 133
第5章 Fabric源代码解析 135
5.1 概述 135
5.1.1 源码中的简拼 136
5.1.2 源码中的惯例 137
5.1.3 源码目录的基本结构 138
5.2 peer命令结构 138
5.2.1 peer目录结构 138
5.2.2 第三方包 139
5.2.3 peer命令结构解析 140
5.2.4 子命令结构解析 140
5.3 日志系统 142
5.3.1 go-logging简介 142
5.3.2 f?logging 142
5.4 配置系统 143
5.4.1 viper简介 143
5.4.2 viper搜索路径和文件 144
5.4.3 InitViper 144
5.4.4 安全文件配置 145
5.4.5 命令选项配置 145
5.4.6 环境变量配置 146
5.5 账本 146
5.5.1 账本简介 146
5.5.2 数据存储服务对象 149
5.5.3 四类账本 151
5.6 加密服务 171
5.6.1 BCCSP的接口和选项 172
5.6.2 SW实现方式 174
5.6.3 PKCS11实现方式 177
5.6.4 BCCSP工厂 179
5.7 chaincode 180
5.7.1 chaincode元数据 180
5.7.2 chaincode元工具 184
5.7.3 SCC的注册和部署 185
5.7.4 ACC的安装和部署 190
5.8 Orderer服务 199
5.8.1 简介 199
5.8.2 模块 200
5.8.3 配置 201
5.8.4 模块初始化 202
5.8.5 建立连接 204
5.8.6 Broadcast 205
5.8.7 Orderer 206
5.8.8 Deliver 209
5.8.9 orderer共识机制 210
5.9 channel 213
5.9.1 目录 213
5.9.2 配置文件 214
5.9.3 命令 215
第6章 区块链政务数据共享及服务 220
6.1 背景 220
6.2 现有系统面临的挑战 221
6.3 业务需求 221
6.4 系统总体架构设计 222
6.4.1 系统架构设计 222
6.4.2 逻辑架构视图 224
6.4.3 逻辑组网示例 225
6.4.4 物理组网示例 226
6.5 证照办件方案描述 227
6.5.1 场景描述 227
6.5.2 办件消息发布 228
6.5.3 可订阅消息频道查询 229
6.5.4 办件消息订阅 229
6.6 文件共享方案 230
6.6.1 场景描述 230
6.6.2 云存储方案 230
6.6