基于区块链的数据获取方法和系统转让专利

申请号 : CN201811129654.9

文献号 : CN109376172B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邱文一李迪

申请人 : 精硕科技(北京)股份有限公司

摘要 :

本申请提供一种基于区块链的数据获取方法和系统,其中该方法包括:终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息;终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识;终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;终端根据每一个解密后的数据信息,确定最终的数据信息。由于将数据信息分片加密后放在不同的节点上,由于分片数据的不完整性,进而可以保证数据的绝对安全性,数据信息不会被售卖和泄露。

权利要求 :

1.一种基于区块链的数据获取方法,其特征在于,包括:终端向区块链中的至少一个节点发送数据获取请求,所述数据获取请求中包括用户标识和数据属性标识,以使所述至少一个节点中的每一个节点确定与所述用户标识和所述数据属性标识对应的数据信息,所述数据信息为数据管理平台DMP系统中的数据;

所述终端接收所述至少一个节点中的每一个节点,发送的数据信息,其中,所述数据信息中包括所述数据属性标识;

所述终端对至少一个所述数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;

所述终端根据每一个解密后的数据信息,确定最终的数据信息;

其中,所述方法,还包括:至少一个数据提供设备中的每一个数据提供设备将数据信息,分散的存储到所述至少一个节点中的每一个节点中;

至少一个数据提供设备中的每一个数据提供设备将数据信息,分散的存储到所述至少一个节点中的每一个节点中,包括:至少一个数据提供设备中的每一个数据提供设备根据分布式哈希表DHT路由协议,依次确定所述至少一个节点中的每一个节点的散列值;

至少一个数据提供设备中的每一个数据提供设备根据当前节点的散列值确定没有新的节点被生成时,确定将数据信息存储到当前节点中。

2.根据权利要求1所述的方法,其特征在于,所述终端根据每一个解密后的数据信息,确定最终的数据信息,包括:所述终端确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息个数;

所述终端确定个数最多的数据信息,为最终的数据信息。

3.根据权利要求1所述的方法,其特征在于,所述数据信息中还包括节点标识,所述终端根据每一个解密后的数据信息,确定最终的数据信息,包括:所述终端根据预设的节点标识与权值之间的对应关系,确定与每一个所述节点标识对应的权值;

所述终端确定与每一个所述节点标识对应的权值,为每一个所述节点标识对应的数据信息的权值;

所述终端确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息的权值总和;

所述终端确定权值总和最大的数据信息,为最终的数据信息。

4.根据权利要求1所述的方法,其特征在于,在所述终端根据每一个解密后的数据信息,确定最终的数据信息之后,还包括:所述终端生成与最终的数据信息对应的节点标识的利益信息;

所述终端将所述利益信息,发送给与最终的数据信息对应的节点标识所对应的节点,以使该节点将利益信息发送给与最终的数据信息对应的数据提供设备。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法,还包括:至少一个节点中的每一个节点获取节点的续约超时时间;

至少一个节点中的每一个节点在确定节点的续约超时时间,在连续N次上都大于预设时间,则确定节点为下线状态。

6.一种基于区块链的数据获取系统,其特征在于,包括:终端和区块链中的至少一个节点;

其中,所述终端包括:

第一发送模块,用于向区块链中的至少一个节点发送数据获取请求,所述数据获取请求中包括用户标识和数据属性标识,以使所述至少一个节点中的每一个节点确定与所述用户标识和所述数据属性标识对应的数据信息,所述数据信息为数据管理平台DMP系统中的数据;

接收模块,用于接收所述至少一个节点中的每一个节点,发送的数据信息,其中,所述数据信息中包括所述数据属性标识;

解密模块,用于对至少一个所述数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;

确定模块,用于根据每一个解密后的数据信息,确定最终的数据信息;

其中,所述系统,还包括:至少一个数据提供设备;至少一个数据提供设备中的每一个数据提供设备,用于将数据信息,分散的存储到所述至少一个节点中的每一个节点中;

至少一个数据提供设备中的每一个数据提供设备,具体用于:根据分布式哈希表DHT路由协议,依次确定所述至少一个节点中的每一个节点的散列值;

根据当前节点的散列值确定没有新的节点被生成时,确定将数据信息存储到当前节点中。

7.根据权利要求6所述的系统,其特征在于,所述确定模块,具体用于:确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息个数;

确定个数最多的数据信息,为最终的数据信息。

8.根据权利要求6所述的系统,其特征在于,所述确定模块,具体用于:根据预设的节点标识与权值之间的对应关系,确定与每一个所述节点标识对应的权值;

确定与每一个所述节点标识对应的权值,为每一个所述节点标识对应的数据信息的权值;

确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息的权值总和;

