一种索引库生成方法、数据验证方法、装置及平台与流程

文档序号:13804810阅读:97来源:国知局
一种索引库生成方法、数据验证方法、装置及平台与流程

本发明涉及数据认证技术领域,尤其涉及一种索引库生成方法、数据验证方法、装置及平台。



背景技术:

现代生活中,常需要证明某项数据(事物)的存在,即数据的存证,如撰写过的文章、历史的操作指令、签订过的合同等,此时便需经过第三方认证机构进行认证,这种认证方式对认证机构的信用度要求极高,而且操作繁琐、成本较高、时效性差。

为了解决上述通过第三方认证机构进行数据存证时存在的种种问题,目前已出现很多通过区块链数据存证的方案,利用区块链的无中心化结构及不可更改的特性很好地解决了上述问题。但是,实际应用中,不同的用户可能会选择不同的区块链系统进行存证,比如一些数据被存入区块链系统a,而另一些数据被存入区块链系统b,因此,进行数据验证时,往往需要依次查询两个区块链系统,严重降低了验证效率。



技术实现要素:

本发明提供一种索引库生成方法、数据验证方法、装置及平台,用以提高多区块链系统下的数据验证效率。

本发明实施例提供一种索引库生成方法,应用于包含n个区块链系统的平台,n大于等于1,包括:

针对任一区块链系统,获取所述区块链系统的区块链数据;

提取所述本地区块链的各区块中各存储数据的索引信息;所述索引信息包括所述存储数据所在区块的区块高度、所述存储数据在所述区块中的位置信息以及所述区块链系统的标识;所述存储数据为所述区块中已存证数据的指纹信息;

将所述索引信息存储于所述索引库。

可选的,获取所述区块链系统的区块链数据之后,还包括:

将所述区块链数据的各区块中各存储数据存储于区块数据库中。

可选的,针对任一区块链系统,获取所述区块链系统的区块链数据,包括:

通过节点发现算法从所述区块链系统中确定m个可选节点;m大于等于3;

分别获取所述m个可选节点的本地区块链中各区块的区块头哈希值和区块高度;

针对具有任意相同区块高度的多个区块,在区块头哈希值相同的区块满足预设条件时,从所述区块头哈希值相同的区块中确定任一区块所对应的可选节点为传输节点;

向所述传输节点发送数据同步请求;所述数据同步请求用于指示所述传输节点返回该区块数据。

可选的,获取所述区块链系统的区块链数据,包括:

确定所述索引库中已存储的所述区块链系统的区块高度最大值;

获取所述区块链系统中区块高度值不小于所述区块高度最大值的各区块的数据。

本发明实施例提供一种数据验证方法,应用于包含n个区块链系统的平台,n大于等于1,包括:

接收数据验证请求,所述数据验证请求中包含待验证数据的指纹信息;

根据所述待验证数据的指纹信息查询索引库,获取所述待验证数据的索引信息;所述索引信息包括所述指纹信息所在区块链系统的标识、所述指纹信息所在区块链系统中的区块高度以及所述指纹信息在区块中的位置信息;

根据所述区块链系统的标识、所述区块高度以及所述位置信息,获取验证数据;

在所述待验证数据的指纹信息与所述验证数据一致时,确认所述待验证数据验证通过。

可选的,根据所述区块链系统的标识、所述区块高度以及所述位置信息,获取验证数据,包括:

根据所述区块链系统的标识,确定与所述区块链系统的标识对应的区块数据库;

根据所述区块高度以及所述位置信息在所述区块链系统的标识对应的区块数据库中获取所述验证数据。

本发明实施例提供一种索引库生成装置,应用于包含n个区块链系统的平台,n大于等于1,包括:

收发单元,用于针对任一区块链系统,获取所述区块链系统的区块链数据;处理单元,用于提取所述本地区块链的各区块中各存储数据的索引信息;所述索引信息包括所述存储数据所在区块的区块高度、所述存储数据在所述区块中的位置信息以及所述区块链系统的标识;所述存储数据为所述区块中已存证数据的指纹信息;

