CN111078662B - 一种区块链数据存储方法与装置 - Google Patents

一种区块链数据存储方法与装置 Download PDF

Info

Publication number
CN111078662B
CN111078662B CN201911157831.9A CN201911157831A CN111078662B CN 111078662 B CN111078662 B CN 111078662B CN 201911157831 A CN201911157831 A CN 201911157831A CN 111078662 B CN111078662 B CN 111078662B
Authority
CN
China
Prior art keywords
data block
data
function
block
digest function
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
CN201911157831.9A
Other languages
English (en)
Other versions
CN111078662A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201911157831.9A priority Critical patent/CN111078662B/zh
Publication of CN111078662A publication Critical patent/CN111078662A/zh
Application granted granted Critical
Publication of CN111078662B publication Critical patent/CN111078662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种区块链数据存储方法与装置,包括:响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块。本发明能够提高区块链数据存储可靠性和性能,并降低存储成本。

Description

一种区块链数据存储方法与装置
技术领域
本发明涉及计算机识别领域,更具体地,特别是指一种区块链数据存储方法与装置。
背景技术
区块链节点的特点是:数据按照块结构存储,当一个块生成之后,下一个块会记录上一个块的摘要信息,防止上一个块被更改,因此区块链具有防止篡改的效果。根据不同应用,区块链上的每一个数据库,可能定长,也可能变长。因此通常来说,区块链数据要能够基于摘要而被验证,在生成之后一般不会更改,并且信息熵较大导致难以压缩。在区块链的应用中,一般应用场景中会有多个节点,一般来说,少则几个,多则成千上万个节点共同存储区块链的数据。每个节点需要使用可靠、高性能、低成本的存储方案,但现有技术缺乏针对区块链数据的特殊适配解决方案。
针对现有技术中区块链数据存储方案不可靠、性能低、成本高的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种区块链数据存储方法与装置,能够提高区块链数据存储可靠性和性能,并降低存储成本。
基于上述目的,本发明实施例的第一方面提供了一种区块链数据存储方法,包括在存储设备上执行以下步骤:
响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;
响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;
在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;
在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块。
在一些实施方式中,还包括:在接收数据块和第一摘要函数之前,先接收生成第一摘要函数的特定算法的形式信息;
使用特定算法生成第二摘要函数包括:基于形式信息来确定特定算法以生成第二摘要函数。
在一些实施方式中,还包括:在接收数据块和第一摘要函数之前,先接收数据块的属性信息,属性信息包括块大小、是否可变长和存储安全等级;
将数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择物理存储器,在每个被选择的物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储数据块的每个备份。
在一些实施方式中,物理存储器为NAND闪存存储器;基于纠错数据执行纠错处理包括:
将数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于纠错数据修复数据块使数据块重新具有完整性。
在一些实施方式中,数据块中存储有上一数据块的摘要函数,并且数据块的摘要函数存储于下一数据块中;
基于下一数据块来检查数据块的正确性包括:从下一数据块获取数据块的摘要函数作为第三摘要函数,并比较第二摘要函数是否等于第三摘要函数;
基于下一数据块重新获取数据块包括:重新获取使得第二摘要函数等于第三摘要函数的数据块。
本发明实施例的第二方面提供了一种区块链数据存储装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时在存储设备上执行以下步骤:
响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;
响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;
在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;
在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块。
在一些实施方式中,步骤还包括:在接收数据块和第一摘要函数之前,先接收生成第一摘要函数的特定算法的形式信息;
使用特定算法生成第二摘要函数包括:基于形式信息来确定特定算法以生成第二摘要函数。
在一些实施方式中,步骤还包括:在接收数据块和第一摘要函数之前,先接收数据块的属性信息,属性信息包括块大小、是否可变长和存储安全等级;
将数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择物理存储器,在每个被选择的物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储数据块的每个备份。
在一些实施方式中,物理存储器为NAND闪存存储器;基于纠错数据执行纠错处理包括:
将数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于纠错数据修复数据块使数据块重新具有完整性。
在一些实施方式中,数据块中存储有上一数据块的摘要函数,并且数据块的摘要函数存储于下一数据块中;
基于下一数据块来检查数据块的正确性包括:从下一数据块获取数据块的摘要函数作为第三摘要函数,并比较第二摘要函数是否等于第三摘要函数;
基于下一数据块重新获取数据块包括:重新获取使得第二摘要函数等于第三摘要函数的数据块。
本发明具有以下有益技术效果:本发明实施例提供的区块链数据存储方法与装置,通过响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块的技术方案,能够提高区块链数据存储可靠性和性能,并降低存储成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的区块链数据存储方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够提高区块链数据存储可靠性和性能的区块链数据存储方法一个实施例。图1示出的是本发明提供的区块链数据存储方法的流程示意图。
所述区块链数据存储方法,如图1所示,包括在存储设备上执行以下步骤:
步骤S101:响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;
步骤S103:响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;
步骤S105:在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;
步骤S107:在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,方法还包括:在接收数据块和第一摘要函数之前,先接收生成第一摘要函数的特定算法的形式信息。使用特定算法生成第二摘要函数包括:基于形式信息来确定特定算法以生成第二摘要函数。
在一些实施方式中,方法还包括:在接收数据块和第一摘要函数之前,先接收数据块的属性信息,属性信息包括块大小、是否可变长和存储安全等级。将数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择物理存储器,在每个被选择的物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储数据块的每个备份。
在一些实施方式中,物理存储器为NAND闪存存储器;基于纠错数据执行纠错处理包括:
将数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于纠错数据修复数据块使数据块重新具有完整性。
在一些实施方式中,数据块中存储有上一数据块的摘要函数,并且数据块的摘要函数存储于下一数据块中。基于下一数据块来检查数据块的正确性包括:从下一数据块获取数据块的摘要函数作为第三摘要函数,并比较第二摘要函数是否等于第三摘要函数。基于下一数据块重新获取数据块包括:重新获取使得第二摘要函数等于第三摘要函数的数据块。
根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
下面根据具体实施例来进一步阐述本发明的具体实施方式。
首先服务器通过属性设置来通知存储设备关于区块链单个数据包的一般属性,包括区块大小,是否可变长、产生频率、存储安全等级等。服务器还通过属性设置来通知存储设备数据包的摘要函数的形式。然后,服务器通过正常的写入命令写入区块链数据。存储设备在收到区块链数据时,自行计算摘要函数并与服务器发送的摘要函数校验,以保证存储数据的正确性。如果校验失败,则通知错误信息;如果校验成功,存储设备根据存储安全等级进行冗余备份,放到存储设备的多个物理NAND上,同时产生校验数据和纠错数据。基于区块链数据的性质,在存储设备内部进行增量存储时,写入数据不打乱区块数据的内部顺序,避免产生写放大。
存储设备定期检查数据质量,在物理NAND提示错误率较高时处理错误,包括将数据迁移到其他的NAND空间位置;重置迁移之前的位置以降低错误率;基于产生的校验信息和纠错信息对已经产生的错误进行修正。从区块链考虑,还可以根据区块链摘要函数定期查询区块链数据的正确性。另外如有必要,还在用户查询剩余空间时根据写入数据量汇报剩余空间数量。
从上述实施例可以看出,本发明实施例提供的区块链数据存储方法,通过响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块的技术方案,能够提高区块链数据存储可靠性和性能,并降低存储成本。
需要特别指出的是,上述区块链数据存储方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于区块链数据存储方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够提高区块链数据存储可靠性和性能的区块链数据存储装置的一个实施例。区块链数据存储装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时在存储设备上执行以下步骤:
响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;
响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;
在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;
在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块。
在一些实施方式中,步骤还包括:在接收数据块和第一摘要函数之前,先接收生成第一摘要函数的特定算法的形式信息。使用特定算法生成第二摘要函数包括:基于形式信息来确定特定算法以生成第二摘要函数。
在一些实施方式中,步骤还包括:在接收数据块和第一摘要函数之前,先接收数据块的属性信息,属性信息包括块大小、是否可变长和存储安全等级。将数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择物理存储器,在每个被选择的物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储数据块的每个备份。
在一些实施方式中,物理存储器为NAND闪存存储器;基于纠错数据执行纠错处理包括:
将数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于纠错数据修复数据块使数据块重新具有完整性。
在一些实施方式中,数据块中存储有上一数据块的摘要函数,并且数据块的摘要函数存储于下一数据块中。基于下一数据块来检查数据块的正确性包括:从下一数据块获取数据块的摘要函数作为第三摘要函数,并比较第二摘要函数是否等于第三摘要函数。基于下一数据块重新获取数据块包括:重新获取使得第二摘要函数等于第三摘要函数的数据块。
从上述实施例可以看出,本发明实施例提供的区块链数据存储装置,通过响应于接收到数据块、和根据数据块以特定算法生成的第一摘要函数,而基于数据块使用特定算法生成第二摘要函数;响应于第一摘要函数等于第二摘要函数,而将数据块的多个备份冗余地存储到多个不同的物理存储器上,并为数据块产生校验数据和纠错数据;在每个物理存储器上定期基于校验数据在物理存储器上检查数据块的完整性,响应于确定数据块被损坏而基于纠错数据执行纠错处理;在每个物理存储器上定期基于下一数据块来检查数据块的正确性,响应于确定数据块有误而基于下一数据块重新获取数据块的技术方案,能够提高区块链数据存储可靠性和性能,并降低存储成本。
需要特别指出的是,上述区块链数据存储装置的实施例采用了所述区块链数据存储方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述区块链数据存储方法的其他实施例中。当然,由于所述区块链数据存储方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述区块链数据存储装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (8)

