前言
党的二十大报告中指出: 教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,这三大战略共同服务于创新型国家的建设。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。

2008年,中本聪(Satoshi Nakamoto)首次在《比特币: 一种点对点的电子现金系统》文章中提出了“区块链”(BlockChain)的相关概念。那时的区块链只作为一种底层技术被圈内人士讨论,并没有广泛的落地应用。之后,随着IT行业的不断发展和区块链技术的不断演变,区块链逐渐突破原有的限制,被广泛应用于金融、能源、版权、公益、医疗、农业、物联网、人工智能等各个领域,成为新一代信息技术的代表之一。2016年12月,区块链首次被列入《“十三五”国家信息化规划》,并被作为未来重点突破与发展的六大关键技术之一。

随着国家政策的大力支持,阿里巴巴、百度、腾讯等各大互联网行业巨头纷纷布局区块链,诞生了蚂蚁链、百度超级链、腾讯区块链等各种区块链应用。同时,国内以区块链业务为主营业务的区块链明星创业公司(如趣链科技、井通科技、布比等)如雨后春笋般纷纷出现并快速成长。在传统行业中,中国平安、万向集团等行业巨头也纷纷投入巨资,成立区块链相关的网络科技公司或实验室,研究区块链技术与应用,积累资源,突破技术壁垒,试图在未来区块链的竞争赛道中抢占有利位置。与此同时,国外各大主流区块链平台也在快速发展、相互融合,逐渐形成了数个典型的开源生态体系及平台,主要代表为以下3个: 

(1) 以比特币(Bitcoin)为代表的“虚拟货币”平台开源社区生态体系,作为区块链技术的代表之作,主要解决了数字货币交易的中心化信任问题,实现了数字货币去中心化、可信任的点对点交易。

(2) 以以太坊(Ethereum)为代表的支持可编程智能合约的公有链平台开源社区生态体系,将区块链作为可编程的分布式信用基础设施,支持链上编程,成功将区块链应用场景扩展到版权、公益、能源等各个领域。

(3) 以超级账本(HyperLedger Fabric)为代表的企业级联盟链平台开源社区生态体系,主要解决多个弱信任企业或个体之间的信任问题,在企业或个体之间实现敏感数据的针对性共享,进而提升彼此之间协作活动的效率,是完全面向企业级应用场景的许可区块链。

本书围绕区块链技术落地应用为核心进行编写,以超级账本联盟链为切入点,系统地介绍了区块链的发展历史、基础理论及核心技术,重点介绍了Fabric项目的相关概述、运行架构及智能合约的开发方法,并以Fabric为框架实践了3个不同类型的区块链落地应用,书中相关代码为HyperLedger Fabric 2.2.0正式版,具体代码可从GitHub官网下载。本书旨在通过理论与实践相结合的方法,帮助读者更好地理解区块链技术的相关概念,并能快速地上手实践区块链项目。

本书内容由三部分共计12章和附录组成。第一部分介绍了区块链的基础知识,包括第1~4章; 第二部分介绍了Fabric联盟链的基础知识,包括第5~9章; 第三部分介绍了3个具体的项目实践,包括第10~12章。

第1章是区块链技术概述,分别从区块链的基本概念、类别划分、总体架构、应用场景四个方面对区块链的知识脉络进行了系统性的分析和讲解,帮助读者梳理区块链技术的知识网络。

第2章介绍了分布式存储技术,包括HDFS、Storj和IPFS这3种分布式系统,并引出了基于IPFS的区块链项目Filecoin,介绍了它的架构、运行机制,最后从三个维度对分布式文件系统进行了比较,帮助读者梳理区块链技术与分布式存储技术的区别与联系。

第3章介绍了区块链核心密码学技术,详细讲解了在区块链技术中所涉及的相关密码学知识,主要包括哈希函数、Merkle树、数据加密技术、数字签名算法及PKI等技术,使读者可充分了解PKI的特点及其在区块链中的重要作用。





