区块链即服务(Blockchain as a Service,BaaS),是部署在云计算基础设施之上,对外提供区块链网络的生命周期管理和运行时服务管理等功能的一套工具。
构建一套分布式的区块链方案绝非易事,既需要硬件基础设施的投入,也需要全方位的开发和运营管理(DevOps)。BaaS 作为一套工具,可以帮助开发者快速生成必要的区块链环境,进而验证所开发的上层应用。
除了区块链平台本身,一套完整的解决方案实际上还可以包括设备接入、访问控制、服务监控等管理功能。这些功能,让 BaaS 平台可以为开发者提供更强大的服务支持。
从 2016 年起,业界已有一些前沿技术团队发布了 BaaS 平台,除了商业的方案如 IBM Bluemix 和微软 Azure 云之外,超级账本开源项目也发起了 Cello 项目,以提供一套实现区块链平台运营管理功能的开源框架。
下图给出了区块链即服务功能的参考架构,自上而下分为多层结构。最上层面向应用开发者和平台管理员提供不同的操作能力;核心层负责完成包括资源编排、系统监控、数据分析和权限管理等重要功能;下层可以通过多种类型的驱动和代理组件来访问和管理多种物理资源。
典型地,BaaS 平台所提供的业务能力通常包括:
对于 BaaS 服务提供方,搭建这样一套功能完善、性能稳定的 BaaS 平台存在诸多挑战。可以从如下几个角度进行考量设计。
此外,对于面向开发者的 BaaS 服务,创建的区块链环境应当尽量贴近实际应用场景,让用户可以将经过检验的区块链模型很容易地迁移到生产环境。甚至可以直接联动支持第三方发布平台,直接将经过验证的应用推向发布环境。