首页 / 专利库 / 银行与财务事项 / 数字货币 / 加密货币 / 比特币 / 一种基于车联网环境下轻量级区块链的协同缓存方法

一种基于车联网环境下轻量级链的协同缓存方法

阅读:958发布:2020-05-24

专利汇可以提供一种基于车联网环境下轻量级链的协同缓存方法专利检索,专利查询,专利分析的服务。并且一种基于车联网环境下轻量级 区 块 链 的协同缓存方法,属于车联网领域。轻量级区块链架构应用于车联网环境,底层车辆层承担轻量级 节点 角 色,向 中间层 汇报行车数据、向中间层 请求 车联网数据并对数据进行校验;中间路侧节点层承担全节点角色,保存区块链数据、为底层车辆提供请求数据服务、向 云 服务器 汇报车联网数据,且利用多路侧节点协同缓存区块链数据;顶层云服务层承担全节点角色,保存区块链数据、为中间路侧节点层提供服务、参与中间路侧节点层协同缓存初始化过程。该方法解决了数据安全问题并提供了轻便的数据校验方式,通过多路侧节点之间的协同缓存实现路侧节点存储资源的最大化利用,降低了路侧节点与车辆通信的延迟。,下面是一种基于车联网环境下轻量级链的协同缓存方法专利的具体信息内容。

1.一种基于车联网环境下轻量级链的协同缓存方法,其特征在于:利用关键词描述向量算法表示车联网数据;依据每个关键词在每个区块内部的出现频率不同、每个关键词在所有区块上的出现频率的不同以及关键词之间的组合,为每个区块生成一个独特的关键词描述向量;两个关键词描述向量可以利用向量距离公式计算相似度;两个区块的关键词描述向量距离越近,说明两个区块内容越相近;路侧节点的关键词描述向量和区块的关键词描述向量越接近,则说明该区块所在路段请求的数据类型和内容与该区块的数据内容越匹配,则将来再路侧节点的替换共识中,该区块被替换出去的可能性就越低;按得分公式计算得出区块的分数;协同缓存,多个路侧节点共同缓存一条区块链;初始化过程依赖于服务器运行遗传算法,其结果为每个路侧节点初始需要缓存的区块链列表;路侧节点在运行过程中得分公式,按照得分高低决定新区块是否替换旧区块以及替换何旧区块;具体包括以下步骤:
首先,轻量级区块链网络架构建立:
所述轻量级区块链网络架构包括位于底层的车辆层、位于中间层的路侧节点层和位于顶层的云服务层;位于底层的车辆层:车辆作为轻量级区块链中的轻量级节点色,负责向中间层请求数据区块链中的数据、对数据区块链中的数据进行校验;位于中间层的路侧节点层:路侧节点协同保存数据区块链和验证区块链,提供对底层车辆的请求数据服务;位于顶层的云服务层:保存数据区块链和验证区块链的完整副本,对中间层提供区块链的查询服务;
其次,中间层路侧节点的数据协同缓存架构建立,其中底层的车辆层提供车辆相关数据,中间的路侧节点层负责对数据进行协同存储,顶层的云服务器层负责协同存储的初始化;
2.1关键词向量描述算法:
利用关键词来描述车联网数据,其具体过程如下:
利用分词工具或者人工的方法为某段车联网数据统计词汇列表;
统计每个关键词在该车联网数据内的频率,称之为内频率TF;
统计每个关键词在所有车联网数据内的频率的倒数,称之为外频率IDF;
每个关键词对车联网数据的描述能TFIDF=TF×IDF;
用term0,term1,term2…term n来表示关键词,用TFIDF0,TFIDF1,TFIDF2…TFIDF n来表示对应的描述能力值,则该车联网数据的关键词向量描述为一个n×2矩阵,表示为:
利用关键词来描述路侧节点数据,其具体过程如下:
利用分词工具或者人工的方法为某路侧节点收集到的数据统计词汇列表,其中路侧节点收集到的数据包括车辆请求的数据;
统计每个关键词在该路侧节点数据内的频率,称之为内频率TF;
统计每个关键词在所有路侧节点数据内的频率的倒数,称之为外频率IDF;
每个关键词对路侧节点数据的描述能力TFIDF=TF×IDF;
用term0,term1,term2…term n来表示关键词,用TFIDF0,TFIDF1,TFIDF2…TFIDF n来表示对应的描述能力值,则该车联网数据的关键词向量描述为一个n×2矩阵,表示为:
利用关键词来描述区块数据,其具体过程为:区块的内容是车联网交易,每笔车联网交易都有一个关键词向量描述,那么区块的关键词向量描述就是所有交易的关键词向量的集合;
2.2关键词向量描述距离:利用向量间的距离公式即可计算出两个关键词向量距离,含义为两条车联网数据的相似程度,或者两个路侧节点之间的相似程度,或者路侧节点和车联网数据的相似程度,或者路侧节点和区块的相似度,其公式表示如下:
路侧节点和区块的距离等于路侧节点收集的数据和区块中每一笔车联网交易的距离的总和;
2.3得分公式:
其中,T:最近被访问时间与系统初始时间差值;△t:被设置为系统产生区块的平均时间,用于修正T值,防止T值过小,A、B、C:权重因子,可动态调节,权重越大,相应项的重要性越高;D:利用关键词向量公式计算出的距离,含义是某段车联网数据和路侧节点的相关性;
Fn:访问次数;F:总访问次数;scorek-1:最近一次得分;scorek:本次得分;
2.4替换公式:当路侧节点的缓存位置已满时,需要利用上述得分公式寻找合适的位置替换不合适的数据,并用新的数据替代;
2.5协同缓存的具体过程如下:
(1)路侧节点在日常工作中记录车辆请求的数据和从云服务器收到的数据;
(2)每隔一段时间,所有路侧节点都会向云服务器汇报收集到的数据;
(3)云服务器将收集到的数据整理并运行遗传算法,其中遗传算法的具体过程如下:
个体:比特矩阵,每一行的每一位代表某个路侧节点是否缓存某个区块,0代表不缓存,
1代表缓存;
训练输入数据为:某个区块在某个路侧节点被访问;
适应度:每个个体对于一条训练输入数据的延迟规则:如本地缓存了该区块,则延迟为
0;若没有缓存该区块,则需向延迟最小的其余路侧节点请求;每个个体对于所有训练输入数据的总延迟的倒数为该个体的适应度;
变异规则:每个个体的随机位置改变(0->1或者1->0);
重组规则:每个个体交换对应位置的序列;
算法输出:最佳适应度的个体,含义为所有路侧节点的初始缓存区块列表;
(4)云服务器将最终结果发布给所有路侧节点,路侧节点更改本地缓存情况,若被分配到了新的区块,则需向云服务器请求;
(5)云服务器发布的列表只是路侧节点在一段时间内的初始化列表,而路侧节点在其余时间需要根据本身的运行情况,动态改变自身的缓存,过程为:路侧节点在收到云服务器发布的新区块后,根据得分公式,动态判断是否需要替换已在缓存中的;
最后,区块利用率优化:区块利用率优化的方式为对多条互相之间关联度高且在得分公式中得分高的交易重新组成新的区块,其具体过程如下:
(1)路侧节点可以为每一条交易标注分数,打分机制基于打分公式;路侧节点也可以为每一条交易创建关键词向量描述,两条交易之间的向量距离为两条交易间的关联度;
(2)路侧节点在空余的时候执行挖矿功能:对于新的从未被写区块的交易,路侧节点仅计算交易之间的关联度,将关联度高的交易写入区块;对于曾经被写入过的交易,路侧节点计算交易之间的关联度和每条交易的打分,将得分高且关联度高的交易重新写入新的区块;所述挖矿功能的具体过程为:
1)当路侧节点存储在内存中的车联网数据达到一定规模后,路侧节点启动挖矿功能;
路侧节点将内存中的车联网数据信息组织成车联网交易,并按照比特币区块的交易组织规则,组织成列表的形式,同时利用SHA256算法创建对应的Merkel树和树根;当交易信息组织好后,按照比特币区块的区块头组织规则,利用merkel树根、时间戳、难度目标、随机数、前一个区块的哈希值、版本号,创建对应的区块头;最后将区块头和交易信息拼接成完整的区块;
2)路侧节点将创建好的区块发送给云服务器,云服务器判断该区块是否和其他节点创建的区块冲突,冲突标准是二者是否共享同一个父区块;
3)如果区块尚未冲突,那么服务器发送成功通知给所有区块,即通知创建区块成功的节点可以继续创建新的区块,通知其他节点停止创建可能会产生冲突的区块并将最近区块作为父区块延伸区块链;如果区块已经冲突,那么通知创建区块的节点冲突消息,并告知其最新的区块,不必通知其他节点。

