类似推荐
编辑推荐
本书由浅入深,详细讲解超级账本Fabric架构设计精华与应用开发,是区块链开发落地专业指南。
内容简介
本书由超级账本核心设计和开发者撰写,是区块链开发落地专业指南。由浅入深,系统化介绍超级账本Fabric设计精华、应用开发等。全书分为理论篇和实践篇两大部分;第1~3章介绍区块链技术的由来、核心思想及典型的应用场景;第4~5章重点介绍区块链技术中大量出现的分布式系统技术和密码学安全技术;第6~8章介绍区块链领域的三个典型开源项目:比特币、以太坊以及超级账本;第9~11章以超级账本 Fabric 项目为例,具体讲解了安装部署、配置管理,以及使用 Fabric CA 进行证书管理的实践经验;第12章重点剖析超级账本 Fabric 项目的核心架构设计;第13章介绍区块链应用开发的相关技巧和示例;第14章介绍区块链服务平台的设计与开发,并讲解应用超级账本 Cello 项目构建服务平台的相关知识。本书覆盖了区块链和分布式账本领域的最新技术,可帮助读者深入理解区块链核心原理和典型设计实现,以及高效地开发基于区块链平台的分布式应用。
作者简介
作者杨保华,博士,毕业于清华大学。超级账本(Hyperledger)大中华区技术工作组主席,IBM大中华区Blockchain技术社区首席顾问,资深研究员。曾主持多个大规模系统平台的架构设计和研发实施,是区块链、云计算、大数据等技术的早期研究者和实践者。他热爱开源技术,曾贡献OpenStack、OpenDaylight等开源项目,是超级账本Fabric项目核心设计和开发者,也是Cello和Fabric-SDK-Py项目的发起人。
章节目录
版权信息
序言
前言
理论篇
第1章 区块链思想的诞生
1.1 从实体货币到数字货币
1.2 站在巨人的肩膀上
1.3 了不起的社会学实验
1.4 潜在的商业价值
1.5 本章小结
第2章 核心技术概览
2.1 定义与原理
2.2 技术的演化与分类
2.3 关键问题和挑战
2.4 趋势与展望
2.5 认识上的误区
2.6 本章小结
第3章 典型应用场景
3.1 应用场景概览
3.2 金融服务
3.2.1 银行业金融管理
3.2.2 证券交易
3.2.3 众筹投资
3.3 征信和权属管理
3.4 资源共享
3.5 贸易管理
3.6 物联网
3.7 其他场景
3.8 本章小结
第4章 分布式系统核心问题
4.1 一致性问题
4.1.1 定义与重要性
4.1.2 问题与挑战
4.1.3 一致性要求
4.1.4 带约束的一致性
4.2 共识算法
4.2.1 问题与挑战
4.2.2 常见算法
4.2.3 理论界限
4.3 FLP不可能原理
4.3.1 定义
4.3.2 正确理解
4.4 CAP原理
4.4.1 定义
4.4.2 应用场景
4.5 ACID原则
4.6 Paxos算法与Raft算法
4.6.1 Paxos算法
4.6.2 Raft算法
4.7 拜占庭问题与算法
4.8 可靠性指标
4.8.1 几个9的指标
4.8.2 两个核心时间
4.8.3 提高可靠性
4.9 本章小结
第5章 密码学与安全技术
5.1 Hash算法与数字摘要
5.1.1 Hash定义
5.1.2 常见算法
5.1.3 性能
5.1.4 数字摘要
5.1.5 Hash攻击与防护
5.2 加解密算法
5.2.1 加解密系统基本组成
5.2.2 对称加密算法
5.2.3 非对称加密算法
5.2.4 选择明文攻击
5.2.5 混合加密机制
5.2.6 离散对数与Diffie–Hellman密钥交换协议
5.3 消息认证码与数字签名
5.3.1 消息认证码
5.3.2 数字签名
5.3.3 安全性
5.4 数字证书
5.4.1 X.509证书规范
5.4.2 证书格式
5.4.3 证书信任链
5.5 PKI体系
5.5.1 PKI基本组件
5.5.2 证书的签发
5.5.3 证书的撤销
5.6 Merkle树结构
5.7 布隆过滤器
5.8 同态加密
5.9 其他问题
5.10 本章小结
第6章 比特币——区块链思想诞生的摇篮
6.1 比特币项目简介
6.1.1 比特币大事记
6.1.2 其他数字货币
6.2 原理和设计
6.2.1 基本交易过程
6.2.2 重要概念
6.2.3 创新设计
6.3 挖矿
6.3.1 基本原理
6.3.2 挖矿过程
6.3.3 如何看待挖矿
6.4 共识机制
6.4.1 工作量证明
6.4.2 权益证明
6.5 闪电网络
6.6 侧链
6.6.1 SPV证明
6.6.2 双向挂钩
6.6.3 最新进展
6.7 热点问题
6.7.1 设计中的权衡
6.7.2 分叉
6.7.3 交易延展性
6.7.4 扩容之争
6.7.5 比特币的监管和追踪
6.8 相关工具
6.9 本章小结
第7章 以太坊——挣脱数字货币的枷锁
7.1 以太坊项目简介
7.1.1 以太坊项目简史
7.1.2 主要特点
7.2 核心概念
7.3 主要设计
7.3.1 智能合约相关设计
7.3.2 交易模型
7.3.3 共识
7.3.4 降低攻击
7.3.5 提高扩展性
7.4 相关工具
7.4.1 客户端和开发库
7.4.2 以太坊钱包
7.4.3 IDE
7.4.4 网站资源
7.5 安装客户端
7.5.1 从PPA直接安装
7.5.2 从源码编译
7.6 使用智能合约
7.6.1 搭建测试用区块链
7.6.2 创建和编译智能合约
7.6.3 部署智能合约
7.6.4 调用智能合约
7.7 智能合约案例:投票
7.7.1 智能合约代码
7.7.2 代码解析
7.8 本章小结
第8章 超级账本——面向企业的分布式账本
8.1 超级账本项目简介
8.2 社区组织结构
8.2.1 基本结构
8.2.2 大中华区技术工作组
8.3 顶级项目介绍
8.3.1 Fabric项目
8.3.2 Sawtooth项目
8.3.3 Iroha项目
8.3.4 Blockchain Explorer项目
8.3.5 Cello项目
8.3.6 Indy项目
8.3.7 Composer项目
8.3.8 Burrow项目
8.4 开发必备工具
8.4.1 Linux Foundation ID
8.4.2 Jira——任务和进度管理
8.4.3 Gerrit——代码仓库和Review管理
8.4.4 RocketChat——在线沟通
8.5 贡献代码
8.6 本章小结
实践篇
第9章 超级账本Fabric部署和使用
9.1 简介
9.2 本地编译安装
9.2.1 操作系统
9.2.2 环境配置
9.2.3 获取代码
9.2.4 编译安装fabric-peer组件
9.2.5 编译安装fabric-orderer组件
9.2.6 编译安装fabric-ca组件
9.2.7 编译安装辅助工具
9.2.8 获取chaintool
9.2.9 安装Go语言相关工具
9.2.10 示例配置
9.3 使用Docker镜像
9.3.1 安装Docker服务
9.3.2 安装docker-compose
9.3.3 获取Docker镜像
9.3.4 镜像Dockerfile
9.4 启动Fabric网络
9.4.1 网络拓扑
9.4.2 准备相关配置文件
9.4.3 启动Orderer节点
9.4.4 启动Peer节点
9.4.5 操作网络
9.4.6 基于容器方式
9.5 链码的概念与使用
9.5.1 链码操作命令
9.5.2 命令参数
9.5.3 安装链码
9.5.4 实例化链码
9.5.5 调用链码
9.5.6 查询链码
9.5.7 升级链码
9.5.8 打包链码和签名
9.6 使用多通道
9.6.1 通道操作命令
9.6.2 命令选项
9.6.3 创建通道
9.6.4 加入通道
9.6.5 列出所加入的通道
9.6.6 获取某区块
9.6.7 更新通道配置
9.7 SDK支持
9.8 生产环境注意事项
9.9 本章小结
第10章 超级账本Fabric配置管理
10.1 简介
10.1.1 配置文件
10.1.2 配置管理工具
10.2 Peer配置剖析
10.2.1 logging部分
10.2.2 peer部分
10.2.3 vm部分
10.2.4 chaincode部分
10.2.5 ledger部分
10.3 Orderer配置剖析
10.4 cryptogen生成组织身份配置
10.4.1 配置文件
10.4.2 子命令和参数
10.4.3 生成密钥和证书文件
10.4.4 查看配置模板信息
10.5 configtxgen生成通道配置
10.5.1 configtx.yaml配置文件
10.5.2 命令选项
10.5.3 生成Orderer初始区块并进行查看
10.5.4 生成新建通道交易文件并进行查看
10.5.5 生成锚节点更新交易文件
10.6 configtxlator转换配置
10.6.1 RESTful接口
10.6.2 解码为Json格式
10.6.3 编码为二进制格式
10.6.4 计算配置更新量
10.6.5 更新通道配置
10.7 本章小结
第11章 超级账本Fabric CA应用与配置
11.1 简介
基本组件
11.2 安装服务端和客户端
11.2.1 本地编译
11.2.2 获取和使用Docker镜像
11.2.3 示例Dockerfile
11.3 启动CA服务
11.4 服务端命令剖析
11.4.1 全局命令参数
11.4.2 init命令
11.4.3 start命令
11.5 服务端配置文件解析
11.6 与服务端进行交互
11.7 客户端命令剖析
11.7.1 全局命令参数
11.7.2 enroll命令
11.7.3 getcacert命令
11.7.4 reenroll命令
11.7.5 register命令
11.7.6 revoke命令
11.8 客户端配置文件解析
11.9 生产环境部署
11.10 本章小结
第12章 超级账本Fabric架构与设计
12.1 整体架构概览
12.1.1 核心特性
12.1.2 整体架构
12.1.3 典型工作流程
12.2 核心概念与组件
12.2.1 网络层相关组件
12.2.2 共识相关组件
12.2.3 权限管理相关组件
12.2.4 业务层相关组件
12.3 gRPC消息协议
12.3.1 Envelope消息结构
12.3.2 客户端访问Peer节点
12.3.3 客户端、Peer节点访问Orderer
12.3.4 链码容器和Peer节点之间的操作
12.3.5 多个节点之间的操作
12.4 权限管理和策略
12.4.1 策略应用场景
12.4.2 身份证书
12.4.3 权限策略的实现
12.4.4 通道策略
12.4.5 背书策略
12.4.6 实例化策略
12.5 用户链码
12.5.1 基本结构
12.5.2 链码与Peer的交互过程
12.5.3 链码处理状态机
12.6 系统链码
12.7 排序服务
12.7.1 gRPC服务接口
12.7.2 链和账本管理
12.7.3 通道配置更新
12.7.4 共识插件
12.8 本章小结
第13章 区块链应用开发
13.1 简介
13.2 链码的原理、接口与结构
13.2.1 Chaincode接口
13.2.2 链码结构
13.2.3 链码基本工作原理
13.3 链码开发API
13.3.1 账本状态交互API
13.3.2 交易信息相关API
13.3.3 参数读取API
13.3.4 其他API
13.4 应用开发案例一:转账
13.4.1 链码结构
13.4.2 Init方法
13.4.3 Invoke方法
13.5 应用开发案例二:资产权属管理
13.5.1 链码结构
13.5.2 Invoke方法
13.6 应用开发案例三:调用其他链码
13.7 应用开发案例四:发送事件
13.8 开发最佳实践小结
13.9 本章小结
第14章 区块链服务平台设计
14.1 简介
14.1.1 参考架构
14.1.2 考量指标
14.2 IBM Bluemix云区块链服务
14.3 微软Azure云区块链服务
14.4 使用超级账本Cello搭建区块链服务
14.4.1 基本架构和特性
14.4.2 环境准备
14.4.3 下载Cello源码
14.4.4 配置Worker节点
14.4.5 配置Master节点
14.4.6 使用Cello管理区块链
14.4.7 基于Cello进行功能扩展
14.5 本章小结
附录
附录A 术语表
通用术语
密码学与安全相关
比特币、以太坊相关术语
超级账本相关术语
附录B 常见问题解答
通用问题
比特币、以太坊相关
超级账本项目
附录C Golang开发相关
安装与配置Golang环境
编辑器与IDE
高效开发工具
附录D ProtoBuf与gRPC
ProtoBuf
gRPC
附录E 参考资源
论文
项目网站
培训课程
区块链即服务
区块链原理、设计与应用是2017年由机械工业出版社出版,作者杨保华。
得书感谢您对《区块链原理、设计与应用》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。