本文从理论、关键技术、具体架构设计等层面研究了云边协同与区块链的融合应用。云边协同与区块链融合架构研究与设计包括了总体融合应用研究与设计、云边协同与区块链交互应用设计、基于云边协同的区块链管理功能设计、基于云边协同的智能合约管理设计、基于云边协同的区块链数据管理设计。通过研究云边协同与区块链融合的可行性和优势,设计出两者互相融合的通用性架构,该架构可以应用于智慧用电、智能网联汽车、智慧管网、工业物联网等应用场景。
随着数字经济的发展,智慧用电、智能网联汽车、智慧管网、工业物联网等智能应用场景不断涌现,算力需求形式也在发生变化。在万物互联的时代,算力需求逐渐转移到了终端侧,海量终端物联设备高可靠、低延时的数据处理需求推动了边缘计算的发展和应用。
尽管边缘计算在支持海量终端设备接入和数据处理方面具有极大的优势,但由于边缘计算的算力资源有限、覆盖面窄等劣势,使其难以对全局数据进行分析处理,同时也难以实现海量数据的长时间存储,而中心云算力恰好能够弥补边缘算力的劣势。因此,边缘计算的发展方向是和云计算结合形成云边协同,实现中心云算力和边缘算力效用的最大化,这种云边协同模式已经得到验证并开始在一些大型企业得到实际使用。
但是在实际的应用场景下,云边协同仍然面临诸多挑战:边缘设备一般在地理上分布式部署,数据收集也通过处于不同地理位置的节点进行,由于边缘设备的安全防护措施有限且处于开放环境中,极易受到安全攻击;云边协同系统缺乏透明可信的计算平台,无法确保各方之间计算过程透明;缺乏数据共享平台,导致各平台数据孤立;边缘设备的动态性缺乏可信的系统监管和审计平台等。
随着区块链技术的发展成熟,其不可篡改和去中心化的特性,能够为云边协同提供一套创新的解决方案。将区块链融入云边协同架构中,可以解决数据可信存储、可信计算、可信传递,以及边缘场景下的系统设备安全监管等问题。因此云边协同与区块链的融合研究与应用成为目前数字经济的热点。
1 理论基础
1.1 边缘计算
边缘计算是一种在物理上分布式部署、在靠近数据源头处执行计算任务的计算模型。边缘计算为解决云计算的缺点而设计,通过在靠近数据源头的地方执行数据计算而无需将终端设备产生的数据全部传送到云端,因此具有减轻网络压力、降低延时、降低能耗、灵活性强等优点。目前,边缘计算已经广泛应用于智慧城市、智能电网、智能网联汽车、智能医疗、工业物联网等领域,解决了隐私保护、数据传输、网络带宽等方面存在的问题。
相比于云计算,边缘计算在降低服务延时,解决带宽问题上具有明显的优势,但是面对计算和存储资源要求较高的任务时,仍离不开云计算;另外,边缘计算的服务稳定性远不及云计算,所以边缘计算的定位是作为传统云计算的补充,未来边缘计算的发展趋势也将是边缘和云的融合发展,即实现云边高效协同。
1.2 云边协同
云边协同与单纯的云计算或边缘计算相比,最大的优势是具有层次性和融合性,层次性在于可以利用云端和边缘不同的计算设备或计算服务进行多层次架构,满足多样的应用需求;融合性在于不仅是对边缘和云简单的加和,而是让两者进行高效的协同。
云边协同主要包含底层的资源协同,上层的数据协同、业务能力协同及安全协同等。虽然云边协同已经在智慧城市、智慧家居、工业物联网等多个应用场景中有广泛的实际使用,由于云边协同包含了数据、算力、业务、应用、安全等不同维度的协同,在不同的应用场景中,需要结合自身业务需求,明确协同目标,构建适合行业应用的云边平台。
1.3 区块链
区块链技术的本质是集成分布式节点、共识算法、密码学及智能合约等技术的一种全新的分布式基础架构与计算范式。区块链技术由中本聪在2008年发表的论文中首次提出,主要用于解决比特币在去中心化网络中的信任问题。区块链按照开放程度可以分为共有链、联盟链和私有链;区块链技术的核心在于链式数据结构、共识机制、密码算法及智能合约。
作为区块链技术的一个成功应用,比特币验证了区块链技术的可行性,目前区块链技术已经应用到金融、资产管理、医疗管理、政务监管、制造业、供应链等诸多领域中。
2 关键技术
云边协同与区块链融合架构设计结合云边协同系统不同层次设备的特点来部署多重区块链系统,采用层次化链的方式可以充分和云边系统结合,但系统复杂度也相应增高,在此种架构中需要采用的关键技术包括:共识算法、智能合约、Docker容器和国密算法。
2.1 共识算法
共识算法是用于解决分布式系统中数据一致性问题的算法,工作量证明机制(PoW)、权益证明机制(PoS)、股份授权证明机制(DPoS)、Pool验证池和实用拜占庭(PBFT)是5种常见的共识机制,其中,PoW机制特点是节点可以自由进出,但是由于该机制达成共识需要较长的周期,因此并不适合本架构应用;PoS机制虽然可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行“挖矿”运算,因此,也不能解决PoW机制难以应用于本架构的问题;DPoS证明机制可以缩小参与验证和记账节点的数量,从而实现快速共识验证,然而该机制存在对“代币”的依赖问题,仍然不能解决区块链在本架构中的应用问题。
由于Pool验证池摆脱了对“代币”的依赖,其在分布式一致性算法基础之上,可以实现秒级共识验证,因此在有多方参与的多中心业务模式中特别适用;PBFT本质是通过建模的方式,在分布式系统的不同节点进行副本复制,保存了服务状态副本的同时也可以实现服务的操作。
基于架构设计的实际情况,区块链网络部署在边缘侧,而非有人值守的中心机房,区块链网络可能被恶意控制或出现故障,为了保证区块链网络的容恶和容错,本研究提出的架构将提供2种共识算法的实现以供用户选择,分别是PBFT和分布式一致性算法(RAFT)共识。
2.2 智能合约
智能合约本质上是一段可运行的程序,其目的是保管账本上资产。智能合约在区块链中的应用,使得区块链从一种分布式存储架构进化成通用的分布式计算架构,大大丰富了区块链的应用场景。智能合约具有开销低的优点,能降低用户的使用门槛,因此,已经成功应用于许多区块链系统上,如以太坊和超级账本。
区块链为智能合约提供了安全可靠、公开透明的执行环境,每一笔交易的发布都需要选择2个交易进行验证,节点通过复现合约的运行过程,检查产生的结果是否一致来检验智能合约的运行流程是否安全可靠,同时系统中的边缘节点也会通过检查点机制来检查合约的调用是否正确。
2.3 Docker容器
随着虚拟化技术的发展,容器技术应运而生,Docker是其中最典型的一种,利用此技术可以按需构建操作系统应用实例,容器的管理主要通过应用程序接口来实现。
Docker是一个开源的应用容器引擎,完全基于沙箱机制。不同应用容器间共享底层操作系统和硬件资源,但应用间相互隔离,性能开销低,具有良好的跨平台特性,真正做到了“一次编译,到处运行”,大大提高了应用部署的便携性,开发者可将应用及依赖包到一个可移植的镜像中,然后发布到私有仓库或公共仓库,需要使用时,用户便可直接从镜像仓库拉取运行。
为满足区块链部署和监控的高效性、快捷性,本架构中将区块链应用程序封装成Docker镜像并存放于私有镜像仓库,当用户下发区块链部署指令时,边缘侧智能终端可直接从镜像仓库中拉取区块链镜像,根据节点配置启动后完成组网建链。
2.4 国密算法
区块链可以在网络中为互不信任的多方构建信任,密码学是其最重要的技术手段之一,目前主流区块链采用的是椭圆曲线密码学(elliptic curve cryptography,ECC),安全哈希算法256(Secure Hash Algorithm 256,SHA-256)等加密算法,无法实现技术的自主可控。基于国产化的需求,本架构的底层区块链将用国密算法SM2、SM3和SM4进行替代。
SM2是一种椭圆曲线密码算法,在解密正确性判断、明文编码问题、加密计算等方面具有更高的效率;SM3是一种散列密码算法,主要用于数字签名及其验证、消息认证码生成及其验证和随机数生成;SM4是一种分组密码算法,分组长度和密钥长度均是128bit,加密算法与密钥扩展算法均采用32轮非线性迭代结构。
本架构中,节点TLS握手中采用国密SSL协议(采用SM1/2/3/4等国密算法,符合国密标准的安全传输协议);交易签名生成,验证过程采用国密SM2算法;数据摘要算法采用国密SM3算法;数据加密过程中采用国密SM4算法。
3 融合架构设计
云边协同平台是云端与边端通信的基础设施,由于云端与边端可能存在无法从云端直接使用TCP/IP协议连接边端,所以设计BaaS(区块链即服务)平台基于云边协同平台,以云边协同平台作为基础架构和网络通信基础设施,通过管理镜像、下发指令等云边协同平台提供的基础能力,对边侧的区块链进行云端管理,同时实现云端建链、消链、合约部署等操作。
3.1 总体融合应用研究与设计
云边协同与区块链融合的总体架构如图1所示。
图1 基于云边协同的BaaS平台整体架构
基于云边协同的BaaS平台在云端采用微服务架构,提供BaaS平台的后端服务集群基础能力,如提供服务注册和统一配置能力,提供容错机制和断路保护,提供调用链路追踪能力,提供日志收集和监控能力,提供用户统一管理和鉴权的路由能力。在服务集群中,将BaaS平台服务能力进行微服务拆分,拆分为用户交互管理界面、区块链数据服务接口、节点管理服务、私钥服务、交易服务、统计服务和审计服务。
云边协同平台交互服务包括:云边协同平台镜像管理服务、指令发送服务、边端监控服务、链上数据接收服务。这些服务都集成了云边协同应用程序接口(API),将与云边协同平台通过API进行交互。在边侧节点上,采用容器方式部署,将区块链能力组件通过云边协同平台下发并进行部署。同时,组件通过边缘设备采集并计算,将数据上传。
3.2 云边协同与区块链交互应用设计
BaaS平台部署在云端,区块链节点部署在边缘设备上,两者的交互主要通过云边协同平台完成。云端下发镜像、指令通过云边协同平台到区块链节点;边端将采集和计算得到的数据通过云边协同平台上传云端,具体架构如图2所示。
图2 云边协同和区块链交互架构
BaaS平台为解决云端与边端网络通信问题,基于云边协同平台建设。云边协同平台为上层应用(BaaS平台)提供网络通道,并转发边缘设备的用户数据,由上层应用处理边缘设备的业务数据。云边协同与区块链的交互主要包括4个方面。
1)镜像服务交互。云边协同平台提供云边协同镜像服务,创建并维护镜像仓库,为接入云边协同平台的应用提供镜像管理软件开发工具包(software development kit,SDK)。云端区块链平台对应的BaaS-Image(云边协同平台镜像管理服务)使用云边协同平台开放的SDK,通过RESTFul接口进行http调用到云边协同镜像服务,提供BaaS平台管理其自身镜像的能力,能让用户通过用户界面(UI)进行镜像管理操作。边缘设备通过Docker容器引擎,拉取云边协同镜像仓库并运行,成为边端应用。
2)指令服务交互。云边协同平台提供云边协同指令服务并将指令下发到消息队列遥测传输(message queuing telemetry transport,MQTT),为接入云边协同平台的应用提供指令下发SDK。云端区块链平台对应的云边协同平台指令发送服务(BaaS-Commander)使用云边协同指令服务开放SDK,通过RESTFul接口进行http调用到云边协同指令服务,提供BaaS平台发送区块链命令到边端的能力,能让用户通过UI发送管理命令到边端区块链节点。边缘设备订阅MQTT消息,当收到自身边缘设备的指令消息,将指令拉取到边缘设备并运行,实现云端到边端的控制操作。
3)监控服务交互。云边协同平台中布置监控数据网关并提供云边协同监控服务,为接入云边协同平台的应用提供监控数据查询的SDK。云端区块链平台对应的云边协同平台边端监控服务(BaaS-Monitor)使用云边协同监控服务开放SDK,通过RESTFul接口进行http调用到云边协同监控服务,提供BaaS平台监控边端区块链节点的能力,能让用户通过UI对边端区块链节点的运行状态进行实时监控。边缘设备将数据发送到监控数据网关,并由监控数据网关将数据转发到相应的上层应用,进行设备的准实时监控。
4)数据采集服务交互。云边协同平台中布置数据采集网关并提供云边协同数据采集服务,为接入云边协同平台的应用提供数据采集SDK,是上层应用管理的边缘设备上传其采集数据的通道。云端区块链平台对应的云边协同平台链上数据接收服务(BaaS-Colletor)使用云边协同数据采集服务开放SDK,通过RESTFul接口进行http调用到云边协同数据采集服务,提供BaaS平台归档区块链节点数据的能力。边缘设备将加急的数据发送到数据采集网关,并由数据采集网关将数据转发到相应的上层应用,进行存储和业务使用。
3.3 基于云边协同的区块链管理功能设计
边侧区块链管理功能包括区块链镜像维护、区块链创建和区块链删除功能。云边协同平台基于容器进行边缘设备能力增强,所以云边协同平台的上游系统需要构建自身需要的容器镜像,并在云边协同平台进行维护。图3是边侧区块链镜像上传流程图。
图3 边侧区块链镜像上传流程
区块链运维人员在本地容器环境打包Docker镜像,并将镜像上传至BaaS平台,填写镜像配置表单,调用云边协同镜像维护服务。云边协同镜像维护服务将收到的镜像和相应的配置保存到云边协同平台镜像仓库,完成BaaS平台区块链镜像维护。
由于边侧区块链分布于各个地方,如现场安装区块链功能初始化区块链服务需要耗费很多的人力资源,效率较低。由于需要安装区块链服务的边缘节点已经注册到云边协同平台上,边缘节点可以在线从云端获取应用服务。由此建链的过程可以从人工手动现场安装迁移到自动在线安装,提高效率。图4是边侧区块链建链流程图。
BaaS平台通过调用云边协同平台开放服务,将建链命令发送到云边协同平台消息队列,边缘设备通过云边协同平台的消息拉取组件,将建链命令拉取到边端并执行,建链命令即通过云边协同镜像仓库将区块链节点镜像拉取到本地并运行,当区块链节点镜像启动成功,即可按照配置找寻同一网络环境下的边缘区块链节点,从而完成建链。
由于边侧区块链分布于各个地方,如当边缘侧节点需要卸载或删除数据时,由于边缘节点注册到云边协同平台,可以通过云边协同平台下发区块链销毁指令,同时在边端进行链的销毁和链上数据销毁,图5是边侧区块链销链流程图。
BaaS平台通过调用云边协同平台发布服务,将销链命令发送到云边协同平台消息队列,边缘设备通过云边协同平台的消息拉取组件,将销链命令拉取到边端并执行,区块链节点获取到销链命令,首先根据归档标识和自身现在的数据情况,将未归档的数据发送到云端进行归档;归档完成后,删除所有的链上数据和区块链节点配置,从而完成销链。
3.4 基于云边协同的智能合约管理设计
智能合约管理功能主要包括合约部署、合约更新和合约注销功能。
智能合约的生命周期有设计、开发、测试、部署、运行、升级、销毁等步骤。开发人员根据需求,进行智能合约代码的编写、编译、单元测试。在合约通过测试后,采用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。图6是边侧区块链合约部署流程图。
图6 边侧区块链合约部署流程
开发人员根据合约需求,首先通过IDE开发编译并通过测试,形成ByteCode和ABI,BaaS平台通过调用云边协同发布服务,将合约部署命令和合约ByteCode和ABI通过云边协同消息队列下发到边缘设备,区块链节点将发起部署交易共识,共识通过后,区块链进程完成合约解析和部署,从而完成合约部署。
当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和独立的存储空间,并不是覆盖掉旧合约。新版合约可通过旧合约数据接口访问旧版本合约里保存的数据,或者通过数据迁移的方式将旧合约的数据迁移到新合约的存储里。
销毁一个旧合约并不意味着清除合约的所有数据,只是将其状态置为“无效”,该合约则不可再被调用。图7是边侧区块链合约注销流程图。
图7 边侧区块链合约注销流程
BaaS平台通过发送销毁合约命令到云边协同平台,云边协同平台将命令发送到消息队列,并在边缘设备中进行拉取命令,区块链节点获取到注销命令,发起合约注销交易共识,共识通过后,进行合约的注销,将合约的状态置为无效,注销完成。
3.5 基于云边协同的区块链数据管理设计
由于区块链节点在边缘侧,边缘侧存储能力低,首先,需要对边缘侧数据做好定期备份并将老旧的数据进行删除裁剪,以防止边缘节点存储空间溢出导致的系统故障;其次,云端系统需要对边缘侧节点进行实时的数据查询和整理。由此需要对边缘节点的区块链应用进行数据归档。数据归档提供了2种数据归档的模式,一种是人为主动调用,另一种是定时调用,图8是边侧区块链人为主动数据归档流程图,图9是边侧区块链定时数据归档流程图。
图8 边侧区块链人为主动数据归档流程
图9 边侧区块链定时数据归档流程
在边缘设备定时进行归档和人为主动进行归档时,均需要将归档标识进行更新,标识是指归档时的最新一条数据的时间戳。
边缘侧区块链节点的网络环境不固定,且易受非人为可控的条件导致损坏,当节点网络恢复后,需要从云端进行数据恢复,以保证节点能够正常工作。图10是边侧区块链数据恢复流程图。
图10 边侧区块链数据恢复流程
BaaS平台选择需要进行恢复的节点和恢复的数据,将数据放入云上主链进行哈希校验,哈希校验通过即可通过云边协同发布服务下发数据和指令到边缘设备,边缘设备上的数据恢复服务获取到指令和数据,将区块节点恢复,同时,区块链节点将恢复的数据同步到整条链上,完成区块链的数据恢复。从云端进行数据恢复,以保证节点能够正常工作。
4 测试结果
将所提出架构应用于南方电网智慧用电示范应用,该应用搭建于南方电网智能电网实验平台,该实验平台可以模拟1000个边缘节点以内实际电网运行状态并反馈电网参数,其中包括调度中心数据、厂站端数据等。
将本研究提出的架构升级前后智能电网的相关数据进行了对比。图11对比了传统云边协同计算架构和云边协同与区块链融合架构在实际中的表现。如图11(a)所示,因为采取区块链融合架构后,边缘节点产生的数据量相较原来更多,所以当边缘节点数量变化时,产生的数据量增长也更快。由图11(b)和(c)两图可以看出,采取云边协同与区块链融合架构后的智能电网可以在单位时间内处理更多的合约交易订单;图11(c)中,由于传统云边协同架构没有采用区块链模式,所以采用的对比数据为同等数量边缘节点所产生的平均交易量。图11表明,在采用了云边协同和区块链融合架构后,智能电网整体系统对用电数据、用电交易的处理能力有了较大提升。
图11 用电数据及交易对比
图12则给出了云边协同和区块链融合架构的系统运行参数及其对比,由图12(a)可以看到,采用了云边协同后的整体区块链建链和消链速度整体比较稳定,平均时长均在毫秒级,对用电数据传输和处理速度影响不大。图12(b)和(c)分别展示了采取本研究提出架构前后节点间进行通信时的缓存命中率和网络丢包率对比:采用云边协同和区块链融合架构的缓存命中率始终保持在99%以上,而网络丢包率则始终保持在0.1%以下,并随边缘节点数增加而减少;相比较之下,传统云边协同架构的缓存命中率始终低于99%,且网络丢包率较高,最高可达0.62%,并随边缘节点数增加而增加。以上数据表明,云边协同与区块链融合架构可以使智能电网数据安全性更高,并更适配大范围、大规模云边协同计算。
图12 系统指标对比
5 结论
提出了一种云边协同与区块链融合的架构设计,该架构利用智能合约、共识机制、容器技术及国密算法,设计基于云边协同平台的BaaS平台,以云边协同平台作为基础架构和网络通信基础设施,通过管理镜像,下发指令等云边协同平台提供的基础能力,对边侧的区块链进行云端管理,同时实现云端建链、消链、合约部署、数据存储等操作。所提出的云边协同和区块链融合架构通过南方电网智慧用电在云南电网的示范应用验证了其运行的安全性和稳定性,同时该架构能有效提高系统的订单处理能力,适用于大范围大规模智能电网云边协同计算;另外,作为一种通用的云边协同和区块链融合架构,该架构还可以适用于智能网联汽车、智慧管网、工业物联网等应用场景。
本文作者:李申章、杨铮宇、李力、马鑫堃、吴玮、李良静、张逸彬、周智勋
作者简介:李申章,云南电网有限责任公司信息中心,高级工程师,研究方向为电网数字化。
原文发表于《科技导报》2024年第9期,欢迎订阅查看。
内容为【科技导报】公众号原创,欢迎转载
白名单回复后台「转载」
《科技导报》创刊于1980年,中国科协学术会刊,主要刊登科学前沿和技术热点领域突破性的成果报道、权威性的科学评论、引领性的高端综述,发表促进经济社会发展、完善科技管理、优化科研环境、培育科学文化、促进科技创新和科技成果转化的决策咨询建议。常设栏目有院士卷首语、智库观点、科技评论、热点专题、综述、论文、学术聚焦、科学人文等。