说明书全文

一种基于车联网环境下轻量级链的协同缓存方法

技术领域

[0001] 本发明涉及车联网技术领域,尤其涉及一种基于车联网环境下的轻量级区块链搭建方案及路侧节点之间协同缓存的方法。

背景技术

[0002] 随着车联网技术的发展,车联网的节点数量越来越多,车联网网络中需要处理的数据也越来越庞大。同时,随着网络中流量负载的增加,传统的集中式数据处理结构(如服务器-客户端模型)也面临着巨大的挑战。面对越来越多的车辆请求,对车联网中的路侧节点的存储和计算性能要求也越来越高。传统的车联网模型中,某个路段内的路侧节点的性能是该路段通信的瓶颈,而该路侧节点的故障则可能会破坏整个网络的稳定性
[0003] 近年来人工智能在迅速发展的同时,数据的共享和安全问题也面临较大困难。在过去,人工智能的的瓶颈在于模型和算法,而在当今互联网大爆炸时代,人工智能的研究者却经常苦于没有足够多而且足够规范化的训练数据。当下许多数据往往都是由中心机构掌握,不能被随意买卖和支配,数据市场十分狭窄,这就是数据垄断问题。同时,即使数据能够被大规模的公开使用,数据本身的正确性和有效性也很难判断。攻击者可能试图在公开的数据中恶意注入不正确的数据信息或者不正确的数据导向,在人工智能的训练过程中如果使用了这种恶意数据,很可能会给出错误的训练结果,减慢了人工智能的发展。而且一旦发现错误的训练数据,公开的数据源的可信度也会下降,没有了良好的声誉作为基础,数据源也会渐渐没落,这就失去了数据公开的美好初衷。
[0004] 区块链本身的数据十分庞大,传统的比特币区块链中轻量级节点依靠多个全节点进行数据的搜索和校验,对实时性要求极低,这对于车联网的情况并不适用。在车联网的环境中,车辆向路侧节点请求数据的延时必须极小,防止车辆做出错误决策或者根本无法得到需要的信息。
[0005] 基于车辆以及车辆行驶的特性可知,每条道路上的车需要的信息可能并不完全相同,倘若能够掌握每条道路请求内容的特性,并根据特性对道路上的路侧节点的缓存进行改造和优化,那么对道路上车辆的请求延时将会大大减少,同时路侧节点也无需缓存所在道路上根本不可能被请求的内容,资源利用率也大大提高。
[0006] 国外已有轻量级车联网应用于车联网的先例,如[L.d.Costa,A.Neto,B.Pinheiro,R.Araújo,A.Abelém and W.Cordeiro,"DLCP:A protocol for securing light client operation in blockchains,"NOMS 2018-2018IEEE/IFIP Network Operations and Management Symposium,Taipei,2018,pp.1-6.]中提出了一种利用阈值签名算法对区块链中数据进行校验的机制,其中车辆作为轻量级节点,路侧节点作为全节点,增强了车辆对路侧节点传输数据的信任度,但是对于路侧节点的存储容量要求很高。另一个例子是[Jiang T,Fang H,Wang H.Blockchain-based Internet of Vehicles:Distributed Network Architecture and Performance Analysis[J].IEEE Internet of Things Journal,2018:1-1.]中提出的基于区块链的车联网数据传输模型,将车联网中的数据分成五类,将车联网中的节点也同样成分五类,将区块链中对应于车联网的数据传输模型也分成五类。但是该架构中对车辆节点的计算性能和存储性能要求较高,并且数据类型和区块链网络类型较多,未能考虑到路侧节点的存储容量和查询资源都是有限的这一问题,且并未对车辆的请求延时做优化。[Li J,Liu Z,Chen L,et al.[IEEE 2017IEEE International Symposium on  Parallel and Distributed Processing with Applications and 2017IEEE International Conference on Ubiquitous Computing and Communications(ISPA/IUCC)-Guangzhou,China(2017.12.12-2017.12.15)]2017IEEE International Symposium on  Parallel and Distributed Processing with Applications and 2017IEEE International Conference on Ubiquitous Computing and Communications(ISPA/IUCC)-Blockchain-Based Security Architecture for Distributed Cloud Storage[C]//2017:408-411.]中提出一种基于区块链的分布式服务安全架构,其中利用了遗传算法进行多个用户和多个数据中心之间的文件块副本放置问题,提高了P2P网络的的响应性能,优化分布式云服务架构服务的传输时间,但是却未能对节点运行过程中的行为做优化。

发明内容

[0007] 本发明公开了一种基于车联网环境下轻量级区块链的协同缓存方法,属于车联网和区块链技术领域。该方法充分利用区块链的优势,将数据存储于区块链上,并利用区块链的特性对数据的完整性进行验证,从而保证了数据的不可篡改性和真实性;其次利用车联网的分层架构,包括底层的车辆层、位于中间层的路侧节点层、位于顶层的云服务层三层共同实现车联网信息的交互和保存;再通过中间层的数据协同缓存保证了路侧节点的存储资源充分利用和车辆与路侧节点之间信息交互的快速性。
[0008] 本发明涉及到的技术如下:
[0009] 1.关键词描述向量算法。本发明建立在路侧节点的存储容量有限的前提下,故当路侧节点所能存储的区块数量达到峰值时,需要选择合适的替换共识来对旧的或是访问度不高的区块进行替换,其作用是使用区块中数据出现的关键词来对区块进行描述,例如“路况”,“拥堵”,“换道”等关键词。依据每个关键词在每个区块内部的出现频率不同、每个关键词在所有区块上的出现频率的不同以及关键词之间的组合,可以为每个区块生成一个独特的关键词描述向量,该描述记录了区块中有哪些关键词以及这些关键词在区块中的重要程度,或者说每个关键词所能描述的区块的程度。每个路侧节点接收到的所有请求也会按照上述算法,利用关键词进行描述,获得该路侧节点的唯一的关键词表述向量。两个关键词描述向量可以利用向量距离公式计算相似度。两个区块的关键词描述向量距离越近,说明两个区块内容越相近;路侧节点的关键词描述向量和区块的关键词描述向量越接近,则说明该区块所在路段请求的数据类型和内容与该区块的数据内容越匹配,则将来再路侧节点的替换共识中,该区块被替换出去的可能性就越低。
[0010] 2.替换公式。当路侧节点存储的区块达到最大值后,利用替换公式计算出的得分决定新区块是否替换旧区块以及替换何区块。
[0011] 3.协同缓存。协同缓存的目标是基于每个路侧节点所在路段的特点,为不同路侧节点分配不同的区块,减少路侧节点查询的延时,所有路侧节点的区块合集是完整的区块链,路侧节点与路侧节点之间区块允许存在交集。本发明背景设定是路侧节点内存有限,那么当路侧节点能够容纳的区块达到上限后,路侧节点就要采取一定的替换策略,替换掉本路段极少或根本不会被请求的区块,加入本路段经常性需要的区块。本发明拟采用的替换共识是遗传算法,其算法大致思路如下:每隔一段时间,所有的路侧节点都会收集到足够数量的请求,这些请求的内容都隐含着路侧节点所在路段需要数据的类型和潜在方向,例如路侧节点1收到变道请求较多,路侧节点2收到路况信息请求较多,那么路侧节点1的内存中就会存放较多变道数据的区块,同样路侧节点2的内存中占比较大的是以路况信息为内容的区块。每隔一段时间所有路侧节点都会将收集到的请求信息和每次请求使用了哪些区块上报给云端服务器,由云端服务器统一为路侧节点分配区块。云端服务器存放所有区块。在云服务器计算初始化列表的间隔内,路侧节点也会利用替换公式改变自身的区块列表。
[0012] 4.区块重组。区块中的内容同比特币区块中交易相似,都是由单独的内容组成,在这些内容被第一次写入区块时,之间的关联性可能并不强,那么就会出现以下这种情况:某个区块在某个路侧节点上被多次请求,但是被请求的关键内容仅仅是其中极少数的几条内容,例如该路段上有多少红绿灯路口等。那么该区块的其内容会跟随区块一起存储在该路侧节点中,这就造成了资源的浪费。针对这种情况,本发明设计出一种重新挖矿的机制。这种机制允许每条内容有自己的关键词描述向量,并将相似的或称向量距离相近的内容重新组织成新的区块加入区块链。新的区块与旧的区块相比,其中内容的关联度更高,关键词描述向量对区块的描述也更贴切,路侧节点在新的一轮初始化中对新区块获取的可能性大大提高,未来的资源利用率也会提高。
[0013] 5.轻量级区块链架构。轻量级区块链网络架构包括位于底层的车辆层、位于中间层的路侧节点层和位于顶层的云服务层。位于底层的车辆层作为轻量级区块链中的轻量级节点色,负责向中间层请求区块链中的数据、对区块链中的数据进行校验,保存区块链头。车辆由于存储资源和计算资源都有限,所以轻量级节点的角色被分配给车辆。车辆请求时系统按照如下顺序执行:
[0014] 1)当车辆需要交通数据时,利用无线网络技术如5G,发送给该路段的最近也是唯一的路侧节点。车辆同时也会将自身的身份数据发送给路侧节点
[0015] 2)该路侧节点对车辆身份进行验证后,查询区块缓存列表,检测需要的区块在何处,可能就在本地,也可能需要向相邻路侧节点索取,缓存列表包含每个路侧节点缓存的区块列表,便于路侧节点快速查询。
[0016] 3)路侧节点得到需要的区块后,组装数据包给车辆,该数据包的内容包含:区块内的数据、区块验证信息、路侧节点身份信息。区块验证相关数据同比特币区块链中的SPV协议定义的验证数据十分相似。
[0017] 4)车辆拿到数据后进行身份验证和数据验证,完成一次请求。路侧节点挖矿时系统按照以下顺序执行:
[0018] 1)路侧节点按照比特币区块链协议将车联网信息组织成区块,并发送给云服务器[0019] 2)云服务器判断是否与其他节点创建的区块有冲突:若存在冲突,则通知该路侧节点重新创建区块;若无冲突,则通知所有节点区块创建成功的消息。
[0020] 3)路侧节点根据成功与否决定是否重新创建区块。
[0021] 1、轻量级区块链网络架构建立,所述轻量级区块链网络架构包括位于底层的车辆层、位于中间层的路侧节点层和位于顶层的云服务层;位于底层的车辆层:车辆作为轻量级区块链中的轻量级节点角色,负责向中间层请求数据区块链中的数据、对数据区块链中的数据进行校验。位于中间层的路侧节点层:路侧节点协同保存数据区块链和验证区块链,提供对底层车辆的请求数据服务。位于顶层的云服务层:保存数据区块链和验证区块链的完整副本,对中间层提供区块链的查询服务;
[0022] 2、中间层路侧节点的数据协同缓存架构建立,其中底层的车辆层提供车辆相关数据,中间的路侧节点层负责对数据进行协同存储,顶层的云服务器层负责协同存储的初始化。
[0023] 2.1关键词向量描述算法:
[0024] 利用关键词来描述车联网数据,其具体过程如下:
[0025] 利用分词工具或者人工的方法为某段车联网数据统计词汇列表;
[0026] 统计每个关键词在该车联网数据内的频率,称之为内频率TF;
[0027] 统计每个关键词在所有车联网数据内的频率的倒数,称之为外频率IDF;
[0028] 每个关键词对车联网数据的描述能TFIDF=TF×IDF;
[0029] 用term0,term1,term2…term n来表示关键词,用TFIDF0,TFIDF1,TFIDF2…TFIDF n来表示对应的描述能力值,则该车联网数据的关键词向量描述为一个n×2矩阵,表示为:
[0030]
[0031] 利用关键词来描述路侧节点数据,其具体过程如下:
[0032] 利用分词工具或者人工的方法为某路侧节点收集到的数据统计词汇列表,其中路侧节点收集到的数据包括车辆请求的数据;
[0033] 统计每个关键词在该路侧节点数据内的频率,称之为内频率TF;
[0034] 统计每个关键词在所有路侧节点数据内的频率的倒数,称之为外频率IDF;
[0035] 每个关键词对路侧节点数据的描述能力TFIDF=TF×IDF;
[0036] 用term0,term1,term2…term n来表示关键词,用TFIDF0,TFIDF1,TFIDF2…TFIDF n来表示对应的描述能力值,则该车联网数据的关键词向量描述为一个n×2矩阵,表示为:
[0037]
[0038] 利用关键词来描述区块数据,其具体过程为:区块的内容是车联网交易,每笔车联网交易都有一个关键词向量描述,那么区块的关键词向量描述就是所有交易的关键词向量的集合。
[0039] 2.2关键词向量描述距离:利用向量间的距离公式即可计算出两个关键词向量距离,含义为两条车联网数据的相似程度,或者两个路侧节点之间的相似程度,或者路侧节点和车联网数据的相似程度,或者路侧节点和区块的相似度,其公式表示如下:
[0040]
[0041] 路侧节点和区块的距离等于路侧节点收集的数据和区块中每一笔车联网交易的距离的总和;
[0042] 2.3得分公式:
[0043]
[0044] 其中,T:最近被访问时间与系统初始时间差值;△t:被设置为系统产生区块的平均时间,用于修正T值,防止T值过小,A、B、C:权重因子,可动态调节,权重越大,相应项的重要性越高;D:利用关键词向量公式计算出的距离,含义是某段车联网数据和路侧节点的相关性;Fn:访问次数;F:总访问次数;scorek-1:最近一次得分;scorek:本次得分;
[0045] 2.4替换公式:当路侧节点的缓存位置已满时,需要利用上述得分公式寻找合适的位置替换不合适的数据,并用新的数据替代。
[0046] 2.5协同缓存的具体过程如下:
[0047] (1)路侧节点在日常工作中记录车辆请求的数据和从云服务器收到的数据;
[0048] (2)每隔一段时间,所有路侧节点都会向云服务器汇报收集到的数据;
[0049] (3)云服务器将收集到的数据整理并运行遗传算法,其中遗传算法的具体过程如下:
[0050] 个体:比特矩阵,每一行的每一位代表某个路侧节点是否缓存某个区块,0代表不缓存,1代表缓存;
[0051] 训练输入数据为:某个区块在某个路侧节点被访问;
[0052] 适应度:每个个体对于一条训练输入数据的延迟规则:如本地缓存了该区块,则延迟为0;若没有缓存该区块,则需向延迟最小的其余路侧节点请求;每个个体对于所有训练输入数据的总延迟的倒数为该个体的适应度。
[0053] 变异规则:每个个体的随机位置改变(0->1或者1->0)。
[0054] 重组规则:每个个体交换对应位置的序列。
[0055] 算法输出:最佳适应度的个体,含义为所有路侧节点的初始缓存区块列表。
[0056] (4)云服务器将最终结果发布给所有路侧节点,路侧节点更改本地缓存情况,若被分配到了新的区块,则需向云服务器请求。
[0057] (5)云服务器发布的列表只是路侧节点在一段时间内的初始化列表,而路侧节点在其余时间需要根据本身的运行情况,动态改变自身的缓存,过程为:路侧节点在收到云服务器发布的新区块后,根据得分公式,动态判断是否需要替换已在缓存中的。
[0058] 3、区块利用率优化:区块利用率优化的方式为对多条互相之间关联度高且在得分公式中得分高的交易重新组成新的区块,其具体过程如下:
[0059] (1)路侧节点可以为每一条交易标注分数,打分机制基于打分公式;路侧节点也可以为每一条交易创建关键词向量描述,两条交易之间的向量距离为两条交易间的关联度;
[0060] (2)路侧节点在空余的时候执行挖矿功能:对于新的从未被写区块的交易,路侧节点仅计算交易之间的关联度,将关联度高的交易写入区块;对于曾经被写入过的交易,路侧节点计算交易之间的关联度和每条交易的打分,将得分高且关联度高的交易重新写入新的区块。所述挖矿功能的具体过程为:
[0061] 1)当路侧节点存储在内存中的车联网数据达到一定规模后,路侧节点启动挖矿功能。路侧节点将内存中的车联网数据信息组织成车联网交易,并按照比特币区块的交易组织规则,组织成列表的形式,同时利用SHA256算法创建对应的Merkel树和树根;当交易信息组织好后,按照比特币区块的区块头组织规则,利用merkel树根、时间戳、难度目标、随机数、前一个区块的哈希值、版本号,创建对应的区块头;最后将区块头和交易信息拼接成完整的区块;
[0062] 2)路侧节点将创建好的区块发送给云服务器,云服务器判断该区块是否和其他节点创建的区块冲突,冲突标准是二者是否共享同一个父区块;
[0063] 3)如果区块尚未冲突,那么服务器发送成功通知给所有区块,即通知创建区块成功的节点可以继续创建新的区块,通知其他节点停止创建可能会产生冲突的区块并将最近区块作为父区块延伸区块链;如果区块已经冲突,那么通知创建区块的节点冲突消息,并告知其最新的区块,不必通知其他节点。
[0064] 4、车辆实时数据请求,其过程如下:
[0065] (1)车辆发送请求信息到最近的路侧节点,其请求信息包括:车辆请求的车联网数据描述D1、车辆的身份信息A1、A1所在的数据区块的哈希值B1;
[0066] (2)利用协同缓存的方式查询需要的内容具体展开为:每个路侧节点都用其他路侧节点缓存的索引列表,当路侧节点在本地无法查询到所需内容时,借助索引列表可以很快的查询到最近拥有所需数据的路侧节点,进而通过向该邻居路侧节点查询得到需要的内容。路侧节点收到车辆请求,首先验证车辆身份,其过程如下:
[0067] 验证B1所在区块确实存在于数据区块链中;
[0068] 验证A1确实存在于B1所在的区块中,其过程利用B1所在区块的merkel路径,即A1确实是merkel路径的叶子节点
[0069] 路侧节点通过协同缓存的方式查询到与D1描述相符的数据D2后,组织回复信息,其内容包括:车联网数据D2、D2所在数据区块的哈希值B2、D2所在数据区块的merkel路径M1、B2所在验证区块的哈希值B3、B2所在验证区块的merkel路径M2;路侧节点身份信息A2、A2所在数据区块的哈希值B4、A2所在数据区块的merkel路径M3、B4所在验证区块的哈希值B5、B4所在验证区块的merkel路径M4。
[0070] (3)车辆收到回复数据后,首先验证路侧节点的身份,其过程如下:验证B5确实存在于验证区块链中,其过程依赖于车辆本身存储的验证区块链的区块头;验证B4确实存在于B5所在区块中,其过程依赖于M4,即B4和B5确实分别是M4的叶子节点和根节点;验证A2确实存在于B4所在区块中,其过程依赖于M3,即A2和B4确实分别是M3的叶子节点和根节点;
[0071] 车辆还要验证D2的真实性,其过程如下:
[0072] 验证B3确实存在于验证区块链中,其过程依赖于车辆本身存储的验证区块链的区块头;验证B2确实存在于B3所在区块中,其过程依赖于M2,即B2和B3确实分别是M2的叶子节点和根节点;验证D2确实存在于B2所在区块中,其过程依赖于M1,即D2和B2确实分别是M1的叶子节点和根节点。
[0073] 本发明的有益效果为:该方法将轻量级区块链应用于车联网可以解决数据安全问题并提供了轻便的数据校验方式,通过多路侧节点之间的协同缓存实现路侧节点存储资源的最大化利用,同时也降低了路侧节点与车辆通信的延迟。附图说明
[0074] 图1是本发明的车联网区块结构及其区块头结构图。
[0075] 图2是本发明的数据区块链和验证区块链及验证区块链头的关系图。
[0076] 图3是本发明的车联网物理示意图、物理拓扑图、网络拓扑图及层次结构图。
[0077] 图4是本发明的路侧节点挖矿过程示意图。
[0078] 图5是本发明的车辆数据验证过程示意图。
[0079] 图6是本发明的协同缓存过程示意图。
[0080] 图7是本发明的车辆请求数据全过程示意图。

