数据存储方法及装置、数据读取方法及装置、存储介质与流程

文档序号:22685733发布日期:2020-10-28 12:52阅读:110来源:国知局
数据存储方法及装置、数据读取方法及装置、存储介质与流程

本申请涉及大数据技术领域,具体而言,涉及一种数据存储方法及与其对应的数据存储方法装置、数据读取方法及与其对应的数据读取装置,和计算机可读存储介质。



背景技术:

目前,随着互联网的高速发展,各行各业中每日均会产生大量的数据,如金融、医疗、教育等各个行业,数据呈量指数级的增长。而随着大量数据的产生,数据的安全性也不断出现漏洞,由于数据量大,数据在存储后进行查询的复杂度和难度等也随之提高,数据在有意或者无意的被修改后,不易被察觉,数据的安全性受到较大影响。



技术实现要素:

有鉴于此,本申请的目的在于提供一种数据存储方法及装置、数据读取方法及装置、存储介质,能够通过待存储数据的哈希编码和属性信息进行双重加密和编码后,生成待存储数据的唯一标识码,并将唯一标识码存储在区块链节点中,这样,通过区块链的方式可以确保唯一标识码的可靠性,在接收到用户的数据读取请求时,可以在通过唯一标识码的验证后对存储数据库进行数据读取,进而提高数据库数据存储的可靠性。

根据本申请的一个方面,提供一种电子设备,可以包括存储介质和与存储介质通信的处理器。存储介质存储有处理器可执行的机器可读指令。当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码;

基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码;

将所述唯一标识码写入对应的区块链节点中。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

分别生成所述待存储数据的至少一个属性信息中每个属性信息对应的属性编码;

确定每个属性编码在所述哈希编码中的拼接位置;

将每个属性编码插入到所述哈希编码中对应的拼接位置,以将所述哈希编码和所有属性编码拼接得到所述待存储数据的唯一标识码。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

分别获取每个属性编码的编码长度和编码属性;

基于每个属性编码的编码长度和编码属性,确定每个属性编码在所述哈希编码中的拼接位置。

在上述实施例中,所述属性信息包括以下信息中的至少一种:

所述存储数据库的数据库名称信息、所述待存储数据的数据名称信息、所述待存储数据在所述存储数据库中的数据位置信息和所述待存储数据的数据上传方信息。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

采用所述唯一标识码作为所述待存储数据的数据主键的方式,或者采用所述唯一标识码作为所述待存储数据的查询关键字的方式,将所述待存储数据和所述唯一标识码关联存储至存储数据库中。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

检测所述待存储数据是否成功写入存储数据库中,以及所述唯一标识码是否成功写入对应的区块链节点中;

若所述待存储数据写入存储数据库失败,和/或所述唯一标识码写入对应的区块链节点失败,则将已经写入所述存储数据库中的数据删除,并将已经写入所述区块链节点中的标识码删除;

重新执行所述获取用于存储到数据库中的待存储数据,并生成所述待存储数据的哈希编码的步骤。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

在将所述待存储数据写入存储数据库的过程中,若接收到所述待存储数据的写入错误反馈信息,确定所述待存储数据写入存储数据库失败;或者

在将所述待存储数据写入存储数据库完毕后,若在所述存储数据库中无法查询到所述待存储数据,或者查询到的数据与所述待存储数据不一致,确定所述待存储数据写入存储数据库失败。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

在将所述唯一标识码写入区块链节点的过程中,若接收到所述唯一标识码的写入错误反馈信息,确定所述唯一标识码写入区块链节点失败;或者

在将所述唯一标识码写入区块链节点完毕后,若在所述区块链节点中无法查询到所述唯一标识码,或者查询到的编码与所述唯一标识码不一致,确定所述唯一标识码写入区块链节点失败。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

从所述区块链节点中获取到所述唯一标识码;

通过所述唯一标识码在所述存储数据库中进行数据匹配;

若匹配到的数据与所述待存储数据不一致,或者无法从所述存储数据库中匹配到数据,确定所述存储数据库中的所述待存储数据被篡改。

根据本申请的另一个方面,提供另一种电子设备,可以包括存储介质和与存储介质通信的处理器。存储介质存储有处理器可执行的机器可读指令。当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码;

检测所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致;

若所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

在本申请的一些实施例中,处理器执行所述机器可读指令时,可以执行一个或多个以下操作:

从接收到的用户的数据读取请求中确定出待读取数据信息;

基于每个属性编码在标识码中的拼接位置,提取出区块链节点中存储的每个标识码中的至少一个属性编码;

基于每个标识码中提取出的至少一个属性编码,确定区块链节点中存储的每个标识码中携带的至少一个属性信息;

从多个标识码中确定出至少一个属性信息指示的数据与所述待读取数据信息指示的数据一致的标识码,并确定该标识码为与所述数据读取请求相匹配的唯一标识码。

根据本申请的一方面,提供一种数据存储方法,所述数据存储方法包括:

获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码;

基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码;

将所述唯一标识码写入对应的区块链节点中。

在本申请的一些实施例中,所述基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码,包括:

分别生成所述待存储数据的至少一个属性信息中每个属性信息对应的属性编码;

确定每个属性编码在所述哈希编码中的拼接位置;

将每个属性编码插入到所述哈希编码中对应的拼接位置,以将所述哈希编码和所有属性编码拼接得到所述待存储数据的唯一标识码。

