一种数据交换的方法及装置与流程

文档序号:14216715阅读:327来源:国知局

本发明涉及物联网应用的技术领域,尤其是涉及一种数据交换的方法及装置。



背景技术:

物联网(iotinternetofthings)正大步迈向万物互联的新大陆,全面袭来的是如雨后春笋般诞生的各大物联网大数据平台和云计算平台;众所周知:隐藏在物联网平台背后的物联网数据是“油田”,有着巨大的价值;另知物联网数据是围绕机器设备而产生的数据,表征着机器设备的各种业务形态,如设备工况、设备维修保养和设备保险等。如若世界上平均每人拥有5到6个设备,物联网数据量之大、业务形态之多便可想而知了。

由于物联网数据的业务形态非常多,因此,在大量的物联网数据中对某种业务形态的物联网数据进行检索时,会花费大量的时间来进行检索,导致数据检索速度非常慢。

因此,针对大量的物联网数据,还未提出一种能够有效解决在进行数据的检索和数据的交换时,保证数据安全有效的技术方案。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据交换的方法及装置,以缓解了物联网中的大量数据在进行检索和交换时,检索速率较慢,以及交换速率较慢的技术问题。

第一方面,本发明实施例提供了一种数据交换的方法,应用于联盟区块链网络,所述联盟区块链网络包括物联网络和区块链节点,所述方法包括:获取数据需求方发送的数据交换请求,其中,所述数据交换请求为请求交换目标数据的请求,所述目标数据为数据提供方所提供的数据;在数据需求方验证所述目标数据有效的情况下,验证所述数据需求方是否满足数据交换条件;如果验证出满足,则控制所述数据需求方和数据提供方进行数据的交换,以使所述数据需求方从数据传输介质进行数据的获取,其中,所述数据传输介质为独立于所述联盟区块链网络的传输介质。

进一步地,控制所述数据需求方和数据提供方进行数据的交换包括:向所述数据提供方发送提醒信息,其中,所述提醒信息用于提醒所述数据提供方将所述目标数据公布在所述数据传输介质中;获取所述数据提供方基于所述提醒信息发送的响应信息,其中,所述响应信息中包括所述目标数据的获取方式和所述目标数据的加密密钥;向所述数据需求方发送所述获取方式,以使所述数据需求方根据所述获取方式从所述数据传输介质中获取所述目标数据。

进一步地,所述数据需求方根据所述获取方式从所述数据传输介质中获取所述目标数据包括:所述数据需求方根据所述获取方式从所述数据传输介质中获取目标密文数据;所述数据需求方计算所述目标密文数据的哈希值,得到目标哈希值;所述数据需求方比较所述目标哈希值与预设哈希值是否相同,其中,所述预设哈希值为所述联盟区块链网络发送的所述目标数据的密文数据的哈希值,且所述预设哈希值为所述数据提供方预先登记在区块链中的数值;如果相同,则确定所述目标密文数据为所述目标数据的密文数据,从而确定所述数据传输介质中存在所述目标数据。

进一步地,所述方法还包括:获取所述数据需求方发送的支付信息,所述支付信息为所述数据需求方通过其私钥对所要支付的费用进行签名之后解锁的支付信息;向所述数据提供方发送所述支付信息;向所述数据需求方发送所述目标数据的密文数据的密钥,以使所述数据需求方通过所述密文数据的密钥对所述目标数据的密文数据进行解密操作,从而得到所述目标数据的明文数据。

进一步地,所述方法还包括:获取所述数据提供方发送的登记信息,其中,所述登记信息为对所述目标数据的元数据进行登记的信息;在获取到所述登记信息之后,向索引中间件发送提取信息,以使所述索引中间件从所述联盟区块链网络中提取所述目标数据的元数据,并保存在物联网元数据索引库中。

进一步地,在获取数据需求方发送的数据交换请求之前,所述方法还包括:所述索引中间件获取所述数据需求方发送的查询请求,其中,所述查询请求为在所述物联网元数据索引库中查询所述目标数据的请求;所述索引中间件基于所述查询请求在所述物联网元数据索引库中查询是否存在所述目标数据。