第4章介绍了区块链常见共识算法,详细讲解了在区块链技术中所涉及的相关共识算法,包括分布式共识中的两个著名问题、共识算法的分类、区块链中主流共识算法及其综合比较等内容,读者可充分了解共识算法的特点及其在区块链中的重要作用。

第5章介绍了超级账本开源项目,从超级账本项目的起源、设计理念与特点、行业应用方面对超级账本项目进行了简单介绍,对超级账本子项目的特点与应用场景,以及超级账本提供的开发协作工具进行了概要性的介绍,重点讲解了超级账本区块链浏览器的使用方法。希望读者完成本章学习后,对超级账本涉及的开源项目有一个整体了解。

第6章介绍了Fabric入门,介绍了Fabric逻辑架构与运行时架构,以及网络、节点、账本、组织、联盟、通道、智能合约和链码等一系列核心概念,着重介绍了Fabric的用户注册和交易流程,通过实例对流程进行了梳理与解析,为后续Fabric应用章节的学习提供了理论基础。

第7章介绍了Fabric实践环境的开发准备,包括基本的系统环境、相关实用工具、从GitHub上拉取Fabric项目的源码及运行Fabric测试网络的方法,帮助读者为后续Fabric网络搭建的学习和智能合约的学习奠定坚实基础。

第8章介绍了Fabcar应用程序解析,详细讲解了Fabcar项目案例,包括项目业务场景、区块链网络搭建、智能合约安装与部署、SDK注册用户及链下应用程序等部分内容,便于读者在区块链项目开发中更好地将智能合约与后端代码进行连接,助力区块链项目的落地应用。

第9章进行了智能合约开发详解,从智能合约的发展历史、基本概念、运行机制、开发规范、安全隐患等多个方面对智能合约的知识脉络进行了系统性的分析和讲解,以基于区块链的人员招聘管理系统为例,按照软件工程的规范讲解了如何根据业务需求开发智能合约,搭建区块链入门项目,进而提高读者开发智能合约的能力。

第10章介绍了公益捐助平台,通过对公益捐助平台项目的分析,获得公益捐助业务的项目背景及业务场景和业务需求,再根据业务流程设计出公益捐助平台系统的总体框架,根据需求逐一实现对应功能的接口。最后,将开发完成的智能合约部署到区块链网络的各个节点中,基于虚拟业务场景进行系统运行。

第11章介绍了CAD图纸多人协同设计系统,通过对实际业务场景的分析,构建出系统的整体框架,基于功能需求设计智能合约中所需的接口,并通过代码完成智能合约的开发与部署。

第12章介绍了IoT设备管理平台,详细讲解了IoT设备管理平台项目案例,包括系统分析、系统的总体设计、智能合约的实现与部署及IoT设备管理平台系统运行等部分内容,读者可以在本案例的基础上,对管理方的功能进行扩展。

本书面向的读者包括高等院校计算机相关专业高年级本科生及研究生、具有相关基础知识的区块链技术爱好者、区块链应用开发者及智能合约开发的相关从业人员,适合作为高等院校计算机相关专业高年级本科生、研究生的教材,也可作为区块链培训机构相关课程的培训教材。

非常感谢HyperLedger Fabric开源社区的贡献者及本书所有参考文献的创作者,非常感谢清华大学出版社的相关工作人员,是你们的敬业精神、严格要求与辛勤付出使得本书的出版成为可能。

在此特别感谢青岛理工大学信息与控制工程学院的研究生申玉民、王旭、王鹏鹏、谢镇玺、郑文虎、李朋骏、牛志杰、张文淇、董良成、葛欢欢、倪培浩,他们为本书的材料收集、校对、代码调试等工作投入了巨大的热情并付出了很多心血,他们的帮助与努力使得本书能够按期交稿。

因时间仓促和编者水平有限,本书难免有不足和疏漏之处,欢迎广大读者及各位专家批评指正。



编者2023年6月