1.一种区块链数据存储方法,其特征在于,包括在存储设备上执行以下步骤:
响应于接收到数据块、和根据所述数据块以特定算法生成的第一摘要函数,而基于所述数据块使用所述特定算法生成第二摘要函数;
响应于所述第一摘要函数等于所述第二摘要函数,而将所述数据块的多个备份冗余地存储到多个不同的物理存储器上,并为所述数据块产生校验数据和纠错数据;
在每个所述物理存储器上定期基于所述校验数据在所述物理存储器上检查所述数据块的完整性,响应于确定所述数据块被损坏而基于所述纠错数据执行纠错处理;
在每个所述物理存储器上定期基于下一数据块来检查所述数据块的正确性,响应于确定所述数据块有误而基于下一数据块重新获取所述数据块;
其中,所述数据块中存储有上一数据块的摘要函数,并且所述数据块的摘要函数存储于下一数据块中;
所述基于下一数据块来检查所述数据块的正确性包括从下一数据块获取所述数据块的摘要函数作为第三摘要函数,并比较所述第二摘要函数是否等于所述第三摘要函数;
所述基于下一数据块重新获取所述数据块包括重新获取使得所述第二摘要函数等于所述第三摘要函数的所述数据块。
2.根据权利要求1所述的方法,其特征在于,还包括:在接收所述数据块和所述第一摘要函数之前,先接收生成所述第一摘要函数的所述特定算法的形式信息;
使用所述特定算法生成所述第二摘要函数包括:基于所述形式信息来确定所述特定算法以生成所述第二摘要函数。
3.根据权利要求2所述的方法,其特征在于,还包括在接收所述数据块和所述第一摘要函数之前,先接收所述数据块的属性信息,所述属性信息包括块大小、是否可变长和存储安全等级;
将所述数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择所述物理存储器,在每个被选择的所述物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储所述数据块的每个备份。
4.根据权利要求1所述的方法,其特征在于,所述物理存储器为NAND闪存存储器;基于所述纠错数据执行纠错处理包括:
将所述数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于所述纠错数据修复所述数据块使所述数据块重新具有完整性。
5.一种区块链数据存储装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时在存储设备上执行以下步骤:
响应于接收到数据块、和根据所述数据块以特定算法生成的第一摘要函数,而基于所述数据块使用所述特定算法生成第二摘要函数;
响应于所述第一摘要函数等于所述第二摘要函数,而将所述数据块的多个备份冗余地存储到多个不同的物理存储器上,并为所述数据块产生校验数据和纠错数据;
在每个所述物理存储器上定期基于所述校验数据在所述物理存储器上检查所述数据块的完整性,响应于确定所述数据块被损坏而基于所述纠错数据执行纠错处理;
在每个所述物理存储器上定期基于下一数据块来检查所述数据块的正确性,响应于确定所述数据块有误而基于下一数据块重新获取所述数据块;
其中,所述数据块中存储有上一数据块的摘要函数,并且所述数据块的摘要函数存储于下一数据块中;
所述基于下一数据块来检查所述数据块的正确性包括从下一数据块获取所述数据块的摘要函数作为第三摘要函数,并比较所述第二摘要函数是否等于所述第三摘要函数;
所述基于下一数据块重新获取所述数据块包括重新获取使得所述第二摘要函数等于所述第三摘要函数的所述数据块。
6.根据权利要求5所述的装置,其特征在于,所述步骤还包括:在接收所述数据块和所述第一摘要函数之前,先接收生成所述第一摘要函数的所述特定算法的形式信息;
使用所述特定算法生成所述第二摘要函数包括:基于所述形式信息来确定所述特定算法以生成所述第二摘要函数。
7.根据权利要求6所述的装置,其特征在于,所述步骤还包括:在接收所述数据块和所述第一摘要函数之前,先接收所述数据块的属性信息,所述属性信息包括块大小、是否可变长和存储安全等级;
将所述数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择所述物理存储器,在每个被选择的所述物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储所述数据块的每个备份。
8.根据权利要求5所述的装置,其特征在于,所述物理存储器为NAND闪存存储器;基于所述纠错数据执行纠错处理包括:
将所述数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于所述纠错数据修复所述数据块使所述数据块重新具有完整性。
CN201911157831.9A 2019-11-22 2019-11-22 一种区块链数据存储方法与装置 Active CN111078662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911157831.9A CN111078662B (zh) 2019-11-22 2019-11-22 一种区块链数据存储方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911157831.9A CN111078662B (zh) 2019-11-22 2019-11-22 一种区块链数据存储方法与装置