所述处理单元,还用于将所述索引信息存储于所述索引库。

可选的,所述处理单元还用于:

将所述区块链数据的各区块中各存储数据存储于区块数据库中。

可选的,所述处理单元具体用于:

通过节点发现算法从所述区块链系统中确定m个可选节点;m大于等于3;

分别获取所述m个可选节点的本地区块链中各区块的区块头哈希值和区块高度;

针对具有任意相同区块高度的多个区块,在区块头哈希值相同的区块满足预设条件时,从所述区块头哈希值相同的区块中确定任一区块所对应的可选节点为传输节点;

控制所述收发单元向所述传输节点发送数据同步请求;所述数据同步请求用于指示所述传输节点返回该区块数据。

可选的,所述处理单元具体用于:

确定所述索引库中已存储的所述区块链系统的区块高度最大值;

控制所述收发单元获取所述区块链系统中区块高度值不小于所述区块高度最大值的各区块的数据。

本发明实施例提供一种数据验证装置,应用于包含n个区块链系统的平台,n大于等于1,包括:

收发单元,用于接收数据验证请求,所述数据验证请求中包含待验证数据的指纹信息;

处理单元,用于根据所述待验证数据的指纹信息查询索引库,获取所述待验证数据的索引信息;所述索引信息包括所述指纹信息所在区块链系统的标识、所述指纹信息所在区块链系统中的区块高度以及所述指纹信息在区块中的位置信息;

所述处理单元,还用于根据所述区块链系统的标识、所述区块高度以及所述位置信息,获取验证数据;

所述处理单元,还用于在所述待验证数据的指纹信息与所述验证数据一致时,确认所述待验证数据验证通过。

可选的,所述处理单元具体用于:

根据所述区块链系统的标识,确定与所述区块链系统的标识对应的区块数据库;

根据所述区块高度以及所述位置信息在所述区块链系统的标识对应的区块数据库中获取所述验证数据。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项所述的索引库生成方法。

本发明实施例提供一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的索引库生成方法。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一项所述的数据验证方法。

本发明实施例提供一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一项所述的数据验证方法。

本发明实施例提供一种平台,包括n个区块链系统、上述任一项所述的索引库生成装置和上述任一项所述的数据验证装置。

综上所述,本发明实施例提供一种索引库生成方法、数据验证方法、装置及平台,该平台包含n个区块链系统,n大于等于1,其中,索引库生成方法包括:针对任一区块链系统,获取区块链系统的区块链数据;区块链数据为区块链系统中至少一个节点的本地区块链数据,本地区块链包括多个区块;提取本地区块链的各区块中各存储数据的索引信息;索引信息包括存储数据所在区块的区块高度、存储数据在区块中的位置信息以及区块链系统的标识;存储数据为区块中已存证数据的指纹信息;将索引信息存储于索引库。通过索引信息中包括的区块高度、存储数据和位置信息可以精确定位一条区块链中的每一个存储数据,同时,索引信息中还包括区块链系统的标识,使得对于多个区块链系统下也能实现对存储数据的定位。索引库中包括了n个区块链系统中每一个存储数据的索引信息,其中,存储数据为已存证数据的指纹信息,在验证时,验证请求方只需提供待验证数据的指纹信息即可通过索引库快速查询索引信息并在n个区块链系统的区块链中快速定位对应位置的数据,因此能够实现多区块链系统下的快速验证。

附图说明

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

图1为本发明实施例提供的一种平台架构示意图;

图2为本发明实施例提供的一种索引库生成方法流程示意图;

图3为本发明实施例提供的一种数据验证方法流程示意图;

图4为本发明实施例提供的一种索引库生成装置结构示意图;

图5为本发明实施例提供的一种数据验证装置结构示意图;

图6为本发明实施例提供的一种计算设备结构示意图;

图7为本发明实施例提供的一种计算设备结构示意图。

具体实施方式

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

