新書推薦:
《
知宋·宋代之科举
》
售價:HK$
99.7
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:HK$
99.7
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:HK$
110.9
《
纯粹·古代中国的历史与制度
》
售價:HK$
62.7
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:HK$
58.2
《
一个英国军事顾问眼中的二战
》
售價:HK$
277.8
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:HK$
67.2
《
瘦肝
》
售價:HK$
99.7
|
內容簡介: |
准备篇(第1~2章)涵盖区块链技术概览与简单的安装、部署。核心篇(第3~9章)介绍Hyperledger的P2P协议、存储、数据隔离、会员管理、共识机制、智能合约等核心技术与实现。实践篇(第10~12章)介绍区块链的应用开发模型、部署,以及开发实战案例。
|
目錄:
|
目录?Contents
序一
序二
序三
前言
第一篇 准备篇
第1章 区块链概述2
1.1 区块链的前世今生2
1.1.1 区块链的历史起源比特币2
1.1.2 欢迎来到区块链的世界3
1.1.3 区块链演进趋势4
1.2 区块链概念5
1.2.1 区块链本质6
1.2.2 区块链工作原理6
1.2.3 区块链技术特点7
1.2.4 区块链层次模型8
1.2.5 区块链共识算法8
1.2.6 区块链并不一定去中心化9
1.3 区块链技术平台10
1.3.1 比特币10
1.3.2 以太坊11
1.3.3 瑞波13
1.3.4 区块链商用平台:超级账本13
1.3.5 区块链技术平台比较15
1.4 区块链的商用之道15
1.4.1 区块链的2.0时代:商用区块链15
1.4.2 超级账本:商用区块链的第五元素17
1.4.3 区块链的商业应用场景17
1.5 本章小结18
第2章 超级账本初体验19
2.1 基础环境安装19
2.1.1 Docker的安装和使用19
2.1.2 Docker Compose的安装和使用21
2.1.3 下载超级账本源代码24
2.2 超级账本部署调用24
2.2.1 下载Docker镜像文件24
2.2.2 部署超级账本网络25
2.2.3 链码调用和查询26
2.2.4 常见错误27
2.3 节点的配置参数传递规则29
2.4 本章小结31
第二篇 核心篇
第3章 超级账本的系统架构34
3.1 系统逻辑架构35
3.2 网络节点架构37
3.3 典型交易流程39
3.3.1 创建交易提案并发送给背书节点39
3.3.2 背书节点模拟交易并生成背书签名41
3.3.3 收集交易的背书42
3.3.4 构造交易请求并发送给排序服务节点43
3.3.5 排序服务节点以对交易进行排序并生成区块45
3.3.6 排序服务节点以广播给组织的主节点45
3.3.7 记账节点验证区块内容并写入区块45
3.3.8 在组织内部同步最新的区块49
3.4 消息协议结构49
3.4.1 信封消息结构49
3.4.2 配置管理结构51
3.4.3 背书流程结构52
3.5 策略管理和访问控制56
3.5.1 策略定义及其类型56
3.5.2 交易背书策略57
3.5.3 链码实例化策略60
3.5.4 通道管理策略61
3.6 本章小结63
第4章 基于Gossip的P2P数据分发64
4.1 概述64
4.2 超级账本中的Gossip协议65
4.3 成员认证及身份管理67
4.4 节点启动及成员管理67
4.5 主节点选举过程68
4.6 基于反熵的状态同步69
4.7 数据传播过程70
4.8 多通道的支持70
4.9 消息的验证策略71
4.10 消息的多路分用及分区73
4.11 和Gossip相关的配置参数76
4.12 本章小结77
第5章 分布式账本存储78
5.1 概述78
5.2 读写集79
5.2.1 交易模拟和读写集79
5.2.2 交易验证和世界状态更新80
5.2.3 模拟和验证示例80
5.3 账本编号81
5.4 账本数据81
5.4.1 账本数据存储82
5.4.2 账本数据读取83
5.4.3 交易模拟执行84
5.5 区块索引84
5.5.1 文件位置指针85
5.5.2 索引的同步过程86
5.6 状态数据87
5.6.1 LevelDB88
5.6.2 CouchDB89
5.6.3 基于状态数据的区块验证91
5.7 历史数据92
5.8 数据恢复92
5.9 本章小结93
第6章 集成共识机制的排序服务94
6.1 概述94
6.1.1 共识算法的类型95
6.1.2 Hyperledger Fabric 1.0的共识机制96
6.2 实现数据隔离的多通道97
6.2.1 排序服务的初始化99
6.2.2 通道的创建101
6.2.3 通道的更新105
6.2.4 通道的加入107
6.2.5 通道的查询107
6.3 可插拔的排序服务108
6.3.1 排序服务接口108
6.3.2 基于单进程的排序服务110
6.3.3 基于Kafka的排序服务110
6.3.4 链消息过滤器122
6.4 本章小结124
第7章 实现数据隔离的多链及多通道125
7.1 数据存储对多链的支持126
7.1.1 账本数据126
7.1.2 索引数据126
7.1.3 状态数据127
7.1.4 历史数据127
7.2 链码对多链的支持128
7.2.1 链码的生命周期管理128
7.2.2 链码和背书节点的通信129
7.2.3 链码的部署和调用130
7.3 多通道对多链的支持131
7.4 命令行和SDK对多链的支持132
7.5 关于系统链132
7.6 本章小结132
第8章 基于数字证书的成员管理服务133
8.1 实现成员管理的MSP133
8.1.1 MSP成员的验证133
8.1.2 MSP的目录结构134
8.1.3 MSP的配置最佳实践140
8.2 颁发数字证书的Fabric CA142
8.2.1 概述142
8.2.2 Fabric CA服务端的安装部署143
8.2.3 Fabric CA服务端的操作使用148
8.3 本章小结158
第9章 支持多种语言的智能合约159
9.1 概述160
9.2 链码的生命周期管理160
9.2.1 链码的生命周期160
9.2.2 应用程序和链码的交互流程164
9.2.3 背书节点接收应用程序的请求处理165
9.2.4 采用上下文实现交易的模拟执行166
9.2.5 链码消息的数据分发166
9.2.6 链码运行环境
|
內容試閱:
|
Preface?前言为什么要写这本书区块链是在全球范围内受到极高关注的技术。简而言之,区块链就是防篡改并且由大家共同维护的账本,其中包含不断增长的数据记录列表。根据现在的发展趋势,区块链将在商用领域得到广泛应用。
超级账本(Hyperledger)是Linux基金会旗下的区块链开发平台项目,致力于发展跨行业的商用区块链平台技术。超级账本项目自创立伊始便吸引了众多行业的领头羊,包括金融、银行、互联网、运输、制造等行业。目前,超级账本项目在全球拥有超过100个成员,包括IBM、Cisco、Intel、J.P. Morgan、荷兰银行、SWIFT、R3等。基于区块链技术、智能合约及其他相关技术,超级账本项目致力于建立新一代的分布式账本交易应用平台,从而在简化与商业流程相关的事务的同时,建立起商业信任、透明、审查等能力。Hyperledger Fabric子项目是以IBM早期捐献出的Open Blockchain为主体搭建而成的,是一个带有可插入各种功能模块架构的区块链实施方案,其目标是建立一个更加标准化的开源区块链开发平台,类似OpenStack之于云计算。开源地址是:https:github.comhyperledgerfabric。Fabric主要框架的核心开发语言是Go语言,它非常适合联盟链,具有更高的商业应用前景。
从2015年开始,由于在IBM中国实验室工作,我开始接触区块链技术和IBM的Open Blockchain项目(即Hyperledger Fabric的前身),并开始为中国的金融用户推荐它,帮助这些用户借助区块链的技术价值来实现科技和业务的创新。到了2016年下半年,Hyperledger Fabric开发平台阶段性地稳定在0.6版本,无论是IBM还是云图智链(后来被智链ChainNova并购),都在很多行业应用场景中开始实践Fabric 0.6版本。那时在国内,绝大多数的金融企业都在尝试通过Hyperledger Fabric 0.6平台来开发属于自己的区块链应用,我在那个时候有机会参与了不少相关的区块链项目,涉及领域包括数字积分、资产托管和交易、保险、高价值商品溯源等。也正是从那时起,萌生了编写一本书来解释Hyperledger原理,介绍各项开发组件,并通过真实案例还原区块链开发全过程,让更多的人觉得区块链或者Hyperledger离自己并不遥远。于是,当时我们几个作者从社区、不同的开发项目,以及各个开发团队中开始收集和整理资料,完成了基于0.6版内容的大部分写作工作。
但恰逢此时,Hyperledger的第一个商用版本1.0准备推出,我们也第一时间从Linux基金会得到了这个消息。从当时1.0版本的计划来看,推出它的目的主要有两个方面:一是Hyperledger希望以这个版本为基调,作为企业级区块链平台;二是为了解决0.6版本中出现的一些问题,1.0版本进行了很大的改变和调整,可以说这个变化是翻天覆地的,以至于我们半开玩笑地说从0.6版本到1.0版本甚至没有可直接升级的路径。当时我还在IBM工作,第一时间找到了云图智链的张增骏老师等几位作者和出版社的高婧雅编辑,和他们商量是否需要调整写作方向和内容,因为在此之前实际上张增骏老师已经在上一个版本的写作中付出了很多的时间和精力。几乎是在十分钟之内我们就一致决定要基于Hyperledger Fabric 1.0版本重新组织材料,重新编写这本书,因为我们希望自己投入的时间和付出的精力为社区、众多开发者和广大对区块链技术感兴趣的读者带来一本真正实用的书,而不是仅仅为了把我们几个人的名字留在封面上。数月后的今天,我们把初审过的稿件提交给出版社。这个过程中由于Hyperledger开源社区和代码版本不断迭代内容也不断调整,经历了更多我们之前没涉及的新行业和应用场景,甚至经历了我个人工作角色的变化,我们几个作者最终坚持完成了本书的写作。当然必须承认,由于能力和经验不足,本书还有很多提升空间,内容本身也难免出现表达不准确的地方。本书希望抛砖引玉,欢迎读者多提宝贵意见,指出本书存在的技术错误,争取在下一版本中能纠正错误,不断完善,进一步提升质量。同时,我们还会一直基于Hyperledger这个平台不断地进行产业实践,后面还会以本书为起点策划系列丛书,把我们在工作学习过程中得到的启发和经验分享给读者。
本书作者大多来自智链ChainNova,均具有多年IT工作、实践经验。智链ChainNova与超级账本社区一直有非常紧密的合作。2017年智链ChainNova研究院联手Linux Foundation和IBM,共同主办了HyperLedger Fabric商用正式版本1.0发布后Hyperledger开源社区第一次线下会议(北京Meetup),Hyperledger全球副总裁、亚太区负责人Julian Gordan和多家国内知名金融企业、科技企业高层出席。在2018年,智链ChainNova正在计划携手Linux Foundation、北京大学和IBM共同主办超级账本黑客马拉松大赛(HyperLedger Hackathon)。同时为了进一步活跃Hyperledger社区,我们还即将承办多项开源社区活动,欢迎读者积极参与。相信读者将在学习区块链技术和Hyperledger的过程中获益匪浅。
本书特色笔者是Hyperledger社区成员,参与超级账本社区的日常工作,了解超级账本发展和技术细节的第一手资料。本书以Fabri
|
|