Publications (2)

Publication Number Publication Date
CN111078662A CN111078662A (zh) 2020-04-28
CN111078662B true CN111078662B (zh) 2023-01-06

Family

ID=70311415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911157831.9A Active CN111078662B (zh) 2019-11-22 2019-11-22 一种区块链数据存储方法与装置

Country Status (1)

Country Link
CN (1) CN111078662B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020169122A2 (en) 2020-06-08 2020-08-27 Alipay Labs (singapore) Pte. Ltd. Blockchain-based import custom clearance data processing
SG11202102583UA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Blockchain-based document registration for custom clearance
CN111989707B (zh) 2020-06-08 2024-04-16 支付宝实验室(新加坡)有限公司 管理基于区块链的海关清关服务的用户权限
SG11202103081RA (en) * 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Distributed storage of custom clearance data
CN111989663A (zh) 2020-06-08 2020-11-24 支付宝实验室(新加坡)有限公司 基于区块链的智能合约池
EP3841507B1 (en) 2020-06-08 2023-04-26 Alipay Labs (Singapore) Pte. Ltd. User management of blockchain-based custom clearance service platform
CN112035879B (zh) * 2020-09-04 2022-07-29 昆明理工大学 一种提高小区自动物流保密性的信息处理方法及系统
CN112965858B (zh) * 2021-03-04 2023-07-18 电信科学技术第五研究所有限公司 一种组网分布式存储数据冲突处理的实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650267A (zh) * 2002-04-25 2005-08-03 甲骨文国际公司 增强数据完整性的检验装置
CN105740088A (zh) * 2016-01-22 2016-07-06 深圳市硅格半导体股份有限公司 闪存数据纠错方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754989B2 (en) * 2018-03-27 2020-08-25 International Business Machines Corporation Runtime self-correction for blockchain ledgers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650267A (zh) * 2002-04-25 2005-08-03 甲骨文国际公司 增强数据完整性的检验装置
CN105740088A (zh) * 2016-01-22 2016-07-06 深圳市硅格半导体股份有限公司 闪存数据纠错方法及装置