本发明实施例提供一种可行的数据存证平台,该平台包括n个区块链系统。平台中包括至少一个索引库生成装置和至少一个数据验证装置,索引库生成装置和数据验证装置可以集成为一个数据存证装置。图1为本发明实施例提供的一种平台架构示意图,如图1所示,该平台包括n个区块链系统:系统1、系统2、……、系统n,以及数据存证装置。其中,数据存证装置为索引库生成装置和数据验证装置的集合,既可以执行本发明实施例所提供的索引库生成方法,也可以执行本发明实施例所提供的数据验证方法。数据存证装置与每一个区块链系统中至少一个节点连接(有线或无线),可以从该节点同步数据。具体实施过程中,n个区块链系统可以为同一种区块链系统,也可以为不同的区块链系统。

基于上述实施例所提供的平台,本发明实施例提供一种索引库生成方法。图2为本发明实施例提供的一种索引库生成方法流程示意图,如图2所示,包括以下步骤:

s201:针对任一区块链系统,获取区块链系统的区块链数据。

s202:提取本地区块链的各区块中各存储数据的索引信息;索引信息包括存储数据所在区块的区块高度、存储数据在区块中的位置信息以及区块链系统的标识;存储数据为区块中已存证数据的指纹信息。

s203:将索引信息存储于索引库。

在s201中,索引库生成装置与每一个区块链系统中的至少一个节点连接,可以从该节点同步区块链数据。可选的,对于具有足够存储空间的索引库生成装置,在获取区块链系统的区块链数据之后,还可以将区块链数据存储于区块数据库中。将区块链数据存储于区块数据库中,使得在验证时无需再访问区块链系统,直接查询区块数据库即可,因此能够加快数据验证过程。可选的,区块数据库可以有n个,分别与n个区块链系统一一对应,任一区块数据库只存储与其对应的区块链系统的区块链数据。在验证时,可省去遍历其它区块链系统的区块链数据的时间,能够进一步加快数据验证过程。

可选的,同步过程可以由索引库生成装置定时或定量发起,也可由区块链系统中与索引库生成装置连接的节点定时或定量发起。在由索引库生成装置定时或定量发起的情况下,本发明实施例提供一种获取区块链数据的方法,包括:通过节点发现算法从区块链系统中确定m个可选节点;m大于等于3;分别获取m个可选节点的本地区块链中各区块的区块头哈希值和区块高度;针对具有任意相同区块高度的多个区块,在区块头哈希值相同的区块满足预设条件时,从区块头哈希值相同的区块中确定任一区块所对应的可选节点为传输节点;向传输节点发送数据同步请求;数据同步请求用于指示传输节点返回该区块数据。具体来说,索引库生成装置与区块链系统中至少一个节点连接,该节点为初始节点;通过节点发现算法,获取初始节点的相邻节点,最后获得的m个可选节点包括了初始节点和初始节点的相邻节点;针对任一高度的区块,从节点列表中选择多个节点的本地区块链中对应高度的区块的区块头哈希值;当区块头哈希值相同的区块满足预设条件后,从这些区块头哈希值相同的区块所对应的节点中选择任一节点作为传输节点;索引库生成装置向传输节点发送数据同步请求,传输节点在收到数据同步请求后将对应高度的区块数据返回索引库生成装置。

区块链数据中包含了各个区块的数据信息,每一个区块的数据信息即包括了该区块所存储的存储数据,也包括该区块的区块头数据,其中区块头数据包括哈希指针(前一区块的区块头哈希值)、随机数、时间戳等等多种数据。在s202中,需从每一个节点的本地区块链的每一区块中提取该区块中存储的存储数据的索引信息,其中,存储数据是已存证数据的指纹信息。本发明实施例所提供的索引信息包括了存储数据所在区块的区块高度、存储数据在区块中的位置信息以及区块链系统的标识,举例说明,对于比特币网络中的区块链,区块链系统的标识可以是“btc”,区块链中按区块生成的先后顺序第height个区块的区块高度便是“height”,该区块中包括按顺序存储的存储数据,则所存储的第n个存储数据a的位置信息便是“n”,因此存储数据a的索引信息便可以是“bit,height,n”。

在s203中,可采用多种形式存储索引信息。本发明实施例提供一种可行的存储索引信息的方式,如表一所示。

