区块链服务BaaS的架构与设计

1 区块链服务BaaS的定义

BaaS是一种帮助用户创建、管理和维护企业级区块链网络及应用的服务平台。它具有降低开发及使用成本,兼顾快速部署、方便易用、高安全可靠等特性,是为区块链应用开发者提供区块链服务能力的平台。

BaaS通过把计算资源、通讯资源、存储资源,以及上层的区块链记账能力、区块链应用开发能力、区块链配套设施能力转化为可编程接口,让应用开发过程和应用部署过程简单而高效,同时通过标准化的能力建设,保障区块链应用的安全可靠,对区块链业务的运营提供支撑,解决弹性、安全性、性能等运营难题,让开发者专注开发。

BaaS作为一种云服务,是区块链设施的云端租用平台,其多租户特性让计算资源、平台资源、软件资源得到了最大程度的共享。

BaaS提供节点租用、链租用以及工具租用的能力,其中工具包括开发工具、部署工具、监控工具等,并通过大容量的资源池,保障租户的业务规模可灵活弹性伸缩,租用设施可共享和独享,安全可靠运行,此外还提供必要的技术支持服务。

BaaS平台应该具备的能力:

  • 区块链节点及整链搭建的能力(区块链网络的搭建)
  • 区块链应用开发的能力(链码开发)
  • 区块应用部署的能力(链码部署)
  • 区块链运行监控的能力(状态监控和区块浏览)

2 区块链服务BaaS的设计原则

区块链服务致力于提供企业级区块链基础技术平台,基于面向服务的基础设计原则,设计上应当以简单易用、成熟可扩展、安全可靠、可视化运维等为主要方向,携手合作伙伴为用户快速、低成本地搭建安全、高效、可靠、灵活的企业级区块链解决方案和应用。

2.1 简单易用

在开源组件基础上部署企业级分布式区块链系统并非易事,不仅需要专业的区块链知识,同时需要各种复杂的设计和配置,且极易出错。区块链服务需要帮助企业实现自动化配置、部署区块链应用,并提供区块链全生命周期管理,让客户能够容易地使用区块链系统,专注于上层应用的创新和开发。

2.2 灵活扩展

区块链服务设计应采用抽象架构和可插拔模块,面向接口设计软件,将网络构建、加密、共识、资源管理、用户管理、运维管理等功能模块分开设计实现,并可将网络构建、共识等区块链底层技术打包,作为一个插件来进行实现。系统应提供计算资源、存储资源、网络资源的无缝扩展。区块链服务也可遵循秉承源于开源、优于开源、回馈开源的原则,积极投入和引领开源社区,为用户提供成熟先进的区块链系统。

2.3 安全可靠

区块链服务应具有有效的防篡改机制、清晰的崩溃容错安全边界、安全的数据管理和隔离机制,支持核心技术如共识算法、同态加密、零知识证明、电信级云安全,高速网络连接、海量存储等,提供完善的用户、秘钥、权限管理、隔离处理、可靠的网络安全基础能力、分类分级故障恢复能力和运营安全。

2.4 可视运维

区块链服务应提供故障分类分级报警体系和运维方法,提供必要的运维接口和运维授权的能力,为链代码和链上应用提供全天候的可视化资源监控能力,为基于权限的分权分域提供完善的用户管理体系。

2.5 云链结合

区块链具备多方参与、多中心、可追溯、防篡改的特点,只有与具体的企业应用、行业场景相结合才能真正产生价值。结合云平台提供各种区块链需要的无限可扩展的资源和丰富多样的云计算产品、定制化的各行业解决方案,云链结合可以给企业带来更大的便利、价值和想象空间。

2.6 合作开放

区块链服务专注于底层技术和平台服务能力搭建,和各行业合作伙伴携手合作,共同打造可信的行业区块链解决方案和区块链生态,共同推进区块链场景落地,帮助客户实现商业成功。

3 区块链服务管理平台架构

在这里插入图片描述

3.1 账户管理

账户管理是区块链服务平台的重要功能,可分为管理员账户和用户账户。管理员账户是Baas平台运营方用于平台本身设置管理的,具有最高的权限。用户账户为平台客户创建,可以根据业务需要在平台上创建区块链网络。用户账户是具备管理自己区块链的权限。

3.2 统计报表

主要是平台用户的费用信息、使用资源情况,以及各种维度等内容的统计展示。

3.3 系统日志

系统的操作日志展示,方便运维人员进行日常的运行维护。

3.4 用户日志

平台需要通过用户日志来记录用户在平台执行的各项操作,用户可以通过用户日志来查询自己做过的历史操作记录,方便用户管理区块链。

3.5 安全管理

主要包括算法管理、软硬件加解密设备管理、隐私保护管理等等。

3.6 系统监控

系统监控模块用于监控区块链服务平台自身的运行状况,比如用户操作的响应时间、区块链创建时间、在线用户数等指标。通常只有平台管理员有权查看系统监控数据。

3.7 计费管理

区块链服务平台可以根据平台的定价策略,对用户使用平台的计算资源和服务计算相关费用。通常可以分为按服务使用时间和使用次数计费两种方式。

3.8 警告管理

根据各种预警条件进行实施监控, 发现问题及时通知。

3.9 区块链部署配置

该模块既负责对新建区块链节点进行快速安装、配置、部署以及初始化等操作,也负责对已有区块链节点进行软件升级等操作。该模块需要有较好的多节点并行处理能力,以便在部署大规模区块链网络时,可以有效地缩短安装部署时间。