进一步地,所述方法还包括:获取所述数据提供方发送的下线登记请求,其中,所述下线登记请求为请求对所述目标数据进行下线操作的请求;在获取到所述下线登记请求之后,将所述目标数据的有效标志位设置为预设数值;向索引中间件发送无效信息,以使所述索引中间件将所述物联网元数据索引库中所述目标数据的有效标志位设置为所述预设数值。

进一步地,所述方法还包括:获取所述数据需求方发送的对所述目标数据进行评价的评价信息;对所述评价信息进行保存,并向所述索引中间件转发所述评价信息,以使所述索引中间件将所述评价信息保存至所述物联网元数据索引库中。

进一步地,所述目标数据的元数据包括以下至少一种数据:数据集业务时间段,设备多种静态属性,数据集业务形态和数据交换条件,其中,所述数据交换条件包括以下至少之一:数据价格,数据集提供商,数据集提供时间,数据集有效标志位,数据集评价信息,数据集下线时间。

第二方面,本发明实施例还提供了一种数据交换的装置,包括联盟区块链网络,其中,所述联盟区块链网络用于:获取数据需求方发送的数据交换请求,其中,所述数据交换请求为请求交换目标数据的请求,所述目标数据为数据提供方所提供的数据;在数据需求方验证所述目标数据有效的情况下,验证所述目标数据是否满足数据交换条件;如果验证出是,则控制所述数据需求方和数据提供方进行数据的交换,以使所述数据需求方从数据传输介质进行数据的获取,其中,所述数据传输介质为独立于所述联盟区块链网络的传输介质。

在本发明实施例中,首先获取数据需求方发送的数据交换请求;然后,在数据需求方验证目标数据有效的情况下,验证数据需求方是否满足数据交换条件;如果验证出满足,则控制数据需求方和数据提供方进行数据的交换,以使数据需求方从数据传输介质进行数据的获取。在本发明实施例中,通过联盟区块链网络进行数据交换的控制过程,而实际物联网数据传输在区块链外进行的方式,能够实现物联网数据快读检索和快速交换的目的,进而缓解了物联网中的大量数据在进行检索和交换时,检索速率较慢,以及交换速率较慢的技术问题。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的一种数据交换的方法的流程图;

图2是根据本发明实施例的一种物联网数据集的元数据的登记项的登记过程的示意图;

图3是根据本发明实施例的一种数据交换的方法的交互图;

图4是根据本发明实施例的一种数据交换的系统的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

近年来区块链技术逐渐被人们所接受,比特币被公认为基于区块链技术的应用案例;人们利用其与生俱来的去中心化、去信任、防篡改和交易安全等特性,成功开展了越来越多的结合区块链技术的应用案例;也提出了很多基于区块链的数据交换方法,能较好地解决互联网数据信息的共享或交易问题。

数据共享或交易的充分性是毋庸置疑的,物联网数据也一样,只有通过安全、快速地数据交换才能实现挖掘数据油田巨大价值的宏伟蓝图;然目前各物联网平台之间彼此互通有无的机制却未曾建立,区块链技术或许能解决这一痛点问题;随着联合物联网数据提供方和需求方的区块链产业联盟的成立,理论上来讲任何物联网数据提供方和需求方都能在联盟链上进行安全的数据交换,辅以区块链产业联盟很强的运营手段,相信数据交换的信用问题能得到很好地解决。

同时受区块链结构的限制,区块链的性能问题的解决区块链应用的一大挑战,绕过区块链的性能问题,并能快速检索链上机器设备的多种业务形态数据成为了物联网数据交换迫切的需求,对于物联网数据分析应用有着重大的促进作用,也拥有巨大的应用价值。

根据本发明实施例,提供了一种数据交换的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种数据交换的方法的流程图,如图1所示,该方法包括如下步骤s102至步骤s106。

需要说明的是,上述步骤s102至步骤s106所描述的步骤运行在智能合约上,智能合约为区块链中的一个组成部分。

