前言

区块链技术是金融科技领域乃至整个IT领域的重大技术创新。该技术本质上是以数据加密、时间戳和分布式共识算法等基础技术为依托,实现链式存储、智能合约和隐私保护等高级功能的分布式账本技术。该技术通过区块链网络节点之间的相互验证、监督和数据备份,从技术层面上保证在链式账本中所存储的数据无法被恶意篡改,特别适合用于解决多方业务协作场景中为维护信用而导致的成本居高不下的问题。

区块链技术起源于比特币,是“数字加密货币”的底层支撑技术。自2009年诞生以来,比特币系统已在无中心维护机构的情况下稳定运行达8年之久,单个比特币的价格也经过了数轮暴涨。随着比特币的流行,数以百计的“数字加密货币”快速涌现。近年来,人们发现“数字加密货币”背后的区块链技术可能具有发挥更大价值的潜力,将来可用于极为广泛的业务场景。许多专家认为,区块链技术可用于解决新一代互联网去中心化的价值交换问题,即网络传输的信用问题。

用于“数字加密货币”的区块链技术只能实现交易转账等基础功能,被认为是1.0版本的区块链技术。要想将区块链应用于“数字加密货币”之外的广泛场景,必须对该技术加以改进。2014年,以太坊应运而生。该平台通过支持智能合约将业务逻辑的设计和控制权转移到了平台用户手中,允许通过编写合约代码来满足各种复杂的业务场景的需求。该平台作为区块链2.0版本的典型代表,广受赞誉和追捧。

然而,以太坊平台并不是一个完美的区块链平台,还存在共识效率低下、隐私保护缺乏、大规模存储困难和信息难以监管等问题,无法应用于大规模的企业级信息系统。针对这些问题,一些企业级的区块链平台诞生了,其中的典型代表是IBM支持的Hyperledger Fabric和趣链科技的Hyperchain。通过高效共识、多级加密、权限控制、可视监控、动态配置等技术,企业级区块链平台为区块链技术打开了更为广泛的应用空间。

本书是一本介绍区块链核心原理和应用技术的专业图书,与当前市场上的绝大部分区块链图书不同,不会天马行空地设想各种短期无法落地的应用场景,而是专注于介绍技术“干货”和实战,读者通过本书的学习即可上手使用当下最受欢迎的区块链平台,参考本书实例即可快速开发自己的第一个区块链应用,实战性非常强。

本书结构

本书共分为四个部分。

第一部分介绍区块链的基础知识,使读者快速对区块链技术有一个整体认识。本部分包含了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架构进行深入分析,从成员服务、区块链服务以及合约代码服务三个方面探讨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平台上进行智能合约应用的开发。

第四部分介绍了多个区块链实际应用项目案例,并对其开发过程和关键代码进行了详细分析。本部分包含了2章的内容。

第8章介绍了两个基于以太坊的实际项目案例,每个案例的介绍均包括项目简介、系统功能分析、系统总体设计、智能合约设计、系统实现和部署等部分,并通过相关下载链接提供了这些案例完整的源代码。基于前面章节所学习的以太坊基础知识和开发技术,读者可对照本章的内容,一步一步地动手实践,在实战过程中更好地理解相关概念和技术,从而为自己基于以太坊构建区块链应用项目打好基础。

第9章介绍了两个基于Hyperchain的企业级区块链应用项目案例,每个案例的介绍均包括项目简介、系统功能分析、系统总体设计、智能合约设计、系统实现和部署等部分。可以看到,利用Hyperchain可以构建功能完备、技术领先、符合企业级要求的区块链应用。读者可对照本章内容,通过Hyperchain提供的完善的开发接口,对区块链应用开发进行深入的学习和实践。

示例代码与勘误

本书第8章和第9章中的所有项目案例代码已上传至GitHub供开发者下载:https://github. com/Blockchain-book,后续若增加新的项目案例,也会同步更新到该仓库中。

开发者可以使用Git版本控制clone项目到本地或直接下载代码,目前默认的检出分支为master分支。如果对某项目有疑问或意见,可以在该项目中提交Issue。如果想要接收某项目的更新邮件提醒,请点击Watch;如果要持续关注某项目,请点击Star;如果要复制代码到自己的账户,请点击Fork。

由于作者时间和水平有限,本书难免会存在一些纰漏和错误,欢迎广大读者批评指正。勘误请提交至图灵社区本书主页www.ituring.com.cn/book/2434,或发送至作者邮箱:liangxiubo@hyperchain.cn。对于读者发现的问题,我们将在本书后续印次和版本中加以改正。

开发者平台及更多技术支持

为了进一步降低区块链技术使用门槛,让更多的区块链开发者、爱好者以及正在尝试接入区块链技术的企业能够快捷地开发区块链应用,趣链科技于2017年9月14日正式上线了基于联盟链的“开发者平台”。基于该平台,用户可以更方便地创建、发布和使用多中心化的应用程序。通过平台提供的在线智能合约编辑器,用户可便捷、准确地编写智能合约程序;通过平台提供的区块链浏览器,用户可方便地获取链上区块信息、区块链节点状态、节点维护方信息等。欢迎广大区块链相关从业人员访问体验,开发者平台网址为:https://dev.hyperchain.cn/。

如需获得更多关于区块链技术的最新技术动态和趣链科技的技术支持,可扫描如下二维码关注微信公众号。

致谢

作为区块链技术人员,能够编写一本技术性和实践性非常强的区块链图书,我们感到非常荣幸。在此向所有给我们提供指导、支持和鼓励的朋友表示衷心的感谢。

感谢浙江大学计算机科学与技术学院和软件学院为我们提供的优良条件和各种便利,感谢陈纯院士、杨小虎研究员一直以来的关怀和支持,使得本书得以顺利完稿。

感谢杭州趣链科技有限公司全体人员的大力支持,特别感谢李伟博士、邱炜伟博士后、尹可挺博士为本书成稿所给予的鼎力支持,感谢汪小益、黄方蕾、戎佳磊、陈宇峰、吴发翔、吴琛、胡为、宋家锦、郭威、李超等对书稿材料汇编所做出的突出贡献,感谢刘耀儆、胡麦芳、卓海振、钟蔚蔚、孙琪、赵科、黄志胜等对书稿校阅所付出的时间和汗水。

感谢万达网络科技集团先进技术研究中心副总经理季宙栋、区块链资深研究员张梦航对本书第4章和第5章内容的有益补充。

感谢人民邮电出版社图灵公司的编辑们,是他们不辞辛苦、仔细严谨的审阅和校对工作为本书的顺利出版提供了有力保障。

蔡亮 李启雷 梁秀波

2017年9月于浙江杭州

目录

  • 序一
  • 序二
  • 前言
  • 第一部分 区块链基础
  • 第1章 区块链基础入门
  • 第二部分 开源区块链平台
  • 第2章 以太坊深入解读
  • 第3章 以太坊应用开发基础
  • 第4章 Hyperledger Fabric深入解读
  • 第5章 Hyperledger Fabric应用开发基础
  • 第三部分 企业级区块链平台 Hyperchain
  • 第6章 企业级区块链平台核心原理剖析
  • 第7章 Hyperchain应用开发基础
  • 第四部分 区块链应用案例
  • 第8章 以太坊应用实战案例详解
  • 第9章 企业级区块链应用实战案例详解