确定权值总和最大的数据信息,为最终的数据信息。

9.根据权利要求6所述的系统,其特征在于,所述终端,还包括:生成模块,用于在所述确定模块根据每一个解密后的数据信息,确定最终的数据信息之后,生成与最终的数据信息对应的节点标识的利益信息;

第二发送模块,用于将所述利益信息,发送给与最终的数据信息对应的节点标识所对应的节点,以使该节点将利益信息发送给与最终的数据信息对应的数据提供设备。

10.根据权利要求6-9任一项所述的系统,其特征在于,至少一个节点中的每一个节点,具体用于:获取节点的续约超时时间;

在确定节点的续约超时时间,在连续N次上都大于预设时间,则确定节点为下线状态。

说明书 :

基于区块链的数据获取方法和系统

技术领域

[0001] 本申请涉及数据处理技术,尤其涉及一种基于区块链的数据获取方法和系统。

背景技术

[0002] 数据管理平台(Data Management Platform,简称DMP)系统被广泛用于数据处理领域中,例如被用于在广告投放、电商营销等行业中。数据提供商具有自己的DMP系统,可以从各个数据提供商的DMP系统中获取到数据。
[0003] 现有技术中,由于数据提供商之间的竞争关系,为了获取更多的DMP系统中的数据,可以购买多家DMP系统的数据,进而获取到更多的DMP系统中的数据。
[0004] 然而现有技术中,由于数据可复制,进而会造成各DMP系统的数据被复制、售卖的情况,进而对数据提供商造成商业损失;并且容易造成数据泄露的问题,进而导致数据中的用户隐私被泄露。

发明内容

[0005] 本申请提供一种基于区块链的数据获取方法和系统,用以解决各DMP系统的数据被复制、售卖的情况,并且容易造成数据泄露的问题的问题。
[0006] 第一方面,本申请提供一种基于区块链的数据获取方法,包括:
[0007] 终端向区块链中的至少一个节点发送数据获取请求,所述数据获取请求中包括用户标识和数据属性标识,以使所述至少一个节点中的每一个节点确定与所述用户标识和所述数据属性标识对应的数据信息;
[0008] 所述终端接收所述至少一个节点中的每一个节点,发送的数据信息,其中,所述数据信息中包括所述数据属性标识;
[0009] 所述终端对至少一个所述数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;
[0010] 所述终端根据每一个解密后的数据信息,确定最终的数据信息。
[0011] 进一步地,所述终端根据每一个解密后的数据信息,确定最终的数据信息,包括:
[0012] 所述终端确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息个数;
[0013] 所述终端确定个数最多的数据信息,为最终的数据信息。
[0014] 进一步地,所述数据信息中还包括节点标识,所述终端根据每一个解密后的数据信息,确定最终的数据信息,包括:
[0015] 所述终端根据预设的节点标识与权值之间的对应关系,确定与每一个所述节点标识对应的权值;
[0016] 所述终端确定与每一个所述节点标识对应的权值,为每一个所述节点标识对应的数据信息的权值;
[0017] 所述终端确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息的权值总和;
[0018] 所述终端确定权值总和最大的数据信息,为最终的数据信息。
[0019] 进一步地,在所述终端根据每一个解密后的数据信息,确定最终的数据信息之后,还包括:
[0020] 所述终端生成与最终的数据信息对应的节点标识的利益信息;
[0021] 所述终端将所述利益信息,发送给与最终的数据信息对应的节点标识所对应的节点,以使该节点将利益信息发送给与最终的数据信息对应的数据提供设备。
[0022] 进一步地,所述方法,还包括:
[0023] 至少一个数据提供设备中的每一个数据提供设备将数据信息,分散的存储到所述至少一个节点中的每一个节点中。
[0024] 进一步地,至少一个数据提供设备中的每一个数据提供设备将数据信息,分散的存储到所述至少一个节点中的每一个节点中,包括:
[0025] 至少一个数据提供设备中的每一个数据提供设备根据分布式哈希表DHT路由协议,依次确定所述至少一个节点中的每一个节点的散列值;
[0026] 至少一个数据提供设备中的每一个数据提供设备根据当前节点的散列值确定没有新的节点被生成时,确定将数据信息存储到当前节点中。
[0027] 进一步地,所述方法,还包括:
[0028] 至少一个节点中的每一个节点获取节点的续约超时时间;
[0029] 至少一个节点中的每一个节点在确定节点的续约超时时间,在连续N次上都大于预设时间,则确定节点为下线状态。
[0030] 第一方面,本申请提供一种基于区块链的数据获取系统,包括:终端和区块链中的至少一个节点;
[0031] 其中,所述终端包括:
[0032] 第一发送模块,用于向区块链中的至少一个节点发送数据获取请求,所述数据获取请求中包括用户标识和数据属性标识,以使所述至少一个节点中的每一个节点确定与所述用户标识和所述数据属性标识对应的数据信息;
[0033] 接收模块,用于接收所述至少一个节点中的每一个节点,发送的数据信息,其中,所述数据信息中包括所述数据属性标识;
[0034] 解密模块,用于对至少一个所述数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;
[0035] 确定模块,用于根据每一个解密后的数据信息,确定最终的数据信息。
[0036] 进一步地,所述确定模块,具体用于:
[0037] 确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息个数;
[0038] 确定个数最多的数据信息,为最终的数据信息。
[0039] 进一步地,所述确定模块,具体用于:
[0040] 根据预设的节点标识与权值之间的对应关系,确定与每一个所述节点标识对应的权值;
[0041] 确定与每一个所述节点标识对应的权值,为每一个所述节点标识对应的数据信息的权值;
[0042] 确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息的权值总和;
[0043] 确定权值总和最大的数据信息,为最终的数据信息。
[0044] 进一步地,所述终端,还包括:
[0045] 生成模块,用于在所述确定模块根据每一个解密后的数据信息,确定最终的数据信息之后,生成与最终的数据信息对应的节点标识的利益信息;
[0046] 第二发送模块,用于将所述利益信息,发送给与最终的数据信息对应的节点标识所对应的节点,以使该节点将利益信息发送给与最终的数据信息对应的数据提供设备。
[0047] 进一步地,所述系统,还包括:至少一个数据提供设备;
[0048] 至少一个数据提供设备中的每一个数据提供设备,用于将数据信息,分散的存储到所述至少一个节点中的每一个节点中。
[0049] 进一步地,至少一个数据提供设备中的每一个数据提供设备,具体用于:
[0050] 根据分布式哈希表DHT路由协议,依次确定所述至少一个节点中的每一个节点的散列值;
[0051] 根据当前节点的散列值确定没有新的节点被生成时,确定将数据信息存储到当前节点中。
[0052] 进一步地,至少一个节点中的每一个节点,具体用于:
[0053] 获取节点的续约超时时间;
[0054] 在确定节点的续约超时时间,在连续N次上都大于预设时间,则确定节点为下线状态。
[0055] 本申请提供的基于区块链的数据获取方法和系统,通过终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息;终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识;终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;终端根据每一个解密后的数据信息,确定最终的数据信息。由于将数据信息分片加密后放在不同的节点上,由于分片数据的不完整性,进而可以保证数据的绝对安全性,数据信息不会被售卖和泄露;通过区块链的各节点存储数据信息,可以使得数据供应商可以在不泄露数据的前提下共建DMP,有效的连接了数据孤岛,同时提高了数据利用的效率;并且,终端可以只发出一次获取请求,就可以从各节点中获取数据信息,减少了数据查询次序和时间,有效的降低了数据查询的延迟;通过区块链技术,可以使得接口服务和数据分离,不同的数据采用同一个对接标准,降低对接成本。

