CN111078662A - 一种区块链数据存储方法与装置 - Google Patents
一种区块链数据存储方法与装置 Download PDFInfo
- Publication number
- CN111078662A CN111078662A CN201911157831.9A CN201911157831A CN111078662A CN 111078662 A CN111078662 A CN 111078662A CN 201911157831 A CN201911157831 A CN 201911157831A CN 111078662 A CN111078662 A CN 111078662A
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- digest function
- block
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013500 data storage Methods 0.000 title claims abstract description 29
- 230000006870 function Effects 0.000 claims abstract description 125
- 230000015654 memory Effects 0.000 claims abstract description 111
- 238000012937 correction Methods 0.000 claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 14
- 230000003321 amplification Effects 0.000 claims description 7
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, 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 (10)
1.一种区块链数据存储方法,其特征在于,包括在存储设备上执行以下步骤:
响应于接收到数据块、和根据所述数据块以特定算法生成的第一摘要函数,而基于所述数据块使用所述特定算法生成第二摘要函数;
响应于所述第一摘要函数等于所述第二摘要函数,而将所述数据块的多个备份冗余地存储到多个不同的物理存储器上,并为所述数据块产生校验数据和纠错数据;
在每个所述物理存储器上定期基于所述校验数据在所述物理存储器上检查所述数据块的完整性,响应于确定所述数据块被损坏而基于所述纠错数据执行纠错处理;
在每个所述物理存储器上定期基于下一数据块来检查所述数据块的正确性,响应于确定所述数据块有误而基于下一数据块重新获取所述数据块。
2.根据权利要求1所述的方法,其特征在于,还包括:在接收所述数据块和所述第一摘要函数之前,先接收生成所述第一摘要函数的所述特定算法的形式信息;
使用所述特定算法生成所述第二摘要函数包括:基于所述形式信息来确定所述特定算法以生成所述第二摘要函数。
3.根据权利要求2所述的方法,其特征在于,还包括在接收所述数据块和所述第一摘要函数之前,先接收所述数据块的属性信息,所述属性信息包括块大小、是否可变长和存储安全等级;
将所述数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择所述物理存储器,在每个被选择的所述物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储所述数据块的每个备份。
4.根据权利要求1所述的方法,其特征在于,所述物理存储器为NAND闪存存储器;基于所述纠错数据执行纠错处理包括:
将所述数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于所述纠错数据修复所述数据块使所述数据块重新具有完整性。
5.根据权利要求1所述的方法,其特征在于,所述数据块中存储有上一数据块的摘要函数,并且所述数据块的摘要函数存储于下一数据块中;
基于下一数据块来检查所述数据块的正确性包括:从下一数据块获取所述数据块的摘要函数作为第三摘要函数,并比较所述第二摘要函数是否等于所述第三摘要函数;
基于下一数据块重新获取所述数据块包括:重新获取使得所述第二摘要函数等于所述第三摘要函数的所述数据块。
6.一种区块链数据存储装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时在存储设备上执行以下步骤:
响应于接收到数据块、和根据所述数据块以特定算法生成的第一摘要函数,而基于所述数据块使用所述特定算法生成第二摘要函数;
响应于所述第一摘要函数等于所述第二摘要函数,而将所述数据块的多个备份冗余地存储到多个不同的物理存储器上,并为所述数据块产生校验数据和纠错数据;
在每个所述物理存储器上定期基于所述校验数据在所述物理存储器上检查所述数据块的完整性,响应于确定所述数据块被损坏而基于所述纠错数据执行纠错处理;
在每个所述物理存储器上定期基于下一数据块来检查所述数据块的正确性,响应于确定所述数据块有误而基于下一数据块重新获取所述数据块。
7.根据权利要求6所述的装置,其特征在于,所述步骤还包括:在接收所述数据块和所述第一摘要函数之前,先接收生成所述第一摘要函数的所述特定算法的形式信息;
使用所述特定算法生成所述第二摘要函数包括:基于所述形式信息来确定所述特定算法以生成所述第二摘要函数。
8.根据权利要求7所述的装置,其特征在于,所述步骤还包括:在接收所述数据块和所述第一摘要函数之前,先接收所述数据块的属性信息,所述属性信息包括块大小、是否可变长和存储安全等级;
将所述数据块的多个备份冗余地存储到多个不同的物理存储器上包括:根据存储安全等级来确定备份数量和选择所述物理存储器,在每个被选择的所述物理存储器上根据块大小和是否可变长划分出空间,以不产生写放大的增量存储方式分别存储所述数据块的每个备份。
9.根据权利要求6所述的装置,其特征在于,所述物理存储器为NAND闪存存储器;基于所述纠错数据执行纠错处理包括:
将所述数据块从所在NAND闪存存储器的所在空间位置迁移到同一NAND闪存存储器的其它空间位置,或从所在NAND闪存存储器迁移到其它NAND闪存存储器;
重置所在NAND闪存存储器,或所在NAND闪存存储器的所在空间位置,并针对性地执行降低数据块损坏概率的操作;
基于所述纠错数据修复所述数据块使所述数据块重新具有完整性。
10.根据权利要求6所述的装置,其特征在于,所述数据块中存储有上一数据块的摘要函数,并且所述数据块的摘要函数存储于下一数据块中;
基于下一数据块来检查所述数据块的正确性包括:从下一数据块获取所述数据块的摘要函数作为第三摘要函数,并比较所述第二摘要函数是否等于所述第三摘要函数;
基于下一数据块重新获取所述数据块包括:重新获取使得所述第二摘要函数等于所述第三摘要函数的所述数据块。
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 true CN111078662A (zh) | 2020-04-28 |
CN111078662B 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035879A (zh) * | 2020-09-04 | 2020-12-04 | 昆明理工大学 | 一种提高小区自动物流保密性的信息处理方法及系统 |
WO2020169124A3 (en) * | 2020-06-08 | 2021-04-01 | Alipay Labs (singapore) Pte. Ltd. | Distributed storage of custom clearance data |
CN112965858A (zh) * | 2021-03-04 | 2021-06-15 | 电信科学技术第五研究所有限公司 | 一种组网分布式存储数据冲突处理的实现方法 |
US11356270B2 (en) | 2020-06-08 | 2022-06-07 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based smart contract pools |
US11372695B2 (en) | 2020-06-08 | 2022-06-28 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based import custom clearance data processing |
US11416418B2 (en) | 2020-06-08 | 2022-08-16 | Alipay Labs (singapore) Pte. Ltd. | Managing user authorizations for blockchain-based custom clearance services |
US11418511B2 (en) | 2020-06-08 | 2022-08-16 | Alipay Labs (singapore) Pte. Ltd. | User management of blockchain-based custom clearance service platform |
US11449911B2 (en) | 2020-06-08 | 2022-09-20 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based document registration for custom clearance |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650267A (zh) * | 2002-04-25 | 2005-08-03 | 甲骨文国际公司 | 增强数据完整性的检验装置 |
CN105740088A (zh) * | 2016-01-22 | 2016-07-06 | 深圳市硅格半导体股份有限公司 | 闪存数据纠错方法及装置 |
US20190303621A1 (en) * | 2018-03-27 | 2019-10-03 | International Business Machines Corporation | Runtime self-correction for blockchain ledgers |
-
2019
- 2019-11-22 CN CN201911157831.9A patent/CN111078662B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650267A (zh) * | 2002-04-25 | 2005-08-03 | 甲骨文国际公司 | 增强数据完整性的检验装置 |
CN105740088A (zh) * | 2016-01-22 | 2016-07-06 | 深圳市硅格半导体股份有限公司 | 闪存数据纠错方法及装置 |
US20190303621A1 (en) * | 2018-03-27 | 2019-10-03 | International Business Machines Corporation | Runtime self-correction for blockchain ledgers |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020169124A3 (en) * | 2020-06-08 | 2021-04-01 | Alipay Labs (singapore) Pte. Ltd. | Distributed storage of custom clearance data |
US11307775B2 (en) | 2020-06-08 | 2022-04-19 | Alipay Labs (singapore) Pte. Ltd. | Distributed storage of custom clearance data |
US11356270B2 (en) | 2020-06-08 | 2022-06-07 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based smart contract pools |
US11372695B2 (en) | 2020-06-08 | 2022-06-28 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based import custom clearance data processing |
US11416418B2 (en) | 2020-06-08 | 2022-08-16 | Alipay Labs (singapore) Pte. Ltd. | Managing user authorizations for blockchain-based custom clearance services |
US11418511B2 (en) | 2020-06-08 | 2022-08-16 | Alipay Labs (singapore) Pte. Ltd. | User management of blockchain-based custom clearance service platform |
US11449911B2 (en) | 2020-06-08 | 2022-09-20 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based document registration for custom clearance |
CN112035879A (zh) * | 2020-09-04 | 2020-12-04 | 昆明理工大学 | 一种提高小区自动物流保密性的信息处理方法及系统 |
CN112035879B (zh) * | 2020-09-04 | 2022-07-29 | 昆明理工大学 | 一种提高小区自动物流保密性的信息处理方法及系统 |
CN112965858A (zh) * | 2021-03-04 | 2021-06-15 | 电信科学技术第五研究所有限公司 | 一种组网分布式存储数据冲突处理的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111078662B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
US9710331B2 (en) | Data storage method, data recovery method, related apparatus, and system | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
WO2021135280A1 (zh) | 一种分布式存储系统的数据校验方法及相关装置 | |
CN108932249B (zh) | 一种管理文件系统的方法及装置 | |
CN109918229B (zh) | 非日志模式的数据库集群副本构建方法及装置 | |
CN107479823B (zh) | 随机读写文件测试中的数据校验方法和装置 | |
US20190227710A1 (en) | Incremental data restoration method and apparatus | |
CN109144790A (zh) | MySQL数据库的合成备份方法和装置 | |
WO2012048555A1 (zh) | 数据入库方法和装置 | |
CN114090345A (zh) | 一种磁盘阵列数据恢复方法、系统、存储介质及设备 | |
CN104881242A (zh) | 数据写入方法及装置 | |
CN113760312A (zh) | 基站数据升级方法、基站和计算机可读介质 | |
US7577804B2 (en) | Detecting data integrity | |
CN111400248B (zh) | 写数据、恢复数据的方法及文件系统 | |
CN115878381A (zh) | 基于srm盘的数据恢复方法及装置、存储介质、电子装置 | |
CN116072202A (zh) | 一种存储设备的管理方法、系统及存储介质 | |
CN114003174A (zh) | 一种纠删码存储方法、系统及电子设备 | |
CN113157715A (zh) | 纠删码数据中心机架协同更新方法 | |
CN112860488B (zh) | 对象的恢复方法和装置、电子设备和存储介质 | |
CN113742132B (zh) | 一种存储系统故障修复方法及装置 | |
WO2021227926A1 (zh) | 系统重启方法、终端及存储介质 | |
CN118193080A (zh) | 重载数据校验电路、重载系统、重载数据校验方法和设备 | |
CN117591344B (zh) | 一种针对ECC型NorFlash的文件备份方法及装置 |
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 |