前言
Foreword
技术背景
区块链是一种近年来非常流行的技术,它不但孕育了比特币、以太坊等知名分布式应用平台,而且已经被确定为国家战略,成为国家重点发展的一种信息技术。在区块链发展的初期,大多数项目都属于公有链项目,企业使用区块链技术的成功案例并不多。区块链技术3.0可以实现具有完备权限控制和安全保障的企业级区块链——联盟链。联盟链可以解决企业间的信用问题,其由产业链中相关企业共同开发、建设,信息上链后不可随意修改,因此其可用于开发高度互信的企业级区块链应用项目。
本书介绍的Hyperledger Fabric就是极具代表性的联盟链平台。
需要特别说明的是,在我国,比特币和以太币等数字货币不具有与法定货币等同的法律地位,故不能作为法定货币在市场上流通使用。
编写初衷
在区块链领域,国内企业既重视相关技术的自主研发,又重视对国外开源技术的学习与借鉴,以及与国外相关企业的合作与交流。很多开发者对区块链感兴趣,因此会选择从事相关的开发工作。在此过程中,“区块链应用技术与开发”课程也逐步成为越来越多的国内外高校计算机类专业和非计算机类专业的必修课程或选修课程。
Go 语言是近年来非常流行的新兴编程语言。本书将结合 Hyperledger Fabric区块链平台介绍使用Go语言开发智能合约和区块链应用的方法。在众多开发语言中,Go语言是读者了解和学习区块链开发技术的更优选择,原因如下。
(1)作为以太坊和Hyperledger Fabric的开发语言,Go语言被应用于很多区块链平台的开源案例。读者可以选择成熟的平台来开发区块链应用,这样比从零开始开发区块链应用要容易得多。
(2)在开发过程中,读者可以根据需要查阅和研究原生区块链平台的源代码,并且可以在应用程序中参考和借鉴。
(3)Go 语言不是专门用于开发区块链应用的语言,它还可以用于开发 Web 应用、系统应用、云平台和容器化系统等。因此,使用Go语言开发的区块链应用更易于扩展。
本书内容
本书从逻辑上可分为3个部分。
第1部分(第1~2章)介绍区块链技术的基本概念和Hyperledger Fabric区块链平台的体系结构。通过第1部分的学习,读者可以了解区块链技术及智能合约与区块链应用开发的背景知识和工作原理,为阅读本书后面的内容奠定基础。
第2部分(第3~7章)介绍搭建Hyperledger Fabric区块链环境的方法及Hyperledger Fabric区块链各组件的管理与配置方法,具体包括数据安全和隐私保护机制、对Peer节点和排序节点的管理、区块链数据的存储结构和数据分发方式,以及搭建Hyperledger Fabric网络的方法等。通过第2部分的学习,读者可以了解Hyperledger Fabric区块链平台的工作流程,以及配置和管理Hyperledger Fabric网络的基本方法,为进一步学习智能合约和区块链应用的开发奠定基础。
第3部分(第8~10章)介绍使用Go语言开发Hyperledger Fabric智能合约和区块链应用的实用技术,包括Go语言编程基础、使用Fabric Contract API开发智能合约及使用Fabric SDK Go开发客户端应用等。
本书特色
本书特色如下。
1.注重区块链技术科普,巧妙激发读者的学习兴趣
区块链平台作为去中心化分布式系统,它的工作原理和运作方式与传统的中心化系统有很大不同。为了使读者充分理解基础的技术框架和工作原理,本书第1章结合比特币、以太坊等经典区块链平台介绍区块链技术的工作原理和底层技术。
2.依托经典开发案例,形象解读区块链技术的抽象概念
作为区块链应用开发的入门级教材,本书通过各种流程图、结构图、架构图来描述区块链技术的数据结构和工作原理。全书介绍了多个基于Fabric区块链的开发案例,以及开发智能合约与区块链应用的完整过程,为读者理解抽象的概念提供捷径。
3.合理搭建内容架构,助力读者扎实培养综合能力
本书在内容编排上,区块链技术科普、Hyperledger Fabric各组件的管理与配置方法讲解及 Go 语言智能合约与区块链应用开发技术介绍并重。为了节省篇幅,编者将开发实例做成电子资源提供给读者下载使用。对于Hyperledger Fabric这种架构复杂的企业级区块链平台,理论与实例相结合可以达到更好的教学目的和学习效果。通过系统学习,读者很容易做到知其然,更知其所以然。
4.配套丰富教辅资源,立体化服务高校人才培养
编者为使用本书的高校教师制作了配套的电子教案,并提供各章习题的参考答案、上机实验的电子文档、重难知识点的微课视频及书中涉及的所有实例程序的源代码。高校教师可以通过人邮教育社区(www.ryjiaoyu.com)下载上述教辅资源。
限于编者水平,书中难免存在不足之处,敬请广大读者批评指正。
编者
2022年夏于北京