CN108769171B - 分布式存储的副本保持验证方法、装置、设备及存储介质 - Google Patents

分布式存储的副本保持验证方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN108769171B
CN108769171B CN201810480502.7A CN201810480502A CN108769171B CN 108769171 B CN108769171 B CN 108769171B CN 201810480502 A CN201810480502 A CN 201810480502A CN 108769171 B CN108769171 B CN 108769171B
Authority
CN
China
Prior art keywords
verification
data
copy
node
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810480502.7A
Other languages
English (en)
Other versions
CN108769171A (zh
Inventor
荆博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Priority to CN201810480502.7A priority Critical patent/CN108769171B/zh
Publication of CN108769171A publication Critical patent/CN108769171A/zh
Application granted granted Critical
Publication of CN108769171B publication Critical patent/CN108769171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种分布式存储的副本保持验证方法、装置、设备及存储介质,所述方法包括:向存储有数据副本的分布式存储节点发送副本保持验证请求,副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据数据片段确定对应的验证标识;接收所述节点反馈的副本保持验证结果,根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。本发明实施例的技术方案便于用户检查分布式存储节点中是否正确存储了数据副本,以提高数据存储的可靠性。

Description

分布式存储的副本保持验证方法、装置、设备及存储介质
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种分布式存储的副本保持验证方法、装置、设备及存储介质。
背景技术
分布式存储技术可以通过网络使用企业中的每台设备上的存储空间,并将这些分散的存储资源构成一个虚拟的存储设备,从而实现将数据进行分散存储。因此,分布式存储技术中的文件副本需要存储在多个节点上来保证文件的可用性,其可以通过存储平台发布存储任务,以招募多个存储节点(比如10个节点)存储同一份数据。
发明人在实现本发明的过程中,发现现有的分布式存储技术存在如下缺陷:
存储平台所招募的存储节点有可能串通起来一起竞标,并拿出具有竞争力的押金来保证中标。但是实际上,存储节点只存储了一个数据备份,且所有的存储节点可以复用一个存储证明,以获得多份存储收益。由此可见,现有的分布式存储技术如果复用存储证明,则会大大降低原始数据被成功存储的概率。
发明内容
本发明实施例提供一种分布式存储的副本保持验证方法、装置、设备及存储介质,便于用户检查分布式存储节点中是否正确存储了数据副本,以提高数据存储的可靠性。
第一方面,本发明实施例提供了一种分布式存储的副本保持验证方法,应用于验证节点,所述方法包括:
向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识;
根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
第二方面,本发明实施例还提供了一种分布式存储的副本保持验证方法,应用于原始存储节点,所述方法包括:
向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识;
获取区块生成节点反馈的副本保持验证结果。
第三方面,本发明实施例还提供了一种分布式存储的副本保持验证方法,应用于副本存储节点,所述方法包括:
获取待存储的数据副本进行存储;
接收副本保持验证请求;
根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段;
根据所述数据片段确定对应的验证标识;
将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储。
第四方面,本发明实施例还提供了一种分布式存储的副本保持验证装置,配置于验证节点,所述装置包括:
请求发送模块,用于向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
结果接收模块,用于接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识;
存储验证模块,用于根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
第五方面,本发明实施例还提供了一种分布式存储的副本保持验证装置,配置于原始存储节点,所述装置包括:
信息确定模块,用于向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
合约发送模块,用于向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识;
结果获取模块,用于获取区块生成节点反馈的副本保持验证结果。
第六方面,本发明实施例还提供了一种分布式存储的副本保持验证装置,配置于副本存储节点,所述装置包括:
副本获取模块,用于获取待存储的数据副本进行存储;
请求接收模块,用于接收副本保持验证请求;
数据提取模块,用于根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段;
标识确定模块,用于根据所述数据片段确定对应的验证标识;
标识反馈模块,用于将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储。
第七方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意所述的分布式存储的副本保持验证方法。
第八方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第二方面中任意所述的分布式存储的副本保持验证方法。
第九方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第三方面中任意所述的分布式存储的副本保持验证方法。
第十方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意所述的分布式存储的副本保持验证方法。
第十一方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面中任意所述的分布式存储的副本保持验证方法。
第十二方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现第三方面中任意所述的分布式存储的副本保持验证方法。
本发明实施例通过向存储有数据副本的分布式存储节点发送副本保持验证请求,接收各节点反馈的副本保持验证结果,即验证标识。然后将原始记录的验证标识和接收的验证标识进行匹配验证,根据验证结果判断各节点是否对数据副本进行了有效存储,验证标识是根据实际存储的副本来确定的,能够提供正确的验证标识的节点,表明对数据副本保持了有效的存储,由此解决了现有分布式存储技术存储数据存在的可靠性较低的问题,便于用户检查分布式存储节点中是否正确存储了数据副本,以提高数据存储的可靠性。
附图说明
图1是本发明实施例一提供的一种分布式存储的副本保持验证方法的流程图;
图2a是本发明实施例二所提供的分布式存储的副本保持验证方法的流程图;
图2b是本发明实施例二所涉及的根据验证片段和预设随机时间戳形成的梅克尔树的结构示意图;
图3是本发明实施例三提供的一种分布式存储的副本保持验证方法的流程图;
图4是本发明实施例四提供的一种分布式存储的副本保持验证方法的流程图;
图5是本发明实施例五提供的一种分布式存储的副本保持验证装置的示意图;
图6是本发明实施例六提供的一种分布式存储的副本保持验证装置的示意图;
图7是本发明实施例七提供的一种分布式存储的副本保持验证装置的示意图;
图8为本发明实施例八提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种分布式存储的副本保持验证方法的流程图,本实施例可适用于验证存储节点是否对数据副本进行有效存储的情况,该方法可以由分布式存储的副本保持验证装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中,该计算机设备是能够对存储节点进行验证的设备,可以是提出文件存储需求的原始存储节点,也可以是专门用于进行验证操作的第三方验证节点,其可以对副本存储过程监控,验证结果可反馈给原始存储节点。如图1所示,该方法包括如下操作:
S110、向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识。
其中,数据副本为原始数据经拆分和组合处理后所形成的部分数据,数据副本的数量大于或等于2,可以预先设定,也可以根据实际情况,例如原始数据的重要性等级以及存储节点的稳定性情况进行动态调整。每个数据副本会存储于不同的分布式存储节点中。分布式存储节点是各自独立工作的节点,能够基于分布式存储算法进行调度安排。副本保持验证请求为向存储数据副本的分布式存储节点发送的,用于验证该节点是否存储了相应的数据副本的请求。验证片段至少包括数据副本中预先指定的设定位置处对应的数据片段,用于生成对应的验证标识。其中,数据片段即为数据副本的部分数据,可以是连续的部分数据,也可以是非连续的部分数据,本发明实施例对此并不进行限制。验证标识为根据数据片段的内容所形成的用于验证数据片段有效性的标识,例如数据片段对应的哈希值或经其他加密算法针对数据片段形成的验证数据等。
在本发明实施例中,向各分布式存储节点验证其是否真正存储了对应的数据副本时,需要向各分布式存储节点发送副本保持验证请求。在副本保持验证请求信息中包括了用于获取验证标识对应的验证片段的存储位置,以便于各分布式存储节点根据存储位置提取数据副本中对应的数据片段,并根据提取的数据片段生成对应的验证标识。
需要说明的是,为了实现对各分布式存储节点的持续性验证,可以设定验证周期,即每隔一段时间就会发送副本保持验证请求。其中,验证周期的时间可以是固定值,如每隔2天或7天等,也可以是随机值,如隔2天发送后又隔3天发送。本发明实施例并不对验证周期的时间间隔进行限制,只要能够完成对各分布式存储节点的持续性验证即可。同时,副本保持验证请求可以同时向多个分布式存储节点发送,也可以按照设定的时间规律或者随机向各分布式存储节点发送。每个分布式存储节点中的验证片段可以相同或不同,每次进行验证的验证片段可以是固定不变的,也可以是动态变化的。
在本发明的一个可选实施例中,所述数据副本为数据分片,原始的待存储文件对应多个数据分组,每个数据分片中包括部分数据分组,且每个数据分组添加至至少两个数据分片中;所述验证片段为所述数据分片中至少一个数据分组内的数据片段。
其中,原始的待存储文件可以是文本、图片、视频、音频以及其他类型(如zip格式的压缩文件等)的可存储的数据文件,本发明实施例并不对待存储文件的类型进行限定。数据分组可以是待存储文件的其中一部分数据。数据副本,即数据分片由部分数据分组组成,即每个数据分片并不需要包括所有的数据分组。其中,各个数据分片中所包括的数据分组的数量可以相同,也可以不同,例如,数据分片包括的数据分组数量可以是2个、5个、8个或者更多,本发明实施例并不对数据分片包括的数据分组的数量进行限定。验证片段可以是数据分片中包括的数据分组内设定位置处的数据片段,可以在一个或多个数据分组内各自选择一个或多个数据片段。
需要说明的是,为了提高数据存储的安全性,可以将全部的数据分组形成多个数据分片,并且能够保证每个数据分组都可以添加到至少两个数据分片中,即保证每个数据分组至少形成了两个存储副本。在本发明实施例中,每个数据分片都可以由部分数据分组集合按照随机的顺序组成,再加上数据分组是冗余存储的,因此可以通过技术手段保证每个数据分片都不会完全一致,因而每个分布式存储节点存储的数据分片都不相同。所以,各分布式存储节点之间不可能复用一个存储证明。
S120、接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识。
在本发明实施例中,各分布式存储节点接收到副本保持验证请求后,可以针对副本保持验证请求中包括的验证片段的相关信息,即存储位置,对存储的数据副本进行数据片段的提取,并根据提取的数据片段生成对应的验证标识,然后将生成的验证标识进行反馈。
S130、根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
其中,原始记录的验证标识是在将数据副本传输至分布式存储节点进行存储之前,提前根据验证片段包括的数据片段形成的验证标识,作为验证依据对接收到的验证标识进行验证。具体的,如果原始记录的验证标识语接收的验证标识一致,表明验证通过,节点对数据副本进行了有效存储;否则,表明验证未通过,节点未对数据副本进行有效存储。
在本发明的一个可选实施例中,所述验证标识为所述数据片段的哈希值;或所述验证标识为所述数据片段和预设随机时间戳组合的哈希值,其中,所述副本保持验证请求中还包括所述预设随机时间戳。
其中,预设随机时间戳可以是随机生成或按照设定的生成规律的唯一地标识某一刻的时间的字符序列。随机时间戳与数据片段组成的字符序列,共同构成验证片段。随机时间戳是在确定数据片段时确定的,或者,随机时间戳也可以在每次验证时确定,与数据片段组成不同的验证片段。
在本发明实施例中,可以将验证片段对应的哈希值作为验证标识。为了进一步提高验证标识的可靠性,还可以在验证片段的基础上,与预设随机时间戳进行组合以形成对应的哈希值。因为每个数据副本不同,所以其对应的验证片段也不同,再加上时间戳的字符序列,可以保证每个数据副本的所产生的验证标识具有严格的唯一性,从而避免各个分布式存储节点复用相同的存储证明。需要说明的是,当需要采用验证片段和时间戳的组合形成验证标识时,向分布式存储节点发送的副本保持验证请求中需要包括预设随机时间戳信息,以使分布式存储节点根据提取的验证片段和预设随机时间戳信息生成相应的验证标识。
当然,本领域技术人员还可以根据实际需求,在本技术方案的技术背景下,建立其他生成具有唯一性验证标识的方法,本发明实施例对此并不进行限制。
本发明实施例通过向存储有数据副本的分布式存储节点发送副本保持验证请求,接收各节点反馈的副本保持验证结果,即验证标识。若各节点存储的数据副本并不相同,则各节点反馈的验证标识也不尽相同。然后将原始记录的验证标识和接收的验证标识进行匹配验证,根据验证结果判断各节点是否对数据副本进行了有效存储,验证标识是根据实际存储的副本来确定的,能够提供正确的验证标识的节点,表明对数据副本保持了有效的存储,由此解决了现有分布式存储技术存储数据存在的可靠性较低的问题,便于用户检查分布式存储节点中是否正确存储了数据副本,以提高数据存储的可靠性。
实施例二
本发明实施例所提供的分布式存储的副本保持验证方法,可以适用于各种分布式网络进行数据存储,本实施例中,优选是采用区块链网络对数据副本进行分布式存储。区块链系统一般都包括多个节点,可独立工作,一方面是可独立作为有存储需求的节点来进行存储前准备,另一方面也可以作为一个存储节点接受其他节点请求的存储任务。区块链系统是一个去中心化的网络,可以基于共识机制等协议进行协同工作。
图2a是本发明实施例二所提供的分布式存储的副本保持验证方法的流程图,如图2a所示,该方法包括:
S210、在区块链中的区块内查找需要进行副本保持验证的智能合约。
其中,智能合约相当于一个电子协议合同,规定了原始存储节点和副本存储节点,同时还可以包括数据副本存储的开始时间、结束时间以及原始存储节点向副本存储节点支付的租金等。其中,原始存储节点可以称为租赁节点,用于上传需要存储的原始数据,也即需要向其他节点请求租赁存储空间的节点。当一个节点有租赁需求(即原始数据存储需求)时,可以在区块链网络中进行广播。此时,它成为一个租赁候选节点,当智能合约达成后,成为租赁节点。副本存储节点可以是区块链网络中用于存储数据副本的节点,也可以称为承租节点。当一个节点想利用自身的私人存储空间为其它节点存储数据时,可以在区块链网络中进行广播。此时,它成为一个承租候选节点,当智能合约达成后,成为承租节点。需要说明的是,确定承租节点的过程可以是线下协商过程,也可以是在区块链网络中发布体现存储空间租赁过程的智能合约,应约的节点即为承租节点。确定承租节点后,租赁节点将数据分片传输给承租节点进行存储。在智能合约执行期间,每个承租节点需要持续在区块链网络中写入存储证明数据,以证明该承租节点正在线上提供存储服务。
在本发明实施例中,当分布式存储的副本保持验证方法应用于区块链网络时,可以将区块生成节点作为验证节点,用于创建、维护和执行智能合约。在当前智能合约执行的期间内,区块生成节点可以定时或不定时的判断每个承租节点是否在合约期内成功的完成了存储任务。因此,区块生成节点首先需要在区块内查找需要进行副本保持验证的智能合约,并依据查找到的智能合约进行持续性地判断。
在本发明的一个可选实施例中,在区块链中的区块内查找需要进行副本保持验证的智能合约包括:
在区块链的区块中查询在执行过程中有副本保持监测需求的智能合约;和/或,在区块链的区块中查询合约到期的智能合约,作为有副本保持验证需求的智能合约。
需要说明的是,在区块链网络中可以存在两种状态的智能合约,即未到期的和已到期的智能合约。对于未到期的智能合约,只查询其有副本保持监测需求的智能合约,对于已到期的智能合约,直接将其作为有副本保持验证需求的智能合约。区块生成节点可以对到期智能合约中的各个承租节点是否总是完成了存储任务进行判断。
S220、根据查找到的智能合约中的副本存储节点,以及验证片段的存储位置,向存储有数据副本的节点发送副本保持验证请求。
相应的,在查找到满足要求的智能合约后,区块生成节点可以接收租赁节点发送的验证片段在各承租节点中存储的数据分片中的存储位置(可能还包括预设随机时间戳)。区块生成节点将验证片段的存储位置(或存储位置和随机时间戳的组合)整理形成副本保持验证请求,并发送给承租节点,以要求承租节点进行上报反馈。
S230、接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识。
S240、将从副本存储节点接收的验证标识与智能合约中存储的验证标识进行比对,以验证所述节点是否对数据副本进行有效存储。
在本发明实施例中,可以将原始记录的验证标识存储在智能合约中,以待区块生成节点查询到有副本保持验证需求的智能合约后,直接将智能合约中存储的验证标识作为验证依据,对智能合约中的承租节点是否进行了数据副本的有效存储进行验证。
在本发明的一个可选实施例中,根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储,还可以包括:将从副本存储节点接收的验证标识发送给原始存储节点,以通知原始存储节点对原始记录的验证标识和接收的验证标识进行比对,以验证所述节点是否对数据副本进行有效存储。
需要说明的是,在本发明实施例中,除了可以让区块生成节点验证承租节点是否对数据副本进行了有效存储,还可以通过智能合约中规定的租赁节点验证承租节点是否对数据副本进行了有效存储。此时,可以由租赁节点本地存储原始记录的验证标识,当进行验证时,区块生成节点将承租节点发送的验证标识发送给对应的承租节点,以使租赁节点根据原始记录的验证标识和接收的验证标识进行匹配验证,进而确定承租节点是否对数据副本进行了有效存储。
相应的,将从副本存储节点接收的验证标识与智能合约中存储的验证标识进行比对,具体可以包括以下步骤:
S241、将从副本存储节点接收的梅克尔树的根值作为接收到的验证标识。
其中,梅克尔树可以是依据承租节点存储的数据分片中所包括的验证片段(或验证片段与预设随机时间戳的组合)计算所得各个哈希值为基础建立的。
在本发明实施例中,可以将原始数据划分为多个数据分组,同时将部分数据分组形成多个数据分片(即数据副本),保证每个数据分组添加至至少两个数据分片中,并将数据分片中至少一个数据分组内设定位置处的数据片段作为验证片段。其中,数据分片由不同的承租节点进行存储,验证片段可以是数据分组中的连续或非连续的部分字节,由区块生成节点或租赁节点进行存储。同时,存储有数据分片的承租节点依据其包括的验证片段(或验证片段与预设随机时间戳组合)的哈希值最终计算获取一个对应的梅克尔树,每次计算所得的梅克尔树都会相应存在一个根值并将其作为验证标识。由此可见,承租节点生成的梅克尔树是根据副本保持验证请求实时生成的。
图2b是本发明实施例二所涉及的根据验证片段和预设随机时间戳形成的梅克尔树的结构示意图,示例性的,如图2b所示,虚线框内由各个哈希值组成的树即为梅克尔树。其中,Random Timestamp表示预设随机时间戳,DATA FRAGMENT W、FRAGMENT X、FRAGMENT Y以及FRAGMENT Z表示从不同数据分组中提取的验证片段。梅克尔树的LEAF节点,即Hash 1-LEAF、Hash 2-LEAF、Hash 3-LEAF以及Hash 4-LEAF,为根据每个数据分组中对应的验证片段与预设随机时间戳组合形成的哈希值。BRANCH节点,即Hash 5-BRANCH和Hash 6-BRANCH,为根据各个LEAF节点按照Hash算法计算得出的哈希值。ROOT节点,即Hash 7-ROOT为梅克尔树的根节点,也是根据Hash 5-BRANCH和Hash 6-BRANCH对应的哈希值按照Hash算法计算得出,可以作为验证标识。
S242、从智能合约中获取存储的梅克尔树的根植作为验证标识。
其中,智能合约中存储的梅克尔树是根据预先获取的验证片段(或验证片段与预设随机时间戳的组合)计算所得各个哈希值为基础建立的。
在本发明实施例中,在数据分片存储到承租节点之前,可以将验证片段(或验证片段与预设随机时间戳的组合)对应形成的梅克尔树存储在智能合约或租赁节点中,并将其根值作为原始记录的验证标识。
S243、将接收到的和获取到的验证标识进行比对。
其中,所述梅尔克树由副本存储节点中多个验证片段的哈希值所构建。
需要说明的是,在梅克尔树中,验证片段的顺序没有限制,可以将验证片段任意的两两组合计算梅克尔树的哈希分支,并将所有的哈希分支继续两两组合计算最终得到一个根值。但每次计算梅克尔树的根值时,验证片段的顺序需要保持一致且与原始记录的梅克尔树中验证片段的顺序相同,避免出现验证不通过的情况。
另外还需说明的是,验证片段除了可以包括数据分组中的部分字节,还可以与预设随机时间戳形成组合序列,并由此计算出组合序列所对应的一系列的完整的梅尔克树。为了保证副本保持验证的有效性,原始记录的梅尔克树,即智能合约或租赁节点中存储的梅尔克树不对外传播。
在本发明实施例中,区块生成节点或租赁节点每隔一段时间可以在副本保持验证请求中公布指定数据分片所包含的验证片段(或验证片段与预设随机时间戳)相关信息以及对应的梅尔克树的根值信息。梅尔克树的叶子信息和分支信息并不对外公布,避免承租节点依据获取到的叶子信息和分支信息直接形成对应的验证标识造成虚假验证。承租节点接收到副本保持验证请求后,在指定截止时间前(如12小时)根据请求中的验证片段信息在本地存储的数据分片中提取相应位置的数据片段作为验证片段,并根据验证片段(或验证片段与接收的预设随机时间戳)形成对应的梅克尔树,并将梅克尔树的根值作为验证标识反馈给区块生成节点或租赁节点,使其将接收到的和获取到的验证标识进行比对,实现对存储副本保持证明的有效性验证。
本发明实施例通过在区块链网络中应用分布式存储的副本保持验证方法,并使用区块生成节点根据智能合约中的规定以及智能合约的期限向分布式存储节点发送副本保持验证请求,并对接收的验证标识与智能合约中存储的验证标识进行比对,以验证节点是否对数据副本进行有效存储,能够实现对存储在区块链网络节点中各个数据副本是否正确存储进行持续性验证,从而提高了区块链网络中数据存储的可靠性。
实施例三
图3是本发明实施例三提供的一种分布式存储的副本保持验证方法的流程图,本实施例可适用于获取数据副本保持验证结果的情况,该方法可以由分布式存储的副本保持验证装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在任何需要发起数据存储的计算机设备中。本发明实施例所提供的分布式存储的副本保持验证方法,可以适用于各种分布式网络进行数据存储,本实施例中,优选是采用区块链网络对数据副本进行分布式存储。如图3所示,该方法包括如下操作:
S310、向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识。
在本发明实施例中,同样可以将原始数据划分为多个数据分组,同时将部分数据分组形成多个数据副本,保证每个数据分组添加至至少两个数据副本中,并将数据副本中至少一个数据分组内设定位置处的数据片段作为验证片段。其中,数据副本由不同的分布式存储节点进行存储,验证片段可以是数据分组中的连续或非连续的部分字节,由区块生成节点或原始存储节点进行存储。其中,原始存储节点即为有数据存储需求的节点,其功能相当于实施例二所涉及的租赁节点。原始存储节点将形成的多个数据副本传输至智能合约中规定的分布式存储节点中,每个分布式存储节点只会存储一个数据副本。在向分布式存储节点发送数据副本之前,原始存储节点可以提前确定数据副本中验证片段的存储位置和验证片段的验证标识,具体可以包括:从每个数据分组中提取设定片段,方便以后根据分布式存储节点内数据副本随机要求提供任意数据分组内的数据片段;或者,从每个数据副本中确定设定位置并提取数据片段,预先计算好该数据片段的梅克尔树的根值,作为后续验证使用。
需要说明的是,为了保证数据存储的可靠性,在分布式存储节点存储各数据副本时,可以使用梅克尔树来进行记录每个数据副本的结构。数据副本中的每个数据分组对应的哈希值按照从左至右的顺序形成梅克尔树的叶节点,而后两两叶节点组合再计算哈希值作为上层分支,直至计算出梅克尔树的根节点。每个数据副本对应的梅克尔树的数据结构仅会被原始存储节点所记录,并依此来恢复数据分组的正确顺序,最终解密出原始数据。由此可见,原始存储节点可以存储两类梅克尔树。但由于数据副本和验证片段包括的数据不同,所以数据副本对应的梅克尔树和验证片段对应的梅克尔树也不相同。
S320、向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识。
在本发明实施例中,数据副本存储完毕后,原始存储节点和各分布式存储节点分别向全网进行广播体现租赁存储空间过程的智能合约,在区块链网络中传输。当前竞争到区块处理权限的区块生成节点将对当前产生的智能合约进行处理,打包形成区块。区块生成节点可以基于多种共识机制获得区块生成权限,在该区块生成节点的权限时段内,可能由不同的租赁节点产生不同的智能合约。区块生成节点可以对智能合约进行处理,处理的方式包括但不限于:对智能合约的内容进行验证、转换、加密、和存储等。例如,租赁其他节点的存储空间,可能需要支付一定的费用,相应的支付金额会体现在智能合约中,由租赁节点签名确认。区块生成节点可以根据智能合约中的规定,将支付金额从租赁节点的账户转移至承租节点的账户。区块生成节点后续将生成的区块,广播发给区块链网络的其他节点进行验证,而后使得区块生效添加至区块链尾部。由区块链的自身特点保证智能合约的不可篡改性。
相应的,在智能合约的执行阶段,区块生成节点在区块链中的区块内查找需要进行副本保持验证的智能合约,并在智能合约中根据存储的数据副本在分布式存储节点中的存储关系确定相应的分布式存储节点,同时获取相应的验证片段和验证标识信息,向确定的分布式存储节点发送副本保持验证请求。
S330、获取区块生成节点反馈的副本保持验证结果。
其中,副本保持验证结果可以包括正常保持副本和非正常保持副本。当接收的验证标识与原始存储的验证标识匹配时,其副本保持验证结果为正常保持副本;当接收的验证标识与原始存储的验证标识不匹配时,其副本保持验证结果为非正常保持副本。
相应的,在区块生成节点接收到分布式存储节点反馈的验证标识后,区块生成节点根据接收的验证标识和智能合约中存储的验证标识进行比对验证,获得相应的副本保持验证结果。具体的比对验证方法可以参考实施例二所提供的将从副本存储节点接收的验证标识与智能合约中存储的验证标识进行比对的方法。区块生成节点还负责将副本保持验证结果反馈给原始存储节点,使得原始存储节点根据接收的副本保持验证结果判断分布式存储节点是否对数据副本进行有效存储。
采用本实施例的技术方案,通过在区块链网络中应用分布式存储的副本保持验证方法,并通过原始存储节点向分布式存储节点存储数据副本后,将包括数据副本与分布式存储节点的对应关系以及验证片段和验证标识的智能合约进行广播,以使区块生成节点根据智能合约验证分布式存储节点是否对数据副本进行了有效存储,能够实现对存储在区块链网络节点中各个数据副本是否正确存储进行持续性验证,从而提高了区块链网络中数据存储的可靠性。
实施例四
图4是本发明实施例四提供的一种分布式存储的副本保持验证方法的流程图,本实施例可适用于副本存储节点反馈验证标识的情况,该方法可以由分布式存储的副本保持验证装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在任何可以实现数据存储的计算机设备中,如图4所示,该方法包括如下操作:
S410、获取待存储的数据副本进行存储。
在本发明实施例中,每个副本存储节点相应只存储一个数据副本,其中,数据副本的性质特点可以参考实施例一对于数据副本的描述。
在本发明实施例中,可由副本存储节点对原始存储节点发送的数据副本进行存储。
S420、接收副本保持验证请求。
相应的,由于副本存储节点存储了数据副本,所以由副本存储节点接收副本保持验证请求,以对其存储的数据副本进行有效存储验证。
S430、根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段。
具体的,在对存储的数据副本进行有效存储验证时,可以依据副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段作为验证片段。当然,也还可以依据副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段,与副本保持验证请求中包括的预设随机时间戳组合形成验证片段。
S440、根据所述数据片段确定对应的验证标识。
相应的,在确定验证片段后,可以对验证片段(或验证片段与预设随机时间戳的组合)进行哈希运算得到对应的梅克尔树的根值,作为验证标识。
S450、将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储。
最后,副本存储节点将获得的验证标识反馈给验证节点或原始存储节点,以使验证节点或原始存储节点根据原始记录的验证标识和反馈的验证标识,验证副本存储节点是否对数据副本进行有效存储。
在本发明的一个可选实施例中,接收副本保持验证请求包括:从区块生成节点接收副本保持验证请求;相应的,将所述验证标识进行反馈包括:将所述验证标识进行反馈给所述区块生成节点。
也即,本发明实施例中的副本存储节点可以是区块链网络中的用于存储数据副本的分布式存储节点,并且其接收的副本保持验证请求由区块生成节点发出。而副本存储节点生成的验证标识也可以反馈给区块生成节点,以使区块生成节点对其进行比对验证。具体的比对验证过程可参考实施例二提供的将从副本存储节点接收的验证标识与智能合约中存储的验证标识进行比对的方法,不再详述。当然,区块生成节点还可以将接收到的验证标识发送至原始存储节点,使得原始存储节点根据原始记录的验证标识与接收到的验证标识进行比对,以验证分布式存储节点是否对数据副本进行有效存储。
本发明实施例的技术方案,通过副本存储节点接收副本保持验证请求,并据此从存储的数据副本中提取相应的数据片段以形成对应的验证标识并进行反馈,使其与原始记录的验证标识进行对比实现对数据副本是否进行了有效存储进行验证,能够实现对存储在区块链网络节点中各个数据副本是否正确存储进行持续性验证,从而提高了数据存储的可靠性。
实施例五
图5是本发明实施例五提供的一种分布式存储的副本保持验证装置的示意图,如图5所示,所述装置可配置于验证节点中,该装置包括:请求发送模块510、结果接收模块520以及存储验证模块530,其中:
请求发送模块510,用于向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
结果接收模块520,用于接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识;
存储验证模块530,用于根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
本发明实施例通过向存储有数据副本的分布式存储节点发送副本保持验证请求,接收各节点反馈的副本保持验证结果,即验证标识。然后将原始记录的验证标识和接收的验证标识进行匹配验证,根据验证结果判断各节点是否对数据副本进行了有效存储,验证标识是根据实际存储的副本来确定的,能够提供正确的验证标识的节点,表明对数据副本保持了有效的存储,由此解决了现有分布式存储技术存储数据存在的可靠性较低的问题,便于用户检查分布式存储节点中是否正确存储了数据副本,以提高数据存储的可靠性。
可选的,所述数据副本为数据分片,原始的待存储文件对应多个数据分组,每个数据分片中包括部分数据分组,且每个数据分组添加至至少两个数据分片中;所述验证片段为所述数据分片中至少一个数据分组内的数据片段。
可选的,所述验证标识为所述数据片段的哈希值;或
所述验证标识为所述数据片段和预设随机时间戳组合的哈希值,其中,所述副本保持验证请求中还包括所述预设随机时间戳。
可选的,所述验证节点为区块链网络中的区块生成节点,相应的,请求发送模块510,还用于在区块链中的区块内查找需要进行副本保持验证的智能合约;根据查找到的智能合约中的副本存储节点,以及验证片段的存储位置,向存储有数据副本的节点发送副本保持验证请求。
可选的,存储验证模块530,还用于将从副本存储节点接收的验证标识与智能合约中存储的验证标识进行比对,以验证所述节点是否对数据副本进行有效存储。
可选的,存储验证模块530,还用于将从副本存储节点接收的梅克尔树的根值作为接收到的验证标识;从智能合约中获取存储的梅克尔树的根植作为验证标识;将接收到的和获取到的验证标识进行比对;其中,所述梅尔克树由副本存储节点中多个验证片段的哈希值所构建。
可选的,请求发送模块510,还用于在区块链的区块中查询在执行过程中有副本保持监测需求的智能合约;和/或
在区块链的区块中查询合约到期的智能合约,作为有副本保持验证需求的智能合约。
上述分布式存储的副本保持验证装置可执行本发明任意实施例所提供的分布式存储的副本保持验证方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的分布式存储的副本保持验证方法。
实施例六
图6是本发明实施例六提供的一种分布式存储的副本保持验证装置的示意图,如图6所示,所述装置可配置于原始存储节点中,该装置包括:信息确定模块610、合约发送模块620以及结果获取模块630,其中:
信息确定模块610,用于向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
合约发送模块620,用于向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识;
结果获取模块630,用于获取区块生成节点反馈的副本保持验证结果。
采用本实施例的技术方案,通过在区块链网络中应用分布式存储的副本保持验证方法,并通过原始存储节点向分布式存储节点存储数据副本后,将包括数据副本与分布式存储节点的对应关系以及验证片段和验证标识的智能合约进行广播,以使区块生成节点根据智能合约验证分布式存储节点是否对数据副本进行了有效存储,能够实现对存储在区块链网络节点中各个数据副本是否正确存储进行持续性验证,从而提高了区块链网络中数据存储的可靠性。
实施例七
图7是本发明实施例七提供的一种分布式存储的副本保持验证装置的示意图,如图7所示,所述装置可配置于副本存储节点中,该装置包括:副本获取模块710、请求接收模块720、数据提取模块730、标识确定模块740以及标识反馈模块750,其中:
副本获取模块710,用于获取待存储的数据副本进行存储;
请求接收模块720,用于接收副本保持验证请求;
数据提取模块730,用于根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段;
标识确定模块740,用于根据所述数据片段确定对应的验证标识;
标识反馈模块750,用于将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储。
本发明实施例的技术方案,通过副本存储节点接收副本保持验证请求,并据此从存储的数据副本中提取相应的数据判断以形成对应的验证标识并进行反馈,以使其与原始记录的验证标识进行对比实现对数据副本是否进行了有效存储进行验证,能够实现对存储在区块链网络节点中各个数据副本是否正确存储进行持续性验证,从而提高了数据存储的可靠性。
可选的,请求接收模块720,还用于从区块生成节点接收副本保持验证请求;标识反馈模块750,还用于将所述验证标识进行反馈给所述区块生成节点。
实施例八
图8为本发明实施例八提供的一种计算机设备的结构示意图。图8示出了适于用来实现本发明实施方式的计算机设备812的框图。图8显示的计算机设备812仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。计算机设备812典型的是承担验证节点功能的计算设备。
如图8所示,计算机设备812以通用计算设备的形式表现。计算机设备812的组件可以包括但不限于:一个或者多个处理器816,存储装置828,连接不同系统组件(包括存储装置828和处理器816)的总线818。
总线818表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备812典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备812访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置828可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)830和/或高速缓存存储器832。计算机设备812可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统834可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线818相连。存储装置828可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块826的程序836,可以存储在例如存储装置828中,这样的程序模块826包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块826通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备812也可以与一个或多个外部设备814(例如键盘、指向设备、摄像头、显示器824等)通信,还可与一个或者多个使得用户能与该计算机设备812交互的设备通信,和/或与使得该计算机设备812能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口822进行。并且,计算机设备812还可以通过网络适配器820与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器820通过总线818与计算机设备812的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备812使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of IndependentDisks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器816通过运行存储在存储装置828中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的分布式存储的副本保持验证方法。也即,所述处理单元执行所述程序时实现:向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识;根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
通过所述计算机设备向存储有数据副本的分布式存储节点发送副本保持验证请求,接收各节点反馈的副本保持验证结果,即验证标识。然后将原始记录的验证标识和接收的验证标识进行匹配验证,根据验证结果判断各节点是否对数据副本进行了有效存储,验证标识是根据实际存储的副本来确定的,能够提供正确的验证标识的节点,表明对数据副本保持了有效的存储,由此解决了现有分布式存储技术存储数据存在的可靠性较低的问题,便于用户检查分布式存储节点中是否正确存储了数据副本,以提高数据存储的可靠性。
实施例九
本实施例九是本发明实施例提供的一种用于执行本发明实施例三所提供的分布式存储的副本保持验证方法的设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例三所提供的分布式存储的副本保持验证方法:向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识;获取区块生成节点反馈的副本保持验证结果,适用于作为原始存储节点。其具体结构以及细节内容可参照图8和实施例八。
实施例十
本实施例十是本发明实施例提供的一种用于执行本发明实施例四所提供的分布式存储的副本保持验证方法的设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例四所提供的分布式存储的副本保持验证方法:获取待存储的数据副本进行存储;接收副本保持验证请求;根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段;根据所述数据片段确定对应的验证标识;将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储,适用于作为副本存储节点。其具体结构以及细节内容可参照图8和实施例八。
实施例十一
本发明实施例九还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的分布式存储的副本保持验证方法:向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识;根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable ReadOnly Memory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
实施例十二
本发明实施例十二还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述实施例三所述的分布式存储的副本保持验证方法:向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识;获取区块生成节点反馈的副本保持验证结果。其具体的细节内容描述可参照实施例十一。
实施例十三
本发明实施例十四还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述实施例四所述的分布式存储的副本保持验证方法:获取待存储的数据副本进行存储;接收副本保持验证请求;根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段;根据所述数据片段确定对应的验证标识;将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储。其具体的细节内容描述可参照实施例十一。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (18)