附图说明

[0056] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0057] 图1为本申请实施例提供的一种基于区块链的数据获取方法的流程示意图;
[0058] 图2为本申请实施例提供的一种基于区块链的数据获取方法中的数据信息的存储结构的示意图;
[0059] 图3为本申请实施例提供的另一种基于区块链的数据获取方法的流程示意图;
[0060] 图4为本申请实施例提供的一种基于区块链的数据获取系统的结构示意图;
[0061] 图5为本申请实施例提供的另一种基于区块链的数据获取系统的结构示意图;
[0062] 图6为本申请实施例提供的一种终端的结构示意图;
[0063] 图7为本申请实施例提供的一种数据提供设备的结构示意图;
[0064] 图8为本申请实施例提供的一种节点的结构示意图。
[0065] 通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

[0066] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0067] 首先对本申请涉及的名词进行解释:
[0068] 数据管理平台(Data Management Platform,简称DMP):数据管理平台,其定义较为宽泛,本专利指的是提供某些主键检索服务的数据仓库。
[0069] 区块链:一种通过加密技术实现的不可篡改的数据账本(数据库)技术。
[0070] 分布式哈希表(Distributed Hash Table,简称DHT):用于存储数据的去中心化NoSQL数据库网络,网络中的节点可以通过固定的路由算法检索数据。
[0071] 表模式:数据库组织数据的元信息。
[0072] 本申请具体的应用场景为:数据管理平台(Data Management Platform,简称DMP)系统被广泛用于数据处理领域中,例如被用于在广告投放、电商营销等行业中。数据提供商具有自己的DMP系统,可以从各个数据提供商的DMP系统中获取到数据。终端可以通过定义好的主键,在DMP系统中检索主键对应的字段,然后通过规则或者算法返回结果;例如,建立一套NoSQL数据库,按照自定义的表模式,返回对应的检索结果。
[0073] 现有技术中,由于数据提供商之间的竞争关系,为了获取更多的DMP系统中的数据,可以购买多家DMP系统的数据,进而获取到更多的DMP系统中的数据。这种多方采集数据的方式,需要与多个DMP系统进行对接,进而需要采用各个接口与多个DMP系统进行对接。
[0074] 然而现有技术中,由于数据可复制,进而会造成各DMP系统的数据被复制、售卖的情况,进而对数据提供商造成商业损失;并且容易造成数据泄露的问题,进而导致数据中的用户隐私被泄露;并且,多次查询的延迟和数据冗余的成本,导致使用数据效率极低。并且,用于各DMP系统采用的协议不同,需要采用不同的接口与DMP系统对接,造成成本较高。
[0075] 举例来说,在广告投放服务中,可以获取待投放的用户终端的标识,然后根据用户终端的标识,从DMP中查询用户信息,即从对接的各DMP中分别查询出用户信息;进而根据用户信息确定是否符合广告的需求,以决定是否投放广告。然而上述方式,需要查询多个DMP,进而造成查询数据的延迟变高,很难满足广告投放的100ms要求;并且,查询多个DMP之后得到的结果可能是冗余的,这上因为不同DMP返回结果相同,进而相当于浪费了查询和处理次数;不同DMP的协议不同,进而需要频繁修改和开发对接接口,使得对接效率差。
[0076] 本申请提供的基于区块链的数据获取方法和系统,旨在解决现有技术的如上技术问题。
[0077] 下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
[0078] 图1为本申请实施例提供的一种基于区块链的数据获取方法的流程示意图。如图1所示,该方法包括:
[0079] 步骤101、终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息。
[0080] 在本实施例中,具体的,区块链中设置有多个节点,每一个节点中存储有数据信息。
[0081] 终端在需要获取数据的时候,终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识。至少一个节点中的每一个节点根据用户标识和数据属性标识,确定与用户标识和数据属性标识对应的数据信息。
[0082] 举例来说,终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识、姓名和身高,数据获取请求表征需要获取与用户标识对应的用户的姓名和身高。至少一个节点中的每一个节点确定出与用户标识对应的数据的各数据信息,然后确定出数据信息中的姓名和身高。
[0083] 步骤102、终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识。
[0084] 在本实施例中,具体的,至少一个节点中的每一个节点将各自确定的数据信息发送给终端。
[0085] 步骤103、终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息。
[0086] 在本实施例中,具体的,由于节点发送的数据信息是加密的,进而终端需要对节点发送的数据信息进行解密,得到解密后的数据信息。
[0087] 步骤104、终端根据每一个解密后的数据信息,确定最终的数据信息。
[0088] 可选的,步骤104包括以下几种实施方式:
[0089] 步骤104的第一种实施方式:终端确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息个数;终端确定个数最多的数据信息,为最终的数据信息。
[0090] 步骤104的第二种实施方式:终端根据预设的节点标识与权值之间的对应关系,确定与每一个节点标识对应的权值;终端确定与每一个节点标识对应的权值,为每一个节点标识对应的数据信息的权值;终端确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息的权值总和;终端确定权值总和最大的数据信息,为最终的数据信息。
[0091] 在本实施例中,具体的,终端根据各解密后的数据信息,确定最终的数据信息。
[0092] 具体来说,终端统计出归属于同一数据属性标识的数据信息中,信息内容相同的数据信息个数;然后,终端确定个数最多的数据信息,为最终的数据信息。
[0093] 举例来说,数据属性标识为身高,终端确定身高的数据信息中,身高的信息内容相同的数据信息的个数;例如,确定出身高为166厘米的数据个数为3个,身高为165厘米的数据个数为2个,身高为164厘米的数据个数为1个;进而终端确定身高166厘米,为身高的最终数据信息。
[0094] 或者,每一个节点发送的数据信息中还包括了节点标识。终端中存储有节点标识与权值之间的对应关系,进而终端可以确定与每一个节点标识对应的权值。然后终端将与每一个节点标识对应的权值,作为每一个节点标识对应节点所发送的数据信息的权值;然后,终端计算归属于同一数据属性标识的数据信息中,信息内容相同的数据信息的权值总和;最后,终端将权值总和最大的数据信息,作为最终的数据信息。
[0095] 举例来说,数据属性标识为身高,节点1向终端发送了数据信息,数据信息中包括节点标识1;节点2向终端发送了数据信息,数据信息中包括节点标识2;节点3向终端发送了数据信息,数据信息中包括节点标识3;节点4向终端发送了数据信息,数据信息中包括节点标识4;终端可以确定出与节点标识1对应的权值a、与节点标识2对应的权值b、与节点标识3对应的权值c、与节点标识4对应的权值d;进而终端确定出节点1发送的数据信息的权值为a、节点2发送的数据信息的权值为b、节点3发送的数据信息的权值为c、节点4发送的数据信息的权值为d;终端确定节点1发送的身高的数据信息的信息内容、节点2发送的身高的数据信息的信息内容都是166厘米,终端确定节点3发送的身高的数据信息的信息内容、节点4发送的身高的数据信息的信息内容都是164厘米;进而,终端统计出166厘米的数据信息的权值总和为a+b,统计出164厘米的数据信息的权值总和为c+d,其中,a+b大于c+d;终端可以确定身高为166厘米,作为身高的最终数据信息。
[0096] 例如,图2为本申请实施例提供的一种基于区块链的数据获取方法中的数据信息的存储结构的示意图,如图2所示,终端从多个节点获取的数据信息,可以以图2的结构进行存储,存储结构中包括了接的键(Key)值、用户标识的哈希值、Value值和信息内容,其中,信息内容为一个或多个数据属性标识下的数据信息,每一个数据信息中包括了节点标识、数据信息内容和时间戳。例如,数据属性标识1下的数据信息包括了数据信息1、数据信息2和数据信息3,其中,数据信息1包括了节点标识DP1、数据信息内容v1和时间戳ts1,数据信息2包括了节点标识DP2、数据信息内容v2和时间戳ts2,数据信息3包括了节点标识DP3、数据信息内容v3和时间戳ts3;数据属性标识2下的数据信息包括了数据信息4、数据信息5和数据信息6,其中,数据信息4包括了节点标识DP1、数据信息内容v4和时间戳ts4,数据信息5包括了节点标识DP2、数据信息内容v5和时间戳ts5,数据信息6包括了节点标识DP3、数据信息内容v6和时间戳ts6。
[0097] 本实施例通过终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息;终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识;终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;终端根据每一个解密后的数据信息,确定最终的数据信息。由于将数据信息分片加密后放在不同的节点上,由于分片数据的不完整性,进而可以保证数据的绝对安全性,数据信息不会被售卖和泄露;通过区块链的各节点存储数据信息,可以使得数据供应商可以在不泄露数据的前提下共建DMP,有效的连接了数据孤岛,同时提高了数据利用的效率;并且,终端可以只发出一次获取请求,就可以从各节点中获取数据信息,减少了数据查询次序和时间,有效的降低了数据查询的延迟;通过区块链技术,可以使得接口服务和数据分离,不同的数据采用同一个对接标准,降低对接成本。
[0098] 图3为本申请实施例提供的另一种基于区块链的数据获取方法的流程示意图。如图3所示,该方法包括:
[0099] 步骤201、终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息。
[0100] 在本实施例中,具体的,本步骤可以参见图1的步骤101,不再赘述。
[0101] 步骤202、终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识。
[0102] 在本实施例中,具体的,本步骤可以参见图1的步骤102,不再赘述。
[0103] 步骤203、终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息。
[0104] 在本实施例中,具体的,本步骤可以参见图1的步骤103,不再赘述。
[0105] 步骤204、终端根据每一个解密后的数据信息,确定最终的数据信息。
[0106] 在本实施例中,具体的,本步骤可以参见图1的步骤104,不再赘述。
[0107] 步骤205、终端生成与最终的数据信息对应的节点标识的利益信息。
[0108] 在本实施例中,具体的,在步骤204之后,可以根据每个数据提供方的贡献值来做利益分配,即根据每个数据提供设备的的权重和贡献度来做利益分配;并且将贡献值写入智能合约,智能合约会自动对数据提供设备进行转账。具体来说,终端可以根据预设的利益分配表,生成与最终的数据信息对应的节点标识的利益信息,其中,利益分配表表征了数据信息与利益信息之间的对应关系。
[0109] 步骤206、终端将利益信息,发送给与最终的数据信息对应的节点标识所对应的节点,以使该节点将利益信息发送给与最终的数据信息对应的数据提供设备。
[0110] 在本实施例中,具体的,终端将利益信息,发送给与最终的数据信息对应的节点标识所对应的节点;然后,由于最终的数据信息中包括了数据提供设备的标识,进而该节点可以确定出与数据提供设备的标识对应的数据提供设备,然后该节点将利益信息发送给提供了最终的数据信息的数据提供设备。
[0111] 步骤207、至少一个数据提供设备中的每一个数据提供设备将数据信息,分散的存储到至少一个节点中的每一个节点中。
[0112] 其中,步骤207具体包括:至少一个数据提供设备中的每一个数据提供设备根据DHT路由协议,依次确定至少一个节点中的每一个节点的散列值;至少一个数据提供设备中的每一个数据提供设备根据当前节点的散列值确定没有新的节点被生成时,确定将数据信息存储到当前节点中。
[0113] 在本实施例中,具体的,步骤207的执行次序不做限定。在各数据提供设备向节点中存放数据信息的时候,需要尽量保证数据信息进行分散存储,从而每一个数据提供设备将数据信息,分散的存储到至少一个节点中的每一个节点中。
[0114] 具体来说,每一个数据提供设备根据DHT路由协议,依次确定至少一个节点中的每一个节点的散列值,散列值是根据节点个数将一个预设数据范围进行分割之后得到的;进而,每一个数据提供设备在向节点中存放数据信息的时候,可以根据散列值确定是否区块链中是否具有了新的节点;每一个数据提供设备在根据当前节点的散列值,确定区块链中没有生成新的节点,就可以将数据信息存放到当前节点中。
[0115] 举例来说,将一个数值范围进行三等分的均等分割,将分割后的数据范围1作为节点1的散列值,将分割后的数据范围2作为节点2的散列值,将分割后的数据范围3作为节点3的散列值;数据提供设备在向节点1中存放数据信息的时候,可以根据节点1散列值确定是否区块链中是否具有了新的节点;若节点1的散列值发生了变化,则确定区块链中生成了新的节点,然后,数据提供设备就可以询问节点2,此时继续判断节点2的散列值是否发生了变化;若节点2的散列值没有发生变化,则数据提供设备确定区块链中没有生成新的节点,数据提供设备就可以将数据信息存放到节点2中。
[0116] 并且,数据提供设备以客户端的形式与区块链中的节点进行交互。数据提供设备将数据信息的键(Key)值加盐散列后,得到Key的散列值,并且将Key的散列值的各个字段值加密;然后,数据提供设备请求智能合约的路由方法,将数据信息存放到节点中,其中,路由方法为根据DHT协议计算节点的值。然后,数据提供设备可以按照预设比例,例如5%,将散列值写入到智能合约中。并且存储有数据信息的节点需要在存储数据信息之后定期的通过心跳的方式,回答智能合约的散列问题;智能合约会随机的询问Key的散列值,要求对应的节点返回记录的散列值。
[0117] 步骤208、至少一个节点中的每一个节点获取节点的续约超时时间;至少一个节点中的每一个节点在确定节点的续约超时时间,在连续N次上都大于预设时间,则确定节点为下线状态。
[0118] 在本实施例中,具体的,步骤208的执行次序不做限定。
[0119] 当区块链中有新的节点上线时,新的节点将自己绑定的公钥、对外服务的网络协议(Internet Protocol,简称IP)、是否准备服务的状态等等,写入智能合约中,并且新的节点可以将一部分代币(token)作为保证金。当节点正常下线时,节点可以自行标记其在智能合约上的服务状态。每个节点需要定期的跟智能合约续约,其中,最大的续约超时时间为t;节点获取自身的续约超时时间,节点在确定自身的续约超时时间,在连续N次上都大于预设时间,则确定该节点为下线状态;并且,智能合约可以确定哪些节点为下线状态,然后扣除下线状态的节点的保证金。
[0120] 根据以上过程,整个数据信息的获取和存储过程分为了业务层、DHT网络层、存储层和区块链层。其中,在业务层中数据信息的结构基本是Key_value(KV)形式,具体的Key=>document;其中,Key一般使用加盐散列脱敏,而共享数据的几个数据提供设备共享“盐”,以保证相同的Key可以在分布式数据库中聚合在一起;Document支持可嵌套结构,其中的字段和值均为加密,秘钥为所有数据提供设备共享。DHT网络层中,所有的节点的路由信息需要写入在区块链上,维护一个全局路由表。在存储层中,可以实现数据信息的存储,节点中的数据信息应该尽量的分散,每一个节点中的数据信息不可集中在同一个数据提供设备,即同一数据提供设备不能把自己的数据都放到一个节点中,进而保证加密分片数据的安全。其中,节点可以使用MongoDB数据库、ElasticSearch数据库、Hbase数据库等NoSQL数据库。在区块链层中,可以管理节点的路由信息,也可以对数据信息进行抽样处理。其中,对数据信息进行抽样处理主要是为了证明节点中是否真正存储了数据,并予以一定的奖惩机制,保证节点的服务质量。
[0121] 本实施例通过终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息;终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识;终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;终端根据每一个解密后的数据信息,确定最终的数据信息。由于将数据信息分片加密后放在不同的节点上,由于分片数据的不完整性,进而可以保证数据的绝对安全性,数据信息不会被售卖和泄露;通过区块链的各节点存储数据信息,可以使得数据供应商可以在不泄露数据的前提下共建DMP,有效的连接了数据孤岛,同时提高了数据利用的效率;并且,终端可以只发出一次获取请求,就可以从各节点中获取数据信息,减少了数据查询次序和时间,有效的降低了数据查询的延迟;通过区块链技术,可以使得接口服务和数据分离,不同的数据采用同一个对接标准,降低对接成本。并且,终端通过加盐散列Key的方式聚合数据,然后,引入了投票机制,决策最终的数据信息;并且可以根据数据提供设备的权重和贡献度,对数据提供设备进行利益分配。
[0122] 图4为本申请实施例提供的一种基于区块链的数据获取系统的结构示意图,如图4所示,本实施例的系统可以包括:终端11和区块链中的至少一个节点12;
[0123] 其中,终端11包括:
[0124] 第一发送模块111,用于向区块链中的至少一个节点12发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点12中的每一个节点12确定与用户标识和数据属性标识对应的数据信息;
[0125] 接收模块112,用于接收至少一个节点12中的每一个节点12,发送的数据信息,其中,数据信息中包括数据属性标识;
[0126] 解密模块113,用于对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;
[0127] 确定模块114,用于根据每一个解密后的数据信息,确定最终的数据信息。
[0128] 本实施例的基于区块链的数据获取系统可执行本申请实施例提供的一种基于区块链的数据获取方法,其实现原理和技术效果相类似,此处不再赘述。
[0129] 本实施例通过终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息;终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识;终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;终端根据每一个解密后的数据信息,确定最终的数据信息。由于将数据信息分片加密后放在不同的节点上,由于分片数据的不完整性,进而可以保证数据的绝对安全性,数据信息不会被售卖和泄露;通过区块链的各节点存储数据信息,可以使得数据供应商可以在不泄露数据的前提下共建DMP,有效的连接了数据孤岛,同时提高了数据利用的效率;并且,终端可以只发出一次获取请求,就可以从各节点中获取数据信息,减少了数据查询次序和时间,有效的降低了数据查询的延迟;通过区块链技术,可以使得接口服务和数据分离,不同的数据采用同一个对接标准,降低对接成本。
[0130] 图5为本申请实施例提供的另一种基于区块链的数据获取系统的结构示意图,在图4所示实施例的基础上,如图5所示,本实施例的系统中,确定模块114,具体用于:确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息个数;确定个数最多的数据信息,为最终的数据信息。
[0131] 或者,确定模块114,具体用于:根据预设的节点标识与权值之间的对应关系,确定与每一个节点标识对应的权值;确定与每一个节点标识对应的权值,为每一个节点标识对应的数据信息的权值;确定归属于同一数据属性标识的数据信息中,信息内容相同的数据信息的权值总和;确定权值总和最大的数据信息,为最终的数据信息。
[0132] 终端11,还包括:
[0133] 生成模块115,用于在确定模块114根据每一个解密后的数据信息,确定最终的数据信息之后,生成与最终的数据信息对应的节点标识的利益信息。
[0134] 第二发送模块116,用于将利益信息,发送给与最终的数据信息对应的节点标识所对应的节点12,以使该节点12将利益信息发送给与最终的数据信息对应的数据提供设备。
[0135] 本实施例提供系统,还包括:至少一个数据提供设备13;
[0136] 至少一个数据提供设备13中的每一个数据提供设备13,用于将数据信息,分散的存储到至少一个节点12中的每一个节点12中。
[0137] 至少一个数据提供设备13中的每一个数据提供设备13,具体用于:根据DHT路由协议,依次确定至少一个节点12中的每一个节点的散列值;根据当前节点12的散列值确定没有新的节点12被生成时,确定将数据信息存储到当前节点12中。
[0138] 至少一个节点12中的每一个节点12,具体用于:获取节点的续约超时时间;在确定节点12的续约超时时间,在连续N次上都大于预设时间,则确定节点12为下线状态。
[0139] 本实施例的基于区块链的数据获取系统可执行本申请实施例提供的另一种基于区块链的数据获取方法,其实现原理和技术效果相类似,此处不再赘述。
[0140] 本实施例通过终端向区块链中的至少一个节点发送数据获取请求,数据获取请求中包括用户标识和数据属性标识,以使至少一个节点中的每一个节点确定与用户标识和数据属性标识对应的数据信息;终端接收至少一个节点中的每一个节点,发送的数据信息,其中,数据信息中包括数据属性标识;终端对至少一个数据信息中的每一个数据信息进行解密,得到每一个解密后的数据信息;终端根据每一个解密后的数据信息,确定最终的数据信息。由于将数据信息分片加密后放在不同的节点上,由于分片数据的不完整性,进而可以保证数据的绝对安全性,数据信息不会被售卖和泄露;通过区块链的各节点存储数据信息,可以使得数据供应商可以在不泄露数据的前提下共建DMP,有效的连接了数据孤岛,同时提高了数据利用的效率;并且,终端可以只发出一次获取请求,就可以从各节点中获取数据信息,减少了数据查询次序和时间,有效的降低了数据查询的延迟;通过区块链技术,可以使得接口服务和数据分离,不同的数据采用同一个对接标准,降低对接成本。并且,终端通过加盐散列Key的方式聚合数据,然后,引入了投票机制,决策最终的数据信息;并且可以根据数据提供设备的权重和贡献度,对数据提供设备进行利益分配。
[0141] 图6为本申请实施例提供的一种终端的结构示意图,如图6所示,本申请实施例提供了一种终端,可以用于执行图1、或图3所示实施例中终端动作或步骤,具体包括:处理器2701,存储器2702和通信接口2703。
[0142] 存储器2702,用于存储计算机程序。
[0143] 处理器2701,用于执行存储器2702中存储的计算机程序,以实现图1、或图3所示实施例中终端的动作,不再赘述。
[0144] 可选的,终端还可以包括总线2704。其中,处理器2701、存储器2702以及通信接口2703可以通过总线2704相互连接;总线2704可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。上述总线2704可以分为地址总线、数据总线和控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0145] 在本申请实施例中,上述各实施例之间可以相互参考和借鉴,相同或相似的步骤以及名词均不再一一赘述。
[0146] 或者,以上各个模块的部分或全部也可以通过集成电路的形式内嵌于该终端的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些模块可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。
[0147] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器2702,上述指令可由上述终端的处理器2701执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0148] 一种非临时性计算机可读存储介质,当该存储介质中的指令由终端的处理器执行时,使得终端能够执行上述基于区块链的数据获取方法。
[0149] 图7为本申请实施例提供的一种数据提供设备的结构示意图,如图7所示,本申请实施例提供了一种数据提供设备,可以用于执行图1、或图3所示实施例中数据提供设备动作或步骤,具体包括:处理器2801,存储器2802和通信接口2803。
[0150] 存储器2802,用于存储计算机程序。
[0151] 处理器2801,用于执行存储器2802中存储的计算机程序,以实现图1、或图3所示实施例中数据提供设备的动作,不再赘述。
[0152] 可选的,数据提供设备还可以包括总线2804。其中,处理器2801、存储器2802以及通信接口2803可以通过总线2804相互连接;总线2804可以是PCI总线或EISA总线等。上述总线2804可以分为地址总线、数据总线和控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0153] 在本申请实施例中,上述各实施例之间可以相互参考和借鉴,相同或相似的步骤以及名词均不再一一赘述。
[0154] 或者,以上各个模块的部分或全部也可以通过集成电路的形式内嵌于该数据提供设备的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些模块可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA等。
[0155] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器2802,上述指令可由上述数据提供设备的处理器2801执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0156] 一种非临时性计算机可读存储介质,当该存储介质中的指令由数据提供设备的处理器执行时,使得数据提供设备能够执行上述基于区块链的数据获取方法。
[0157] 图8为本申请实施例提供的一种节点的结构示意图,如图8示,本申请实施例提供了一种节点,可以用于执行图1、或图3所示实施例中节点动作或步骤,具体包括:处理器2901,存储器2902和通信接口2903。
[0158] 存储器2902,用于存储计算机程序。
[0159] 处理器2901,用于执行存储器2902中存储的计算机程序,以实现图1、或图3所示实施例中节点的动作,不再赘述。
[0160] 可选的,节点还可以包括总线2904。其中,处理器2901、存储器2902以及通信接口2903可以通过总线2904相互连接;总线2904可以是PCI总线或EISA总线等。上述总线2904可以分为地址总线、数据总线和控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0161] 在本申请实施例中,上述各实施例之间可以相互参考和借鉴,相同或相似的步骤以及名词均不再一一赘述。
[0162] 或者,以上各个模块的部分或全部也可以通过集成电路的形式内嵌于该节点的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些模块可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA等。
[0163] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器2902,上述指令可由上述节点的处理器2901执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0164] 一种非临时性计算机可读存储介质,当该存储介质中的指令由节点的处理器执行时,使得节点能够执行上述基于区块链的数据获取方法。
[0165] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、终端或数据中心通过有线(例如,同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、终端或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的终端、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
[0166] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0167] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。