首页>参考读物>计算机科学与技术>软件与程序设计

深度探索区块链:Hyperledger技术与应用
作者 : 张增骏 董宁 朱轩彤 陈剑雄 著
丛书名 : 区块链技术丛书
出版日期 : 2018-01-12
ISBN : 978-7-111-58932-7
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 324
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

准备篇(第1-2章),区块链的技术的概览与基本概念。
基础篇(第2-7章),介绍Hyperledger安装、部署、P2P协议、存储、会员管理、共识机制、智能合约等基础技术与知识。
实践篇(8-9章),介绍区块链的应用开发模型,开发实战的案例。
拓展篇(第10章),介绍性能调优、排障等高级技能。

图书特色

本书集合了多方共同的心血,由Linux基金会会员、智链ChainNova的一线技术团队主笔撰写,他们不仅是超级账本中国社区的主要贡献者,还长期奋战在市场前线,对商业应用环境有相当的了解,相信从书中内容的翔实程度可见一斑。
—— Brian Behlendorf 超级账本执行董事
这是我迄今为止所见关于超级账本技术和应用非常有参考意义的技术书籍,值得向广大区块链的研究者与开发同行们推荐。
—— 陈钟 北京大学信息科学技术学院教授、北京大学金融信息化研究中心主任
本书的目的不是蜻蜓点水地介绍一些Hyperledger入门知识,而是通过阅读本书能让读者达到一定的水平,甚至可以加入区块链产业应用中来,为区块链的发展和实践落地添砖加瓦。
—— 何宝宏 中国信息通信研究院云计算与大数据研究所所长
本书作者均来自超级账本会员企业骨干团队,拥有多年一线实践经验,这让本书不仅内容翔实,更具备很强的可操作性。作为中国技术工作组的核心成员,智链的成员为超级账本项目的国际化和技术推广都做出了重要贡献。无论是想了解先进的企业级区块链技术,还是进行应用实践参考,本书都值得一读。
—— 杨保华 超级账本全球技术委员会委员,中国技术工作组主席
董宁牵头编写的《深度探索区块链:Hyperledger技术与应用》系统阐述了超级账本的技术原理、架构、核心组件及应用开发实例,是一本学习超级账本底层技术和应用实例的优秀工具书,值得推荐。
—— 马小峰 苏州同济金融科技研究院院长、中国电子学会区块链专委会副主任委员
可以预见,不久的将来区块将成为数字社会的基础设施。作为富含IBM基因的超级账本资深参与者,作者对超级账本有着深刻的理解。本书从区块链的概述到超级账本的技术解读与操作,处处见功夫,是非常有价值的读本。
—— 孙贻滋 中国电子学会区块链专委会副主任委员兼秘书长

张增骏 智链ChainNova技术总监和架构师。十余年软件开发和项目管理经验,设计并实现了多个区块链项目,带领团队获得“2017可信区块链峰会”唯一非金融类最佳案例奖。中国信通院可信区块链专家委员会成员,参与讨论并推动可信区块链测试标准的制定,多次受邀到高校、企业分享与推动区块链落地工作。曾任绿盟科技PDT经理,带领团队研发的远程安全评估系统(RSAS)连续多年国内排名第一,广泛应用于多个重点领域。目前关注区块链、网络安全、大数据、云计算和人工智能等领域。
董宁 智链 ChainNova科技公司CEO,北京大学(天津滨海)新一代信息技术研究院金融科技研究中心主任,毕业于北京大学信息科学技术学院智能科学系。曾任IBM大中华区IT经济学负责人,参与过数家商业银行和金融机构核心系统的设计建设,具有多年金融行业的商业经验。
朱轩彤 清华大学硕士,中国社会科学院数量经济与技术经济研究所博士生,专注于技术经济研究。在政府部门及国际组织有丰富的工作经验。
陈剑雄 智链ChainNova首席科学家,原金山云技术VP,中科院计算与通信工程学院硕士。多年大规模集群系统研发经验,参与多个区块链核心系统设计和应用。

超级账本执行董事Brian Behlendorf领衔推荐,资深一线区块链专家联合撰写,区块链和Hyperledger技术扛鼎之作。本书深度剖析区块链框架Hyperledger Fabric 1.0的架构、核心技术、部署与应用开发。
本书分三篇,共12章。
准备篇(第1~2章),言简意赅地介绍区块链的核心理念、演进、主流平台、商用场景,以及安装、部署与调试。这两章为读者厘清思路,并可初步直观感受区块链。
核心篇(第3~9章),庖丁解牛式剖析Fabric 1.0架构到内部实现机制,该篇是本书的核心,是理解区块链设计与实现的关键所在,也是日后应用的基础。该篇涵盖:
Fabric架构、组件关系与运行机制总览;
Gossip协议与P2P数据分发机制;
分布式账本数据相关的存储技术;
共识机制及其可插拔架构设计;
如何实现数据隔离的多链与多通道;
基于数字证书的成员管理服务实现与使用;
智能合约实现、交互,以及有限状态机。
应用篇(第10~12章),从安装部署、开发模型和应用开发的角度,结合票据背书案例讲解如何基于Hyperledger Fabric 1.0开发区块链应用,以完整地掌握区块链应用开发,动手实践具体的项目。
写作投稿:165075460@qq.com