1.一种分布式存储的副本保持验证方法,应用于验证节点,其特征在于,所述方法包括:
向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
其中,每个所述分布式存储节点存储的数据副本都不相同;所述数据副本为数据分片,原始的待存储文件对应多个数据分组,每个数据分片中包括部分数据分组,且每个数据分组添加至至少两个数据分片中;所述验证片段为所述数据分片中至少一个数据分组内的数据片段;
接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识;
根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
2.根据权利要求1所述的方法,其特征在于:
所述验证标识为所述数据片段的哈希值;或
所述验证标识为所述数据片段和预设随机时间戳组合的哈希值,其中,所述副本保持验证请求中还包括所述预设随机时间戳。
3.根据权利要求1-2任一所述的方法,其特征在于,所述验证节点为区块链网络中的区块生成节点,相应的,向存储有数据副本的分布式存储节点发送副本保持验证请求包括:
在区块链中的区块内查找需要进行副本保持验证的智能合约;
根据查找到的智能合约中的副本存储节点,以及验证片段的存储位置,向存储有数据副本的节点发送副本保持验证请求。
4.根据权利要求3所述的方法,其特征在于,根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储包括:
将从副本存储节点接收的验证标识与智能合约中存储的验证标识进行比对,以验证所述节点是否对数据副本进行有效存储。
5.根据权利要求4所述的方法,其特征在于,将从副本存储节点接收的验证标识与智能合约中存储的验证标识进行比对包括:
将从副本存储节点接收的梅克尔树的根值作为接收到的验证标识;
从智能合约中获取存储的梅克尔树的根值作为验证标识;
将接收到的和获取到的验证标识进行比对;
其中,所述梅克尔树由副本存储节点中多个验证片段的哈希值所构建。
6.根据权利要求3所述的方法,其特征在于,在区块链中的区块内查找需要进行副本保持验证的智能合约包括:
在区块链的区块中查询在执行过程中有副本保持监测需求的智能合约;和/或
在区块链的区块中查询合约到期的智能合约,作为有副本保持验证需求的智能合约。
7.一种分布式存储的副本保持验证方法,应用于原始存储节点,其特征在于,所述方法包括:
将原始数据划分为多个数据分组,将部分数据分组形成多个数据副本,保证每个数据分组添加至至少两个数据副本中,并将数据副本中至少一个数据分组内设定位置处的数据片段作为验证片段;
向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
其中,每个所述分布式存储节点存储的数据副本都不相同;
向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识;
获取区块生成节点反馈的副本保持验证结果。
8.一种分布式存储的副本保持验证方法,应用于副本存储节点,其特征在于,所述方法包括:
获取待存储的数据副本进行存储;
接收副本保持验证请求;
根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段;
根据所述数据片段确定对应的验证标识;
将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储;其中,每个所述副本存储节点存储的数据副本都不相同;所述数据副本为数据分片,原始的待存储文件对应多个数据分组,每个数据分片中包括部分数据分组,且每个数据分组添加至至少两个数据分片中;所述验证片段为所述数据分片中至少一个数据分组内的数据片段。
9.根据权利要求8所述的方法,其特征在于,接收副本保持验证请求包括:从区块生成节点接收副本保持验证请求;
相应的,将所述验证标识进行反馈包括:将所述验证标识反馈给所述区块生成节点。
10.一种分布式存储的副本保持验证装置,配置于验证节点,其特征在于,所述装置包括:
请求发送模块,用于向存储有数据副本的分布式存储节点发送副本保持验证请求,其中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
其中,每个所述分布式存储节点存储的数据副本都不相同;所述数据副本为数据分片,原始的待存储文件对应多个数据分组,每个数据分片中包括部分数据分组,且每个数据分组添加至至少两个数据分片中;所述验证片段为所述数据分片中至少一个数据分组内的数据片段;
结果接收模块,用于接收所述节点反馈的副本保持验证结果,其中,所述副本保持验证结果中包括验证片段的验证标识;
存储验证模块,用于根据原始记录的验证标识和接收的验证标识,验证所述节点是否对数据副本进行有效存储。
11.一种分布式存储的副本保持验证装置,配置于原始存储节点,其特征在于,所述装置包括:
数据副本构造模块,用于将原始数据划分为多个数据分组,将部分数据分组形成多个数据副本,保证每个数据分组添加至至少两个数据副本中,并将数据副本中至少一个数据分组内设定位置处的数据片段作为验证片段;
信息确定模块,用于向分布式存储节点中存储多个数据副本,并确定数据副本中验证片段的存储位置和验证片段的验证标识,其中,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述分布式存储节点根据所述存储位置提取存储的数据片段,并根据所述数据片段确定对应的验证标识;
其中,每个所述分布式存储节点存储的数据副本都不相同;
合约发送模块,用于向区块链网络发送用于数据分布式存储的智能合约,以请求区块生成节点将智能合约记录至区块链中,并根据所述验证片段和验证标识进行副本保持的有效性验证;其中,所述智能合约中包括数据副本在所述分布式存储节点中存储的对应关系,以及验证片段和验证标识;
结果获取模块,用于获取区块生成节点反馈的副本保持验证结果。
12.一种分布式存储的副本保持验证装置,配置于副本存储节点,其特征在于,所述装置包括:
副本获取模块,用于获取待存储的数据副本进行存储;
请求接收模块,用于接收副本保持验证请求;
数据提取模块,用于根据所述副本保持验证请求中的验证片段的存储位置从存储的数据副本中提取数据片段;
标识确定模块,用于根据所述数据片段确定对应的验证标识;
标识反馈模块,用于将所述验证标识进行反馈,以请求根据原始记录的验证标识和反馈的验证标识,验证所述副本存储节点是否对数据副本进行有效存储;其中,每个所述副本存储节点存储的数据副本都不相同;所述数据副本为数据分片,原始的待存储文件对应多个数据分组,每个数据分片中包括部分数据分组,且每个数据分组添加至至少两个数据分片中;所述验证片段为所述数据分片中至少一个数据分组内的数据片段。
13.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的分布式存储的副本保持验证方法。
14.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求7中所述的分布式存储的副本保持验证方法。
15.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求8-9中任一所述的分布式存储的副本保持验证方法。
16.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的分布式存储的副本保持验证方法。
17.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求7中所述的分布式存储的副本保持验证方法。
18.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求8-9中任一所述的分布式存储的副本保持验证方法。
CN201810480502.7A 2018-05-18 2018-05-18 分布式存储的副本保持验证方法、装置、设备及存储介质 Active CN108769171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810480502.7A CN108769171B (zh) 2018-05-18 2018-05-18 分布式存储的副本保持验证方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810480502.7A CN108769171B (zh) 2018-05-18 2018-05-18 分布式存储的副本保持验证方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108769171A CN108769171A (zh) 2018-11-06
CN108769171B true CN108769171B (zh) 2021-09-17