步骤s102,获取数据需求方发送的数据交换请求,其中,所述数据交换请求为请求交换目标数据的请求,所述目标数据为数据提供方所提供的数据;

步骤s104,在数据需求方验证所述目标数据有效的情况下,验证所述数据需求方是否满足数据交换条件;

在本发明实施例中,数据需求方在向区块链发送数据交换请求之后,将验证数据提供方提供的目标数据是否为有效数据,在验证出有效的情况下,将连同有效结果和数据交换请求一起发送至区块链的智能合约中,智能合约在获取到该数据交换请求和有效结果之后,将验证数据需求方是否满足数据交换条件。

例如,验证数据需求方是否能够支付目标数据的交易价格;又例如,验证数据需求方是否具备交换权限等信息。

步骤s106,如果验证出满足,则控制所述数据需求方和数据提供方进行数据的交换,以使所述数据需求方从数据传输介质进行数据的获取,其中,所述数据传输介质为独立于所述联盟区块链网络的传输介质。

在本发明实施例中,如果智能合约验证出数据需求方满足数据交换条件,则控制数据需求方和数据提供方进行数据的交换。

需要说明的是,在本发明实施例中,通过智能合约来进行数据交换的控制,而实际物联网数据传输在区块链外的数据传输介质中来执行。

进一步需要说明的是,在本发明实施例中,数据需求方和数据提供方是相对于当前数据交换业务而言的,在另一个数据交换业务中,数据需求方可以变换为数据提供方,数据提供方还可以变换为数据需求方。

在本发明实施例中,首先获取数据需求方发送的数据交换请求;然后,在数据需求方验证目标数据有效的情况下,验证数据需求方是否满足数据交换条件;如果验证出满足,则控制数据需求方和数据提供方进行数据的交换,以使数据需求方从数据传输介质进行数据的获取。在本发明实施例中,通过联盟区块链网络进行数据交换的控制过程,而实际物联网数据传输在区块链外进行的方式,能够实现物联网数据快读检索和快速交换的目的,进而缓解了物联网中的大量数据在进行检索和交换时,检索速率较慢,以及交换速率较慢的技术问题。

下面将结合具体实施方式对本发明实施例进行详细的介绍。

在数据提供方和数据需求方进行数据交换之前,数据提供方(以下简称为提供方)和数据需求方(以下简称为需求方)分别加入区块链联盟,遵守联盟相关约定,特别是不伪造、假冒、侵权等诚信约定。

任一新加盟方可将自己的机器资源作为区块链的一个节点加入联盟区块链网络,并确保其物联网中心数据库能联接上区块链某节点,一方面新加盟方不需要将自己的数据放到该链上,另一方面也便于新加盟方向联盟区块链网络上传所提供的物联网元数据等信息。

在分别加入到区块链联盟之后,提供方需要在联盟区块链网络需进行数据登记,登记的过程可以描述如下:

首先,获取所述数据提供方发送的登记信息,其中,所述登记信息为对所述目标数据的元数据进行登记的信息;

然后,在获取到所述登记信息之后,向索引中间件发送提取信息,以使所述索引中间件从所述联盟区块链网络中提取所述目标数据的元数据,并保存在物联网元数据索引库中。

在本发明实施例中,提供方首先向联盟区块链网络发送登记信息。联盟区块链网络中的智能合约在获取到提供方发送的登记信息之后,智能合约负责将所登记的物联网元数据(即,目标数据的元数据)补充写入区块链的区块中,同时触发一个程序,将入链的元数据发送一份到物联网数据索引库保存。此时,该触发的程序将向索引中间件发送提取信息,以使索引中间件从联盟区块链网络中提取所述目标数据的元数据,并保存在物联网元数据索引库中。其中,目标数据可以为物联网数据,目标数据的元数据即为物联网元数据。

需要说明的是,在本发明实施例中,除了对目标数据的元数据进行登记之外,提供方还需要将目标数据进行加密,加密得到密文数据,并计算该密文数据的哈希值,得到预设哈希值,并将该密文数据的哈希值(即,预设哈希值)登记在联盟区块链网络中。