表一

表一中,所有指纹信息同一存储于一个表中,每一个指纹信息对应着一组区块链系统标识、区块高度和位置信息。

本发明实施例还提供另一种可行的索引信息的存储方式,如表二所示。

表二

如表二所示,不同区块链系统中的指纹信息被记录于不同的列表中,每一个列表分别与不同的区块链系统相对应。

通过索引信息中包括的区块高度、存储数据和位置信息可以精确定位一条区块链中的每一个存储数据,同时,索引信息中还包括区块链系统的标识,使得对于多个区块链系统下也能实现对存储数据的定位。索引库中包括了n个区块链系统中每一个存储数据的索引信息,其中,存储数据为已存证数据的指纹信息,在验证时,验证请求方只需提供待验证数据的指纹信息即可通过索引库快速查询索引信息并在n个区块链系统的区块链中快速定位对应位置的数据,因此能够实现多区块链系统下的快速验证。

在s201中,需从区块链系统的节点同步区块链数据,可以将完整的区块链数据同步下来之后完全覆盖区块数据库中保存的区块链数据,除此之外,本发明实施例还提供一种更加高效的区块链数据同步方式。具体来说,s201获取区块链系统的区块链数据,包括:确定索引库中已存储的区块链系统的区块高度最大值;获取区块链系统中区块高度值不小于区块高度最大值的各区块的数据。举例说明,在同步某一区块链系统的区块链时,先确定索引库中已存储的区块链系统的区块高度最大值为“h1”,则以区块链系统中区块高度为h1的区块为起点开始同步区块链数据,依次同步区块h1、h1+1、h1+2、……。本次同步的区块高度为h1的区块的区块数据会覆盖上次同步时存储的区块高度为h1的区块的区块数据,这是因为索引库生成装置在上一次同步区块链数据时,可能并没有完全同步下h1的所有数据,本次同步再次同步区块高度为h1的区块的区块数据可以避免上次同步的数据不完整的情况带来的误差。

相对应的,本发明实施例还提供一种数据验证方法,该方法同样应用于包含n个区块链系统的平台,n大于等于1,可利用上述任一实施例生成的索引库进行数据验证。图3为本发明实施例提供的一种数据验证方法流程示意图,如图3所示,包括以下步骤:

s301:接收数据验证请求,数据验证请求中包含待验证数据的指纹信息。

s302:根据待验证数据的指纹信息查询索引库,获取待验证数据的索引信息;索引信息包括指纹信息所在区块链系统的标识、指纹信息所在区块链系统中的区块高度以及指纹信息在区块中的位置信息。

s303:根据区块链系统的标识、区块高度以及位置信息,获取验证数据。

s304:在待验证数据的指纹信息与验证数据一致时,确认待验证数据验证通过。

在s301中,验证请求方只需提供待验证数据的指纹信息,便于使用。当然,验证请求方也可以直接提供索引信息,数据验证装置直接根据索引信息快速定位存储数据,验证效率更高。验证请求方所提供的索引信息可以是在向区块链系统存入数据时由区块链系统返回的,也可以是索引库生成装置在提取索引信息时返回的。

在s302中,可根据索引库中保存的指纹信息与索引信息之间的对照关系获取索引信息,具体实现方式与索引信息的存储方式有关。例如,当按表一所示的形式存储索引信息时,则需一次遍历所存储的指纹信息直至找到与待验证数据的指纹信息相同的指纹信息,则该指纹信息在表中所对应的索引信息即是待验证数据的指纹信息的索引信息。又例如,当按表二所示的形式存储索引信息时,也需遍历所存储的指纹信息,但当验证请求方同时提供了区块链系统标识时,便可大幅提高检索效率。

在s303中,具体来说,在将区块链数据存储到区块数据库的情况下,根据区块链系统的标识,确定与区块链系统的标识对应的区块数据库;根据所述区块高度以及位置信息在区块链系统的标识对应的区块数据库中获取验证数据。举例说明,通过查询索引库获得指纹信息a的索引信息为“bit,height,n”,则根据指纹信息a的索引信息确定存储比特币系统的区块链数据的区块数据库—数据库bit,在数据库bit中确定区块高度为height的区块,该区块中所存储的位置信息为n的存储数据即为验证数据。

