CN111611310A - 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 - Google Patents
区块链数据裁剪方法、节点恢复方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111611310A CN111611310A CN202010349665.9A CN202010349665A CN111611310A CN 111611310 A CN111611310 A CN 111611310A CN 202010349665 A CN202010349665 A CN 202010349665A CN 111611310 A CN111611310 A CN 111611310A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- set information
- read
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000011084 recovery Methods 0.000 title claims description 32
- 238000005520 cutting process Methods 0.000 claims abstract description 108
- 238000004590 computer program Methods 0.000 claims description 14
- 238000009966 trimming Methods 0.000 claims description 11
- 230000006837 decompression Effects 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000013138 pruning Methods 0.000 claims 1
- 239000004744 fabric Substances 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链数据裁剪方法,包括:区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库;根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中;根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块;将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件;将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。本发明解决现有fabric区块链账本中区块数据不断增多时,产生的磁盘空间扩容问题和带宽问题。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种区块链数据裁剪方法、节点恢复方法、装置、设备及介质。
背景技术
fabric区块链账本,包括2种节点:排序节点/共识节点(Orderer)和校验节点(peer)。Orderer节点接收所有的链上的区块进行排序,以及将区块数据保存到本地,并广播到peer节点。每个peer节点校验区块数据的合法性,并写入本地磁盘。
在区块链账本中,每个Orderer节点和peer节点都要保存全量的数据。随着业务的发展,区块数目与日俱增,从而占用了大量的磁盘空间。随着磁盘空间的占用,未来会出现停机进行物理***扩容等诸多不方便的事情。
如果有新的节点加入区块链网络,需要从0开始,同步区块链网络上的数据,导致新增的节点,需要耗费大量的时间,去拉取大量的区块链网络上的数据,进而影响带宽,影响到区块链网络的正常工作。
因此,寻找一种方法解决现有fabric区块链账本中不断增多的区块数据导致的磁盘空间扩容问题、带宽问题,成为本领域技术人员亟需解决的技术问题。
发明内容
本发明实施例提供了一种区块链数据裁剪方法、装置、设备及介质,以解决现有fabric区块链账本中区块数据不断增多时,产生的磁盘空间扩容问题和带宽问题。
一种区块链数据裁剪方法,包括:
区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库,所述第一状态数据库用于存储所述区块链节点上的所有区块对应的读写集信息,所述第二状态数据库用于存储所述区块链节点上的已裁剪区块对应的读写集信息;
根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中;
根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块;
将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件;
将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。
可选地,所述裁剪参数包括账本名称、裁剪终止区块号、转储目的地;
所述根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块包括:
根据所述账本名称、裁剪终止区块号获取待裁剪区块链上的所述待裁剪区块对应的区块数据,并将所述区块数据复制到所述转储目录;
根据所述裁剪终止区块号获取裁剪终止区块的后一个区块的配置块,并将所述配置块保存至所述区块链节点和所述转储目录。
可选地,所述将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件包括:
获取本次裁剪操作的元数据,所述元数据包括裁剪时间、账本名称、裁剪起始区块号、裁剪终止区块号、配置块编号、待裁剪区块对应的索引数据;
对所述元数据、第二状态数据库中的读写集信息、转储目录上的区块数据、配置块进行数字签名,打包为快照文件,发送到预设的归档数据库中。
一种节点恢复方法,包括:
获取快照文件,所述快照文件由上述区块链数据裁剪方法生成的;
从所述快照文件中获取配置块,将所述配置块解压至预设目录中;
从所述快照文件中获取读写集信息,将所述读写集信息分别解压至节点的第一状态数据库和第二状态数据库;
在启动节点时,根据所述元数据中的账本名称、配置块编号从所述预设目录中加载对应的配置块;
加载所述第一状态数据库,得到所述账本名称对应的区块链中创世块到裁剪终止区块的读写集信息;
从区块链网络中拉取所述裁剪终止区块以后的区块对应的区块数据,将所述区块数据写入所述账本名称对应的区块链上。
可选地,在将所述配置块解压至预设目录之后,所述节点恢复方法还包括:
在启动节点时,若所述快照文件为区块链的首次快照文件,从预设目录中加载创世块作为配置块;
从所述创世块开始,读取创世块到指定区块的读写集信息,并将所述读写集信息添加到节点的第一状态数据库;
其中,所述指定区块的编号小于所述首次快照文件的裁剪终止区块号。
可选地,在将所述配置块解压至预设目录之后,所述节点恢复方法包括:
在节点启动时,若所述快照文件为区块链的非首次快照文件,从预设目录中加载配置块;
从裁剪起始区块开始,读取裁剪起始区块到指定区块的读写集信息,并将所述读写集信息添加到上一次快照文件恢复出来的第一状态数据库中;
其中,所述指定区块的编号小于所述非首次快照文件的裁剪终止区块号。
一种区块链数据裁剪装置,包括:
第一获取模块,用于区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库,所述第一状态数据库用于存储所述区块链节点上的所有区块对应的读写集信息,所述第二状态数据库用于存储所述区块链节点上的已裁剪区块对应的读写集信息;
第二获取模块,用于根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中;
第三获取模块,用于根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块;
快照生成模块,用于将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件;
删除模块,用于将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。
一种节点恢复装置,包括:
文件获取模块,用于获取快照文件,所述快照文件由上述区块链数据裁剪装置生成;
第一解压模块,用于从所述快照文件中获取配置块,将所述配置块解压至预设目录中;
第二解压模块,用于从所述快照文件中获取读写集信息,将所述读写集信息分别解压至节点的第一状态数据库和第二状态数据库;
第一加载模块,用于在启动节点时,根据所述元数据中的账本名称、配置块编号从所述预设目录中加载对应的配置块;
第二加载模块,用于加载所述第一状态数据库,得到所述账本名称对应的区块链中创世块到裁剪终止区块的读写集信息;
拉取模块,用于从区块链网络中拉取所述裁剪终止区块以后的区块对应的区块数据,将所述区块数据写入所述账本名称对应的区块链上。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链数据裁剪方法或节点恢复方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链数据裁剪方法或节点恢复方法。
本发明实施例在区块链节点原有第一状态数据库的基础上增设第二状态数据库,用于存储所述区块链节点上的已裁剪区块对应的读写集信息。在对区块链数据进行裁剪时,区块链节点获取裁剪参数,根据所述裁剪参数获取待裁剪区块对应的区块数据及其索引数据、读写集信息、配置块,并将所述读写集信息写入所述第二状态数据库中;然后根据所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息,生成本次裁剪操作对应的快照文件;最后将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除,从而实现对区块链数据的裁剪,可以将区块链节点上超过时效性、访问频率低的区块数据进行剥离,减少对磁盘空间的占用,有效地解决了现有fabric区块链账本中区块数据不断增多时产生的磁盘空间扩容问题和带宽问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中区块链数据裁剪方法的一流程图;
图2是本发明一实施例中区块链数据裁剪方法中步骤S103的一流程图;
图3是本发明一实施例中区块链数据裁剪方法中步骤S104的一流程图;
图4是本发明一实施例中节点恢复方法的一流程图;
图5是本发明一实施例中节点恢复方法的另一流程图;
图6是本发明一实施例中节点恢复方法的另一流程图;
图7是本发明一实施例中区块链数据裁剪装置的一原理框图;
图8是本发明一实施例中节点恢复装置的一原理框图
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的区块链数据裁剪方法的目的是为了克服现有fabric区块链账本中区块数据不断增多时产生的磁盘空间扩容问题和带宽问题,减少区块数据占用的磁盘空间和拉取区块数据时占用的带宽空间,降低区块数据对区块链网络的影响。
以下将对本实施例提供的区块链数据裁剪方法进行详细的描述,如图1所示,所述区块链数据裁剪方法包括:
在步骤S101中,区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库,所述第一状态数据库用于存储所述区块链节点上的所有区块对应的读写集信息,所述第二状态数据库用于存储所述区块链节点上的已裁剪区块对应的读写集信息。
在这里,区块链节点上可以包括一条或者多条区块链,每一条区块链对应一个账本名称。同一条区块链上包括一个或多个区块,这些区块通过高度区分,高度最低的区块为创世块,编号为0,高度逐渐增高时编号逐渐增大。每一个区块包括与之对应的区块数据、读写集信息、配置块。所述裁剪参数是指对区块链节点进行数据裁剪的指示信息,包括但不限于账本名称、裁剪终止区块号、转储目录。其中,所述账本名称是指区块链账本的标识信息,用于区分区块链节点上的不同区块链账本;所述裁剪终止区块号是指本次待裁剪区块段中的最高区块对应的编号,即裁剪终止区块对应的编号,所述裁剪起始区块号是指本次待裁剪区块段中的最低区块对应的编号,即裁剪起始区块对应的编号,裁剪终止区块号与裁剪起始区块号互为呼应;所述待裁剪区块段包括裁剪起始区块、裁剪终止区块以及两者之间的区块。所述转储目录是指裁剪过程中产生的数据的存储目录。
在步骤S102中,根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中。
在这里,所述读写集信息(Read-Write Set)是指背书节点(Endorser)模拟执行交易过程中产生的数据,包括读集(Read Set)和写集(Write Set)。其中读集包含了唯一键的列表,还有在模拟执行过程中交易读取的已提交键值。写集也包含了一个唯一键的列表,还有在模拟执行过程中交易写的键值。本发明实施例根据所述裁剪参数中的裁剪终止区块号得到待裁剪区块段,然后根据所述待裁剪区块段中的每一待裁剪区块的区块号查询节点中的第一状态数据库,获取每一所述待裁剪区块对应的读写集信息,并将每一所述待裁剪区块对应的读写集信息写入第二状态数据库。
如前所述,所述第一状态数据库为区块链账本中原有的状态数据库,用于存储所述区块链节点上的所有区块对应的读写集信息,即存储创世块到最高区块之间的读写集信息。所述第二状态数据库为本发明实施例在每一个节点上新增的状态数据库,用于存储创世块到裁剪终止区块之间的读写集信息,即存储所述区块链节点上的已裁剪区块对应的读写集信息。执行过裁剪的节点,都会有第二状态数据库。本发明实施例通过第二状态数据库记录节点上的区块链账本在上次做裁剪时的世界状态,使得节点可以进行二次甚至更多次裁剪操作,直接基于已有的第二状态数据库增加新的读写集信息即可更新每次裁剪后的第二状态数据库。
示例性地,若账本名称为C、裁剪终止区块号为N,所述账本名称C对应的区块链账本上的最低区块为区块号M对应的区块,则遍历所述最低区块M到裁剪终止区块号N对应的区块,从第一状态数据库中获取每一待裁剪区块的读写集信息,并写入第二状态数据库。
在步骤S103中,根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块。
在这里,所述区块数据是指每一个待裁剪区块的计算逻辑。所述索引数据是指区块链账本的每一个区块上的区块数据的存储位置,具体包括文件信息和偏移量信息。根据所述文件信息和偏移量信息可以确定对应区块的区块数据从哪个文件的哪个偏移量开始存储,从所述文件信息和偏移量信息指定的位置开始读取即可得到所述区块数据。区块链账本上的区块对应的索引数据统一保存在本地索引数据库中,本发明实施例从所述索引数据库中获取待裁剪区块对应的索引数据。其中,所述索引数据作为元数据存储,所述索引数据则复制到转储目录。
可选地,如图2所示,所述步骤S103包括:
在步骤S201中,根据所述账本名称、裁剪终止区块号获取待裁剪区块链上的所述待裁剪区块对应的区块数据,并将所述区块数据复制到所述转储目录。
在这里,本发明实施例根据账本名称确定待裁剪的区块链账本,确定所述待裁剪的区块链账本中的最低区块作为裁剪起始区块;然后获取所述最低区块到所述裁剪终止区块号对应区块及其之间的区块,得到待裁剪区块段,获取所述待裁剪区块段上的区块数据,作为待裁剪的区块数据,将所述待裁剪的区块数据复制到所述转储目录。其中,当所述待裁剪的区块链账本未发生过裁剪操作时,所述区块链账本的裁剪起始区块为创世块;当所述待裁剪的区块链账本已发生过裁剪操作时,所述区块链账本的裁剪起始区块为上一次裁剪操作的裁剪终止区块的后一个区块。
示例性地,根据所述裁剪参数,假设账本名称为C、裁剪终止区块号为N、转储目录为X,若所述账本名称C对应的区块链账本上的最低区块为区块号M对应的区块,则可以确定本次裁剪操作是将所述账本名称为C的区块链账本的最低区块M到裁剪终止区块N上的区块数据及其索引数据复制到转储目录X。
在步骤S202中,根据所述裁剪终止区块号获取裁剪终止区块的后一个区块的配置块,并将所述配置块保存至所述区块链节点和所述转储目录。
在这里,所述配置块中存储了区块的配置信息。节点启动的时候,需要加载配置块,以设置交易内容。区块链账本中的每一个区块都有对应的配置块,所述配置块通常记录在高度较低的其他区块上。一方面,本发明实施例通过将裁剪终止区块后一个区块对应的配置块保存在节点本地,使得节点启动时可以从裁剪终止区块后一个区块对应的配置块配置交易内容,完成节点启动过程,从而可以有效避免节点启动时由于找不到配置块而导致的启动失败。另一方面,本发明实施例通过将裁剪终止区块后一个区块对应的配置块保存在转储目录,生成快照文件。在拿取快照文件去其他设备上恢复节点时,则可以从裁剪终止区块后一个区块对应的配置块去配置交易内容,完成节点启动过程,然后从所述裁剪终止区块后一个区块开始拉取区块数据,实现节点恢复而无需从创世块开始拉取区块数据。
示例性地,承接前文示例,若待裁剪区块为最低区块M到裁剪终止区块N之间的所有区块,裁剪终止区块N后一个区块为区块N+1,则将区块N+1对应的配置块保存在本地和所述转储目录。
在步骤S104中,将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件。
可选地,如图3所示,所述步骤S104包括:
在步骤S301中,获取本次裁剪操作的元数据,所述元数据包括裁剪时间、账本名称、裁剪起始区块号、裁剪终止区块号、配置块编号、待裁剪区块对应的索引数据。
在这里,本发明实施例以裁剪时间、账本名称、裁剪起始区块号、裁剪终止区块号、配置块编号、待裁剪区块对应的索引数据作为元数据。其中所述配置块编号是指上述裁剪终止区块后一个区块对应的配置块在区块链账本中的高度。
在步骤S302中,对所述元数据、第二状态数据库中的读写集信息、转储目录上的区块数据、配置块进行数字签名,打包为快照文件,发送到预设的归档数据库中。
在这里,本发明实施例将转储目的地上临时保存的配置块以及待裁剪区块对应的区块数据、元数据、第二状态数据库中的读写集信息,进行数字签名,完成加密、身份认证,以防止数据被伪造、被篡改;然后打包为快照文件,发送到归档数据库中进行存储,从而完成对区块链节点的裁剪操作,以便利用所述快照文件进行节点恢复。
在步骤S105中,将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。
在生成快照文件后,本发明实施例将待裁剪区块对应的区块数据及其索引数据从本地删除。通过删除区块数据和索引数据,大大地减少了区块链节点上所存储的数据量,降低了磁盘的占用空间。
示例性地,承接前文示例,若待裁剪区块为最低区块M到裁剪终止区块N之间的所有区块,则将所述最低区块M到裁剪终止区块N之间的每一区块的区块数据及其索引数据,从本地删除。
综上所述,本发明实施例通过在区块链节点上增设第二状态数据库,用于存储所述区块链节点上的已裁剪区块对应的读写集信息。在对区块链数据进行裁剪时,区块链节点获取裁剪参数,然后根据所述裁剪参数获取待裁剪区块对应的区块数据及其索引数据、读写集信息、配置块,并将所述读写集信息写入所述第二状态数据库中;最后根据所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息,生成本次裁剪操作对应的快照文件,从而实现对区块链数据的裁剪,可以将区块链节点上超过时效性、访问频率低的区块数据进行剥离,减少对磁盘空间的占用,有效地解决了现有fabric区块链账本中区块数据不断增多时产生的磁盘空间扩容问题和带宽问题。
为了便于理解,以下给出本发明的一个具体示例:现有一条区块链账本A,包括区块0-区块200。
假如1月11日第一次裁剪的范围是[0,100),区块100指向的配置块为66,2月11日第二次裁剪的范围是[100,150),区块150指向的配置块为99。
那么生成的第一个快照文件中,包括元数据、配置块(区块66)、第二状态数据库中记录的读写集信息(区块0-99的读写集信息)、待裁剪区块对应的区块数据(区块0-99的区块数据),元数据包括的裁剪时间为1月11日、账本名称为C、裁剪起始区块号为0、裁剪终止区块号为99、配置块编号为66以及待裁剪区块对应的索引数据。
第二个快照文件中,包括元数据、配置块(区块99)、第二状态数据库中记录的读写集信息(区块0-149的读写集信息)、待裁剪区块对应的区块数据(区块100-149的区块数据),元数据包括的裁剪时间为2月11日、账本名称为C、裁剪起始区块号为100、裁剪终止区块号为149、配置块编号为99以及待裁剪区块对应的索引数据。
本发明实施例还提供了一种节点恢复方法。在这里,所述节点恢复方法基于上述图1至图3实施例中所述的区块链数据裁剪方法得到的快照文件。所述快照文件中包括配置块、元数据、第二状态数据库中的读写集信息以及待裁剪区块对应的区块数据。其中,第二状态数据库中存储的是创世块到裁剪终止区块对应的读写集信息,所述待裁剪区块对应的区块数据是裁剪起始区块到裁剪终止区块对应的区块数据。
如图4所示,所述节点恢复方法包括:
在步骤S401中,获取快照文件。
所述快照文件为上述图1至图3任一实施例中所生成的快照文件,所述快照文件中包括配置块、读写集信息、区块数据及元数据,具体请参见上述实施例的叙述,此处不再赘述。
在步骤S402中,从所述快照文件中获取配置块,将所述配置块解压至预设目录中。
在节点启动前,本发明实施例从归档数据库中读取所述快照文件,获取其中的配置块,并将所述配置块加压至预设目录中,以便于节点启动时读取配置块。
在这里,若待恢复的节点先前做过多次裁剪,有多个快照文件时,则获取最新的快照文件,根据该最新的快照文件来恢复节点。
在步骤S403中,从所述快照文件中获取读写集信息,将所述读写集信息分别解压至节点的第一状态数据库和第二状态数据库。
如前所述,所述快照文件中包括裁剪操作产生并且记录在第二状态数据库中的读写集信息,所述读写信息集为快照点为止的最新数据,即所述快照文件保存的读写集信息为创世块到裁剪终止区块的读写集信息。因此本发明实施例获取所述快照文件中的读写集信息,并将所述读写集信息分别解压至节点中的第一状态数据库和第二状态数据库中。
本发明实施例中的每一个节点都包括第一状态数据库和第二状态数据库,所述第一状态数据库为区块链账本中原有的状态数据库,用于存储创世块到最高区块之间的读写集信息,所述第二状态数据库为用于存储创世块到裁剪终止区块之间的读写集信息。本发明实施例通过将快照文件中的读写集信息解压至第一状态数据库,实现了将节点恢复至上一次裁剪操作的世界状态,即上一次裁剪操作对应的快照点的状态。通过将快照文件中的读写集信息解压至第二状态数据库,使得节点得知上一次裁剪之后区块链的状态,有利于保证了从快照点恢复的所述节点可以顺利的进行下一次快照。
在步骤S404中,在启动节点时,根据所述元数据中的账本名称、配置块编号从所述预设目录中加载对应的配置块。
一个节点可能存在多条区块链账本,本发明实施例根据账本名称确定当前恢复的区块链账本。然后根据元数据中的配置块编号去获取配置块。如果预设目录中存在与所述配置块编号一致的配置块,则读取所述配置块;如果预设目录中没有与所述配置块编号一致的配置块,则无法得到配置块,基于快照的节点恢复过程失败。
在步骤S405中,加载所述第一状态数据库,得到所述账本名称对应的区块链中创世块到裁剪终止区块的读写集信息。
在步骤S406中,从区块链网络中拉取所述裁剪终止区块以后的区块对应的区块数据,将所述区块数据写入所述账本名称对应的区块链上。
在启动节点时,本实施例通过加载所述配置块,完成交易内容的配置,通过加载第一状态数据库到本地,得到快照点为止的最新交易数据,然后节点再从配置块对应的区块,即所述裁剪终止区块的后一个区块,开始从区块链网络上拉取数据,直至最高区块,并将所拉取到的数据写入区块链上,以得到完整的区块链。可见,本实施例通过快照文件恢复节点时无需从创世块开始拉取数据,大大地减少了拉取的数据量,进而减少了对区块链网络的影响。
可选地,作为本发明的一个优选示例,基于所述快照文件还可以恢复到裁剪终止区块之前的指定区块。如图5所示,所述节点恢复方法包括:
在步骤S501中,获取快照文件。
在步骤S502中,从所述快照文件中获取配置块,将所述配置块解压至预设目录中。
其中步骤S501至步骤S502与上述实施例中所述的步骤S401至步骤S402相同,具体请参见上述实施例的叙述,此处不再赘述。所述方法还包括:
在步骤S503中,在启动节点时,若所述快照文件为区块链的首次快照文件,从预设目录中加载创世块作为配置块。
在步骤S504中,从所述创世块开始,读取创世块到指定区块的读写集信息,并将所述读写集信息添加到所述第一状态数据库。
其中,所述指定区块的编号小于所述首次快照文件中的裁剪终止区块号。当指定区块的高度小于首次快照文件的裁剪终止区块号时,按照创世块对应的索引数据开始读取首次快照文件中的读写集信息,得到创世块到指定区块之间的读写集信息。并将所得到的读写集信息写入第一状态数据库,从而将节点恢复到裁剪终止区块之前的任意高度。
后续节点可以从所述指定区块的后一个区块开始,向区块链网络中拉取对应的区块数据,并将所述区块数据写入所述账本名称对应的区块链上。
示例性地,假设区块链账本A在1月11日第一次快照的范围是[0,100),则根据首次快照文件,所述指定区块可以为[1,99]中的任意一个高度,将创世块到指定区块的读写集信息写入第一状态数据库中,即可实现将区块链恢复到区块100之前的任意高度。
可选地,作为本发明的另一个优选示例,基于所述快照文件还可以恢复到裁剪终止区块之前的指定区块。如图6所示,所述节点恢复方法包括:
在步骤S601中,获取快照文件。
在步骤S602中,从所述快照文件中获取配置块,将所述配置块解压至预设目录中。
其中步骤S601至步骤S602与上述实施例中所述的步骤S401至步骤S402相同,具体请参见上述实施例的叙述,此处不再赘述。所述方法还包括:
在步骤S603中,在节点启动时,若所述快照文件为区块链的非首次快照文件,从预设目录中加载配置块。
在这里,所述非首次快照文件是指以创世块之后的区块作为裁剪起始区块得到的快照文件。
在步骤S604中,从裁剪起始区块开始,读取裁剪起始区块到指定区块的读写集信息,并将所述读写集信息添加到上一次快照文件恢复出来的第一状态数据库中。
其中,所述指定区块的编号小于所述非首次快照文件中的裁剪终止区块号。
在这里,所读取到的裁剪起始区块到指定区块的读写集信息,添加在所述第一状态数据库中上一次快照文件恢复出来的读写集信息后,从而形成一条从创世块开始到指定区块的前后承接的读写集信息记录。本实施例实现了根据非首次快照文件恢复节点上的区块链账本到指定区块。后续节点也可以从所述指定区块的后一个区块开始,向区块链网络中拉取对应的区块数据,并将所述区块数据写入所述账本名称对应的区块链上。
承接前文示例,假设区块链账本A在1月11日第一次快照的范围是[0,100),得到第一快照文件;在2月11日第二次快照的范围是[100,150),得到第二快照文件。在根据第一快照文件恢复出的第一状态数据库包括区块0-99的读写集信息,则根据该第二快照文件,通过步骤S603从所述元数据中获取裁剪起始区块100,通过步骤S604根据所述裁剪起始区块100开始获取读写集信息,直到指定区块,比如区块120;再通过步骤S605将所获取的区块100-区块120的读写集信息,添加到上一次快照文件恢复出来的第一状态数据库中,即添加到根据第一快照文件恢复出来的第一状态数据库中区块99的读写集信息之后,从而实现了将区块链账本恢复到区块100以后、150以前的任意高度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种区块链数据裁剪装置,该区块链数据裁剪装置与上述实施例中区块链数据裁剪方法一一对应。如图7所示,该区块链数据裁剪装置包括第一获取模块71、第二获取模块72、第三获取模块73、快照生成模块74、删除模块75。各功能模块详细说明如下:
第一获取模块71,用于区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库,所述第一状态数据库用于存储所述区块链节点上的所有区块对应的读写集信息,所述第二状态数据库用于存储所述区块链节点上的已裁剪区块对应的读写集信息;
第二获取模块72,用于根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中;
第三获取模块73,用于根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块;
快照生成模块74,用于将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件;
删除模块75,用于将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。
可选地,所述裁剪参数包括账本名称、裁剪终止区块号、转储目的地。
所述第三获取模块73包括:
区块数据获取单元,用于根据所述账本名称、裁剪终止区块号获取待裁剪区块链上的所述待裁剪区块对应的区块数据,并将所述区块数据复制到所述转储目录;
配置块获取单元,用于根据所述裁剪终止区块号获取裁剪终止区块的后一个区块的配置块,并将所述配置块保存至所述区块链节点和所述转储目录。
可选地,所述快照生成模块74包括:
元数据获取单元,用于获取本次裁剪操作的元数据,所述元数据包括裁剪时间、账本名称、裁剪起始区块号、裁剪终止区块号、配置块编号、待裁剪区块对应的索引数据;
快照生成单元,用于对所述元数据、第二状态数据库中的读写集信息、转储目录上的区块数据、配置块进行数字签名,打包为快照文件,发送到预设的归档数据库中。
关于区块链数据裁剪装置的具体限定可以参见上文中对于区块链数据裁剪方法的限定,在此不再赘述。上述区块链数据裁剪装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一实施例中,提供一种节点恢复装置,该节点恢复装置与上述实施例中节点恢复方法一一对应。如图8所示,该节点恢复装置包括文件获取模块81、第一解压模块82、第二解压模块83、第一加载模块84、第二加载模块85、拉取模块86。各功能模块详细说明如下:
文件获取模块81,用于获取快照文件,所述快照文件为权利要求7生成的快照文件;
第一解压模块82,用于从所述快照文件中获取配置块,将所述配置块解压至预设目录中;
第二解压模块83,用于从所述快照文件中获取读写集信息,将所述读写集信息分别解压至节点的第一状态数据库和第二状态数据库;
第一加载模块84,用于在启动节点时,根据所述元数据中的账本名称、配置块编号从所述预设目录中加载对应的配置块;
第二加载模块85,用于加载所述第一状态数据库,得到所述账本名称对应的区块链中创世块到裁剪终止区块的读写集信息;
拉取模块86,用于从区块链网络中拉取所述裁剪终止区块以后的区块对应的区块数据,将所述区块数据写入所述账本名称对应的区块链上。
可选地,在将所述配置块解压至预设目录之后,所述节点恢复装置还包括:
第三加载模块,用于在启动节点时,若所述快照文件为区块链的首次快照文件,从预设目录中加载创世块作为配置块;
第一读取模块,用于从所述创世块开始,读取创世块到指定区块的读写集信息,并将所述读写集信息添加到节点的第一状态数据库。
可选地,在将所述配置块解压至预设目录之后,所述节点恢复装置包括:
第五加载模块,用于在节点启动时,若所述快照文件为区块链的非首次快照文件,从预设目录中加载配置块;
第二读取模块,用于从裁剪起始区块开始,读取裁剪起始区块到指定区块的读写集信息,并将所述读写集信息添加到上一次快照文件恢复出来的第一状态数据库中。
关于节点恢复装置的具体限定可以参见上文中对于节点恢复方法的限定,在此不再赘述。上述节点恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块数据裁剪方法或节点恢复方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库,所述第一状态数据库用于存储所述区块链节点上的所有区块对应的读写集信息,所述第二状态数据库用于存储所述区块链节点上的已裁剪区块对应的读写集信息;
根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中;
根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块;
将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件;
将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。
在另一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取快照文件,所述快照文件为上述区块数据裁剪方法生成的快照文件;
从所述快照文件中获取配置块,将所述配置块解压至预设目录中;
从所述快照文件中获取读写集信息,将所述读写集信息分别解压至节点的第一状态数据库和第二状态数据库;
在启动节点时,根据所述元数据中的账本名称、配置块编号从所述预设目录中加载对应的配置块;
加载所述第一状态数据库,得到所述账本名称对应的区块链中创世块到裁剪终止区块的读写集信息;
从区块链网络中拉取所述裁剪终止区块以后的区块对应的区块数据,将所述区块数据写入所述账本名称对应的区块链上。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种区块链数据裁剪方法,其特征在于,包括:
区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库,所述第一状态数据库用于存储所述区块链节点上的所有区块对应的读写集信息,所述第二状态数据库用于存储所述区块链节点上的已裁剪区块对应的读写集信息;
根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中;
根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块;
将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件;
将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。
2.如权利要求1所述的区块链数据裁剪方法,其特征在于,所述裁剪参数包括账本名称、裁剪终止区块号、转储目的地;
所述根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块包括:
根据所述账本名称、裁剪终止区块号获取待裁剪区块链上的所述待裁剪区块对应的区块数据,并将所述区块数据复制到所述转储目录;
根据所述裁剪终止区块号获取裁剪终止区块的后一个区块的配置块,并将所述配置块保存至所述区块链节点和所述转储目录。
3.如权利要求2所述的区块链数据裁剪方法,其特征在于,所述将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件包括:
获取本次裁剪操作的元数据,所述元数据包括裁剪时间、账本名称、裁剪起始区块号、裁剪终止区块号、配置块编号、待裁剪区块对应的索引数据;
对所述元数据、第二状态数据库中的读写集信息、转储目录上的区块数据、配置块进行数字签名,打包为快照文件,发送到预设的归档数据库中。
4.一种节点恢复方法,其特征在于,所述节点恢复方法包括:
获取快照文件,所述快照文件由权利要求1至3任一项所述的区块链数据裁剪方法生成;
从所述快照文件中获取配置块,将所述配置块解压至预设目录中;
从所述快照文件中获取读写集信息,将所述读写集信息分别解压至节点的第一状态数据库和第二状态数据库;
在启动节点时,根据所述元数据中的账本名称、配置块编号从所述预设目录中加载对应的配置块;
加载所述第一状态数据库,得到所述账本名称对应的区块链中创世块到裁剪终止区块的读写集信息;
从区块链网络中拉取所述裁剪终止区块以后的区块对应的区块数据,将所述区块数据写入所述账本名称对应的区块链上。
5.如权利要求4所述的节点恢复方法,其特征在于,在将所述配置块解压至预设目录之后,所述节点恢复方法还包括:
在启动节点时,若所述快照文件为区块链的首次快照文件,从预设目录中加载创世块作为配置块;
从所述创世块开始,读取创世块到指定区块的读写集信息,并将所述读写集信息添加到节点的第一状态数据库;
其中,所述指定区块的编号小于所述首次快照文件的裁剪终止区块号。
6.如权利要求4所述的节点恢复方法,其特征在于,在将所述配置块解压至预设目录之后,所述节点恢复方法包括:
在节点启动时,若所述快照文件为区块链的非首次快照文件,从预设目录中加载配置块;
从裁剪起始区块开始,读取裁剪起始区块到指定区块的读写集信息,并将所述读写集信息添加到上一次快照文件恢复出来的第一状态数据库中;
其中,所述指定区块的编号小于所述非首次快照文件的裁剪终止区块号。
7.一种区块链数据裁剪装置,其特征在于,所述装置包括:
第一获取模块,用于区块链节点获取裁剪参数,所述区块链节点包括第一状态数据库和第二状态数据库,所述第一状态数据库用于存储所述区块链节点上的所有区块对应的读写集信息,所述第二状态数据库用于存储所述区块链节点上的已裁剪区块对应的读写集信息;
第二获取模块,用于根据所述裁剪参数从所述第一状态数据库中获取待裁剪区块对应的读写集信息,并将所述读写集信息写入所述第二状态数据库中;
第三获取模块,用于根据所述裁剪参数获取所述待裁剪区块对应的区块数据及其索引数据、配置块;
快照生成模块,用于将所述待裁剪区块对应的区块数据及其索引数据、配置块和所述第二状态数据库中的读写集信息生成本次裁剪操作对应的快照文件;
删除模块,用于将所述待裁剪区块对应的区块数据及其索引数据从所述区块链节点上删除。
8.一种节点恢复装置,其特征在于,所述节点恢复装置包括:
文件获取模块,用于获取快照文件,所述快照文件由权利要求7所述的区块链数据裁剪装置生成;
第一解压模块,用于从所述快照文件中获取配置块,将所述配置块解压至预设目录中;
第二解压模块,用于从所述快照文件中获取读写集信息,将所述读写集信息分别解压至节点的第一状态数据库和第二状态数据库;
第一加载模块,用于在启动节点时,根据所述元数据中的账本名称、配置块编号从所述预设目录中加载对应的配置块;
第二加载模块,用于加载所述第一状态数据库,得到所述账本名称对应的区块链中创世块到裁剪终止区块的读写集信息;
拉取模块,用于从区块链网络中拉取所述裁剪终止区块以后的区块对应的区块数据,将所述区块数据写入所述账本名称对应的区块链上。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述的区块链数据裁剪方法或权利要求4至6任一项所述的节点恢复方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的区块链数据裁剪方法或权利要求4至6任一项所述的节点恢复方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010349665.9A CN111611310A (zh) | 2020-04-28 | 2020-04-28 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
PCT/CN2021/076828 WO2021218300A1 (zh) | 2020-04-28 | 2021-02-19 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010349665.9A CN111611310A (zh) | 2020-04-28 | 2020-04-28 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111611310A true CN111611310A (zh) | 2020-09-01 |
Family
ID=72201280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010349665.9A Pending CN111611310A (zh) | 2020-04-28 | 2020-04-28 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111611310A (zh) |
WO (1) | WO2021218300A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112398908A (zh) * | 2020-10-20 | 2021-02-23 | 杭州云象网络技术有限公司 | 一种区块链网络节点删除方法、***、存储介质和装置 |
CN112559533A (zh) * | 2020-12-23 | 2021-03-26 | 杭州趣链科技有限公司 | 连续型数据库的归档方法、装置及电子设备 |
CN112650733A (zh) * | 2020-12-28 | 2021-04-13 | 杭州趣链科技有限公司 | 一种智能合约状态数据的处理方法、***与装置 |
WO2021218300A1 (zh) * | 2020-04-28 | 2021-11-04 | 深圳壹账通智能科技有限公司 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
CN113656626A (zh) * | 2021-08-05 | 2021-11-16 | 广州创乐出海科技有限公司 | 一种图像数据保存方法、装置、计算机设备和存储介质 |
CN113886399A (zh) * | 2021-10-25 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | 更新索引数据库和基于索引数据库进行检索的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324757A (zh) * | 2018-08-22 | 2019-02-12 | 深圳前海微众银行股份有限公司 | 区块链数据缩容方法、装置及存储介质 |
CN109684333A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 一种数据存储及裁剪方法、设备和存储介质 |
US20190332921A1 (en) * | 2018-04-13 | 2019-10-31 | Vosai, Inc. | Decentralized storage structures and methods for artificial intelligence systems |
CN110543446A (zh) * | 2019-08-21 | 2019-12-06 | 杭州趣链科技有限公司 | 一种基于快照的区块链直接归档方法 |
US20190379543A1 (en) * | 2018-06-07 | 2019-12-12 | International Business Machines Corporation | Efficient validation for blockchain |
CN110727644A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 一种区块链数据裁剪的方法、***及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102378367B1 (ko) * | 2015-03-20 | 2022-03-24 | 한국전자통신연구원 | 분산 파일 시스템 |
CN110471795B (zh) * | 2019-07-31 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 区块链状态数据恢复方法及装置、电子设备 |
CN111611310A (zh) * | 2020-04-28 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
-
2020
- 2020-04-28 CN CN202010349665.9A patent/CN111611310A/zh active Pending
-
2021
- 2021-02-19 WO PCT/CN2021/076828 patent/WO2021218300A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190332921A1 (en) * | 2018-04-13 | 2019-10-31 | Vosai, Inc. | Decentralized storage structures and methods for artificial intelligence systems |
US20190379543A1 (en) * | 2018-06-07 | 2019-12-12 | International Business Machines Corporation | Efficient validation for blockchain |
CN109324757A (zh) * | 2018-08-22 | 2019-02-12 | 深圳前海微众银行股份有限公司 | 区块链数据缩容方法、装置及存储介质 |
CN109684333A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 一种数据存储及裁剪方法、设备和存储介质 |
CN110543446A (zh) * | 2019-08-21 | 2019-12-06 | 杭州趣链科技有限公司 | 一种基于快照的区块链直接归档方法 |
CN110727644A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 一种区块链数据裁剪的方法、***及存储介质 |
Non-Patent Citations (1)
Title |
---|
周杰;李文敬;: "基于云计算的物流区块链共识算法研究", 计算机工程与应用, no. 19, 1 October 2018 (2018-10-01) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218300A1 (zh) * | 2020-04-28 | 2021-11-04 | 深圳壹账通智能科技有限公司 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
CN112398908A (zh) * | 2020-10-20 | 2021-02-23 | 杭州云象网络技术有限公司 | 一种区块链网络节点删除方法、***、存储介质和装置 |
CN112398908B (zh) * | 2020-10-20 | 2023-04-07 | 杭州云象网络技术有限公司 | 一种区块链网络节点删除方法、***、存储介质和装置 |
CN112559533A (zh) * | 2020-12-23 | 2021-03-26 | 杭州趣链科技有限公司 | 连续型数据库的归档方法、装置及电子设备 |
CN112559533B (zh) * | 2020-12-23 | 2023-06-16 | 杭州趣链科技有限公司 | 连续型数据库的归档方法、装置及电子设备 |
CN112650733A (zh) * | 2020-12-28 | 2021-04-13 | 杭州趣链科技有限公司 | 一种智能合约状态数据的处理方法、***与装置 |
CN113656626A (zh) * | 2021-08-05 | 2021-11-16 | 广州创乐出海科技有限公司 | 一种图像数据保存方法、装置、计算机设备和存储介质 |
CN113656626B (zh) * | 2021-08-05 | 2023-10-10 | 广州市创乐信息技术有限公司 | 一种图像数据保存方法、装置、计算机设备和存储介质 |
CN113886399A (zh) * | 2021-10-25 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | 更新索引数据库和基于索引数据库进行检索的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021218300A1 (zh) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111611310A (zh) | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 | |
EP1769343B1 (en) | Method and system for in-place updating content stored in a storage device | |
US9239761B2 (en) | Storage system format for transaction safe file system | |
CN111723056B (zh) | 小文件的处理方法、装置、设备和存储介质 | |
US20120296878A1 (en) | File set consistency verification system, file set consistency verification method, and file set consistency verification program | |
KR100746198B1 (ko) | 데이터 저장장치, 데이터 저장방법, 및 그 기록매체 | |
CN111581017B (zh) | 一种现代应用的备份恢复***及方法 | |
CN112612576B (zh) | 虚拟机备份方法、装置、电子设备及存储介质 | |
US9858287B2 (en) | Storage system | |
CN110618974A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
CN113419897A (zh) | 一种文件处理方法、装置、电子设备及其存储介质 | |
CN114138566B (zh) | 虚拟机的数据存储方法、装置、虚拟机及存储介质 | |
CN116401220A (zh) | 文件***的数据恢复方法、装置、设备及介质 | |
CN115454933A (zh) | 文件处理方法、装置、设备、存储介质及程序产品 | |
CN113312309B (zh) | 快照链的管理方法、装置和存储介质 | |
CN115061726A (zh) | 脚本文件批量处理方法、装置、设备、介质和程序产品 | |
WO2021114101A1 (zh) | 文件的增量更新方法、装置、终端及计算机可读存储介质 | |
CN112596959A (zh) | 分布式存储集群数据备份方法及装置 | |
CN100407158C (zh) | 一种在通信设备中保存数据文件的方法 | |
CN114880277B (zh) | 块设备快照方法、***和存储介质 | |
CN112612648B (zh) | 一种SQL Server数据库恢复方法、终端设备及存储介质 | |
CN117311911B (zh) | 一种虚拟机快照方法、装置、电子设备及存储介质 | |
CN113434468B (zh) | 文件存储方法、装置、设备及可读存储介质 | |
CN111625186B (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 |