在本申请的一些实施例中,所述确定每个属性编码在所述哈希编码中的拼接位置,包括:

分别获取每个属性编码的编码长度和编码属性;

基于每个属性编码的编码长度和编码属性,确定每个属性编码在所述哈希编码中的拼接位置。

在上述实施例中,所述属性信息包括以下信息中的至少一种:

所述存储数据库的数据库名称信息、所述待存储数据的数据名称信息、所述待存储数据在所述存储数据库中的数据位置信息和所述待存储数据的数据上传方信息。

在本申请的一些实施例中,在所述基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码之后,所述数据存储方法包括:

采用所述唯一标识码作为所述待存储数据的数据主键的方式,或者采用所述唯一标识码作为所述待存储数据的查询关键字的方式,将所述待存储数据和所述唯一标识码关联存储至存储数据库中。

在本申请的一些实施例中,在所述将所述待存储数据和所述唯一标识码关联存储至存储数据库中之后,以及在所述将所述唯一标识码写入对应的区块链节点中之后,所述数据存储方法包括:

检测所述待存储数据是否成功写入存储数据库中,以及所述唯一标识码是否成功写入对应的区块链节点中;

若所述待存储数据写入存储数据库失败,和/或所述唯一标识码写入对应的区块链节点失败,则将已经写入所述存储数据库中的数据删除,并将已经写入所述区块链节点中的标识码删除;

重新执行所述获取用于存储到数据库中的待存储数据,并生成所述待存储数据的哈希编码的步骤。

在本申请的一些实施例中,通过以下方式确定所述待存储数据写入存储数据库失败:

在将所述待存储数据写入存储数据库的过程中,若接收到所述待存储数据的写入错误反馈信息,确定所述待存储数据写入存储数据库失败;或者

在将所述待存储数据写入存储数据库完毕后,若在所述存储数据库中无法查询到所述待存储数据,或者查询到的数据与所述待存储数据不一致,确定所述待存储数据写入存储数据库失败。

在本申请的一些实施例中,通过以下方式确定所述唯一标识码写入区块链节点失败:

在将所述唯一标识码写入区块链节点的过程中,若接收到所述唯一标识码的写入错误反馈信息,确定所述唯一标识码写入区块链节点失败;或者

在将所述唯一标识码写入区块链节点完毕后,若在所述区块链节点中无法查询到所述唯一标识码,或者查询到的编码与所述唯一标识码不一致,确定所述唯一标识码写入区块链节点失败。

在本申请的一些实施例中,在所述将所述待存储数据和所述唯一标识码关联存储至存储数据库中之后,以及在所述将所述唯一标识码写入对应的区块链节点中之后,所述数据存储方法包括:

从所述区块链节点中获取到所述唯一标识码;

通过所述唯一标识码在所述存储数据库中进行数据匹配;

若匹配到的数据与所述待存储数据不一致,或者无法从所述存储数据库中匹配到数据,确定所述存储数据库中的所述待存储数据被篡改。

根据本申请的另一方面,提供一种数据读取方法,所述数据读取方法包括:

基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码;

检测所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致;

若所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

在本申请的一些实施例中,所述基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码,包括:

从接收到的用户的数据读取请求中确定出待读取数据信息;

基于每个属性编码在标识码中的拼接位置,提取出区块链节点中存储的每个标识码中的至少一个属性编码;

基于每个标识码中提取出的至少一个属性编码,确定区块链节点中存储的每个标识码中携带的至少一个属性信息;

从多个标识码中确定出至少一个属性信息指示的数据与所述待读取数据信息指示的数据一致的标识码,并确定该标识码为与所述数据读取请求相匹配的唯一标识码。

根据本申请的一方面,提供一种数据存储装置,所述数据存储装置包括:

哈希编码模块,用于获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码;

标识码编码模块,用于基于所述哈希编码模块生成的所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码;

区块链存储模块,用于将所述标识码编码模块生成的所述唯一标识码写入对应的区块链节点中。

在本申请的一些实施例中,所述标识码编码模块具体用于:

分别生成所述待存储数据的至少一个属性信息中每个属性信息对应的属性编码;

确定每个属性编码在所述哈希编码中的拼接位置;

将每个属性编码插入到所述哈希编码中对应的拼接位置,以将所述哈希编码和所有属性编码拼接得到所述待存储数据的唯一标识码。

在本申请的一些实施例中,所述标识码编码模块还用于:

分别获取每个属性编码的编码长度和编码属性;

基于每个属性编码的编码长度和编码属性,确定每个属性编码在所述哈希编码中的拼接位置。

在上述实施例中,所述属性信息包括以下信息中的至少一种:

所述存储数据库的数据库名称信息、所述待存储数据的数据名称信息、所述待存储数据在所述存储数据库中的数据位置信息和所述待存储数据的数据上传方信息。

在本申请的一些实施例中,所述数据存储装置还包括:

上链数据存储模块,用于采用所述唯一标识码作为所述待存储数据的数据主键的方式,或者采用所述唯一标识码作为所述待存储数据的查询关键字的方式,将所述待存储数据和所述唯一标识码关联存储至存储数据库中。

在本申请的一些实施例中,所述数据存储装置还包括写入检测模块,所述写入检测模块用于:

检测所述待存储数据是否成功写入存储数据库中,以及所述唯一标识码是否成功写入对应的区块链节点中;