在一个可选的实施方式中,目标数据的元数据包括以下至少一种数据:数据集业务时间段,设备多种静态属性,数据集业务形态和数据交换条件,其中,所述数据交换条件包括以下至少之一:数据价格,数据集提供商,数据集提供时间,数据集有效标志位,数据集评价信息,数据集下线时间。

如图2所示,物联网数据集的元数据的登记项包括:数据集业务时间段,设备多种静态属性,数据集业务形态和数据交换条件。

具体地,数据集业务时间段:指数据集中某个用于表征业务时间字段的起始时间值和结束时间值。

设备多种静态属性:设备为所提供物联网数据集中涉及的相关物联设备,静态属性则表示所涉及的物联设备所具有的固有特征,没有特殊情况该固有特征不会改变。例如:设备的生产厂商信息、设备种类(如工程机械中的挖掘机)、设备台数、设备出厂时间,设备编码等,并根据需要设置必填项和自定义信息项。

数据集业务形态:物联网数据分类目前还没有统一的标准,因此具体的物联网数据集业务形态分类依情况而定,例如分为:设备主数据、设备工况数据、设备维修保养数据,及其他业务数据。

数据交换条件:一般情况下数据交换是以价格为承载的,只是定价方式有别,如成本定价法、拍卖定价法等,若为免费共享,则数据集的价格为0,因此本项信息的登记主要是登记数据集交换的价格。

智能合约在暂存上述提供方手动录入的元数据信息的同时,自动补齐数据提供商、数据集提供时间,初次登记数据的数据有效性标志默认为有效,及登记时的数据评价信息为空,并将这八项信息写入区块链新区块中存储。也就是说,如图2所示,在将元数据登记在区块链中之后,将在区块链中公开以下信息:数据集业务时间段,设备多种静态属性,数据集业务形态,数据价格,数据集提供商,数据集提供时间,数据集有效标志位,数据集评价信息和数据集下线时间。

智能合约将上面的元数据写入区块链的同时触发的程序即索引中间件,该索引中间件负责将智能合约传递过来的元数据写入预先创建好的链外索引库表中,元数据入索引库表后,物联网元数据id会自动生成,便于排序和检索。如图2所示,在将元数据登记在索引库中之后,将登记以下信息:元数据id,数据集业务时间段,设备多种静态属性,数据集业务形态,数据价格,数据集提供商,数据集提供时间,数据集有效标志位,数据集评价信息和数据集下线时间。

在本发明实施中,在对元数据进行登记之后,就可以开始提供方和需求方之间的数据交换业务。

在一个可选的实施方式中,在获取数据需求方发送的数据交换请求之前,该方法还包括如下步骤:

步骤s11,所述索引中间件获取所述数据需求方发送的查询请求,其中,所述查询请求为在所述物联网元数据索引库中查询所述目标数据的请求;

步骤s12,所述索引中间件基于所述查询请求在所述物联网元数据索引库中查询是否存在所述目标数据。

在本发明实施例中,需求方在向联盟区块链网络中的智能合约发送数据交换请求之前,可以先在物联网元数据索引库中查询是否存在目标数据。此时,需求方可以向索引中间件发送查询请求,索引中间件在获取到该查询请求之后,将基于该查询请求在物联网元数据索引库中进行查询。如果查询到该目标数据,则向需求方发送存在目标数据的查询结果;如果未查询到该目标数据,则向需求方发送不存在目标数据的查询结果。

通过上述描述可知,如果需求方想到知晓联盟区块链网络上设备数据业态状况,并确定自己所需的目标数据,就可通过物联网元数据索引库进行快速检索,查询该数据是否存在,如果存在,还可以查询到该数据的提供方。

物联网元数据索引库在进行数据查询时,是基于物联网元数据索引库中的物联网元数据进行查询检索。物联网元数据索引库中保存的物联网元数据索引信息是全部在联盟区块链网络历史登记的元数据信息,目的是避开区块链不支持快速检索的问题。物联网元数据索引库可以是由第三方或者联盟区块链网络的运营方运维的索引中间件创建和维护的数据库表。如果物联网元数据索引库丢失,那么可以从区块链里将相应的物理网元数据重录在物联网元数据索引库中。另外该索引中间件还提供快速检索功能,便于需求方在物联网元数据索引库中快速检索到自己需要的数据集。

