第一节 区块链服务BaaS的总体架构以及基本模块设计的一种方案

原文链接: http://www.trustedblockchain.cn/

1. 什么领域适合区块链技术?

在现阶段区块链适合的场景有三个特征:

  1. 存在去中心化、多方参与和写入数据的需求;
  2. 对数据真实性要求高的场景;
  3. 初始情况下相互不信任的多个参与者建立分布式信任的需求;

2. 区块链服务BaaS的定义

BaaS 是一种帮助用户创建、管理和维护企业级区块链网络及应用的服务平台。它具有降低开发及使用成本,兼顾快速部署、方便易用、高安全可靠等特性,是为区块链应用开发者提供区块链服务能力的平台。BaaS 通过把计算资源、通讯资源、存储资源,以及上层的区块链记账能力、区块链应用开发能力、区块链配套设施能力转化为可编程接口,让应用开发过程和应用部署过程简单而高效,同时通过标准化的能力建设,保障区块链应用的安全可靠,对区块链业务的运营提供支撑,解决弹性、安全性、性能等运营难题,让开发者专注开发。BaaS 作为一种云服务,是区块链设施的云端租用平台,其多租户特性让计算资源、平台资源、软件资源得到了最大程度的共享。BaaS 提供节点租用、链租用以及工具租用的能力,其中工具包括开发工具、部署工具、监控工具等,并通过大容量的资源池,保障租户的业务规模可灵活弹性伸缩,租用设施可共享和独享,安全可靠运行,此外还提供必要的技术支持服务。BaaS的具体能力包括区块链节点及整链搭建的能力、区块链应用开发的能力、区块应用部署的能力、区块链运行监控的能力。

3. 区块链服务BaaS的设计原则

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

3.1 简单易用

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

3.2 灵活扩展

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

3.3 安全可靠

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

3.4 可视运维

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

3.5 云链结合

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

3.6 合作开放

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

4. 区块链服务BaaS 的总体架构

4.1 区块链服务管理平台

在这里插入图片描述

4.1.1 账户管理

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

4.1.2 统计报表

各种维度的数据统计报表展示。

4.1.3 系统日志

系统的操作日志展示。

4.1.4 用户日志

用户的一些操作日志。

4.1.5 安全管理
4.1.6 系统监控

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

4.1.7 计费管理

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

4.1.8 警告管理

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

4.1.9 区块链部署配置

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

4.1.10 区块链监控

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

4.1.11 区块链浏览器

区块链浏览器简单来说是一种搜索工具,我们通过输入某钱包地址或某笔交易ID,就可以查询此钱包的余额和任意一笔交易的详细信息:比如当前比特币的转账费用是多少、给你转账的地址有多土豪、一笔转账究竟何时到账……当然,我们也可以通过输入块高,块哈希等来搜索某一特定区块的所有内容。

4.1.12 智能合约的管理

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

4.1.13 动态联盟管理

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

4.1.14 区块链模板管理

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

4.1.15 物理资源管理
4.1.16 云资源管理

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

4.1.17 云资源适配管理

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

4.2 区块链服务运行平台

在这里插入图片描述

本文章收集于 可信区块 链推进计划区块链即服务平台BaaS项目组

猜你喜欢

转载自blog.csdn.net/boss2967/article/details/102389042