若所述待存储数据写入存储数据库失败,和/或所述唯一标识码写入对应的区块链节点失败,则将已经写入所述存储数据库中的数据删除,并将已经写入所述区块链节点中的标识码删除;

重新执行所述获取用于存储到数据库中的待存储数据,并生成所述待存储数据的哈希编码的步骤。

在本申请的一些实施例中,通过以下方式确定所述待存储数据写入存储数据库失败:

在将所述待存储数据写入存储数据库的过程中,若接收到所述待存储数据的写入错误反馈信息,确定所述待存储数据写入存储数据库失败;或者

在将所述待存储数据写入存储数据库完毕后,若在所述存储数据库中无法查询到所述待存储数据,或者查询到的数据与所述待存储数据不一致,确定所述待存储数据写入存储数据库失败。

在本申请的一些实施例中,通过以下方式确定所述唯一标识码写入区块链节点失败:

在将所述唯一标识码写入区块链节点的过程中,若接收到所述唯一标识码的写入错误反馈信息,确定所述唯一标识码写入区块链节点失败;或者

在将所述唯一标识码写入区块链节点完毕后,若在所述区块链节点中无法查询到所述唯一标识码,或者查询到的编码与所述唯一标识码不一致,确定所述唯一标识码写入区块链节点失败。

在本申请的一些实施例中,所述数据存储装置还包括数据校验模块,所述数据校验模块用于:

从所述区块链节点中获取到所述唯一标识码;

通过所述唯一标识码在所述存储数据库中进行数据匹配;

若匹配到的数据与所述待存储数据不一致,或者无法从所述存储数据库中匹配到数据,确定所述存储数据库中的所述待存储数据被篡改。

根据本申请的另一方面,提供一种数据读取装置,所述数据读取装置包括:

标识码确定模块,用于基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码;

数据检测模块,用于检测所述标识码确定模块确定的所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致;

数据读取模块,用于若所述数据检测模块检测到所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

在本申请的一些实施例中,所述标识码确定模块具体用于:

从接收到的用户的数据读取请求中确定出待读取数据信息;

基于每个属性编码在标识码中的拼接位置,提取出区块链节点中存储的每个标识码中的至少一个属性编码;

基于每个标识码中提取出的至少一个属性编码,确定区块链节点中存储的每个标识码中携带的至少一个属性信息;

从多个标识码中确定出至少一个属性信息指示的数据与所述待读取数据信息指示的数据一致的标识码,并确定该标识码为与所述数据读取请求相匹配的唯一标识码。

根据本申请的一方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的数据存储方法的步骤。

根据本申请的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的数据读取方法的步骤。

本申请实施例提供的数据存储方法及装置、数据读取方法及装置、电子设备及存储介质,获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码;基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码;将所述唯一标识码写入对应的区块链节点中。相对应的,基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码;检测所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致;若所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

与现有技术相比,本申请能够通过待存储数据的哈希编码和属性信息进行双重加密和编码后,生成待存储数据的唯一标识码,并将唯一标识码存储在区块链节点中,这样,在接收到用户的数据读取请求时,可以通过数据读取请求中的待读取数据信息和区块链节点中存储的标识码中的属性信息匹配出唯一标识码,并在验证唯一标识码中的属性信息和哈希编码分别指示的数据一致后,才进行数据读取。这样,可以提高链上数据的可靠性,使用存储数据库的数据存储为主、区块链的数据存储为辅,来更好的实现数据的主从备份,还可以降低数据备份量和处理量,有效降低链上数据和数据库数据被篡改后无法探知的可能性,降低数据作弊的概率,有利于为后续的数据读取做好准备,也有助于提高数据读取的便利性、可靠性和准确性。

进一步的,可以根据不同属性信息的属性编码对应的编码长度和编码属性,设置属性编码在哈希编码中的拼接位置,从而使不同的数据的上传信息更加明确和简明,方便快捷,而且有助于在后续的数据读取过程中,可以更便捷和有针对性的获取不同信息,有助于提高数据信息的比对性和可靠性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种数据管理系统系统的架构示意图;

图2为本申请实施例提供的一种数据存储方法的流程示意图;

图3为本申请实施例提供的另一种数据存储方法的流程示意图;

图4为本申请实施例提供的一种数据读取方法的流程示意图;

请参阅图5至图6,图5为本申请实施例提供的一种数据存储装置的结构图之一;

图6为本申请实施例提供的一种数据存储装置的结构图之二;

图7为本申请实施例提供的一种数据存储装置的结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“待存储数据分别在存储数据库和区块链节点中的存储和读取”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕如何将用于存储到存储数据库的待存储数据,进行区块链节点的存储和待存储数据库中进行数据读取进行描述,但是应该理解,这仅是一个示例性实施例。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

本申请的一个方面涉及一种数据管理系统。该系统可以通过待存储数据的哈希编码和属性信息进行双重加密和编码后,生成待存储数据的唯一标识码,并将唯一标识码存储在区块链节点中,这样,在接收到用户的数据读取请求时,可以通过数据读取请求中的待读取数据信息和区块链节点中存储的标识码中的属性信息匹配出唯一标识码,并在验证唯一标识码中的属性信息和哈希编码分别指示的数据一致后,进行数据读取。