需求方在物联网元数据索引库中检索到目标数据之后,就可以向联盟区块链网络中的智能合约发送数据交换请求;在数据需求方验证目标数据有效的情况下,验证数据需求方是否满足数据交换条件,肉果验证出满足,则控制需求方和提供方进行数据的交换。

在一个可选的实施方式中,控制所述数据需求方和数据提供方进行数据的交换包括如下步骤:

步骤s1061,向所述数据提供方转发所述提醒信息,其中,所述提醒信息用于提醒所述数据提供方将所述目标数据公布在所述数据传输介质中;

步骤s1062,获取所述数据提供方基于所述提醒信息发送的响应信息,其中,所述响应信息中包括所述目标数据的获取方式和所述目标数据的加密密钥;

步骤s1063,向所述数据需求方发送所述获取方式,以使所述数据需求方根据所述获取方式从所述数据传输介质中获取所述目标数据。

在本发明实施例中,数据提供方在将数据登记在联盟区块链网络之后,智能合约将提供方所登记的数据广播给联盟区块链网络中的各个节点,进而需求方在提出申请交换数据集时,联盟区块链网络的各个节点都能验证需求方所需的数据是否存在,同时智能合约也能验证需求方是否满足数据交换条件时(例如,当前余额是否满足数据交换条件),在判断出满足数据交换条件时才进行后续过程。

在控制提供方和需求方进行数据交换时,智能合约向提供方发送公布数据的提醒信息,提供方收到该提醒信息后,公布目标数据的密文数据和托管加密密钥。提供方可以利用第三方数据传输介质实现目标数据的密文数据的传输,其中,第三方数据传输介质可以为网盘、云、ftp服务器等。同时提供方将目标数据的加密密钥和目标数据的密文数据的获取方式托管给智能合约,即获取到提供方基于提醒信息发送的响应信息。

此时,智能合约将向需求方发送响应信息中的获取方式,以使需求方主动地通过该获取方式获取到提供方所公布的目标数据的密文数据。

在一个可选的实施方式中,数据需求方根据所述获取方式从所述数据传输介质中获取所述目标数据包括如下步骤:

步骤s10631,所述数据需求方根据所述获取方式从所述数据传输介质中获取目标密文数据;

步骤s10632,所述数据需求方计算所述目标密文数据的哈希值,得到目标哈希值;

步骤s10633,所述数据需求方比较所述目标哈希值与预设哈希值是否相同,其中,所述预设哈希值为所述联盟区块链网络发送的所述目标数据的密文数据的哈希值,且所述预设哈希值为所述数据提供方预先登记在区块链中的数值;

步骤s10634,如果相同,则确定所述目标密文数据为所述目标数据的密文数据,从而确定所述数据传输介质中存在所述目标数据。

在本发明实施例中,需求方首先根据智能合约发送的获取方式从数据传输介质中获取目标数据的密文数据(即,目标密文数据)。然后,需求方计算目标密文数据的哈希值,得到目标哈希值。接下来,需求方将目标哈希值与预设哈希值进行比较,以比较目标哈希值与预设哈希值是否相同,如果相同,则确定目标密文数据为目标数据的密文信息。通过上述描述可知,预设哈希值为提供方预先登记在区块链中的数值。

如果数据需求方验证出目标密文数据是目标数据的密文数据,则可判断所获取到的目标密文数据是正确的;此时,需求方利用自己的私钥对支付费用进行签名,将支付费用托管给智能合约,来实现费用的支付。

在一个可选的实施方式中,该方法还包括如下步骤:

步骤s21,获取所述数据需求方发送的支付信息,所述支付信息为所述数据需求方通过其私钥对所要支付的费用进行签名之后解锁的支付信息;

步骤s22,向所述数据提供方发送所述支付信息;

