1、行业区块链平台诞生背景
互联网时代下,区块链作为一种分布式的公开账本,具有去中心化、开放匿名、不可伪造篡改等特点,凭借其独特的信任机制和信息传递技术,在金融、医疗、教育等各个领域都有着广泛的应用,推动着科技领域的变革。
传统 BaaS (Blockchain as a Service) 平台将区块链集成为云服务提供给客户,想比于 PaaS 平台而言,充分利用了云计算的弹性、稳定性和灵活性;而行业区块链平台又是在 BaaS 平台之上的区块链中台应用,在业界标准不统一、架构参差不齐的大背景下,充分屏蔽了底层链在模型和部署流程上的差异,进一步节省了用户部署业务和应用的成本,实现了跨云服务的一站式异构链管理。即便是技术薄弱的用户也可通过此平台实现快速统一的规划建站,满足各类业务需求,解决了区块链技术人才短缺、运维人力成本高的难题。
2、政务区块链平台介绍
政务领域的用户具有主体多、环节复杂、信息量大等特点,传统数据共享模式下,业务办理效率和数据共享能力较低,不仅需要大量的人工审批,文件、库表在复制传递的过程中还可能引发数据不一致,信息泄露,时效性较弱,且不易管理。自 年起,国家鼓励探索 “政务上链”,利用区块链的数据共享模式实现政务数据跨部门、跨区域的共同维护和利用,推动政务数字化改革,实现智能化的社会治理。
政务区块链平台 UGBaaS (Unified Governmental BaaS) 是针对政务行业开发的新型链管平台,一个集中式的运营运维系统,允许用户平滑接入名下的各类区块链,实现统一的管理监控。它极大的简化了业务流程,包含身份认证管理、业务管理、凭证转换服务、数据采集和展现服务、合约仓库和应用仓库、内部 api 网关等功能模块,使得管理员可以轻松地治理底层资源,管理租户配额,一键部署联盟和智能合约,并监控底层链和节点。底层自然支持 Hyperledger Fabric 区块链,亦可纳管 Ethereum、Quorum 等异构链。
3、主要功能模块
管理员视角:
租户视角:
4、平台主要技术:
・组件多活与多 region 容灾:
政务区块链平台部署在一个多节点高可用集群上,每个容器都有相同处理业务的能力,部分节点故障时服务仍能继续使用,达到一定的容灾性。平台内部需要存储大量数据,因此在部署时同期部署了分布式的数据库,均匀的部署在集群的每个节点上。数据库内部采用高一致性算法,并维护多个历史版本数据,在检测到当前监听的数据库节点健康状态异常后会自动建立新的客户端连接,切换连接源,保证数据的强一致性和高可用性。
・双重缓存层与请求消息队列:
政务区块链平台组件对外开放一套标准政务接口,部署时会签发一套 tls 证书并提供下载方式,用户可以通过该证书连接到组件上,通过调用开放 API 运行相应功能。由于涉及大量接口调用,组件入口处设置了双重缓存层,保证不必要的底层接口调用,加强接口性能。当用户请求到达组件时,消息处理的流量控制器会拒绝容量外的请求,容量内的请求会按到达顺序依次下发,并在消费请求后以一定的 qps 继续填充队列,保证组件的稳定。
・流程引擎与任务树:
平台内部需维护联盟、业务链、组织和底层 BaaS 平台相应的实体关系,通过映射的方式屏蔽了异构链模型上的差异(如子链、通道的区别,联盟、网络的概念,组织、节点等最小粒度),通过抽象任务模板对象封装每个业务操作对应的具体步骤,自动化的并行或串行执行区块链创建、邀请、通知、审批等任务。处理器在任务调度的时候根据反射自动匹配不同的任务类型,并通过分析嵌套深度解析任务下的子任务,生成多个并行任务流。自动化的流程引擎可以处理用户下发的特定任务、执行定时任务(如监控、日志、审计、告警、清理等)。任务执行需具备原子性,一旦任务失败会自动回滚该任务中已经执行的部分。任务下发后,用户可通过任务进度查询接口获取当前业务操作的处理进度,一旦任务失败会展示详细的执行记录和处理建议。树状的任务结构能够保证同级任务并发执行,任务的处理可以使用颜色标记法进行标记,每次执行允许一定的容错并设置超时时间,父节点在检测到全部子节点为某个非进行中状态时便会更新,由底向上,直至根节点状态变更完成。
・异构区块链平台统一接入:
异构链统一接入主要有鉴权方式、模型差异、建链审批流程差异等难点。对于无管理面的自有区块链,政务区块链平台制订了一套统一接入接口,希望被平台纳管的区块链只需实现这套接口便可注册后接入;对于已有管理面并开放接口的区块链平台,政务区块链平台提供接口映射的注册方式,厂商可以通过注入模板自动将一个或多个自有接口映射到政务区块链平台的统一接口上,新链接入后平台会自动执行接入校验流程,通过默认的内置租户进行调测,检查新平台接口的连通性,并通过服务器健康状态的接口定期巡检平台的可用性。对于注册全部变更接口的接入方式,平台全生命周期的维护该平台下的所有区块链网络;也提供只注册管理类接口的纳管模式,使用户对接已部署的区块链。同时,未来还将考虑以跨链方式实现异构链的互联互通。
5、UGBaaS 客户端 sample 代码:
从行业区块链平台新建实例处点击下载证书压缩包,ugbaascert/tls 路径下包含 client.crt client.key 两个文件,示例代码如下
图 1 证书导入代码
导入证书后,默认连接端口 32623,url 设置成政务接口文档中的接口,调用获取已注册组织列表接口并解析返回至结构体。
图 2 获取已注册组织列表接口代码
使用政务区块链平台前均需调用组织注册接口 /v1/ugbaas/orgs,注册组织和底层租户的对应关系(域信息、项目信息及 aksk 等,从 IAM 处获取),然后即可进行创建联盟、业务链、部署智能合约等操作。变更类操作均会返回操作 ID,根据操作 ID 调用查询流程处理进度接口获取当前任务的进行状态。
结语:
区块链技术在数据共享、数据安全、隐私保护、确权确责等方面的技术优势,使其在政府、金融、供应链、交通等各个领域展现出广阔的应用前景。政务区块链平台是行业区块链平台的初步实践,未来在区块链技术的发展下,还会打造面向其他领域的链管平台,构建多方协同的分布式账本,让区块链应用更便捷高效的为产业服务。
本文分享自华为云社区《技术解析 + 代码实战,带你入门华为云政务区块链平台》,作者:敏捷的小智