值得注意的是,在本申请提出申请之前,各行各业中每日均会产生大量的数据,数据呈量指数级的增长,随着大量数据的产生,数据的安全性也不断出现漏洞,由于数据量大,数据在存储后进行查询的复杂度和难度等也随之提高,数据在有意或者无意的被修改后,不易被察觉,数据的安全性受到较大影响。

然而,本申请提供的数据管理系统,可以提高链上数据的可靠性,使用存储数据库的数据存储为主、区块链的数据存储为辅,来更好的实现数据的主从备份,还可以降低数据备份量和处理量,有效降低链上数据和数据库数据被篡改后无法探知的可能性,降低数据作弊的概率,有利于为后续的数据读取做好准备,也有助于提高数据读取的便利性、可靠性和准确性。

图1为本申请实施例提供的一种数据管理系统系统的架构示意图。例如,数据管理系统可以是用于诸如出行(如公共出行、租赁出行等)、金融、教育等行业。数据管理系统可以包括网络110、电子设备120、电子设备130、用于传统数据存储的存储数据库140和用于区块链数据存储的区块链节点150中的一种或多种。

其中,电子设备120和电子设备130中的一者为用于提供服务的提供提供方终端,另一者为用于请求服务和接受服务的服务请求方终端。

在一些实施例中,电子设备120和电子设备130中均可以包括处理器。处理器可以处理与服务请求有关的信息和/或数据,以执行本申请中描述的一个或多个功能。此外,无论是电子设备120还是电子设备130,均可以包括存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行本申请中描述的各方法的步骤,例如下述的数据存储方法和数据读取方法。

在一些实施例中,处理器可以包括一个或多个处理核(例如,单核处理器(s)或多核处理器(s))。仅作为举例,处理器可以包括中央处理单元(centralprocessingunit,cpu)、专用集成电路(applicationspecificintegratedcircuit,asic)、专用指令集处理器(applicationspecificinstruction-setprocessor,asip)、图形处理单元(graphicsprocessingunit,gpu)、物理处理单元(physicsprocessingunit,ppu)、数字信号处理器(digitalsignalprocessor,dsp)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、可编程逻辑器件(programmablelogicdevice,pld)、控制器、微控制器单元、简化指令集计算机(reducedinstructionsetcomputing,risc)、或微处理器等,或其任意组合。

在一些实施例中,电子设备120和电子设备130对应的设备类型可以是移动设备,比如可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、或增强现实设备等,也可以是平板计算机、膝上型计算机、或机动车辆中的内置设备等。

在一些实施例中,存储数据库140和/或区块链节点150,可以连接到网络110以与数据管理系统中的一个或多个组件(例如,电子设备120,电子设备130等)通信。数据管理系统中的一个或多个组件可以经由网络110访问存储在存储数据库140和/或区块链节点150中的数据或指令。在一些实施例中,存储数据库140和/或区块链节点150可以直接连接到数据管理系统中的一个或多个组件。

下面结合上述图1示出的数据管理系统中描述的内容,分别对本申请实施例提供的数据存储方法和数据读取方法进行详细说明。

请同时参阅图2,图2为本申请实施例提供的一种数据存储方法的流程示意图,所述数据存储方法可以由数据管理系统中的电子设备120或者电子设备130中内置的一个或者多个处理器来执行,如图2中所述,具体执行过程为:

s201:获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码。

其中,所述待存储数据可以是上述数据管理系统,电子设备120和/或电子设备130中的产生的,用于存储到传统的存储数据库中以进行备份、存储等的业务数据等。

其中,所述哈希编码为所述待存储数据通过哈希算法计算得到的,与所述待存储数据相对应的编码。

其中,所述存储数据库可以是具有分布式数据架构的分布式数据库,也可以是传统的集中式的传统数据库,例如所有数据集中存储在一个存储位置的数据库。

示例性的,例如在公共出行领域,待存储数据可以为用户使用共享单车、共享电动车等的车辆的使用数据,例如订单数据、骑行数据等,可以用来存储和进行溯源的数据。

s202:基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码。

该步骤中,在获取到所述待存储数据,并且生成所述哈希编码后,可以就获取到的所述待存储数据进行分析,并可以根据分析结果进行信息提取,来确定所述待存储数据的至少一个属性信息,然后,使用所述哈希编码和所述至少一个属性信息,生成所述待存储数据的唯一标识码。

其中,所述属性信息包括以下信息中的至少一种:

所述存储数据库的数据库名称信息、所述待存储数据的数据名称信息、所述待存储数据在所述存储数据库中的数据位置信息和所述待存储数据的数据上传方信息。

此外,所述属性信息还可以包括数据上传时间、数据存储方信息、数据存储时间等信息。

具体的,基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码,可以是通过分析提取到所述待存储数据的至少一个属性信息后,使用预设的编码方式或者相似的符合要求的编码方式等,对所述至少一个属性信息进行编码处理,从而分别生成所述待存储数据的至少一个属性信息中每个属性信息对应的属性编码,然后根据每个属性编码的编码特性或者属性特性等,来确定每个属性编码在所述哈希编码中的拼接位置,接着,就可以将每个属性编码插入到所述哈希编码中对应的拼接位置,以将所述哈希编码和所有属性编码拼接得到所述待存储数据的唯一标识码。

鉴于保持编码的合理长度和数据的占用量,可以控制属性编码的编码长度,并可以将不同属性的属性信息拼接到哈希编码中的不同位置,以提高唯一标识码的唯一属性和增加被破解的难度。