3.10 区块链监控

区块链监控模板负责对区块链网络和节点的运行状况进行监控报警,包括但不限于网络连通性监控、计算资源使用情况监控以及节点服务状态监控。一旦发现有故障或者异常情况发生,可以自动给相关负责人通过邮件、短信等方式报警。在某些情况下,平台可以自动进行故障排除和恢复。

3.11 区块链浏览器

区块链浏览器可以让用户查询区块链高度、交易数量、网络拓扑、安装的智能合约列表、具体交易情况等区块链细节信息,帮助用户更好地了解区块链运行状态以及进行相关开发调试。区块链服务平台对区块链浏览器有相应的权限控制,以免用户信息泄露。

3.12 智能合约的管理

用户在区块链服务平台对智能合约的管理主要有上传、发布、审核、安装、初始化、权限设置、升级等功能。根据区块链服务平台的能力用户可以上传源代码形式的智能合约,也可以上传编译好的二进制智能合约到平台上。用户上传的智能合约被存放在平台上的用户个人智能合约库中,需要用户将智能合约发布到区块链上,才可以被该区块链上的其他成员审核和使用。用户发布智能合约时,也可以设置哪些该区块链中的参与方可见,对智能合约的使用权限做相应的控制。在线审核功能一般针对以源代码形式上传的智能合约,区块链上的各个成员可以对智能合约的源代码进行检查,确保各项功能正确无误。对具有智能合约商店的区块链服务平台,用户可以从智能合约商店购买智能合约。用户购买的智能合约也被存放在平台上的用户个人智能合约库中。以后的使用也遵循发布、审核、安装、初始化的流程。在合约初始化的过程中,用户不仅可以初始化合约内容,对合约的背书策略、安全策略也可以进行相应的设置。合约升级过程中,要保证原合约可以使用。升级过后,新合约可以查询到历史数据。对于合约的权限,平台提供多维度的权限管理,例如方法级权限、数据级权限等。用户可以通过BaaS平台提供的接口或者网页,查询合约的运行日志,分析合约的运行状态等。智能合约的升级也是相同的管理流程,只是此时用户使用的是更新版本的智能合约。

3.13 动态联盟管理

联盟链一般都有多个成员参与,动态联盟管理是联盟链顺利运作的基础。联盟管理包括,联盟链的创建,联盟链新成员的加入、联盟链已有成员的退出、联盟链的投票策略设置等功能。不少区块链服务平台的联盟链中,有管理员的角色,一般由联盟链的创建者担任。管理员主要负责联盟链的创建,初始配置的设置,联盟链成员管理和权限管理等等。很多区块链服务平台为了防止管理员的权力过大,往往引入成员投票机制,比如只有在联盟链已有成员多数同意的情况下,才允许新成员加入该联盟链。

3.14 区块链模板管理

因为区块链配置的高度复杂性,如果全部开放给用户设置,会带来较大的使用难度。为了方便用户的使用,平台管理员可以针对一些典型的区块链应用场景,预先制定相应的区块链模板,配置好缺省的参数。用户创建区块链时,只需根据自己的业务场景选择相应的预定义模板,就可以快速方便地创建满足需求的区块链。高度可定制的区块链配置和预定义区块链模板的结合,可以让区块链服务平台同时兼顾区块链可定制性和易用性。

3.15 物理资源管理

对于并不基于云平台搭建的区块链服务BaaS平台可以直接管理底层的物理机资源。

3.16 云资源管理

负责实现云资源的管理调度,该模块会调用云资源管理适配模块的统一接口,所以底层不同云平台接口的差异性对该模块是透明的。该模块的主要功能有创建及删除虚拟机(Docker容器) 和网络资源、进行初始化配置、对已有资源进行扩容或缩容等操作。

3.17 云资源适配管理

对区块链节点的跨云部署支持,需要由该模块来实现对不同公有云、私有云的虚拟机、Docker容器等资源调度API的封装,屏蔽各种云平台API的差异性,对上层调用模块提供统一的资源管理接口。

4 Baas自研架构设计

基于HyperledgerFabric的Baas系统设计,管理后台采用Spring Cloud微服务结构,将Baas平台管理模块和区块链管理模块细分成微服务。统一通过微服务网关进行消息转发,方便后续业务扩展和模块权限控制。用户管理集成Saas多租户服务,前端采用VUE设计Baas交互界面,可以实现Baas平台多用户租用。目前实现的基本功能有。

  • 组织、节点(peer、orderer、ca)的信息录入
  • 通过CA创建区块链链用户
  • 创建通道,节点加入通道
  • 链码在线编辑,安装,部署,升级,调用,查询
  • 区块链浏览器,区块浏览,交易、世界状态查询
  • 节点状态实时监控
  • 平台账户,角色,权限分配
  • 平台账户与链用户操作绑定
  • 多联盟链管理
  • 多租户租用
在这里插入图片描述

5 百度超级链Baas平台架构

5.1 整体架构

在这里插入图片描述

5.2 云端部署

在这里插入图片描述

5.3 跨链可信交互

在这里插入图片描述

5.4 轻节点授权

在这里插入图片描述

6 应用场景

6.1 政务

在这里插入图片描述

6.2 金融

在这里插入图片描述

6.3 司法

在这里插入图片描述

6.4 溯源

在这里插入图片描述

6.5 医疗

在这里插入图片描述

参考

  • 可信区块链推进计划区块链即服务平台BaaS项目组
  • 百度超级链官网

你可能感兴趣的:(区块链服务BaaS的架构与设计)