作者介绍:何鑫铭,携程技术中心创新研发部区块链技术专家,携程区块链技术平台技术负责人,精通当前主流区块链开源技术框架,热衷于研究区块链底层设计和区块链应用创新。
一.在业务应用区块链技术之前,我们需要做什么?
在开始正式的主题介绍之前,我先跟大家一起看一张图:
上图是Gartner提供的一份2018年关于企业对区块链技术规划的调研结果,结果表明在受访的企业中(包含高科技、IT、互联网企业)大概有66%的企业表示对区块链技术感兴趣,但是真实投入研发并且在正式环境部署过的企业大概只有1%。
区块链技术目前还未发展到或者人们还没有认识到其所带来的价值和意义,这算是目前的一个现状,因为讨论这个现状的牵引后果大概超出了我们今天技术讨论的范围,所以今天不讨论这个问题。那除了这个之外,让我们觉得现在区块链技术还未成规模使用的另一个原因是——这个技术的易用性现在其实是很低的。我们总结了易用性有以下三个方面:1.开发、部署、运维成本高;2.公有链、私有链、联盟链框架众多、且技术标准还未形成统一共识;3.各个企业缺乏工程落地经验,各个行业更是缺乏应用落地范本。现在区块链技术所处的阶段,我个人理解像是web技术发展的早期,还未形成统一的web技术核心标准(如http协议等),所以也就没有太多的web应用创造出来。
携程作为国内互联网旅游行业的领军企业,同样也是非常重视技术对于业务的创新推动作用,我们在最近一年内在非常积极的进行技术的研究,以及技术应用的创新。我们在开始决定应用区块链技术做一些创新型业务的时候,这三个问题也同样摆在我们面前。针对1,2两个问题,我们首先做的还是研究当下主流的区块链技术,大概是在去年7-8月份,我研究过包括国内的BCOS,国外的以太坊、HyperLedger Fabric 、Corda等开源框架。研究完之后就觉得需要做一个支撑业务应用的这样一个区块链服务平台,就是我马上要介绍的携程的CBaas平台。因为我发现在研究了这么多开源框架之后,首先即使是当时最成熟的如Fabric、以太坊这样的开源技术框架,也远远没有达到我们生产环境对于稳定性、高可用性、高并发支持等这些基本要素的要求,而第二点就是这些框架的学习成本、使用成本、运维成本其实非常高,让现有的各个BU的技术同事兼职来现学现用其实是一件非常困难的事情。我们需要这样一个服务平台,去屏蔽掉最底层区块链系统的网络架构、框架搭建、应用集成、运维监控的复杂性,并且需要做各种源码、环境、使用方式的优化以让上层业务应用能最高效的应用区块链技术。
所以我们需要先在内部搭建这样一个类似于paas层的区块链技术服务平台,我们叫做CBaas(ctrip blockchain as a service),我们的目标是各个BU的同事在充分了解区块链技术理念、基本概念以及如何解决业务痛点的前提下,能够不深入学习以太坊、Fabric等底层区块链技术框架,就能快速将当前业务与区块链技术结合。包含快速开发、快速部署、快速上线、有效运维以及能够满足前面提到的我们对于应用上线的基本要求。
二.携程区块链技术服务平台(CBaas)的介绍
下图为CBaas平台的技术栈:
因为区块链的部署(尤其是fabric)对于容器技术是重度依赖的,所以我们需要一个可应用于生产环境的swarm/k8s集群服务。我们跟运维团队讨论,得出这样一个结论,这样的一个区块链平台,与一个独立的业务系统是完全不同的,而更像是一个集开发、发布、测试、运行、运维于一体的完整的应用操作系统。所以对于我们现有的应用发布、运维体系其实是有较大冲突的,需要paas层服务团队提供给我们更为灵活的支持。
再上面一层就是区块链的底层框架,我们平台首选支持的底层框架是目前最为成熟的联盟链框架-HyperLedger Fabric。Fabric目前在国内外应该是落地最多的框架了,这里就不做过多介绍了。然后是以太坊,以太坊是区块链2.0即智能合约平台最重要的框架,其影响力和社会熟知度应该是比较高的,而且以