因此,进一步的,确定每个属性编码在所述哈希编码中的拼接位置,由于不同的属性信息可以使用相同或者不同的编码方式,可以对编码后得到的各属性编码进行识别,以此先分别获取每个属性编码的编码长度和编码属性,然后基于每个属性编码的编码长度和编码属性,确定每个属性编码在所述哈希编码中的拼接位置。

这样,在获取哈希编码后,将哈希编码再次加工,通过拼接属性信息度对应的属性编码,得到待存储数据的唯一标识码,可以增加待存储数据的保密性和被篡改后的识别能力,使得待存储数据的不同上传方的信息更加明确,在后续链上数据使用时,例如数据别用于商业用途时,可以更好的标识数据生成方,更好的定义责任,便于信息溯源。

进一步的,根据不同属性信息的属性编码对应的编码长度和编码属性,设置属性编码在哈希编码中的拼接位置,从而使不同的数据的上传信息更加明确和简明,方便快捷,而且有助于在后续的数据读取过程中,可以更便捷和有针对性的获取不同信息,有助于提高数据信息的比对性和可靠性。

s203:将所述唯一标识码写入对应的区块链节点中。

该步骤中,在生成所述唯一标识码后,可以将所述唯一标识码作为上链数据,将所述唯一标识码写入对应的区块链节点中进行保存。

其中,将所述唯一标识码写入对应的区块链节点中,可以是将所述唯一标识码写入一个区块链节点中,也可以是写入多个区块链节点中。

本申请实施例提供的数据存储方法,获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码;基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码;将所述唯一标识码写入对应的区块链节点中。

与现有技术相比,本申请能够通过待存储数据的哈希编码和属性信息进行双重加密和编码后,生成待存储数据的唯一标识码,并将唯一标识码存储在区块链节点中。这样,可以提高链上数据的可靠性,使用存储数据库的数据存储为主、区块链的数据存储为辅,来更好的实现数据的主从备份,还可以降低数据备份量和处理量,有效降低链上数据和数据库数据被篡改后无法探知的可能性,降低数据作弊的概率。

请同时参阅图3,图3为本申请实施例提供的另一种数据存储方法的流程示意图,所述数据存储方法可以由数据管理系统中的电子设备120或者电子设备130中内置的一个或者多个处理器来执行,如图3中所述,具体执行过程为:

s301:获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码。

s302:基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码。

s303:将所述唯一标识码写入对应的区块链节点中。

其中,步骤s301至步骤s303的描述可以参照步骤s201至步骤s203的描述,并且可以达到相同的技术效果,在此不再赘述。

s304:采用所述唯一标识码作为所述待存储数据的数据主键的方式,或者采用所述唯一标识码作为所述待存储数据的查询关键字的方式,将所述待存储数据和所述唯一标识码关联存储至存储数据库中。

该步骤中,在生成所述唯一标识码之后,可以将所述待存储数据存储至存储数据库中,具体的,为了便于后续的数据查询和数据读取,减少处理时间,提高数据使用的便捷性等原因,可以将所述唯一标识码作为所述待存储数据的数据主键,即采用所述唯一标识码作为所述待存储数据的数据主键的方式,或者是将所述唯一标识码作为所述待存储数据的查询关键字,即采用所述唯一标识码作为所述待存储数据的查询关键字的方式,来将所述待存储数据和所述唯一标识码关联处理,例如将所述待存储数据和所述唯一标识码进行绑定,并存储至存储数据库中。

这样,将唯一标识码和待存储数据关联存储,可以方便数据的查询和数据读取,而且可以增加数据被篡改的难度,降低数据被篡改的风险。

其中,步骤s303步骤s304的顺序不做任何限定,在本实施例中,步骤s304是位于步骤s303之后进行的,即先将相应数据写入区块链节点中,再将相应数据写入存储数据库中,但并不局限于此,本实施例仅为举例说明,在其他实施例中,也可以是步骤s304位于步骤s303之前进行的,即先将相应数据写入存储数据库中,再将相应数据写入区块链节点中,也可是步骤s303和步骤s304是同时进行,即同时将相应的数据写入区块链节点和将相应的数据写入存储数据库,在将数据写入存储数据库和区块链节点中时,仅需两者异步进行,即两者的写入无需做任何关联即可,例如写入速度、写入步调等无需保持一致,这样可以降低数据写入的要求,提高数据写入的便捷性,而对于两者的写入顺序不做任何限定。

在本申请的一些实施例中,在将相应数据写入存储数据库和将相应数据写入区块链节点中后,即在s303和s304之后,所述数据存储方法包括:

检测所述待存储数据是否成功写入存储数据库中,以及所述唯一标识码是否成功写入对应的区块链节点中;若所述待存储数据写入存储数据库失败,和/或所述唯一标识码写入对应的区块链节点失败,则将已经写入所述存储数据库中的数据删除,并将已经写入所述区块链节点中的标识码删除;重新执行所述获取用于存储到数据库中的待存储数据,并生成所述待存储数据的哈希编码的步骤。