图书前言

为什么要写这本书
区块链是在全球范围内受到极高关注的技术。简而言之,区块链就是防篡改并且由大家共同维护的账本,其中包含不断增长的数据记录列表。根据现在的发展趋势,区块链将在商用领域得到广泛应用。
超级账本(Hyperledger)是Linux基金会旗下的区块链开发平台项目,致力于发展跨行业的商用区块链平台技术。超级账本项目自创立伊始便吸引了众多行业的领头羊,包括金融、银行、互联网、运输、制造等行业。目前,超级账本项目在全球拥有超过100个成员,包括IBM、Cisco、Intel、J.P. Morgan、荷兰银行、SWIFT、R3等。基于区块链技术、智能合约及其他相关技术,超级账本项目致力于建立新一代的分布式账本交易应用平台,从而在简化与商业流程相关的事务的同时,建立起商业信任、透明、审查等能力。Hyperledger Fabric子项目是以IBM早期捐献出的Open Blockchain为主体搭建而成的,是一个带有可插入各种功能模块架构的区块链实施方案,其目标是建立一个更加标准化的开源区块链开发平台,类似OpenStack之于云计算。开源地址是:https://github.com/hyperledger/fabric。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社区成员,参与超级账本社区的日常工作,了解超级账本发展和技术细节的第一手资料。本书以Fabric 商用正式版本1.0作为底层平台,其中也凝结了我们在Hyperledger开发理论和实际操作方面的经验。
本书深入讨论Hyperledger的核心技术,帮读者分析原理、关键实现与使用,是为数不多深入探讨和研究区块链的书籍之一。
我们的目标是把本书作为高校、科研院所、职业培训、企业技术学习的教材,向社会普及Hyperledger,培养更多的Hyperledger开发人才。
读者对象
区块链从业者
区块链应用开发人员
其他区块链技术爱好者(金融/Fintec从业者、产品经理、企业管理者等)
计算机及相关专业师生
如何阅读本书
本书共有12章内容,大体可以分为三篇内容。
准备篇(第1~2章),介绍区块链的基本概念,感受区块链的魅力。
第1章 本章是区块链技术与生态的概览,涉及区块链的基本概念、演进、主流平台,并着重分析企业级区块链平台的应用场景,有助于读者对区块链和Hyperledger Fabric 1.0(以下简称Fabric)的设计理念有整体性的了解。
第2章 本章介绍Fabric的安装、部署与调试。抛开复杂的底层技术细节,简化复杂的部署过程,快速体验Fabric的强大功能,以便有直观的感受。
核心篇(第3~9章),从系统架构开始讲解内部实现机制。
第3章 本章基于Fabric 1.0讲解区块链的架构,这是后续章节的基础,高屋建瓴地看待各个部件之间的关系和运行逻辑。本章涉及系统逻辑架构、网络节点架构、典型的交易流程、消息协议结构、策略管理和访问控制等内容,后面章节会从技术角度逐一“拆解”。
第4章 本章介绍基于Gossip的P2P数据分发机制,包括节点启动与成员管理、主节点选举与基于反熵的状态同步、身份认证与管理、多路分用与分区处理过程、消息的多种验证策略等。
第5章 本章介绍最为基础的分布式账本技术,它涵盖账本数据、索引数据、状态数据、历史数据等的实现技术。
第6章 本章介绍如何在排序服务上实现多通道的数据隔离,包括创建通道、节点加入通道等。排序服务采用插件化设计,可以根据业务场景的需求采用不同的共识算法。本章后面的内容详细介绍了排序服务的接口,以及实现了排序服务接口的Solo和Kafka模式。
第7章 本章介绍Fabric 1.0支持的多链及其内部的实现,多个链同时运行是一个系统工程,本章从数据存储、链码、命令行工具和SDK实现等多个方面分析如何支持多链。
第8章 本章介绍成员管理机制。它分为两个部分,第一部分详细介绍了MSP机制,包括MSP成员的验证、目录结构和配置最佳实践等;第二部分介绍可选的Fabric CA,包括服务端的安装部署和客户端的使用,还介绍了服务端提供的RESTful接口。
第9章 本章介绍Fabric 1.0上智能合约的实现。包括的内容有链码的生命周期管理、内置的系统链码、链码的相互调用、背书节点和链码的有限状态机等。
应用篇(第10~12章),从安装部署和应用开发的角度,通过一个票据背书的案例讲解如何基于Hyperledger Fabric 1.0开发区块链应用。
第10章 本章介绍Fabric 1.0的应用开发模型。从应用开发的角度看,开发者需要关注两部分:一部分是基于不同语言的SDK开发和区块链网络交互的应用程序;另一部分是实现超级账本的智能合约。本章详细介绍HFC SDK各个模块及其主要功能,链码的主要接口及其功能。
第11章 本章介绍多种Fabric 1.0的部署方式,包括分别基于Vagrant、Virtualbox、Docker的运行环境,以及BYFN脚本的使用。详细说明如何手动构建Fabric 1.0网络等。
第12章 本章通过一个票据背书示例,讲解如何实际开发一个基于Fabric 1.0的区块链应用。通过本章的实践,读者能够掌握区块链应用开发的方方面面,然后就可以动手开发具体的项目了。
读者反馈与勘误
欢迎读者朋友反馈,请让我们知道你对本书的看法——你喜欢哪些地方,不喜欢哪些地方。读者反馈对于我们很重要,因为这将帮助我们继续写作使你获益的书籍。反馈意见请发送E-mail至jessie@chainnova.com,并在邮件主题中指明书名,我们将尽力解决问题。如果你有专长领域,并对写书或为书做出其他贡献感兴趣,请访问www.chainnova.com参见作者指南。
特别致谢
首先感谢本书的其他作者——张增骏老师、朱轩彤老师和陈剑雄老师。他们在工作之余,挤出宝贵时间为本书贡献了他们对区块链技术和Hyperledger的理解和洞察。特别感谢张增骏老师在工作本身比较繁忙的前提下,为本书花费了很多精力,他不仅在内容上积极供稿,还在审定、修改和校正方面下了很多工夫。朱轩彤老师博闻强识,本身具有很强的行业背景,对科技产业的发展又格外关注,这些在本书第1章中得到了充分体现。智链首席科学家陈剑雄也对本书的内容给出了很多宝贵的意见和建议,同时对本书合作的达成给予了支持。
万分感谢超级账本执行董事Brian Behlendorf先生,北京大学陈钟教授和中国信息通信研究院云计算与大数据所何宝宏所长在百忙之中拨冗为本书做序,让我感觉特别荣幸。他们在各自领域都是最顶尖的专家,同时对区块链技术都有深刻且独到的见解。还有苏州同济金融科技研究院马小峰院长、中国电子学会区块链专委会孙贻滋秘书长和超级账本中国技术工作组杨保华主席为本书写来热情洋溢的推荐,令人备感温暖。
在成书的过程中,和我一起工作和合作的很多专家对本书都给予了不同程度的支持和帮助,像Linux基金会超级账本亚太区副总裁Julian Gordon和中国地区顾问龙文选先生,北京大学(天津滨海)新一代信息技术研究院马修军副院长,中国信息通信研究院云计算与大数据所魏凯主任和卿苏德博士,IBM的各位领导和专家,以及其他各个单位的领导和大咖,在此抱歉不能一一尽述。
非常感谢机械工业出版社华章分社的编辑高婧雅,她的敬业精神和编辑效率令我由衷敬佩,她的反馈、建议、鼓励和帮助引导我们克服诸多困难完成全部书稿。同时,本书的推广得到了CSDN及其副总裁孟岩先生、InfoQ及其总编辑郭蕾先生这些好朋友的大力支持。
最后,因为工作和写作,牺牲了很多本该陪伴家人的时间。我要特别感谢我的家人长期以来对我的默默支持和理解。
谨以本书献给我最亲爱的家人,多年以来帮助、支持我的师友,以及众多热爱区块链技术的朋友!