步骤s23,向所述数据需求方发送所述目标数据的密文数据的密钥,以使所述数据需求方通过所述密文数据的密钥对所述目标数据的密文数据进行解密操作,从而得到所述目标数据的明文数据。

在本发明实施例中,需求方通过其私钥对所要支付的费用进行签名之后解锁相关的支付信息。智能合约收到需求方提供的支付信息之后,则可判断需求方已收取了目标密文数据,且需求方已验证了该目标数据为其所需要的数据。此时,智能合约就可以将目标数据的加密密钥转交给需求方,以及将需求方的私钥签名费用发送到提供方的公钥地址下,从而完成数据的交换业务。

在一个可选的实施方式中,在数据交换业务完成之后,该方法还包括:

步骤s31,获取所述数据需求方发送的对所述目标数据进行评价的评价信息;

步骤s32,对所述评价信息进行保存,并向所述索引中间件转发所述评价信息,以使所述索引中间件将所述评价信息保存至所述物联网元数据索引库中。

在本发明实施例中,需求方收到智能合约转发的目标数据的加密密钥后,对之前收到的目标密文数据进行解密,得到目标数据的明文数据,一次物联网数据交换基本完成。此时,需求方可以对交换得到的目标数据进行评价,并将评价信息提交给智能合约,最后由智能合约将评价信息写入区块链保存,并向索引中间件转发该评价信息,以使索引中间件将该评价信息保存至物联网元数据索引库中。

在一个可选的实施方式中,该方法还包括如下步骤:

步骤s41,获取所述数据提供方发送的下线登记请求,其中,所述下线登记请求为请求对所述目标数据进行下线操作的请求;

步骤s42,在获取到所述下线登记请求之后,将所述目标数据的有效标志位设置为预设数值;

步骤s43,向索引中间件发送无效信息,以使所述索引中间件将所述物联网元数据索引库中所述目标数据的有效标志位设置为所述预设数值。

需要说明的是,一个数据集经历一次或多次上述过程的交换后,因多种原因该物联网数据就失效了,这时需要提供方进行数据下线登记。此时,提供方将向智能合约发送下线登记请求。智能合约收到下线登记请求后,将目标数据的有效标志设为无效(即,设置为预设数值,例如,设置为0),并将预设数值写入区块链中进行保存。同时向索引中间件发送无效信息,以触发索引中间件,以使索引中间件将物联网元数据索引库中的数据有效标志设为无效(即,预设数值)。

本发明针对物联网数据的特点,结合区块链技术,提出一种数据交换的方法,该方法允许在区块链内进行物联网元数据登记和管理;并利用索引中间件,创建和维护联盟链上物联网元数据索引库;以及开发特定的智能合约进行数据交换控制,而实际物联网数据传输在区块链外进行的方法,以期实现物联网数据快速检索和交换的目的。

图2是根据本发明实施例的一种数据交换的方法的交互图,如图2所示,该方法包括如下:

步骤s201,数据提供方a向区块链申请加入区块链节点;

步骤s202,数据需求方b向区块链申请加入区块链节点;

步骤s203,数据提供方a的数据中心库准备加入到区块链中;

步骤s204,数据提供方a向区块链发送登记信息,其中,登记信息为对数据d的元数据进行登记的信息和数据d的密文数据的哈希值;

步骤s205,智能合约广播并记录元数据;

步骤s206,智能合约向索引中间件发送提取信息,以使索引中间件联盟区块链网络中提取目标数据的元数据;

步骤s207,数据需求方b通过索引中间件检索查询设备某业务数据,即数据d;

步骤s208,索引中间件向数据需求方b提供数据d的数据提供方和数据d的价格;

步骤s209,数据需求方b向智能合约发送数据交换请求;

步骤s210,智能合约在数据d有效的情况下,验证数据需求方b的余额是否能够支付数据d的交换费用;

步骤s211,智能合约向数据提供方a发送提醒信息,以提醒数据提供方a对数据d进行公布;

步骤s212,智能合约向数据需求方b发送数据d的预设哈希值,以使数据需求方b进行验证;