具体实施方式

[0081] 1.数据结构说明:
[0082] 1)区块:与比特币区块链中的区块十分相似,是数据组织的基本形式,其结构如附图1。
[0083] 2)区块链:区块连接而成的单向链。
[0084] 3)车联网交易:与比特币区块链中的交易十分相似,是将车联网中的数据组织成交易的形式;车辆和路侧节点的身份信息也被组织称车联网交易的形式。
[0085] 4)数据区块链:专用于存储车联网数据的区块链,即每个区块的交易内容都是车联网交易,其结构如附图2。
[0086] 5)数据区块:数据区块链上的区块。
[0087] 6)验证区块链:专门用于存储数据区块链的区块链,即每个区块的交易内容都是数据区块链的区块头,其结构如附图2。
[0088] 7)验证区块:验证区块链上的区块。
[0089] 以下结合技术方案和附图详细叙述本发明的具体实施方式。
[0090] 2.轻量级区块链网络架构建立,其中,所述轻量级区块链网络架构包括位于底层的车辆层、位于中间层的路侧节点层和位于顶层的云服务层,其结构如附图3[0091] 1)位于底层的车辆层:车辆作为轻量级区块链中的轻量级节点角色,负责向中间层请求数据区块链中的数据、对数据区块链中的数据进行校验。车辆节点作为轻量级节点,只保存验证区块链的区块链头。车辆只与路侧节点互相通信,使用无线协议如802.11、5G等。
[0092] 2)位于中间层的路侧节点层:路侧节点协同保存数据区块链和验证区块链,提供对底层车辆的请求数据服务。其中逻辑总线层也是由路侧节点组成,意义是在逻辑上路侧节点可以实现互联互通。其中路侧节点之间通过骨干网等有线网互相通信,路侧节点与车辆互相通信使用无线协议如802.11、5G等。路侧节点宏观上为网型通信,会划分成多个协同缓存区域,本专利不考虑所有的路侧节点通信情况,只利用协同区域实现协同缓存。
[0093] 3)位于顶层的云服务层:保存数据区块链和验证区块链的完整副本,对中间层提供区块链的查询服务
[0094] 2.挖矿功能,其过程示意图如附图4
[0095] 步骤1:当路侧节点存储在内存中的车联网数据达到一定规模后,路侧节点启动挖矿功能。路侧节点将内存中的车联网数据信息组织成车联网交易,并按照比特币区块的交易组织规则,组织成列表的形式,同时利用SHA256算法创建对应的Merkel树和树根,其过程的公式表示如下,示意图如附图;
[0096] If(VANET-Transaction.size≥MAX_ALLOWED_SIZE){
[0097] H(A)=SHA256(SHA256(车联网交易A))
[0098] H(AB)=SHA256(SHA256(H(A)+H(B)))
[0099] …//创建Merkel树
[0100] Merkel-Root=…
[0101] }
[0102] 当交易信息组织好后,按照比特币区块的区块头组织规则,利用merkel树根、时间戳、难度目标、随机数、前一个区块的哈希值、版本号等字段,创建对应的区块头;最后将区块头和交易信息拼接成完整的区块,其中包含:区块头、车联网交易计数器、车联网交易数组、区块大小四个字段。
[0103] 其公式表示如下(符号“||”表示为字符串连接):
[0104] Merkel树根||时间戳||难度目标||随机数||前一个区块的哈希值||版本号=区块头;
[0105] 区块头||车联网交易计数器||车联网交易数组||区块大小=完整区块[0106] 步骤2:路侧节点将创建好的区块发送给云服务器,云服务器判断该区块是否和其他节点创建的区块冲突,冲突标准是二者是否共享同一个父区块。因为在本车联网环境中,区块链不允许分叉,故由云服务器统一判断区块的冲突.
[0107] 步骤3.1:如果区块尚未冲突,那么服务器发送成功通知给所有区块,即通知创建区块成功的节点可以继续创建新的区块,通知其他节点停止创建可能会产生冲突的区块并将最近区块作为父区块延伸区块链,其伪代码表示如下:
[0108]
[0109] 步骤3.2:如果区块已经冲突,那么通知创建区块的节点冲突消息,并告知其最新的区块,不必通知其他节点。
[0110]
[0111] 3.数据验证功能,又称车联网交易验证功能,与比特币区块链中交易验证功能相似,其过程示意图如附图5
[0112] 步骤1:车辆发送请求信息到最近的路侧节点,其请求信息包括:车辆请求的车联网数据描述D1、车辆的身份信息A1、A1所在的数据区块的哈希值B1
[0113] 步骤2:路侧节点收到车辆请求,首先验证车辆身份,其过程如下:验证B1所在区块确实存在于数据区块链中;
[0114] 验证A1确实存在于B1所在的区块中,其过程利用B1所在区块的merkel路径,即A1确实是merkel路径的叶子节点。
[0115] 路侧节点通过本专利后面阐述的协同缓存的方式查询到与D1描述相符的数据D2后,组织回复信息,其内容包括:
[0116] 车联网数据D2、D2所在数据区块的哈希值B2、D2所在数据区块的merkel路径M1、B2所在验证区块的哈希值B3、B2所在验证区块的merkel路径M2;
[0117] 路侧节点身份信息A2、A2所在数据区块的哈希值B4、A2所在数据区块的merkel路径M3、B4所在验证区块的哈希值B5、B4所在验证区块的merkel路径M4。
[0118] 步骤3:车辆收到回复数据后,首先验证路侧节点的身份,其过程如下:
[0119] 验证B5确实存在于验证区块链中,其过程依赖于车辆本身存储的验证区块链的区块头;
[0120] 验证B4确实存在于B5所在区块中,其过程依赖于M4,即B4和B5确实分别是M4的叶子节点和根节点;
[0121] 验证A2确实存在于B4所在区块中,其过程依赖于M3,即A2和B4确实分别是M3的叶子节点和根节点;
[0122] 车辆还要验证D2的真实性,其过程如下:
[0123] 验证B3确实存在于验证区块链中,其过程依赖于车辆本身存储的验证区块链的区块头;
[0124] 验证B2确实存在于B3所在区块中,其过程依赖于M2,即B2和B3确实分别是M2的叶子节点和根节点;
[0125] 验证D2确实存在于B2所在区块中,其过程依赖于M1,即D2和B2确实分别是M1的叶子节点和根节点。
[0126] 4.中间层路侧节点的数据协同缓存架构建立,其中,底层的车辆层提供车辆相关数据,中间的路侧节点层负责对数据进行协同存储,顶层的云服务器层负责协同存储的初始化。
[0127] 1)关键词向量描述算法(TF-IDF模型):
[0128] 利用关键词来描述车联网数据,其具体过程如下:
[0129] 利用分词工具或者人工的方法为某段车联网数据统计词汇列表;
[0130] 统计每个关键词在该车联网数据内的频率,称之为内频率TF;
[0131] 统计每个关键词在所有车联网数据内的频率的倒数,称之为外频率IDF;
[0132] 每个关键词对车联网数据的描述能力TFIDF=TF×IDF;
[0133] 用term0,term1,term2…term n来表示关键词,用TFIDF0,TFIDF1,TFIDF2…TFIDF n来表示对应的描述能力值,则该车联网数据的关键词向量描述为一个n×2矩阵,其过程示意图如附图6;
[0134] 利用关键词来描述路侧节点数据,其具体过程如下:
[0135] 利用分词工具或者人工的方法为某路侧节点收集到的数据统计词汇列表,其中路侧节点收集到的数据包括车辆请求的数据等;
[0136] 统计每个关键词在该路侧节点数据内的频率,称之为内频率TF;
[0137] 统计每个关键词在所有路侧节点数据内的频率的倒数,称之为外频率IDF;
[0138] 每个关键词对路侧节点数据的描述能力TFIDF=TF×IDF;
[0139] 用term0,term1,term2…term n来表示关键词,用TFIDF0,TFIDF1,TFIDF2…TFIDF n来表示对应的描述能力值,则该车联网数据的关键词向量描述为一个n×2矩阵,表示为:
[0140]
[0141] 利用关键词来描述区块数据,其具体过程为:区块的内容是车联网交易,每笔车联网交易都有一个关键词向量描述,那么区块的关键词向量描述就是所有交易的关键词向量的集合。
[0142] 2)关键词向量描述距离:利用向量间的距离公式即可计算出两个关键词向量距离,含义为两条车联网数据的相似程度,或者两个路侧节点之间的相似程度,或者路侧节点和车联网数据的相似程度,或者路侧节点和区块的相似度,其公式表示如下:
[0143]
[0144] 更进一步的,路侧节点和区块的距离等于路侧节点收集的数据和区块中每一笔车联网交易的距离的总和.
[0145] 3)得分公式:
[0146]
[0147] T:最近被访问时间与系统初始时间差值;△t:被设置为系统产生区块的平均时间,用于修正T值,防止T值过小,A、B、C:权重因子,可动态调节,权重越大,相应项的重要性越高;D:利用关键词向量公式计算出的距离,含义是某段车联网数据和路侧节点的相关性[0148] Fn:访问次数
[0149] F:总访问次数
[0150] scorek-1:最近一次得分
[0151] scorek:本次得分
[0152] 公式的意义在于:某段车联网数据越近被访问、同路侧节点的距离越小、被访问的次数越多,则某段数据最终的得分越高,越可能占有一席之地;反之,得分低的数据被替换的可能性就越大。
[0153] 4)替换公式:当路侧节点的缓存位置已满时,需要利用得分公式寻找合适的位置替换不合适的数据,并用新的数据替代。
[0154] 5)协同缓存,其具体过程如下,其过程示意图如附图6:
[0155] 步骤1:路侧节点在日常工作中记录车辆请求的数据和从云服务器收到的数据[0156] 步骤2:每隔一段时间,所有路侧节点都会向云服务器汇报收集到的数据,如某个区块在某个路侧节点被访问的次数,两个路侧节点通信的是时间延迟。
[0157] 步骤3:云服务器将收集到的数据整理并运行遗传算法,其中遗传算法的具体过程如下:
[0158] 个体:比特矩阵,每一行的每一位代表某个路侧节点是否缓存某个区块,0代表不缓存,1代表缓存;
[0159] 训练输入数据为:某个区块在某个路侧节点被访问;
[0160] 适应度:每个个体对于一条训练输入数据的延迟规则:如本地缓存了该区块,则延迟为0;若没有缓存该区块,则需向延迟最小的其余路侧节点请求;每个个体对于所有训练输入数据的总延迟的倒数为该个体的适应度。
[0161] 变异规则:每个个体的随机位置改变(0->1或者1->0)。
[0162] 重组规则:每个个体交换对应位置的序列。
[0163] 算法输出:最佳适应度的个体,含义为所有路侧节点的初始缓存区块列表。
[0164] 步骤4:云服务器将最终结果发布给所有路侧节点,路侧节点更改本地缓存情况,若被分配到了新的区块,则需向云服务器请求。
[0165] 步骤5:云服务器发布的列表只是路侧节点在一段时间内的初始化列表,而路侧节点在其余时间需要根据本身的运行情况,动态改变自身的缓存,规则是上述的替换公式,期间要过程为:路侧节点在收到云服务器发布的新区块后(可能是自身挖矿得到,也可能是其它路侧节点挖矿得到),根据得分公式,动态判断是否需要替换已在缓存中的。5.区块利用率优化,其背景简述如下:区块存储多条车联网交易,但是这些交易之间的相关性可能并不大,且每条交易被使用的次数也并不相同,故路侧节点是以区块为单位进行缓存时,存在某个区块内只有少数几条交易被反复访问而导致该区块必须被缓存在路侧绩点中,而该区块的其余交易利用率极低,却仍然占用缓存空间。区块利用率优化的方式为对多条互相之间关联度高且在替换公式中得分高的交易重新组成新的区块,进而新区块的空间利用率大大提高,其具体过程如下:
[0166] 步骤1:路侧节点可以为每一条交易标注分数,打分机制基于上述替换策略中的公式;路侧节点也可以为每一条交易创建关键词向量描述,两条交易之间的向量距离为两条交易间的关联度。
[0167] 步骤2:路侧节点在空余的时候执行挖矿功能:对于新的从未被写区块的交易,路侧节点仅计算交易之间的关联度,将关联度高的交易写入区块;对于曾经被写入过的交易,路侧节点计算交易之间的关联度和每条交易的打分,将得分高且关联度高的交易重新写入新的区块。
[0168] 步骤3:新区块的得分必然显著高于旧区块,那么新区块被留下的可能性耶大大提高。
[0169] 6.车辆实时数据请求,其过程示意图如附图7:
[0170] 步骤1:同车辆数据验证功能的步骤1
[0171] 步骤2:同车辆数据验证功能的步骤2,其中利用协同缓存的方式查询需要的内容具体展开为:每个路侧节点都用其他路侧节点缓存的索引列表,当路侧节点在本地无法查询到所需内容时,借助索引列表可以很快的查询到最近拥有所需数据的路侧节点,进而通过向该邻居路侧节点查询得到需要的内容。
[0172] 步骤3:同车辆数据验证功能的步骤3。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