该步骤中,在数据写入完成后,可以分别对所述区块链节点和所述存储数据库进行检测,来检测所述待存储数据是否成功写入存储数据库中,以及所述唯一标识码是否成功写入对应的区块链节点中,如果检测到所述待存储数据写入存储数据库失败,和/或所述唯一标识码写入对应的区块链节点失败,可以对数据写入进行回归操作,即将已经写入所述存储数据库中的数据删除,例如已经写入所述存储数据库中的全部或者部分待存储数据,以及与待存储数据关联的,已经写入所述存储数据库中的全部或者部分唯一标识码,然后重新执行所述获取用于存储到数据库中的待存储数据,并生成所述待存储数据的哈希编码的步骤,以及后续的步骤,以分别重新进行所述存储数据库的数据写入和所述区块链节点的数据写入。

这样,设置数据回滚机制,可以有效避免因为数据写入过程中的干扰等导致的数据写入失败,保证数据写入的完整性。

进一步的,对于检测所述待存储数据是否成功写入存储数据库,可以通过以下方式确定所述待存储数据写入存储数据库失败:

在将所述待存储数据写入存储数据库的过程中,若接收到所述待存储数据的写入错误反馈信息,确定所述待存储数据写入存储数据库失败;或者,在将所述待存储数据写入存储数据库完毕后,若在所述存储数据库中无法查询到所述待存储数据,或者查询到的数据与所述待存储数据不一致,确定所述待存储数据写入存储数据库失败。

进一步的,对于检测所述唯一标识码是否成功写入对应的区块链节点中,可以通过以下方式确定所述唯一标识码写入区块链节点失败:

在将所述唯一标识码写入区块链节点的过程中,若接收到所述唯一标识码的写入错误反馈信息,确定所述唯一标识码写入区块链节点失败;或者,在将所述唯一标识码写入区块链节点完毕后,若在所述区块链节点中无法查询到所述唯一标识码,或者查询到的编码与所述唯一标识码不一致,确定所述唯一标识码写入区块链节点失败。

其中,在本实施中,上述对于存储数据库和区块链节点的数据写入,虽然描述的是在数据写入的过程中,接收写入错误反馈信息,其除了可以实时显示并通知用户之外,还可以是在数据写入的过程中接收写入错误反馈信息,在数据写入之后一并显示并通知用户。

示例性的,无论是写入存储数据库中的数据,还是写入区块链节点中的数据,均可以设置校验机制,例如可以在数据上传的过程中设置反馈机制,在数据写入的过程中,可以周期性的或者实时性的接收存储数据库以及区块链节点的反馈,例如周期性的,存储数据库和区块链节点可以反馈数据写入成功的写入成功反馈信息或者数据写入错误的写入错误反馈信息,如果接收到存储数据库和/或区块链节点的写入错误反馈信息,就可以知道所述待存储数据写入存储数据库失败。

或者可以在数据上传结束后,对写入存储数据库和区块链节点中的数据进行查询,如果无法查到或者查询到的数据不一致,即可以知道所述待存储数据写入存储数据库失败。

在本申请的一些实施例中,在将相应数据写入存储数据库和将相应数据写入区块链节点中后,即在s303和s304之后,所述数据存储方法包括:

从所述区块链节点中获取到所述唯一标识码;通过所述唯一标识码在所述存储数据库中进行数据匹配;若匹配到的数据与所述待存储数据不一致,或者无法从所述存储数据库中匹配到数据,确定所述存储数据库中的所述待存储数据被篡改。

该步骤中,为了保证可以及时的得知存储数据库中存储的待存储数据是否被篡改,可以进行周期性的数据校验,具体的,可以周期性的获取所述区块链节点中存储的所述唯一标识码,然后使用所述唯一标识码在所述存储数据库中进行数据匹配,如果从所述存储数据库中匹配到的数据与所述待存储数据不一致,亦或者是无法从所述存储数据库中匹配到数据的话,那么确定所述存储数据库中存储的所述待存储数据被篡改,进而可以向管理者发出数据被篡改的提示信息。

本申请实施例提供的数据存储方法,获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码;基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码;将所述唯一标识码写入对应的区块链节点中;采用所述唯一标识码作为所述待存储数据的数据主键的方式,或者采用所述唯一标识码作为所述待存储数据的查询关键字的方式,将所述待存储数据和所述唯一标识码关联存储至存储数据库中。

与现有技术相比,本申请能够通过待存储数据的哈希编码和属性信息进行双重加密和编码后,生成待存储数据的唯一标识码,将唯一标识码存储在区块链节点中,并将待存储数据和唯一标识码关联存储到存储数据库中。这样,可以提高数据上链和数据存储的可靠性,使用存储数据库的数据存储为主、区块链的数据存储为辅,来更好的实现数据的主从备份,还可以降低数据备份量和处理量,有效降低链上数据和数据库数据被篡改后无法探知的可能性,降低数据作弊的概率。

相应的,请参阅图4,图4为本申请实施例提供的一种数据读取方法的流程示意图,所述数据读取方法可以由数据管理系统中的电子设备120或者电子设备130中内置的一个或者多个处理器来执行,如图4中所述,具体执行过程为:

s401:基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码。

该步骤中,在接收到用户输入的数据读取请求后,可以对所述数据读取请求进行解析,从而确定出所述数据读取请求中携带的待读取数据信息,并且可以从所述区块链节点中,获取存储的多个标识码,并确定出每个标识码中携带的上链数据的至少一个属性信息,然后使用所述待读取数据信息与多个所述至少一个属性信息进行匹配,从而确定与所述数据读取请求相匹配的一个所述至少一个属性信息,并确定出该至少一个属性信息所属的待读取数据的唯一标识码,即可以确定出与所述数据读取请求相匹配的待读取数据的唯一标识码。