步骤s213,数据提供方a对数据d进行公布;

步骤s214,数据提供方a向智能合约托管数据d的加密密钥和数据d的获取方法;

步骤s215,智能合约将数据d的获取方法发送给数据需求方b;

步骤s216,数据需求方b获取数据d的密文数据,并对数据d的哈希值进行验证;

步骤s217,数据需求方b在验证通过的情况下,向智能合约支付私钥签名费用;

步骤s218,智能合约将数据需求方b的私钥签名费用发送到数据提供方a的公钥地址;

步骤s219,智能合约向数据需求方b发送数据d的加密密钥;

步骤s220,数据需求方b通过加密密钥对数据d进行解密;

步骤s221,数据需求方b向智能合约反馈数据d的评价信息;

步骤s222,智能合约将数据需求方b对数据d的评价信息保存在区块链中;

步骤s223,智能合约将数据d的评价信息保存至物联网元数据索引库中;

步骤s224,数据提供方a进行数据d的下线登记;

步骤s225,智能合约将数据d的有效标志位设置为预设数值,即无效;

步骤s226,智能合约将数据d的无效标识保存至物联网元数据索引库中。

下面结合某一具体实施例对本发明做进一步描述,但本发明的实施方式并不仅限于此。

基于区块链的物联网数据快速检索与交换方法主要包含三大块如下:

图4展示了某物联网数据提供方和需求方通过本发明实施例所提供的方法进行数据交换的网络数据流动方向,假设已有一个基于p2p网络的物联网数据交换的联盟区块链l组成联盟区块链网络。有一家挖掘机设备生产厂商拥有其挖掘机的工况数据想通过本联盟链进行安全的数据交换来获得收益,加入了l链,下文称该挖掘机生产厂商为数据提供方a,称a所提供的物联网数据集为数据d。另有一家保险公司需要a生产的挖掘机的工况数据进行分析建模应用,也加入了l链,下文将该保险公司称为数据需求方b,a和b两家公司的中心数据库都能联通l链上的某个节点;数据d为a生产的100台挖掘机设备2008年至2017年的工况数据,共10万条,初步设想交换的价格为10,000元,其数据表结构如表1所示。

表1

a在2017年1月1日上午10点左右在链l上对数据d进行了登记,首先登记数据d的相关元数据,随后索引中间件j从l链上获取到刚登记的数据d的元数据的相关信息,并保存于事先已创建好的l链链外的物联网元数据索引库mdb中。

数据d被登记后,a还需对本数据集通过一种加密算法进行加密,加密密钥为ka=sha256(d,r),r为随机数,对密文数据应用约定好的哈希函数(如sha256算法)计算出哈希值为hd(即,预设哈希值),并把存放在数据传输介质上的密文数据的获取方法和加密密钥一起托管给l。

b事先不知道联盟链上是否有所需要的数据,故而先去到l链外mdb进行检索,快速地查询到挖掘机生产商a生产的挖掘机设备的工况数据在链上a有提供,于是去链上提出需求a的挖掘机工况数据集,并依序按照链上的约定执行下去,包括支付相应费用。

a与b之间交换数据d是在l链外完成的,而交换过程的控制则是由l负责,核心重要信息走链内,其他的信息则走链外。

l链控制a与b间的数据交换过程的过程描述如下:

b通过l的智能合约提出购买数据d的数据交换需求,l上的智能合约收到数据交换请求后,l会利用分布式账本来验证d的有效性,及b的费用余额是否大于a标注的数据价格。

当两项验证都通过后,智能合约提醒a公布数据d;后将数据d的哈希值hd发送给b,b收到hd暂且先保存下来。

a收到公布数据的提醒信息之后,开始着手数据d公布事宜,对数据d应用aes加密算法加密后得到的密文数据上传至网盘(数据传输介质),并对该网盘路径设置密码。

将网盘文件存储地址与文件加密密钥即数据d的获取方法同加密密钥ka一起托管给智能合约,同时还产生一对公私钥(pka,ska),pka,用于收取费用。