董宁  
2017年12月 

上架指导

计算机\程序设计

封底文字

本书集合了多方共同的心血,由Linux基金会会员、智链ChainNova的一线技术团队主笔撰写,他们不但是超级账本中国社区的主要贡献者,还长期奋战在市场前线,对商业应用环境有相当的了解,相信从书中内容的翔实程度可见一斑。
——Brian Behlendorf,超级账本执行董事
这是我迄今为止所见关于超级账本技术和应用非常有参考意义的技术书籍,值得向广大区块链的研究者与开发同行们推荐。
——陈钟,北京大学信息科学技术学院教授、北京大学金融信息化研究中心主任
本书的目的不是蜻蜓点水地介绍一些Hyperledger入门知识,而是通过阅读本书能让读者达到一定的水平,甚至可以加入区块链产业应用中来,为区块链的发展和实践落地添砖加瓦。
——何宝宏,中国信息通信研究院云计算与大数据研究所所长
本书作者均来自超级账本会员企业骨干团队,拥有多年一线实践经验,这让本书不仅内容翔实,更具备很强的可操作性。智链的成员作为中国技术工作组的核心成员,为超级账本项目的国际化和技术推广都做出了重要贡献。无论是想了解最先进的企业级区块链技术,还是进行应用实践参考,本书都值得一读。
——杨保华,超级账本全球技术委员会委员,中国技术工作组主席
董宁牵头编写这本《深度探索区块链:Hyperledger技术与应用》系统阐述了超级账本的技术原理、架构、核心组件及应用开发实例,是一本很好的学习超级账本底层技术和应用实例的工具书,值得推荐。
——马小峰,苏州同济金融科技研究院院长、中国电子学会区块链专委会副主任委员
可以预见,不久的将来区块将成为数字社会的基础设施。作者作为富含IBM基因的超级账本资深参与者,对超级账本有着深刻的理解。本书从区块链的概述到超级账本的技术解读与操作,处处见功夫,是非常有价值的读本。
——孙贻滋,中国电子学会区块链专委会副主任委员兼秘书长