Family

ID=64008192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810480502.7A Active CN108769171B (zh) 2018-05-18 2018-05-18 分布式存储的副本保持验证方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108769171B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109636622B (zh) * 2019-01-03 2024-03-29 平安科技(深圳)有限公司 一种基于区块链的基金数据共享方法、系统及电子设备
CN109885424B (zh) * 2019-01-16 2024-05-31 平安科技(深圳)有限公司 一种数据备份方法、装置及计算机设备
US20200234375A1 (en) * 2019-01-17 2020-07-23 EMC IP Holding Company LLC Protecting against data loss
CN110213230B (zh) * 2019-04-26 2020-01-31 特斯联(北京)科技有限公司 一种用于分布式通信的网络安全验证方法及装置
CN110300173A (zh) * 2019-06-28 2019-10-01 杭州复杂美科技有限公司 去中心化数据存储方法、验证方法、设备和存储介质
CN110351362A (zh) * 2019-07-12 2019-10-18 全链通有限公司 数据验证方法、设备及计算机可读存储介质
CN110535872B (zh) * 2019-09-12 2021-06-01 腾讯科技(深圳)有限公司 在区块链网络中处理数据请求的方法和装置
CN113282798B (zh) * 2021-05-07 2022-03-25 广州中国科学院计算机网络信息中心 一种基于梅克尔树的标识资源版本验证方法及系统
CN115292752A (zh) * 2022-10-09 2022-11-04 深圳市明源云科技有限公司 文件数据的存储验证方法、存储验证装置、设备及介质
CN115934670B (zh) * 2023-03-09 2023-05-05 智者四海(北京)技术有限公司 Hdfs多机房的副本放置策略验证方法与装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045356A (zh) * 2010-12-14 2011-05-04 中国科学院软件研究所 一种面向云存储的可信存储验证方法和系统
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法
CN106302702A (zh) * 2016-08-10 2017-01-04 华为技术有限公司 数据的分片存储方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT3440823T (pt) * 2016-04-05 2020-12-04 Zamna Tech Limited Método e sistema para gestão de informações pessoais dentro de sistemas informáticos independentes e redes digitais

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045356A (zh) * 2010-12-14 2011-05-04 中国科学院软件研究所 一种面向云存储的可信存储验证方法和系统
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法
CN106302702A (zh) * 2016-08-10 2017-01-04 华为技术有限公司 数据的分片存储方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Storj A Peer-to-Peer Cloud Storage Network;Shawn Wilkinson;《https://storj.io/storj2014.pdf》;20141215;正文第1-10章 *