Also Published As

Publication number Publication date
CN111078662A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
CN111078662B (zh) 一种区块链数据存储方法与装置
US9251233B2 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
CN108563532B (zh) 数据处理方法及相关装置
CN111444196B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
CN107315616B (zh) 一种固件的加载方法、装置及电子设备
US20090063807A1 (en) Data redistribution in shared nothing architecture
CN107479823B (zh) 随机读写文件测试中的数据校验方法和装置
CN114090345B (zh) 一种磁盘阵列数据恢复方法、系统、存储介质及设备
US20190227710A1 (en) Incremental data restoration method and apparatus
CN109144790A (zh) MySQL数据库的合成备份方法和装置
JP6788554B2 (ja) データスクラビングを実行する電子装置、方法、及びデータスクラビング装置
CN111176885A (zh) 一种分布式存储系统的数据校验方法及相关装置
CN104881242A (zh) 数据写入方法及装置
CN114968119A (zh) 一种数据保护方法、装置、设备及存储介质
CN107402843A (zh) 数据库损坏的恢复方法、装置和设备
US7577804B2 (en) Detecting data integrity
CN113312205B (zh) 数据校验方法、装置、存储介质和计算机设备
CN115878381A (zh) 基于srm盘的数据恢复方法及装置、存储介质、电子装置
US10719379B2 (en) Fault isolation in transaction logs
CN114003174A (zh) 一种纠删码存储方法、系统及电子设备
CN114003172A (zh) 存储容量校正方法、装置、计算机设备以及存储介质
CN112307022A (zh) 一种元数据修复方法及相关装置
CN117591344B (zh) 一种针对ECC型NorFlash的文件备份方法及装置
WO2021227926A1 (zh) 系统重启方法、终端及存储介质

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