其中,每个标识码中携带的至少一个属性信息,可以是通过解析出每个标识码中的至少一个属性编码,从而通过反向解码等方式,确定出每个属性编码对应的属性信息,从而可以得到每个标识码中的至少一个属性信息。

具体的,可以是在接收到用户的数据读取请求后,先从接收到的用户的数据读取请求中确定出待读取数据信息,然后获取预设的编码规则,确定出编码规则指示的每个属性编码在标识码中的拼接位置,基于每个属性编码在标识码中的拼接位置,对区块链节点中存储的每个标识码进行部分编码的提取,从而提取出区块链节点中存储的每个标识码中的至少一个属性编码,接着,可以基于每个标识码中提取出的至少一个属性编码,通过解码等方式,确定区块链节点中存储的每个标识码中携带的至少一个属性信息,最后可以是用每个标识码对应的至少一个属性信息与所述数据读取请求进行匹配,从而从多个标识码中确定出至少一个属性信息指示的数据与所述待读取数据信息指示的数据一致的标识码,并确定该标识码为与所述数据读取请求相匹配的唯一标识码。

这样,通过对双重编码后的标识码进行解析得到的属性信息,可以实现待读取数据的第一次校验,从而准确的确定出用户所需要读取的数据对应的,存储在区块链节点中的唯一标识码,相较于传统的单一信息的比对和匹配,可以保证信息匹配的准确性,并且提高信息匹配的效率,有效并直接的过滤出干扰信息。

s402:检测所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致。

该步骤中,在确定出所述唯一标识码之后,可以通过拆解等对所述唯一标识码记进行信息提取,以获取到所述唯一标识码中携带的哈希编码和至少一个属性信息,然后对所述唯一标识码中携带的哈希编码指示的数据与所述唯一标识码中携带的至少一个属性信息指示的数据进行比较,从而检测提取出的哈希编码所指示的数据与至少一个属性信息指示的数据是否一致。

这样,通过对唯一标识码中的至少一个属性信息和哈希编码之间一致性检测,可以实现待读取数据的第二次校验,有利于保证后续读取数据的准确性。

s403:若所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

该步骤中,如果通过比对检测,检测出所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致的话,那么可以认为确定出的所述唯一标识码是准确的,没有被篡改,那么就可以使用所述唯一标识码进行数据读取,具体的,可以是通过所述唯一标识码中的至少一个属性信息,确定出该至少一个属性信息指示的存储数据库,然后从所述存储数据库中读取出与所述哈希编码相匹配的待读取数据。

具体的,鉴于存储在所述存储数据库中的数据,在数据存储时,是将数据与对应的唯一标识码关联存储在所述存储数据库中的,因此,在进行数据读取时,可以通过存储的数据对应的唯一标识码中的哈希编码与确定出的唯一标识码中的哈希编码之间的匹配,来初步筛选数据,如果一致的话,可以进一步的在对存储的数据对应的唯一标识码中的至少一个属性编码与确定出的唯一标识码中的至少一个属性编码之间的匹配,来进行二次确定,从而可以准确读取出待读取数据。

本申请提供实施例提供的数据读取方法,基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码;检测所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致;若所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

与现有技术相比,本申请在接收到用户的数据读取请求时,可以通过数据读取请求中的待读取数据信息和区块链节点中存储的标识码中的属性信息匹配出唯一标识码,并在验证唯一标识码中的属性信息和哈希编码分别指示的数据一致后,才进行数据读取。这样,通过多次的信息校验,在上链数据的可靠性高的情况下,可以有效识别链上数据和数据库数据的被篡改情况,降低数据作弊的概率,也有助于提高数据读取的便利性、可靠性和准确性。

基于同一发明构思,本申请实施例中还提供了与数据存储方法对应的数据存储装置,由于本申请实施例中的数据存储装置解决问题的原理与本申请实施例上述的数据存储方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

请参阅图5至图6,图5为本申请实施例提供的一种数据存储装置的结构图之一,图6为本申请实施例提供的一种数据存储装置的结构图之二。如图5中所示,所述数据存储装置500包括:

哈希编码模块510,用于获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码。

标识码编码模块520,用于基于所述哈希编码模块510生成的所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码。

区块链存储模块530,用于将所述标识码编码模块520生成的所述唯一标识码写入对应的区块链节点中。

在本申请的一些实施例中,所述标识码编码模块520具体用于:

分别生成所述待存储数据的至少一个属性信息中每个属性信息对应的属性编码;

确定每个属性编码在所述哈希编码中的拼接位置;

将每个属性编码插入到所述哈希编码中对应的拼接位置,以将所述哈希编码和所有属性编码拼接得到所述待存储数据的唯一标识码。

在本申请的一些实施例中,所述标识码编码模块520还用于:

分别获取每个属性编码的编码长度和编码属性;

基于每个属性编码的编码长度和编码属性,确定每个属性编码在所述哈希编码中的拼接位置。

在上述实施例中,所述属性信息包括以下信息中的至少一种:

所述存储数据库的数据库名称信息、所述待存储数据的数据名称信息、所述待存储数据在所述存储数据库中的数据位置信息和所述待存储数据的数据上传方信息。

在本申请的一些实施例中,如图6中所示,所述数据存储装置500还包括:

上链数据存储模块540,用于采用所述唯一标识码作为所述待存储数据的数据主键的方式,或者采用所述唯一标识码作为所述待存储数据的查询关键字的方式,将所述待存储数据和所述唯一标识码关联存储至存储数据库中。

在本申请的一些实施例中,如图6中所示,所述数据存储装置500还包括写入检测模块550,所述写入检测模块550用于:

检测所述待存储数据是否成功写入存储数据库中,以及所述唯一标识码是否成功写入对应的区块链节点中;

若所述待存储数据写入存储数据库失败,和/或所述唯一标识码写入对应的区块链节点失败,则将已经写入所述存储数据库中的数据删除,并将已经写入所述区块链节点中的标识码删除;

重新执行所述获取用于存储到数据库中的待存储数据,并生成所述待存储数据的哈希编码的步骤。

在本申请的一些实施例中,通过以下方式确定所述待存储数据写入存储数据库失败:

在将所述待存储数据写入存储数据库的过程中,若接收到所述待存储数据的写入错误反馈信息,确定所述待存储数据写入存储数据库失败;或者

在将所述待存储数据写入存储数据库完毕后,若在所述存储数据库中无法查询到所述待存储数据,或者查询到的数据与所述待存储数据不一致,确定所述待存储数据写入存储数据库失败。

在本申请的一些实施例中,通过以下方式确定所述唯一标识码写入区块链节点失败:

在将所述唯一标识码写入区块链节点的过程中,若接收到所述唯一标识码的写入错误反馈信息,确定所述唯一标识码写入区块链节点失败;或者

在将所述唯一标识码写入区块链节点完毕后,若在所述区块链节点中无法查询到所述唯一标识码,或者查询到的编码与所述唯一标识码不一致,确定所述唯一标识码写入区块链节点失败。

在本申请的一些实施例中,如图6中所示,所述数据存储装置还包括数据校验模块560,所述数据校验模块560用于:

从所述区块链节点中获取到所述唯一标识码;

通过所述唯一标识码在所述存储数据库中进行数据匹配;

若匹配到的数据与所述待存储数据不一致,或者无法从所述存储数据库中匹配到数据,确定所述存储数据库中的所述待存储数据被篡改。

本申请实施例提供的数据存储装置,获取用于存储到存储数据库中的待存储数据,并生成所述待存储数据的哈希编码;基于所述哈希编码和所述待存储数据的至少一个属性信息,生成所述待存储数据的唯一标识码;将所述唯一标识码写入对应的区块链节点中。

与现有技术相比,本申请能够通过待存储数据的哈希编码和属性信息进行双重加密和编码后,生成待存储数据的唯一标识码,并将唯一标识码存储在区块链节点中。这样,可以提高链上数据的可靠性,使用存储数据库的数据存储为主、区块链的数据存储为辅,来更好的实现数据的主从备份,还可以降低数据备份量和处理量,有效降低链上数据和数据库数据被篡改后无法探知的可能性,降低数据作弊的概率。

基于同一发明构思,本申请实施例中还提供了与数据读取方法对应的数据读取装置,由于本申请实施例中的数据读取装置解决问题的原理与本申请实施例上述的数据读取方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

请参阅图7,图7为本申请实施例提供的一种数据存储装置的结构图。如图7中所示,所述数据读取装置700包括:

标识码确定模块710,用于基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码;

数据检测模块720,用于检测所述标识码确定模块710确定的所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致;

数据读取模块730,用于若所述数据检测模块720检测到所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

在本申请的一些实施例中,所述标识码确定模块710具体用于:

从接收到的用户的数据读取请求中确定出待读取数据信息;

基于每个属性编码在标识码中的拼接位置,提取出区块链节点中存储的每个标识码中的至少一个属性编码;

基于每个标识码中提取出的至少一个属性编码,确定区块链节点中存储的每个标识码中携带的至少一个属性信息;

从多个标识码中确定出至少一个属性信息指示的数据与所述待读取数据信息指示的数据一致的标识码,并确定该标识码为与所述数据读取请求相匹配的唯一标识码。

本申请提供实施例提供的数据读取装置,基于接收到的用户的数据读取请求中携带的待读取数据信息,以及区块链节点中存储的每个标识码中携带的至少一个属性信息,确定与所述数据读取请求相匹配的待读取数据的唯一标识码;检测所述唯一标识码中的至少一个属性信息指示的数据与所述唯一标识码中哈希编码指示的数据是否一致;若所述唯一标识码中的至少一个属性信息指示的数据信息与所述唯一标识码中哈希编码指示的数据信息一致,从所述唯一标识码中的至少一个属性信息指示的存储数据库中读取出与所述哈希编码相匹配的待读取数据。

与现有技术相比,本申请在接收到用户的数据读取请求时,可以通过数据读取请求中的待读取数据信息和区块链节点中存储的标识码中的属性信息匹配出唯一标识码,并在验证唯一标识码中的属性信息和哈希编码分别指示的数据一致后,才进行数据读取。这样,通过多次的信息校验,在上链数据的可靠性高的情况下,可以有效识别链上数据和数据库数据的被篡改情况,降低数据作弊的概率,也有助于提高数据读取的便利性、可靠性和准确性。

根据本申请的一方面,还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的数据存储方法的步骤。

根据本申请的另一方面,还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的数据读取方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

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

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

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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