Also Published As

Publication number Publication date
CN108769171A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108769171B (zh) 分布式存储的副本保持验证方法、装置、设备及存储介质
CN108664223B (zh) 一种分布式存储方法、装置、计算机设备及存储介质
CN108681943B (zh) 一种区块链网络的数据处理方法、装置、设备及存储介质
CN108648084B (zh) 一种区块链网络的数据处理方法、装置、设备及存储介质
CN109542888B (zh) 区块链的数据修改和同步方法、装置、设备及存储介质
CN109587238B (zh) 区块链的数据处理和同步方法、装置、设备及存储介质
CN108924130B (zh) 一种区块数据的验证方法、装置、设备和存储介质
CN109361740B (zh) 一种区块链的区块生成方法、装置、设备和介质
JP4788212B2 (ja) デジタル署名プログラム及びデジタル署名システム
CN109213901B (zh) 一种区块链的数据同步方法、装置、设备及介质
CN108694330B (zh) 物联网数据管理方法、平台及设备
CN110602455B (zh) 视频存储系统、视频处理方法、装置、设备及存储介质
CN110995513B (zh) 物联网系统中的数据发送、接收方法、物联网设备及平台
CN113378236A (zh) 一种证据数据在线保全公证平台及保全方法
CN109347803B (zh) 一种区块链的数据处理方法、装置、设备及介质
CN110995446B (zh) 证据验证方法、装置、服务器及存储介质
CN111899019A (zh) 一种黑名单多方交叉验证和共享的方法及系统
CN111597567B (zh) 数据处理方法、装置、节点设备及存储介质
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN114429267B (zh) 一种数字作品版权的风控方法、系统、装置及存储介质
CN109345243B (zh) 一种区块链的数据处理和验证方法、装置、设备及介质
CN109067849A (zh) 基于区块的数据同步方法
CN112182009A (zh) 区块链的数据更新方法及装置、可读存储介质
CN110995454A (zh) 一种业务验证方法及系统
WO2016137517A1 (en) Manufacturer-signed digital certificate for identifying a client system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant