发明内容
本发明实施例提供一种车辆数据处理方法,通过将车辆维保数据的数据索引登记在区块链中,可以防止所述车辆维保数据被篡改。
第一方面,本发明实施例提供了一种车辆数据处理方法,所述方法包括:
获取车辆维保数据,并根据所述车辆维保数据,生成数据索引;
按照预设的共识机制,将所述数据索引登记在区块链中并全网广播;
接收数据请求方提交的数据查询请求;
判断所述数据查询请求是否合法;
若合法,则将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
可选地,所述根据所述车辆维保数据,生成数据索引,包括:
使用单向散列函数对所述车辆维保数据进行运算得到散列值;
提取所述车辆维保数据中的特征数据,所述特征数据包括车辆识别码、数据提供设备的设备标识、数据提供设备的设备所有人ID、车辆维保报告ID和车辆维保时间中的任意一个或多个;
根据所述散列值和所述特征数据,生成数据索引。
可选地,在所述根据所述车辆维保数据,生成数据索引之后,所述方法还包括:
生成智能合约,所述智能合约中包括履行所述智能合约所需的交易条件;
将所述智能合约登记在所述区块链中。
可选地,所述将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方,包括:
检测是否满足所述智能合约的交易条件;
若是,则将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
可选地,所述判断所述数据查询请求是否合法,包括:
获取所述数据查询请求中包括的目标特征数据;
若所述区块链中存在与所述目标特征数据匹配的数据索引,则确定所述数据查询请求合法。
第二方面,本发明实施例提供了一种服务器,所述服务器包括:
生成模块,用于获取车辆维保数据,并根据所述车辆维保数据,生成数据索引;
登记模块,用于按照预设的共识机制,将所述数据索引登记在区块链中并全网广播;
接收模块,用于接收数据请求方提交的数据查询请求;
判断模块,用于判断所述数据查询请求是否合法;
发送模块,用于当所述数据查询请求合法时,将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
可选地,所述生成模块包括:
运算单元,用于使用单向散列函数对所述车辆维保数据进行运算得到散列值;
提取单元,用于提取所述车辆维保数据中的特征数据,所述特征数据包括车辆识别码、数据提供设备的设备标识、数据提供设备的设备所有人ID、车辆维保报告ID和车辆维保时间中的任意一个或多个;
生成单元,用于根据所述散列值和所述特征数据,生成数据索引。
可选地,所述生成模块,还用于生成智能合约,所述智能合约中包括履行所述智能合约所需的交易条件;
所述登记模块,还用于将所述智能合约登记在所述区块链中。
可选地,所述发送模块包括:
检测单元,用于检测是否满足所述智能合约的交易条件;
发送单元,用于当所述检测单元的检测结果为是时,将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
可选地,所述判断模块包括:
获取单元,用于获取所述数据查询请求中包括的目标特征数据;
确定单元,用于当所述区块链中存在与所述目标特征数据匹配的数据索引时,确定所述数据查询请求合法。
第三方面,本发明实施例提供了另一种服务器,所述服务器包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储支持服务器执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中的方法。
本发明实施例的技术方案可具体应用于区块链系统中的目标节点,通过将车辆维保数据的数据索引按照共识机制登记在区块链中,并将所述数据索引发布给所述区块链系统中除所述目标节点以外的其他节点,以使所述区块链系统中的全部节点上都保存有最新的按照共识机制登记的数据索引,可以防止所述车辆维保数据被篡改。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例所述的车辆维保数据指的是车辆的维修保养数据,具体包括由车辆厂商的售后服务维修部门4S店或各类车辆修理厂等维修企业对客户车辆进行维修或保养的数据记录,该记录包含车辆基本信息以及本次车辆维修或保养的记录。其中,所述车辆基本信息包括车牌号、车辆识别码(Vehicle Identification Number,VIN)、当前仪表里程、车型/年款等等,所述本次车辆维修(或保养)的记录包括维修(或保养)项目、维修(或保养)所使用的材料、维修(或保养)人员、维修(或保养)费用等等。
目前,上述车辆维保数据保存在维修企业的电脑本地或后台数据库中,即维修企业对车辆维保数据进行中心化存储。并且,用户在查询或更改保存的车辆维保数据时无需做加密验证,使得车辆维保数据容易丢失或被篡改。
本发明实施例构建一个基于区块链的分布式服务器架构保存维修企业的维保信息,具体地,将车辆维保数据进行哈希加密后得到的哈希值与该车辆维保数据的特征值一起作为数据索引按照共识机制写入分布式服务器上的区块链(或称为车辆数据区块链、超级车链)中,该车辆维保数据的详细内容则保存在企业本地。当外部需要使用该车辆维保数据时,首先在区块链上查阅“数据索引”,确认是需要的数据并满足智能合约的条件后方可查阅或调用该车辆维保数据的详细内容。下面结合图1至图5对本发明实施例提供的车辆数据处理方法和服务器分别进行详细说明。
请参见图1,是本发明实施例提供的一种车辆数据处理方法的流程示意图。具体地,所述方法包括的各个步骤可以由区块链系统中的目标节点执行。如图1所示的车辆数据处理方法可以包括:
S101、获取车辆维保数据,并根据所述车辆维保数据,生成数据索引。
需要说明的是,所述区块链系统可以包括多个分布式节点。其中,每个分布式节点可以具体是分布式服务器。
具体地,各个维修企业可以申请加入区块链系统(或称为车辆数据区块链系统、超级车链系统),也就是将提供车辆维保数据的数据提供设备注册成为所述区块链系统中的分布式节点。注册成功后,所述区块链系统中的分布式节点具备存储区块链、提交数据查询请求、查询车辆维保数据的功能。
在一个具体的实施例中,所述区块链可以为联盟类型的区块链。
可以理解的是,所述区块链系统中的每个分布式节点都可以写入(登记)数据到区块链中。当所述区块链系统中的某一分布式节点需要写入数据到区块链中时,该分布式节点作为目标节点执行如图1所示的车辆数据处理方法。
具体地,所述目标节点获取所述车辆维保数据的方式可以是由维修企业中负责管理车辆维保数据的人员将车辆维修数据录入到数据提供设备(即所述目标节点)中。
进一步地,当所述目标节点获取到车辆维保数据时,所述目标节点可以根据所述车辆维保数据,生成数据索引。在一个具体的实施例中,所述目标节点根据所述车辆维保数据,生成数据索引可以具体包括:使用单向散列函数对所述车辆维保数据进行运算得到散列值;提取所述车辆维保数据中的特征值特征数据;根据所述散列值和所述特征数据,生成数据索引。其中,所述特征数据(或称为特征值)可以包括车辆VIN码、数据提供设备的设备序列号、数据提供设备的设备所有人ID、车辆维保报告ID、车辆维保时间中的任意一个或多个。
在一个具体的实施例中,所述目标节点可以将所述散列值和所述特征数据进行合并处理,生成数据索引。
需要说明的是,如果车辆维保数据改变(即使这个改变非常微小),使用所述单向散列函数对改变后的车辆维保数据进行运算得到的散列值与对改变前的车辆维保数据进行运算得到的散列值都将完全不同。也就是说,车辆维保数据的散列值可以检验该车辆维保数据的完整性或该车辆维保数据是否被篡改。
S102、按照预设的共识机制,将所述数据索引登记在区块链中并全网广播。
在一个具体的实施例中,所述按照预设的共识机制,将所述数据索引登记在区块链中可以具体包括:通过预设的共识算法,将所述数据索引登记在区块链中。其中,所述预设的共识算法可以是拜占庭共识算法。具体地,所述拜占庭共识算法例如可以是实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法。
在本发明的实施例中,所述目标节点除了将所述数据索引登记在所述区块链中之外,还可以全网广播所述数据索引,即将所述数据索引公开发布给所述区块链系统中除所述目标节点以外的其他节点。从而,所述区块链系统中的全部节点都保存有最新的按照预设的共识机制(或通过预设的共识算法)登记在所述区块链中的数据索引,以使数据请求方(如需购买二手车辆的用户等)可以快速查询到车辆维保数据。
需要说明的是,区块链系统中的各个节点所属的维修企业将详细的车辆维保数据保存在企业本地。其中,各个维修企业登记在区块链中的数据索引与企业本地的车辆维保数据具有一一对应的关系且不可篡改。
S103、接收数据请求方提交的数据查询请求。
其中,所述数据查询请求中包括目标特征数据,所述目标特征数据指的是所述数据请求方需要查询的车辆维保数据的全部或部分特征数据。可以理解的是,所述目标特征数据可以包括但不限于车牌号、车辆VIN码、数据提供设备的设备标识、数据提供设备的设备所有人ID、车型/年款、车辆维保报告ID、车辆维保时间、车辆维保项目等等。
S104、判断所述数据查询请求是否合法。
在一个具体的实施例中,所述目标节点判断所述数据查询请求是否合法可以具体包括:获取所述数据查询请求中包括的目标特征数据;若所述区块链中存在与所述目标特征数据匹配的数据索引,则确定所述数据查询请求合法。其中,针对除时间段以外的目标特征数据,与所述目标特征数据匹配的数据索引指的是包括所述目标特征数据的数据索引。当所述目标特征数据为时间段时,与所述目标特征数据匹配的数据索引指的是车辆维保时间在所述时间段内的数据索引。
需要说明的是,当确定所述数据查询请求合法时,所述目标节点执行步骤S105;当确定所述数据查询请求不合法时,所述目标节点停止执行如图1所述的车辆数据处理方法。
S105、将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
其中,所述数据查询请求对应的车辆维保数据为与所述目标特征数据匹配的数据索引对应的车辆维保数据。需要说明的是,从前述数据索引的生成过程可知,数据索引与车辆维保数据具有一一对应的关系。
在一个具体的实施例中,一旦确定所述数据查询请求合法,所述目标节点就将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。可以理解的是,在这种情形下所述数据请求方不需要付出任何代价就可以获得所需的车辆维保数据,也就是说数据提供方免费提供车辆维保数据给数据请求方。
需要说明的是,所述数据提供方指的是提供所述数据查询请求对应的车辆维保数据的数据提供设备所属的维修企业,所述数据请求方可以是任何想要查询车辆维保数据的用户(如个人用户、企业用户等)。
在另一个具体的实施例中,当确定所述数据查询请求合法时,所述目标节点还需要检测是否满足智能合约的交易条件。只有当检测到满足智能合约的交易条件时,所述目标节点才将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。也就是说,所述目标节点将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方可以具体包括:检测是否满足智能合约的交易条件;若是,则将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。可以理解的是,在这种情形下所述目标节点在根据所述车辆维保数据,生成数据索引之后,还生成智能合约,并将所述智能合约登记在所述区块链中。其中,所述智能合约中包括履行所述智能合约所需的交易条件。具体地,所述智能合约的交易条件可以为所述数据请求方向所述数据提供方支付不少于规定数额的真实货币(如人民币)或虚拟货币(如游戏币、积分)。所述数据请求方需要向所述数据提供方支付的真实货币或虚拟货币的规定数额由所述数据提供方决定,并由所述目标节点以智能合约的形式登记在所述区块链中。
在本发明实施例中,区块链系统中的各个节点所属的维修企业将车辆维保数据的数据索引登记在区块链中并全网广播,而所述车辆维保数据的详细内容保存在企业本地。其中,所述数据索引包括使用单向散列函数对所述车辆维保数据进行运算后生成的散列值。根据单向散列函数的特性和区块链系统的特性,可以防止所述车辆维保数据被篡改。
请参见图2,是本发明实施例提供的另一种车辆数据处理方法的流程示意图。具体地,所述方法包括的各个步骤可以由区块链系统中的目标节点执行。如图2所示的车辆数据处理方法可以包括:
S201、获取车辆维保数据。
需要说明的是时,各个维修企业可以申请加入区块链系统,即将提供车辆维保数据的数据提供设备注册成为所述区块链系统中的分布式节点。其中,所述数据提供设备例如可以是服务器。注册成功后,维修企业中负责管理车辆维保数据的人员可以将车辆维修数据录入到数据提供设备中,则所述数据提供设备作为目标节点执行如图2所示的车辆数据处理方法。
S202、使用单向散列函数对所述车辆维保数据进行运算得到散列值。
在一个具体的实施例中,所述单向散列函数为哈希函数。从而,所述目标节点可以使用哈希函数对所述车辆维保数据进行哈希运算,得到哈希值。
其中,哈希运算(或称为哈希加密)可以将任意长度的车辆维保数据映射为较短的固定长度的二进制值,这个固定长度的二进制值称为哈希值。需要说明的是,如果车辆维保数据改变(即使这个改变非常微小),对改变后的车辆维保数据进行哈希运算得到的哈希值与对改变前的车辆维保数据进行哈希运算得到的哈希值都将完全不同。也就是说,车辆维保数据的哈希值可以检验该车辆维保数据的完整性或该车辆维保数据是否被篡改。
S203、提取所述车辆维保数据中的特征数据。
需要说明的是,所述特征数据可以包括车辆基本信息、数据提供设备的基本信息和车辆维保数据的基本信息,但不包括车辆维保数据的详细内容。
其中,所述车辆基本信息可以包括车牌号、车辆VIN码、当前仪表里程、车型/年款等等,所述数据提供设备的基本信息可以包括数据提供设备的设备标识、数据提供设备的设备所有人ID等等,所述车辆维保数据的基本信息包括车辆维保报告ID、维修(或保养)项目、维修(或保养)所使用的材料、维修(或保养)人员、维修(或保养)费用、维修(或保养)时间等等。
其中,数据提供设备的设备标识例如可以是数据提供设备的设备序列号。
S204、根据所述散列值和所述特征数据,生成数据索引。
在一个具体的实施例中,所述目标节点可以将所述散列值和所述特征数据进行合并处理,生成数据索引。其中,所述散列值例如可以是哈希值。
S205、按照预设的共识机制,将所述数据索引登记在区块链中并全网广播。
在一个具体的实施例中,所述按照预设的共识机制,将所述数据索引登记在区块链中可以具体包括:通过预设的共识算法,将所述数据索引登记在区块链中。其中,所述预设的共识机制可以是拜占庭共识算法。具体地,所述拜占庭共识算法例如可以是PBFT算法。
在一个具体的实施例中,所述目标节点可以将所述数据索引通过区块的形式登记在区块链中。具体地,所述目标节点还可以获取区块链中最后一个区块的区块头的散列值。进一步地,所述目标节点可以生成区块,并将所述区块登记在所述区块链中。其中,所述区块的区块主体包括所述数据索引,所述区块的区块头包括所述最后一个区块的区块头的散列值。也就是说,在所述区块链中,每个区块的区块头中都包括其父区块头的散列值,通过这种方式,每个区块才首尾相连组成了区块链。
在本发明的实施例中,所述目标节点除了将所述数据索引登记在所述区块链中之外,还全网广播所述数据索引,即将所述数据索引公开发布给所述区块链系统中除所述目标节点以外的其他节点,使得区块链系统中的全部节点都保存有最新的通过共识算法登记的数据索引。
需要说明的是,区块链系统中的各个节点所属的维修企业将详细的车辆维保数据保存在企业本地。其中,各个维修企业登记在区块链中的数据索引与企业本地的车辆维保数据具有一一对应的关系且不可篡改。
S206、生成智能合约,并将所述智能合约登记在所述区块链中。
其中,所述智能合约中包括履行所述智能合约所需的交易条件。在一个具体的实施例中,履行所述智能合约所需的交易条件可以为数据请求方向数据提供方支付不少于规定数额的真实货币或虚拟货币。其中,所述规定数额指的是所述数据请求方获取与所述数据查询请求对应的车辆维保数据所需支付的真实货币或虚拟货币的数额。
需要说明的是,所述数据请求方需要向所述数据提供方支付的真实货币或虚拟货币的规定数额(如获取n份车辆维保数据需要支付的真实货币或虚拟货币,其中,n为正整数)由所述数据提供方决定。
还需要说明的是,所述数据提供方指的是提供所述数据查询请求对应的车辆维保数据的数据提供设备所属的维修企业,所述数据请求方可以是任何想要查询车辆维保数据的用户(如个人用户、企业用户等)。
S207、接收数据请求方提交的数据查询请求。
其中,所述数据查询请求中包括目标特征数据,所述目标特征数据指的是所述数据请求方需要查询的车辆维保数据的全部或部分特征数据。可以理解的是,所述目标特征数据可以包括但不限于车牌号、车辆VIN码、数据提供设备的设备序列号、数据提供设备的设备所有人ID、车型/年款、车辆维保报告ID、车辆维保时间、车辆维保项目等等。
举例来说,当所述数据请求方想要查询具有某个车辆VIN码的车辆的全部车辆维保数据时,所述数据查询请求中可以包括所述车辆VIN码,即所述目标特征数据为所述车辆VIN码。再举例来说,当所述数据请求方想要查询具有某个车辆VIN码的车辆在某个时间段内的车辆维保数据时,所述数据查询请求中可以包括所述车辆VIN码和所述时间段,即所述目标特征数据为所述车辆VIN码和所述时间段。
S208、判断所述数据查询请求是否合法。
需要说明的是,所述区块链系统中的每个节点都保存有完整的区块链。
在一个具体的实施例中,当查询到所述区块链中存在与所述目标特征数据匹配的数据索引时,所述目标节点可确定所述数据查询请求合法。其中,针对除时间段以外的目标特征数据,与所述目标特征数据匹配的数据索引指的是包括所述目标特征数据的数据索引。当所述目标特征数据为时间段时,与所述目标特征数据匹配的数据索引指的是车辆维保时间在所述时间段内的数据索引。
举例来说,当所述数据查询请求中包括的目标特征数据仅为车辆VIN码(即所述数据请求方需要查询具有所述车辆VIN码的车辆的全部车辆维保数据)时,若所述目标节点查询到所述区块链中存在至少一个包括所述车辆VIN码的数据索引,则所述目标节点可以确定所述数据查询请求合法。
再举例来说,当所述数据查询请求中包括的目标特征数据包括车辆VIN码和时间段时,若所述目标节点查询到所述区块链中存在至少一个包括所述车辆VIN码且车辆维保时间在所述时间段内的数据索引,则所述目标节点可以确定所述数据查询请求合法。
可选地,当确定所述数据查询请求不合法时,所述目标节点可以输出用于通知所述数据请求方其数据查询请求不合法的提示消息。
需要说明的是,当确定所述数据查询请求合法时,所述目标节点执行步骤S209;当确定所述数据查询请求不合法时,所述目标节点停止执行如图2所述的车辆数据处理方法。
S209、检测是否满足所述智能合约的交易条件。
在一个具体的实施例中,所述数据请求方可以通过在提交所述数据查询请求之前在账户中预先存储不少于规定数额的真实货币或虚拟货币的方式履行所述智能合约的交易条件。在这种情形下,在所述目标节点确定所述数据查询请求合法之后,可以直接从所述账户中扣除所述规定数额的真实货币或虚拟货币给所述数据提供方。
在另一个具体的实施例中,所述数据请求方可以在所述目标节点确定所述数据查询请求合法之后,通过临时支付不少于规定数额的真实货币或虚拟货币给数据提供方的方式履行所述智能合约的交易条件。
可选地,当检测到不满足所述智能合约的交易条件时,所述目标节点可以输出用于通知所述数据请求方履行智能合约的提示消息。
S210、若满足,则将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
其中,所述数据查询请求对应的车辆维保数据为与所述目标特征数据匹配的数据索引对应的车辆维保数据。从而,所述目标节点可以从与所述目标特征数据匹配的数据索引中的设备标识所标识的数据提供设备中获取所述数据查询请求对应的车辆维保数据。
需要说明的是,与所述目标特征数据匹配的数据索引中的设备标识所标识的数据提供设备中可以保存有一份或多份车辆维保数据。具体地,所述目标节点可以将与所述目标特征数据匹配的数据索引中的特征数据与所述数据提供设备中保存的车辆维保数据进行匹配,并将匹配成功的车辆维保数据作为与所述数据查询请求对应的车辆维保数据。
可选地,所述数据请求方可以查阅和/或下载所述与所述数据查询请求对应的车辆维保数据。
在本发明实施例中,区块链系统中的各个节点所属的维修企业将车辆维保数据的数据索引登记在区块链中并全网广播,而所述车辆维保数据的详细内容保存在企业本地。其中,所述数据索引包括使用单向散列函数对所述车辆维保数据进行运算后生成的散列值。根据单向散列函数的特性,如果所述车辆维保数据被篡改,则其散列值一定会改变。此外,根据区块链系统的特性,可以防止所述数据索引被篡改。从而,当数据请求方查询所述车辆维保数据时,通过使用单向散列函数对接收到的车辆维保数据进行运算生成的散列值与所述数据索引中的散列值进行对比,就能判断出所述车辆维保数据是否被篡改。综上,本发明实施例可以防止所述车辆维保数据被篡改。
本发明实施例还提供一种服务器,该服务器包括用于执行本申请图1所示的方法的模块。具体地,请参见图3,是本发明实施例提供的一种服务器的结构示意图。如图3所示的服务器可以包括:生成模块101、登记模块102,、接收模块103、判断模块104和发送模块105。其中,
所述生成模块101,用于获取车辆维保数据,并根据所述车辆维保数据,生成数据索引。
所述登记模块102,用于按照预设的共识机制,将所述数据索引登记在区块链中并全网广播。
所述接收模块103,用于接收数据请求方提交的数据查询请求。
所述判断模块104,用于判断所述数据查询请求是否合法。
所述发送模块105,用于当所述数据查询请求合法时,将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
需要说明的是,本发明实施例提供的服务器的具体工作流程请参考本发明实施例提供的方法流程部分,在此不再赘述。
在本发明实施例中,区块链系统中的各个节点所属的维修企业将车辆维保数据的数据索引登记在区块链中并全网广播,而所述车辆维保数据的详细内容保存在企业本地。其中,所述数据索引包括使用单向散列函数对所述车辆维保数据进行运算后生成的散列值。根据单向散列函数的特性和区块链系统的特性,可以防止所述车辆维保数据被篡改。
本发明实施例还提供另一种服务器,该服务器包括用于执行本申请图2所示的方法的模块。具体地,请参见图4,是本发明实施例提供的一种服务器的结构示意图。如图4所示的服务器可以包括:生成模块201、登记模块202、接收模块203、判断模块204和发送模块205。其中,
所述生成模块201,用于获取车辆维保数据,并根据所述车辆维保数据,生成数据索引。
具体地,所述生成模块201可以包括运算单元2011、提取单元2012和生成单元2013。其中,
所述运算单元2011,用于使用单向散列函数对所述车辆维保数据进行运算得到散列值;
所述提取单元2012,用于提取所述车辆维保数据中的特征数据,所述特征数据包括车辆识别码、数据提供设备的设备标识、数据提供设备的设备所有人ID、车辆维保报告ID和车辆维保时间中的任意一个或多个;
所述生成单元2013,用于根据所述散列值和所述特征数据,生成数据索引。
所述登记模块202,用于按照预设的共识机制,将所述数据索引登记在区块链中并全网广播。
可选地,所述生成模块201,还用于生成智能合约,所述智能合约中包括履行所述智能合约所需的交易条件;
所述登记模块202,还用于将所述智能合约登记在所述区块链中。
所述接收模块203,用于接收数据请求方提交的数据查询请求。
所述判断模块204,用于判断所述数据查询请求是否合法。
具体地,所述判断模块204可以包括获取单元2041和确定单元2042。其中,
所述获取单元2041,用于获取所述数据查询请求中包括的目标特征数据;
所述确定单元2042,用于当所述区块链中存在与所述目标特征数据匹配的数据索引时,确定所述数据查询请求合法。
所述发送模块205,用于当所述数据查询请求合法时,将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
具体地,所述发送模块205可以包括检测单元2051和发送单元2052。其中,
所述检测单元2051,用于检测是否满足所述智能合约的交易条件;
所述发送单元2052,用于当所述检测单元2051的检测结果为是时,将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
需要说明的是,本发明实施例提供的服务器的具体工作流程请参考本发明实施例提供的方法流程部分,在此不再赘述。
在本发明实施例中,区块链系统中的各个节点所属的维修企业将车辆维保数据的数据索引登记在区块链中并全网广播,而所述车辆维保数据的详细内容保存在企业本地。其中,所述数据索引包括使用单向散列函数对所述车辆维保数据进行运算后生成的散列值。根据单向散列函数的特性,如果所述车辆维保数据被篡改,则其散列值一定会改变。此外,根据区块链系统的特性,可以防止所述数据索引被篡改。从而,当数据请求方查询所述车辆维保数据时,通过使用单向散列函数对接收到的车辆维保数据进行运算生成的散列值与所述数据索引中的散列值进行对比,就能判断出所述车辆维保数据是否被篡改。综上,本发明实施例可以防止所述车辆维保数据被篡改。
参见图5,是本发明实施例提供的又一种服务器的示意性框图。如图5所示的本实施例中的服务器可以包括:一个或多个处理器301和存储器302。所述处理器301和存储器302通过所述总线303连接。所述存储器302用于存储计算机程序,所述计算机程序包括程序指令。
具体地,所述处理器301被配置用于调用所述程序指令执行:
获取车辆维保数据,并根据所述车辆维保数据,生成数据索引;
按照预设的共识机制,将所述数据索引登记在区块链中并全网广播;
接收数据请求方提交的数据查询请求;
判断所述数据查询请求是否合法;
若合法,则将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
可选地,所述处理器301被配置用于调用所述程序指令执行所述根据所述车辆维保数据,生成数据索引时具体执行:
使用单向散列函数对所述车辆维保数据进行运算得到散列值;
提取所述车辆维保数据中的特征数据,所述特征数据包括车辆识别码、数据提供设备的设备标识、数据提供设备的设备所有人ID、车辆维保报告ID和车辆维保时间中的任意一个或多个;
根据所述散列值和所述特征数据,生成数据索引。
可选地,所述处理器301被配置用于调用所述程序指令执行所述根据所述车辆维保数据,生成数据索引之后还执行:
生成智能合约,所述智能合约中包括履行所述智能合约所需的交易条件;
将所述智能合约登记在所述区块链中。
可选地,所述处理器301被配置用于调用所述程序指令执行所述将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方时具体执行:
检测是否满足所述智能合约的交易条件;
若是,则将与所述数据查询请求对应的车辆维保数据发送至所述数据请求方。
可选地,所述处理器301被配置用于调用所述程序指令执行所述判断所述数据查询请求是否合法时具体执行:
获取所述数据查询请求中包括的目标特征数据;
若所述区块链中存在与所述目标特征数据匹配的数据索引,则确定所述数据查询请求合法。
应当理解,在本发明实施例中,所述处理器301可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器302可以包括只读存储器(Read-Only Memory,ROM)和随机存取存储器(Random Access Memory,RAM),并向所述处理器301提供计算机程序和数据。所述存储器302的一部分还可以包括非易失性随机存取存储器。例如,所述存储器302还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器301可以执行本申请图1或图2所示的车辆数据处理方法的实现方式,在此不再赘述。
在本发明实施例中,所述处理器301调用存储在所述存储器302中的程序指令,将车辆维保数据的数据索引登记在区块链中并全网广播,而所述车辆维保数据的详细内容保存在企业本地。其中,所述数据索引包括使用单向散列函数对所述车辆维保数据进行运算后生成的散列值。根据单向散列函数的特性和区块链系统的特性,可以防止所述车辆维保数据被篡改。
在本发明的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器被配置用于调用所述程序指令,执行本申请图1或图2所示的车辆数据处理方法。
所述计算机可读存储介质可以是前述任一实施例所述的服务器的内部存储单元,例如服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。