智能暂时保管密钥ka,只将数据d的获取方法转发给b,提醒b按照获取方法主动去获取所需的数据。

b利用数据d的获取方法,获取到数据d的密文数据,并用约定好的哈希函数计算密文数据集的哈希值hds,与hd对比,如果hds=hd,则可确认获取到的数据就是a提供的密文数据。

b需要支付费用后方可获取到解密密钥,不然即使获取到密文数据也没用,因此本步b的费用保存在一对公私钥(pka,ska)对应的账户中,b用自己的私钥对需要支付的费用进行签名,解锁费用托管给智能合约。

智能合约先将b的私钥签名的费用发送到a的公钥地址,然后将密钥ka转发给b。

b在支付费用后得到了解密密钥ka,并对密文数据进行解密,得到数据d,保存到自己的中心数据库中,结合其他已有的物联网业务数据进行分析应用,便可知道数据d的质量和应用后产生的价值。

上述数据交换过程都是直接或者间接地由智能合约管控,每一步的执行如果是由智能合约本身执行的,则在收到前一步的消息后立即执行,否则智能合约会设定一个约定好的执行时间周期,判断执行时间是否超过周期时间,否则交换中止。

b对数据d给出了评价—“数据质量好,应用价值高”,并将此评价信息反馈给智能合约,供后面的需求方参考。

智能合约得到b对d的评价反馈后,先将评价信息写入区块链中保存,再将评价信息发送给索引中间件j,由j将评价信息写入索引库mdb中。

截至上一步一次挖掘机的工况数据交换便完成了,然经过这次交换后,a因某种原因想更新数据dnew再进行交换,则需先将数据d下线,再对新数据dnew经过登记后方可入链再次交换,数据d的下线过程如下:

在2017年1月20日14时左右a提供数据d的下线登记信息,智能合约立即受理这一过程。智能合约将数据d有效标志设为0(0表示无效,1表示有效),写入区块链中。智能合约将数据d的无效信息发送给索引中间件j,j随即将索引库mdb中数据d的有效标志字段设置为0,进而同步了区块链的物联网元数据信息,下次新的检索者便会得知数据d已下线。

联盟区块链网络上的物联网数据不断地交换过程中物联网元数据索引表数据形成的过程如图2所示,基本的物联网索引数据来源于数据提供方的信息登记,并由智能合约自动补齐相关已知数据,这些元数据一方面存储于区块链的区块中,另一方面也同步保存到索引库中,本发明索引库表mdb中新存储了如表2所示的数据内容,具体的数据存储方式可以是传统关系型数据库的多表存储,也可以是非关系型数据库,如列式存储数据库mongodb等,且索引数据也不局限于表2中明确指出的信息。

表2

实施例二:

本发明实施例还提供了一种数据交换的装置,该数据交换的装置主要用于执行本发明实施例上述内容所提供的数据交换的方法,以下对本发明实施例提供的数据交换的装置做具体介绍。

该数据交换的装置主要包括联盟区块链网络,其中,所述联盟区块链网络用于:

获取数据需求方发送的数据交换请求,其中,所述数据交换请求为请求交换目标数据的请求,所述目标数据为数据提供方所提供的数据;

在数据需求方验证所述目标数据有效的情况下,验证所述目标数据是否满足数据交换条件;

如果验证出是,则控制所述数据需求方和数据提供方进行数据的交换,以使所述数据需求方从数据传输介质进行数据的获取,其中,所述数据传输介质为独立于所述联盟区块链网络的传输介质。

在本发明实施例中,首先获取数据需求方发送的数据交换请求;然后,在数据需求方验证目标数据有效的情况下,验证数据需求方是否满足数据交换条件;如果验证出满足,则控制数据需求方和数据提供方进行数据的交换,以使数据需求方从数据传输介质进行数据的获取。在本发明实施例中,通过联盟区块链网络进行数据交换的控制过程,而实际物联网数据传输在区块链外进行的方式,能够实现物联网数据快读检索和快速交换的目的,进而缓解了物联网中的大量数据在进行检索和交换时,检索速率较慢,以及交换速率较慢的技术问题。

本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1