基于相同的技术构思,本发明实施例还提供一种索引库生成装置,该索引库生成装置能够实现上述任一实施例所公开的索引库生成方法。图4为本发明实施例提供的一种索引库生成装置结构示意图,如图4所示,生成装置400包括收发单元401和处理单元402,其中:

收发单元401,用于针对任一区块链系统,获取区块链系统的区块链数据;处理单元402,用于提取本地区块链的各区块中各存储数据的索引信息;索引信息包括存储数据所在区块的区块高度、存储数据在区块中的位置信息以及区块链系统的标识;存储数据为区块中已存证数据的指纹信息;

处理单元402,还用于将索引信息存储于索引库。

可选的,处理单元402还用于:

将区块链数据的各区块中各存储数据存储于区块数据库中。

可选的,处理单元402具体用于:

通过节点发现算法从所述区块链系统中确定m个可选节点;m大于等于3;

分别获取所述m个可选节点的本地区块链中各区块的区块头哈希值和区块高度;

针对具有任意相同区块高度的多个区块,在区块头哈希值相同的区块满足预设条件时,从所述区块头哈希值相同的区块中确定任一区块所对应的可选节点为传输节点;

控制所述收发单元向所述传输节点发送数据同步请求;所述数据同步请求用于指示所述传输节点返回该区块数据。

可选的,处理单元402具体用于:

确定索引库中已存储的区块链系统的区块高度最大值;

控制收发单元401获取区块链系统中区块高度值不小于区块高度最大值的各区块的数据。

基于相同的技术构思,本发明实施例还提供一种数据验证装置,该数据验证装置能够实现上述任一实施例所公开的数据验证方法。图5为本发明实施例提供的一种数据验证装置结构示意图,如图5所示,验证装置500包括收发单元501和处理单元502,其中:

收发单元501,用于接收数据验证请求,数据验证请求中包含待验证数据的指纹信息;

处理单元502,用于根据待验证数据的指纹信息查询索引库,获取待验证数据的索引信息;索引信息包括指纹信息所在区块链系统的标识、指纹信息所在区块链系统中的区块高度以及指纹信息在区块中的位置信息;

处理单元502,还用于根据区块链系统的标识、区块高度以及位置信息,获取验证数据;

处理单元502,还用于在待验证数据的指纹信息与验证数据一致时,确认待验证数据验证通过。

可选的,处理单元502具体用于:

根据区块链系统的标识,确定与区块链系统的标识对应的区块数据库;

根据区块高度以及位置信息在区块链系统的标识对应的区块数据库中获取验证数据。

基于相同的技术构思,本发明实施例还提供一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)等。如图6所示,为本发明实施例提供的一种计算设备结构示意图,该计算设备可以包括中央处理器601(centerprocessingunit,cpu)、存储器602、输入设备603、输出设备604等,输入设备603可以包括键盘、鼠标、触摸屏等,输出设备604可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。

存储器602可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储本发明实施例所提供的索引库生成方法的程序,处理器通过调用存储器存储的程序指令,按照获得的程序指令执行上述任一项所述的索引库生成方法。

基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,用于存储为上述计算设备所用的计算机程序指令,其包含用于执行上述任一项所述的索引库生成方法的程序。

所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

基于相同的技术构思,本发明实施例还提供一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)等。如图7所示,为本发明实施例提供的一种计算设备结构示意图,该计算设备可以包括中央处理器701(centerprocessingunit,cpu)、存储器702、输入设备703、输出设备704等,输入设备703可以包括键盘、鼠标、触摸屏等,输出设备704可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。

存储器702可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储本发明实施例所提供的数据验证方法的程序,处理器通过调用存储器存储的程序指令,按照获得的程序指令执行上述任一项所述的数据验证方法。

基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,用于存储为上述计算设备所用的计算机程序指令,其包含用于执行上述任一项所述的数据验证方法的程序。

所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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