(放CSDN、InfoQ的Logo)联合推荐

作者简介

张增骏 董宁 朱轩彤 陈剑雄 著:

图书目录

序一
序二
序三
前言
第一篇 准备篇
第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 LevelDB 88
5.6.2 CouchDB 89
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 实现成员管理的MSP 133
8.1.1 MSP成员的验证 133
8.1.2 MSP的目录结构 134
8.1.3 MSP的配置最佳实践 140
8.2 颁发数字证书的Fabric CA 142
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 链码运行环境的管理 168
9.3 内置的系统链码 172
9.3.1 生命周期管理系统链码 173
9.3.2 配置管理系统链码 180
9.3.3 查询管理系统链码 182
9.3.4 交易背书系统链码 182
9.3.5 交易验证系统链码 184
9.4 链码的相互调用 184
9.5 背书节点和链码的有限状态机 185
9.5.1 背书节点和链码之间的事件 188
9.5.2 背书节点的有限状态机 189
9.5.3 链码的有限状态机 190
9.6 本章小结 192
第三篇 应用篇
第10章 超级账本的应用开发模型 194
10.1 应用开发模型 194
10.2 应用程序开发的SDK 194
10.2.1 概述 195
10.2.2 SDK规范 195
10.2.3 应用场景介绍 204
10.3 链码的开发和调试 210
10.3.1 链码需要实现的接口 210
10.3.2 链码的SDK提供给链码的接口 212
10.3.3 链码开发的注意事项 214
10.3.4 链码的调试 215
10.4 本章小结 216
第11章 从零开始部署超级账本网络 217
11.1 准备超级账本运行环境 217
11.1.1 超级账本运行环境 217
11.1.2 编译超级账本镜像文件 224
11.2 快速构建超级账本网络 227
11.2.1 下载BYFN的代码 227
11.2.2 BYFN脚本介绍 227
11.2.3 生成网络初始化配置 228
11.2.4 启动超级账本网络 230
11.2.5 关闭超级账本网络 235
11.3 逐步建立超级账本网络 236
11.3.1 生成MSP证书 236
11.3.2 生成排序服务创世区块 236
11.3.3 生成通道配置创世区块 236
11.3.4 定义组织锚节点 237
11.3.5 启动超级账本网络 237
11.3.6 创建并加入通道 238
11.3.7 安装和实例化链码 240
11.3.8 执行链码查询 243
11.3.9 执行链码调用 244
11.4 本章小结 245
第12章 超级账本的应用开发实例 246
12.1 票据背书场景介绍 246
12.1.1 票据关系人 247
12.1.2 票据行为分类 247
12.1.3 基于区块链技术的数字票据 249
12.2 票据背书需求分析 250
12.3 票据背书架构设计 251
12.3.1 票据背书的分层架构 252
12.3.2 票据背书的数据模型 253
12.4 票据背书实现 254
12.4.1 应用程序实现 254
12.4.2 链码功能实现 275
12.5 票据背书快速部署 287
12.6 票据背书展示 288
12.6.1 系统登录 288
12.6.2 发布票据 288
12.6.3 我的票据 289
12.6.4 发起票据背书 289
12.6.5 待签收票据列表 290
12.6.6 签收票据背书 290
12.6.7 拒收票据背书 291
12.7 本章小结 292
附录A 术语表 293
附录B 超级账本的实用工具 297
参考文献 308

教学资源推荐
作者: [美]梁勇(Y. Daniel Liang)阿姆斯特朗亚特兰大州立大学 著
作者: 刘燕君,刘振安,孙忱
作者: 杨树林 胡洁萍 编著
参考读物推荐
作者: (英)Peter Wainwright等
作者: (美)Henry S. Warren, Jr. 著
作者: (美)Shane Cook 著
作者: (美)Erik M. Buck 著