区块链技术是金融科技领域乃至整个IT领域的重大技术创新。该技术本质上是以数据加密、时间戳和分布式共识算法等基础技术为依托,实现链式存储、智能合约和隐私保护等高级功能的分布式账本技术。该技术通过区块链网络节点之间的相互验证、监督和数据备份,从技术层面上保证在链式账本中所存储的数据很难被恶意篡改,特别适合用于解决多方业务协作场景中为维护信用而导致的成本居高不下的问题。
区块链技术起源于“比特币”,是“数字加密货币”的底层支撑技术。自2009年诞生以来,比特币系统已在无中心维护机构的情况下稳定运行达10年之久。随着比特币的流行,数以百计的“数字加密货币”快速涌现。近年来,人们发现“数字加密货币”背后的区块链技术可能具有发挥更大价值的潜力,将来可用于极为广泛的业务场景。许多专家认为,区块链技术可用于解决新一代互联网去中心化的价值交换问题,即网络传输的信用问题。
用于“数字加密货币”的区块链技术只能实现交易转账等基础功能,被认为是1.0版本的区块链技术。要想将区块链应用于“数字加密货币”之外的广泛场景,必须对该技术加以改进。2014年,以太坊应运而生。该平台通过支持智能合约将业务逻辑的设计和控制权转移到了平台用户手中,允许通过编写合约代码来满足各种复杂的业务场景的需求。该平台作为区块链2.0版本的典型代表,广受赞誉和追捧。
然而,以太坊平台并不是一个完美的区块链平台,还存在共识效率低下、隐私保护缺乏、大规模存储困难和信息难以监管等问题,无法应用于大规模的企业级信息系统。针对这些问题,一些企业级的区块链平台诞生了,其中的典型代表是IBM支持的Hyperledger Fabric和趣链科技的Hyperchain。通过高效共识、多级加密、权限控制、可视监控、动态配置等技术,企业级区块链平台为区块链技术打开了更为广泛的应用空间。
本书是一本介绍区块链核心原理和应用技术的专业书,与当前市场上的绝大部分区块链图书不同,不会天马行空地设想各种短期无法落地的应用场景,而是专注于介绍技术“干货”和开发经验,实战性非常强。读者通过本书的学习即可上手使用当下最受欢迎的区块链平台,参考本书实例即可快速开发自己的第一个区块链应用。
本书共分为4个部分。
第一部分介绍区块链的基础知识,使读者快速对区块链技术有一个整体认识。本部分包含了1章内容,即第1章,对区块链技术的发展情况进行了全面分析,介绍了其概念、历史、技术流派、关键技术和典型应用场景,并对主流平台进行了对比分析,给出了当前区块链产业生态图谱。
第二部分对知名开源区块链平台以太坊和Hyperledger进行详细解读,并介绍如何基于这两个平台进行区块链应用开发。本部分包含了4章的内容。
第2章对以太坊的发展历史、基本概念、客户端、账户管理及以太坊网络等基础知识进行了介绍,并对以太坊共识机制、虚拟机、数据存储和加密算法等以太坊关键模块的核心原理进行了剖析,详细介绍了以太坊智能合约的编写、部署、测试与执行,最后对以太坊发展过程中的重大事件和目前存在的主要问题进行了分析探讨。
第3章首先介绍了如何搭建以太坊的开发环境,包括Go语言环境、Node.js和npm的配置,Solc编译器的安装,以及如何使用以太坊geth客户端搭建私有链;其次讲解了以太坊智能合约开发的集成开发环境,包括Mix IDE和在线浏览器编译器;再次讲述了JSON RPC和JavaScript API两种以太坊编程接口,通过这两种接口可以实现和以太坊底层的交互,实现合约方法的调用;随后讲述了目前主流的以太坊开发框架与流程,包括Metero、Truffle和商业化开发中的分层可扩展开发流程;最后给出了第一个较为完整的以太坊应用开发实例。
第4章对Hyperledger Fabric进行了深入解读,有助于读者深入理解Fabric的底层实现原理。首先,介绍了Hyperledger及其子项目的发展现状及管理模式,重点介绍了Hyperledger Fabric;其次,对Hyperledger Fabric架构进行深入分析,从成员服务、区块链服务以及合约代码服务3个方面探讨Hyperledger Fabric的架构组成与特点,给出了Fabric架构设计和模块组件;再次,给出了Chaincode代码结构、调用方式和执行流程;最后,对交易背书流程展开了详细分析。
第5章主要介绍如何在Hyperledger Fabric平台上开发区块链应用,首先讲述了 Hyperledger Fabric的开发运行环境的搭建过程,其次给出了Chaincode开发和部署流程,最后介绍了CLI应用接口和SDK接口,并通过实例说明了如何基于这两种接口开发Hyperledger Fabric的区块链应用。
第三部分以自主可控联盟区块链Hyperchain为例对企业级区块链平台的核心技术进行分析,并介绍了基于Hyperchain的企业级区块链应用开发技术。本部分包含了2章的内容。
第6章以企业级区块链平台Hyperchain为例,介绍了构成企业级区块链平台的核心组件的实现原理。企业级区块链同公有链和私有链不同,它直接面对企业级应用的需求,对区块链系统的安全性、灵活性以及性能都有着更加严格的要求。Hyperchain企业级区块链平台在优化传统PBFT的基础上设计实现了灵活、高效、稳定的共识算法RBFT,在智能合约的支持上选择了支持开源领域活跃的Solidity语言,对其执行虚拟机进行了系统层面的优化,并通过对交易、交易链路、应用开发包等多层面的加密处理,加强企业级区块链的安全等级。此外,Hyperchain还设计实现了支持系统监控、合约编写、合约编译等多功能的企业级区块链管控平台。
第7章主要介绍了Hyperchain区块链上应用开发的相关内容。首先,从交易调用、合约管理以及区块查询几个方面介绍了Hyperchain平台对外提供的主要接口;其次,从Hyperchain集群的配置、部署和运行等方面介绍了如何搭建一个可运行的企业级区块链系统Hyperchain;最后,以模拟银行为例,介绍了如何在Hyperchain平台上进行智能合约应用的开发。
第四部分介绍了多个区块链实际应用项目案例,每个案例的介绍均包括项目简介、系统功能分析、系统总体设计、智能合约设计、系统实现和部署等部分,对开发过程和关键代码进行了详细分析,并提供了完整的案例源代码。本部分包含了3章的内容。
第8章介绍了两个基于以太坊的实际项目案例,分别是通用积分系统和电子优惠券系统。基于前面章节所学习的以太坊基础知识和开发技术,读者可对照本章的内容,一步一步地动手实践,在实战过程中更好地理解相关概念和技术,从而为自己基于以太坊构建区块链应用项目打好基础。
第9章介绍了两个基于Hyperledger Fabric的实际项目案例,分别是社会文物管理平台和高端食品安全系统。基于前面章节所学习的Hyperledger Fabric基础知识和开发技术,读者可结合本章的内容边学边做,通过项目驱动的学习为Hyperledger Fabric区块链应用开发积累实践经验。
第10章介绍了两个基于Hyperchain的企业级区块链应用项目案例,分别是应收账款管理系统和出行打车平台。可以看到,利用Hyperchain可以构建功能完备、技术领先、符合企业级要求的区块链应用。读者可对照本章内容,通过Hyperchain提供的完善的开发接口,对区块链应用开发进行深入的学习和实践。
本书第1版出版至今已两年有余,两年来区块链技术发展日新月异,书中所介绍的3个主要的区块链平台以太坊、Hyperledger Fabric和Hyperchain都有了较大的变化,为保持内容的即时性和先进性,特推出第2版,主要对调研数据、平台介绍、开发实践和项目案例等内容进行了补充和更新。与第1版相比,主要变化包括:第1章对区块链发展情况、产业现状、应用场景和主流平台对比分析等方面进行了大幅更新;第2章和第3章对以太坊平台发展情况、现存问题、开发工具和编程接口等部分进行了更新;第4章和第5章对Fabric平台简介、开发环境等内容进行了更新;第6章和第7章对Hyperchain平台的整体架构、功能组件、应用开发和部署管理等内容进行了大幅更新;第8章、第9章和第10章分别对以太坊、Hyperledger Fabric和Hyperchain平台的实战案例进行了补充、完善和修改,其中第9章新增了两个全新的案例,第10章的数字票据案例改为了应收账款管理案例。
第四部分的所有项目案例代码已上传图灵社区本书主页,其中Ethereum-Score-Hella项目是在Truffle 4.1.11下对Ethereum-Score项目的更新。
由于作者时间和水平有限,本书难免会存在一些纰漏和错误,欢迎广大读者批评指正。勘误请提交至图灵社区本书主页,或发送至作者邮箱: liangxiubo@hyperchain.cn 。对于读者发现的问题,我们将在本书后续印次和版本中加以改正。
为了进一步降低区块链技术使用门槛,让更多的区块链开发者、爱好者以及正在尝试接入区块链技术的企业能够快捷地开发区块链应用,趣链科技提供了基于联盟链的开放服务平台飞洛。基于该平台,用户可以更方便地创建、发布和使用多中心化的应用程序。通过平台提供的在线智能合约编辑器,用户可便捷、准确地编写智能合约程序;通过平台提供的区块链浏览器,用户可方便地获取链上区块信息、区块链节点状态、节点维护方信息等。欢迎广大区块链相关从业人员访问体验。
如需获得更多区块链技术的最新技术动态和趣链科技的技术支持,可关注我们的微信公众号“趣链科技”。
作为区块链技术人员,能够编写一本技术性和实践性非常强的区块链图书,我们感到非常荣幸。在此向所有给我们提供指导、支持和鼓励的朋友表示衷心的感谢。
感谢浙江大学计算机科学与技术学院和软件学院为我们提供的优良条件和各种便利,感谢陈纯院士、杨小虎研究员一直以来的关怀和支持,使得本书得以顺利完稿。
感谢杭州趣链科技有限公司全体人员的大力支持,特别感谢李伟博士、邱炜伟博士后、尹可挺博士为本书成稿所给予的鼎力支持,感谢汪小益、黄方蕾、戎佳磊、陈宇峰、吴发翔、吴琛、胡为、宋家锦、郭威、李超、林波、欧锦铭、周昕、陈菲、费丽娜、陈晓阳、孙立钢、赵迁、顾家飞、史钢哲、尹旗胜、张乾威、何振豪等对书稿材料汇编所做出的贡献,感谢刘耀儆、胡麦芳、卓海振、钟蔚蔚、孙琪、赵科、黄志胜等对书稿校阅所付出的时间和汗水。
感谢万达网络科技集团先进技术研究中心副总经理季宙栋、区块链资深研究员张梦航对本书第4章和第5章内容的有益补充。
感谢人民邮电出版社图灵公司的编辑们,是他们不辞辛苦、仔细严谨的审阅和校对工作为本书的顺利出版提供了有力保障。
蔡亮 李启雷 梁秀波
2020年9月于浙江杭州