一种基于区块链数据共享的车辆计算任务卸载方法
技术领域
本发明专利涉及智能交通***、边缘计算技术和区块链技术交叉领域中的车辆计算任务卸载技术,尤其涉及一种基于边缘计算网联中区块链信息共享的车辆计算任务卸载方法。
背景技术
随着智能交通***和自动驾驶技术的不断发展,越来越多的车载应用涌现了出来,这些应用涵盖了行车安全、交通效率和信息娱乐等方方面面。大量的计算密集型和延迟敏感型应用使得车辆对计算和存储能力的要求不断提高,而每辆车受限于物理空间和经济成本,其所提供的本地资源难以充分满足这些应用的需求。
为了解决这一问题,作为5G网络中关键技术的多接入边缘计算(Multi-accessedge computing,MEC)技术被研究者们广泛关注。与传统的移动云计算不同,MEC这种新型架构将位于网络中心位置的云计算资源迁移到网络边缘以降低数据的端到端传输时延,缓解车辆或路侧智能设施的计算与存储压力。在这一架构下,道路上的智能车辆可以将自身难以完成的计算任务卸载到周边的网络边缘节点上,利用边缘节点较为丰富的计算和存储资源在规定的时间内完成这些计算任务,保证各类车载应用的安全稳定运行。
在上述的边缘计算网络中道路中的车辆可以选择将自身的计算任务卸载到两类节点上,第一类是人们普遍认知中的路侧边缘计算节点,这类节点是通过在基站或路侧单元(Road Side Unit,RSU)处部署较为丰富的计算和存储资源,为其通信覆盖范围内一定数量的车辆提供计算服务。第二类是在路网中动态行驶的有一定计算能力的车辆,这类车辆为实现自动驾驶等高级功能,往往部署了比普通智能车辆更丰富的计算和存储资源,能够利用其冗余的资源为周边车辆提供计算服务。
但是,车车间计算任务卸载实现的前提是智能车辆能够准确获取周边受信任服务车辆的信息。如果仅采用传统的服务节点广播方式来提供服务节点的信息,则无法将信息发送给较远处的车辆,可能造成服务车辆***的流失。而且广播方法也无法保证计算任务卸载的安全性,用户车辆不能准确识别出受信任的服务车辆,难以防范可能的恶意节点攻击。
近年来新兴的区块链技术为各类数据的去中心化存储与安全共享提供了新的思路。区块链是一种由多方共同维护,采用密码学技术保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术。区块链本质上是一个多方同步的数据库,通过将不同类型的信息抽象为一条条交易并存储在块-链结构中,其能够在不可信的竞争环境中低成本建立信任关系,实现数据的实时共享,保证信息的可追溯性,有效防范恶意节点。在车车计算卸载应用中,区块链可以用来实现不同边缘节点间服务车辆信息的共享,将服务车辆信息在较大范围内广播,保证用户车辆与服务车辆的有效匹配。同时,区块链也能够建立用户车辆与服务车辆间的信任关系,防范恶意服务节点的攻击。
同时,路侧边缘服务器的资源也并不是无限的。车辆数量或计算任务的持续增加会导致边缘服务器的负载超出其最大限度,使得其无法保证对于每辆车的服务质量,车辆也就无法从计算卸载中获益。每辆车需要综合考虑其应用的执行时间要求、边缘服务器的资源占用情况以及计算卸载服务的价格来综合确定将任务卸载到路侧边缘服务器或是周边的服务车辆上执行,从而保证其车载应用的准确稳定执行,提升车辆的智能化水平。
由此,如何有效利用现有的区块链与边缘计算技术原理,来建立边缘计算网络中服务车辆的服务信息共享机制,并解决车辆在计算卸载中的选择决策难题,是当前智能交通***的边缘计算网络中需要迫切解决的问题。
发明内容
在多车计算任务卸载的场景中,对车辆卸载策略的控制一般可选择集中式和分布式两种方式。集中式控制方案通过服务器端的统筹规划,根据各个车辆的应用需求为其分配适当的边缘计算资源,以实现资源的最优利用。而在分布式控制方案中,每个车辆依靠车辆之间的相互作用来判断当前环境下资源的占用情况,并以自身效用最大化为前提决定是否进行计算卸载。由于集中式控制方案需要占用更多的额外资源,在大规模车联网应用中更适合采用分布式的计算卸载控制方法。但是,目前研究中广泛采用的车辆计算卸载方法都是单纯地基于延迟或可靠性的指标进行优化决策,并未考虑到车与车间计算任务卸载中的信息共享、传输安全保护问题,也没有考虑到车与路侧边缘节点间计算任务卸载中的路侧计算资源有限问题,难以进行具体地应用部署。
因此,本发明设计了一种基于区块链数据共享的车辆计算任务卸载方法,在其中针对车与车之间计算任务卸载的数据共享和安全传输问题,利用区块链技术设计了计算卸载服务车辆信息在边缘计算节点中的共享传输机制,能够保证受信任的服务车辆信息能够在较大范围内发布,促进用户车辆与服务车辆的有效匹配,提高智能交通***中车辆计算卸载的效率。针对车与路侧边缘节点之间计算任务卸载的路侧资源有限问题,本发明将各个车辆的计算卸载行为看作是对边缘服务器资源的竞争,利用博弈论框架对场景中的每辆车的竞争行为进行了博弈论刻画,依据边缘节点的资源占用情况和周边服务车辆情况决定各个车辆的计算卸载策略,实现各个车辆计算卸载策略间的均衡状态,能够在资源有效利用的前提下提升边缘计算***的运行效率。
本发明基于区块链信息共享建立车辆计算任务卸载方法,其特征在于:在车辆边缘计算网络中,各边缘计算节点通过区块链共享计算服务车辆的信息并分别向其覆盖范围内的车辆进行广播,各需要进行计算任务卸载的车辆根据接受到的服务车辆信息与其周边的路侧边缘节点信息进行基于博弈的综合决策,最终将任务卸载到路侧边缘节点或周边服务车辆执行,保证车载智能应用的安全稳定运行,具体方法如下:
步骤一、服务提供车辆向路侧边缘计算节点上传自身服务能力信息;
A、在边缘节点MECm网络覆盖的道路范围内,拟向外提供计算任务卸载服务的具有冗余计算资源的智能车辆j确定自身能够提供服务的计算能力resourcej、能够提供服务的时间 periodj、车辆在这一段时间内的计划行驶轨迹trajectoryj以及该车对其服务的初始定价 init_pricej;
B、车辆i建立与边缘节点MECm间的通信链路,并将其能够提供服务的计算能力resourcej、能够提供服务的时间periodj、车辆在这一段时间内的计划行驶轨迹trajectoryj以及该车对其服务的初始定价init_pricej通过加密方式发送给边缘节点MECm,并附带上车辆自身的假名证书和对消息的签名,具体表示如下:
其中
表示MEC
m的公钥密码,timestamp表示消息生成时的时间戳,
表示车辆j的第s个假名,
表示车辆j的第s个假名所对应的证书,
表示车辆j用第s个假名身份对消息X的签名,E
K(X)表示用密钥K对消息X进行加密,并且
步骤二、路侧边缘节点收集车辆能力信息,并利用区块链技术将其上链发布共享;
A、边缘节点MEC
m接收到车辆j发送的服务能力信息后,利用自身的私钥密码
对式(1) 中的消息进行解密,并通过解密后的消息获得车辆j的第s个假名所对应的证书
解析出证书中包含的
的公钥密码
并验证
对消息的签名
利用
边缘节点进一步解密式(2),得到车辆j所提供的服务能力信息;
B、边缘节点MECm识别出车辆j所提供的各项服务能力信息,将这些信息按照区块链交易记录的形式存储为服务能力记录,具体格式如下:
其中recordID为该条服务能力记录的编号,provider为计算卸载服务的提供者即服务提供车辆, resource、trajectory、period分别为服务提供车辆所能提供的计算资源、车辆运行轨迹及服务时长,quality为用户车辆对该服务提供车辆服务质量的评价,其取值在[0,1]内,初始值为1,值越大则表示评价越高,具体的评价机制将在后续步骤中给出,并且
price=init_price×quality,#(4)
其中的init_price为服务提供车辆提供的初始服务定价。式(4)表示边缘节点利用区块链的智能合约机制,根据该服务提供车辆的服务质量对其服务进行动态定价;
C、边缘计算节点(即信息共享过程中的区块链节点)采用服务证明(Proof-of-Service) 和实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)相结合的区块链共识机制将一定时间内的服务能力记录上链共享,并保证数据的安全性,防范恶意节点的攻击,具体实现步骤如下:
I、服务能力记录广播传输(Broadcast):边缘计算节点(如MECm)将步骤B中解析出的服务能力记录在区块链网络(即所有边缘计算节点组成的网络)范围内进行广播,各个区块链节点收集其他节点发送来的服务能力记录并存储;
II、主节点选择(Select):在经过一定时间t后,在区块链***中选择出一个主节点来将最近产生的服务能力记录组织到一个区块中,并在通过节点间的共识机制后将该区块链接到当前的区块链上,作为最新区块在***中共享。这里基于Proof-of-Service机制进行主节点选择,即考虑各区块链节点当前的计算能力,选择冗余计算资源较为丰富的节点作为主节点生成区块,具体步骤如下:
1)各边缘节点在区块链网络内广播自身的冗余计算资源数,如当前空闲CPU核心数与对应频率;
2)各边缘节点均对所有边缘节点的冗余计算资源进行排序,位于前二分之一的节点基于此次生成区块的大小随机选择其中的第h个节点作为主节点,h的确定方式为:
其中,S为新生成区块的大小,N为网络中边缘计算节点的数量;
III、区块分配(pre-prepare):各节点按照II中计算方式确认自身是否为主节点,若是被选定的主节点则将其生成的区块与其自身的验证结果作为pre-prepare消息广播给区块链网络中的所有边缘节点;
IV、交互(prepare):除主节点外的边缘节点收到主节点发送的pre-prepare消息后验证其主节点的真实性与区块中内容的有效性,并将其验证结果作为prepare消息在区块链网络中进行广播;
V、区块确认(commit):各边缘节点接收到其他节点发送的prepare消息后,结合其自身的验证结果进行综合判断,并对该区块是否生成成功进行投票。如果验证为区块有效的结果总数超过2f(f为区块链***所能容忍的最大恶意节点数量),边缘节点就向区块链网络中的其他所有节点广播commit消息,指明其投票结果;
VI、响应(reply):各边缘节点接收到其他节点发送的commit消息后,结合其自身的投票结果进行判断,如果针对该生成区块的赞成投票数在2f+1以上(包括当前节点自身的投票),则认为区块链***就该区块的生成达成共识,并将共识结果发送给主节点;
VII、区块存储(Store):主节点接收到各个边缘节点的共识结果,完成最终区块的生成工作,并将该区块发送给区块链***中所有边缘节点进行数据共享存储。
步骤三、路侧边缘节点向覆盖范围内车辆下发区块中服务能力信息;
A、路侧边缘节点(如MECl)在完成区块链信息共享后,解析出区块中的最新服务能力信息记录,并将解析出的服务能力信息记录通过加密传输的方式发送给其通信覆盖范围内的车辆(如vi),具体表示如下:
并且
其中的record1…recordz为区块中的服务能力信息记录。
B、车辆v
i接收到边缘节点MEC
l下发的服务能力信息记录后,利用自身的私钥密码
对式(6)中消息进行解密,验证MEC
l对消息的签名
进一步利用消息中得到的 MEC
l的公钥密码
解密式(7),得到最新的周边服务提供车辆信息,结合下面步骤四中介绍的服务链信息,判断是否存在可进行车车间计算任务卸载的服务车辆,从而进行后续的计算卸载决策;
步骤四、用户车辆基于边缘节点和周边服务车辆的服务能力信息进行计算卸载决策;
A、需要进行计算卸载的用户车辆i确定其要计算的任务的输入数据大小Li、计算复杂度αi及可容忍的最大执行时间ti,max。如果用户车辆i周边不存在可提供计算卸载服务的服务车辆,则车辆i直接向边缘节点进行计算任务卸载。如果用户车辆i周边存在一辆以上的服务车辆,则车辆i筛选出与自身行驶轨迹最为接近的服务车辆j,并执行后续的计算卸载决策过程;
B、用户车辆i基于其与路侧边缘节点及服务车辆j间的距离建立通信模型,确定对应通信链路的数据传输速率。具体地,用户车辆与边缘节点间的数据传输速率为
其中,Wi,E表示车辆i与路侧边缘节点间通信链路的带宽,Pi表示车辆i的信号发射功率,di,E为车辆i与路侧边缘节点间的通信距离,θ为信道的路径衰落指数,hi为信道的路径衰落系数,N0表示通信环境的高斯白噪声。类似地,用户车辆与周边服务提供车辆间的数据传输速率为
其中,Wi,j表示车辆i与服务提供车辆j间通信链路的带宽,di,j为车辆i与服务提供车辆j间的通信距离;
C、用户车辆i基于路侧边缘节点的计算能力、任务的应用模型及其与边缘节点间的数据传输速率预估该任务卸载到边缘节点执行所需的总时间为
其中,ti,U表示预估的计算卸载中数据上行传输所需时间,ti,D表示预估的计算卸载中计算结果下行回传所需时间,τi,E为路侧边缘节点的任务执行时间,βi,U为数据上行传输的开销因子,βi,D为计算输出结果数据大小与输入数据大小的比例及下行链路开销的综合因子,fE为路侧边缘节点CPU的计算频率。
同时,用户车辆i基于服务提供车辆j的计算能力、任务的应用模型及其与车辆j间的数据传输速率预估该任务卸载到服务提供车辆j执行所需的总时间为
其中,ti,req表示预估的卸载请求时间,ti,res表示预估的计算结果回传时间,τi,j表示任务在服务车辆j的具体执行时间,βi,req为卸载请求数据的传输开销因子,βi,res为服务车辆计算输出结果数据大小与输入数据大小的比例及回传开销的综合因子,fj为服务提供车辆j的CPU计算频率;
D、用户车辆i基于步骤C中预估计算得到的任务执行总时间,利用博弈理论分别判断计算任务卸载到边缘节点和服务车辆所产生的延迟对应的价值,为了考虑车辆之间竞争的互惠性,该价值采用二次函数形式表示为
ri(ti)=2ti,max(ti+δti,max)-(ti+δti,max)2,#(12)
其中ti∈{ti,E,ti,j}为具体的计算任务卸载总时间,δ为价值调整因子,可动态调整任务在何种延迟下获得最大价值;
E、用户车辆i基于博弈理论框架,判断其混合策略下所能得到的收益与付出的开销,进而得到其博弈的支付函数。具体地,用户车辆i在其混合策略pi下能够得到的收益为
其中,ri,max=ri((1-δ)ti,max)是计算卸载能够得到的最大价值,pi是车辆i将计算任务卸载到路侧边缘节点执行的概率,相应地,(1-pi)即为车辆i将计算任务卸载到周边服务车辆执行的概率,qj为服务车辆j的服务质量,其将在每次卸载任务完成后由用户节点进行评价。另外,用户车辆i在其混合策略pi下所要付出的开销为
其中,p
k表示周边其他需要计算卸载的车辆可能的卸载策略,λ
k为预估的各车辆计算任务平均产生率,
是用户车辆将任务卸载到车辆j与卸载到路侧边缘节点的价格之比。式(14)中加号左边部分可看作是用户节点对路侧边缘节点计算资源的竞争所产生的开销,右边部分为向周边车辆进行任务卸载所需要付出的成本。
通过,综合式(13)和(14)的结果,用户车辆i可以得到其支付函数为
F、用户车辆i基于式(15)的支付函数,采用最优反应方法计算自己在得到最大支付时所需采取的最优策略pi为
其中,
表示将p
i取值限定在[0,1]内,这样,用户车辆i就得到了能够在多数情况下达到纳什均衡的计算任务卸载策略p
i。基于p
i,用户车辆可最终决定将任务卸载到路侧边缘节点还是周边服务车辆进行执行;
步骤五、服务提供车辆上传正在进行的服务信息,边缘节点更新服务链;
如果需要进行计算任务卸载的用户车辆已选定了某一服务提供车辆进行计算任务卸载,服务提供车辆在开始执行具体计算任务的同时也将生成当前的服务信息上传给周边的边缘节点,与步骤一至步骤三的操作类似,边缘节点将多项服务信息打包生成区块,并通过共识机制将其链接到与上面提到的服务提供者链并行的服务链上,通过该服务链共享当前服务提供车辆正在进行的服务信息,辅助用户决策,由于该信息的具体上链步骤与服务提供车辆信息的上链步骤相同,本步骤仅给出链上服务记录service的具体格式如下:
service=(timestamp||serviceID||provider||requester||duration),#(17)
其中,serviceID为该项服务记录的编号,provider表示服务的具体提供者,requester表示服务的具体请求者,duration为服务的预计持续时间;
步骤六、用户车辆评价服务车辆的服务质量,边缘节点基于评价动态定价;
A、用户车辆i在接收到服务车辆j回传的计算结果后,利用主观逻辑框架对服务车辆j的服务质量进行评价,具体地,用户车辆利用如下的三个信任变量来评估服务质量:
ui→j=1-si→j,#(20)
其中,bi→j表示用户车辆i对服务车辆j的信任程度,di→j表示用户车辆i对服务车辆j的怀疑程度, ui→j表示评价的不确定程度,αi→j为两车辆间成功卸载事件的历史数量,βi→j为卸载失败事件的历史数量,包含错误和超时事件,si→j为链路的可靠性,即数据包成功到达率。基于这三个主观逻辑变量,用户车辆i在接收到服务车辆j的最终评价可表示为
qi→j=bi→j+ξui→j,#(21)
其中,ξ为不确定性对评价的影响权重;
B、用户车辆将评价结果发送给路侧边缘节点,完成该计算任务的整个计算卸载过程。边缘节点更新对应的服务车辆服务能力记录,并在下一次区块生成时将该信息上链,从而在链上利用智能合约对服务车辆的计算卸载服务进行动态定价,继续对用户节点提供服务能力信息。
由于采用了上述的计算卸载技术方案,本发明与现有计算任务卸载技术相比,具有以下优点和积极效果:
1、本发明提出的基于区块链的服务车辆信息共享方法为卸载服务车辆信息的大范围广播共享提供了一种有效方案,促进了边缘计算网络中用户车辆与服务车辆的服务匹配,降低了路侧边缘节点的计算压力。并且该方法利用区块链的内生安全机制,保证了共享数据的一致性与不可篡改性,同时采用密码学方法建立了车辆及路侧边缘节点间的数据安全传输机制,提升了车辆计算任务卸载的安全性水平。
2、本发明基于博弈论框架设计了车联网边缘计算网络中车辆计算任务卸载的综合决策方案,能够在多车对路侧边缘计算节点进行计算卸载竞争的环境下达到车辆计算卸载策略的纳什均衡,减轻路侧边缘节点的资源压力,在路侧边缘节点和计算卸载服务车辆间实现负载均衡,提升车联网边缘计算网络的整体运行效率,满足智能车辆对计算和存储服务的需求,保障智能车辆车载英语的安全稳定运行,并促进自动驾驶的车辆智能技术的进一步发展。
附图说明
图1为车辆计算任务卸载方法流程图
具体实施方式:
下面结合附图来对本发明的具体实时方式做进一步说明。
本发明基于区块链数据共享的车辆计算任务卸载方法,如图1所示,通过下述步骤实现:
步骤一、服务提供车辆向路侧边缘计算节点上传自身服务能力信息;
A、在边缘节点MECm网络覆盖的道路范围内,拟向外提供计算任务卸载服务的具有冗余计算资源的智能车辆j确定自身能够提供服务的计算能力resourcej、能够提供服务的时间 periodj、车辆在这一段时间内的计划行驶轨迹trajectoryj以及该车对其服务的初始定价 init_pricej;
B、车辆i建立与边缘节点MECm间的通信链路,并将其能够提供服务的计算能力resourcej、能够提供服务的时间periodj、车辆在这一段时间内的计划行驶轨迹trajectoryj以及该车对其服务的初始定价init_pricej通过加密方式发送给边缘节点MECm,并附带上车辆自身的假名证书和对消息的签名,具体表示如下:
其中
表示MECm的公钥密码,timestamp表示消息生成时的时间戳,
表示车辆j的第s个假名,
表示车辆j的第s个假名所对应的证书,
表示车辆j用第s个假名身份对消息X的签名,E
K(X)表示用密钥K对消息X进行加密,并且
步骤二、路侧边缘节点收集车辆能力信息,并利用区块链技术将其上链发布共享;
A、边缘节点MEC
m接收到车辆j发送的服务能力信息后,利用自身的私钥密码
对式(1) 中的消息进行解密,并通过解密后的消息获得车辆j的第s个假名所对应的证书
解析出证书中包含的
的公钥密码
并验证
对消息的签名
利用
边缘节点进一步解密式(2),得到车辆j所提供的服务能力信息;
B、边缘节点MECm识别出车辆j所提供的各项服务能力信息,将这些信息按照区块链交易记录的形式存储为服务能力记录,具体格式如下:
其中recordID为该条服务能力记录的编号,provider为计算卸载服务的提供者即服务提供车辆, resource、trajectory、period分别为服务提供车辆所能提供的计算资源、车辆运行轨迹及服务时长,quality为用户车辆对该服务提供车辆服务质量的评价,其取值在[0,1]内,初始值为1,值越大则表示评价越高,具体的评价机制将在后续步骤中给出,并且
price=init_price×quality,#(4)
其中的init_price为服务提供车辆提供的初始服务定价。式(4)表示边缘节点利用区块链的智能合约机制,根据该服务提供车辆的服务质量对其服务进行动态定价;
C、边缘计算节点(即信息共享过程中的区块链节点)采用服务证明(Proof-of-Service) 和实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)相结合的区块链共识机制将一定时间内的服务能力记录上链共享,并保证数据的安全性,防范恶意节点的攻击,具体实现步骤如下:
I、服务能力记录广播传输(Broadcast):边缘计算节点(如MECm)将步骤B中解析出的服务能力记录在区块链网络(即所有边缘计算节点组成的网络)范围内进行广播,各个区块链节点收集其他节点发送来的服务能力记录并存储;
II、主节点选择(Select):在经过一定时间t后,在区块链***中选择出一个主节点来将最近产生的服务能力记录组织到一个区块中,并在通过节点间的共识机制后将该区块链接到当前的区块链上,作为最新区块在***中共享。这里基于Proof-of-Service机制进行主节点选择,即考虑各区块链节点当前的计算能力,选择冗余计算资源较为丰富的节点作为主节点生成区块,具体步骤如下:
1)各边缘节点在区块链网络内广播自身的冗余计算资源数,如当前空闲CPU核心数与对应频率;
2)各边缘节点均对所有边缘节点的冗余计算资源进行排序,位于前二分之一的节点基于此次生成区块的大小随机选择其中的第h个节点作为主节点,h的确定方式为:
其中,S为新生成区块的大小,N为网络中边缘计算节点的数量;
III、区块分配(pre-prepare):各节点按照II中计算方式确认自身是否为主节点,若是被选定的主节点则将其生成的区块与其自身的验证结果作为pre-prepare消息广播给区块链网络中的所有边缘节点;
IV、交互(prepare):除主节点外的边缘节点收到主节点发送的pre-prepare消息后验证其主节点的真实性与区块中内容的有效性,并将其验证结果作为prepare消息在区块链网络中进行广播;
V、区块确认(commit):各边缘节点接收到其他节点发送的prepare消息后,结合其自身的验证结果进行综合判断,并对该区块是否生成成功进行投票。如果验证为区块有效的结果总数超过2f(f为区块链***所能容忍的最大恶意节点数量),边缘节点就向区块链网络中的其他所有节点广播commit消息,指明其投票结果;
VI、响应(reply):各边缘节点接收到其他节点发送的commit消息后,结合其自身的投票结果进行判断,如果针对该生成区块的赞成投票数在2f+1以上(包括当前节点自身的投票),则认为区块链***就该区块的生成达成共识,并将共识结果发送给主节点;
VII、区块存储(Store):主节点接收到各个边缘节点的共识结果,完成最终区块的生成工作,并将该区块发送给区块链***中所有边缘节点进行数据共享存储。
步骤三、路侧边缘节点向覆盖范围内车辆下发区块中服务能力信息;
A、路侧边缘节点(如MECl)在完成区块链信息共享后,解析出区块中的最新服务能力信息记录,并将解析出的服务能力信息记录通过加密传输的方式发送给其通信覆盖范围内的车辆(如vi),具体表示如下:
并且
其中的record1…recordz为区块中的服务能力信息记录。
B、车辆v
i接收到边缘节点MEC
l下发的服务能力信息记录后,利用自身的私钥密码
对式(6)中消息进行解密,验证MEC
l对消息的签名
进一步利用消息中得到的 MEC
l的公钥密码
解密式(7),得到最新的周边服务提供车辆信息,结合下面步骤四中介绍的服务链信息,判断是否存在可进行车车间计算任务卸载的服务车辆,从而进行后续的计算卸载决策;
步骤四、用户车辆基于边缘节点和周边服务车辆的服务能力信息进行计算卸载决策;
A、需要进行计算卸载的用户车辆i确定其要计算的任务的输入数据大小Li、计算复杂度αi及可容忍的最大执行时间ti,max。如果用户车辆i周边不存在可提供计算卸载服务的服务车辆,则车辆i直接向边缘节点进行计算任务卸载。如果用户车辆i周边存在一辆以上的服务车辆,则车辆i筛选出与自身行驶轨迹最为接近的服务车辆j,并执行后续的计算卸载决策过程;
B、用户车辆i基于其与路侧边缘节点及服务车辆j间的距离建立通信模型,确定对应通信链路的数据传输速率。具体地,用户车辆与边缘节点间的数据传输速率为
其中,Wi,E表示车辆i与路侧边缘节点间通信链路的带宽,Pi表示车辆i的信号发射功率,di,E为车辆i与路侧边缘节点间的通信距离,θ为信道的路径衰落指数,hi为信道的路径衰落系数,N0表示通信环境的高斯白噪声。类似地,用户车辆与周边服务提供车辆间的数据传输速率为
其中,Wi,j表示车辆i与服务提供车辆j间通信链路的带宽,di,j为车辆i与服务提供车辆j间的通信距离;
C、用户车辆i基于路侧边缘节点的计算能力、任务的应用模型及其与边缘节点间的数据传输速率预估该任务卸载到边缘节点执行所需的总时间为
其中,ti,U表示预估的计算卸载中数据上行传输所需时间,ti,D表示预估的计算卸载中计算结果下行回传所需时间,τi,E为路侧边缘节点的任务执行时间,βi,U为数据上行传输的开销因子,βi,D为计算输出结果数据大小与输入数据大小的比例及下行链路开销的综合因子,fE为路侧边缘节点CPU的计算频率。
同时,用户车辆i基于服务提供车辆j的计算能力、任务的应用模型及其与车辆j间的数据传输速率预估该任务卸载到服务提供车辆j执行所需的总时间为
其中,ti,req表示预估的卸载请求时间,ti,res表示预估的计算结果回传时间,τi,j表示任务在服务车辆j的具体执行时间,βi,req为卸载请求数据的传输开销因子,βi,res为服务车辆计算输出结果数据大小与输入数据大小的比例及回传开销的综合因子,fj为服务提供车辆j的CPU计算频率;
D、用户车辆i基于步骤C中预估计算得到的任务执行总时间,利用博弈理论分别判断计算任务卸载到边缘节点和服务车辆所产生的延迟对应的价值,为了考虑车辆之间竞争的互惠性,该价值采用二次函数形式表示为
ri(ti)=2ti,max(ti+δti,max)-(ti+δti,max)2,#(12)
其中ti∈{ti,E,ti,j}为具体的计算任务卸载总时间,δ为价值调整因子,可动态调整任务在何种延迟下获得最大价值;
E、用户车辆i基于博弈理论框架,判断其混合策略下所能得到的收益与付出的开销,进而得到其博弈的支付函数。具体地,用户车辆i在其混合策略pi下能够得到的收益为
其中,ri,max=ri((1-δ)ti,max)是计算卸载能够得到的最大价值,pi是车辆i将计算任务卸载到路侧边缘节点执行的概率,相应地,(1-pi)即为车辆i将计算任务卸载到周边服务车辆执行的概率,qj为服务车辆j的服务质量,其将在每次卸载任务完成后由用户节点进行评价。另外,用户车辆i在其混合策略pi下所要付出的开销为
其中,p
k表示周边其他需要计算卸载的车辆可能的卸载策略,λ
k为预估的各车辆计算任务平均产生率,
是用户车辆将任务卸载到车辆j与卸载到路侧边缘节点的价格之比。式(14)中加号左边部分可看作是用户节点对路侧边缘节点计算资源的竞争所产生的开销,右边部分为向周边车辆进行任务卸载所需要付出的成本。
通过,综合式(13)和(14)的结果,用户车辆i可以得到其支付函数为
F、用户车辆i基于式(15)的支付函数,采用最优反应方法计算自己在得到最大支付时所需采取的最优策略pi为
其中,
表示将p
i取值限定在[0,1]内,这样,用户车辆i就得到了能够在多数情况下达到纳什均衡的计算任务卸载策略p
i。基于p
i,用户车辆可最终决定将任务卸载到路侧边缘节点还是周边服务车辆进行执行;
步骤五、服务提供车辆上传正在进行的服务信息,边缘节点更新服务链;
如果需要进行计算任务卸载的用户车辆已选定了某一服务提供车辆进行计算任务卸载,服务提供车辆在开始执行具体计算任务的同时也将生成当前的服务信息上传给周边的边缘节点,与步骤一至步骤三的操作类似,边缘节点将多项服务信息打包生成区块,并通过共识机制将其链接到与上面提到的服务提供者链并行的服务链上,通过该服务链共享当前服务提供车辆正在进行的服务信息,辅助用户决策,由于该信息的具体上链步骤与服务提供车辆信息的上链步骤相同,本步骤仅给出链上服务记录service的具体格式如下:
service=(timestamp||serviceID||provider||requester||duration),#(17)
其中,serviceID为该项服务记录的编号,provider表示服务的具体提供者,requester表示服务的具体请求者,duration为服务的预计持续时间;
步骤六、用户车辆评价服务车辆的服务质量,边缘节点基于评价动态定价;
A、用户车辆i在接收到服务车辆j回传的计算结果后,利用主观逻辑框架对服务车辆j的服务质量进行评价,具体地,用户车辆利用如下的三个信任变量来评估服务质量:
ui→j=1-si→j,#(20)
其中,bi→j表示用户车辆i对服务车辆j的信任程度,di→j表示用户车辆i对服务车辆j的怀疑程度, ui→j表示评价的不确定程度,αi→j为两车辆间成功卸载事件的历史数量,βi→j为卸载失败事件的历史数量,包含错误和超时事件,si→j为链路的可靠性,即数据包成功到达率。基于这三个主观逻辑变量,用户车辆i在接收到服务车辆j的最终评价可表示为
qi→j=bi→j+ξui→j,#(21)
其中,ξ为不确定性对评价的影响权重;
B、用户车辆将评价结果发送给路侧边缘节点,完成该计算任务的整个计算卸载过程。边缘节点更新对应的服务车辆服务能力记录,并在下一次区块生成时将该信息上链,从而在链上利用智能合约对服务车辆的计算卸载服务进行动态定价,继续对用户节点提供服务能力信息。