CN109933592A - 数据存储方法、数据回滚方法、设备和存储介质 - Google Patents

数据存储方法、数据回滚方法、设备和存储介质 Download PDF

Info

Publication number
CN109933592A
CN109933592A CN201910222959.2A CN201910222959A CN109933592A CN 109933592 A CN109933592 A CN 109933592A CN 201910222959 A CN201910222959 A CN 201910222959A CN 109933592 A CN109933592 A CN 109933592A
Authority
CN
China
Prior art keywords
block
key
data base
value pair
stored
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
Application number
CN201910222959.2A
Other languages
English (en)
Other versions
CN109933592B (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.)
Hangzhou Fuzamei Technology Co Ltd
Original Assignee
Hangzhou Fuzamei 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 Hangzhou Fuzamei Technology Co Ltd filed Critical Hangzhou Fuzamei Technology Co Ltd
Priority to CN201910222959.2A priority Critical patent/CN109933592B/zh
Publication of CN109933592A publication Critical patent/CN109933592A/zh
Priority to PCT/CN2020/075947 priority patent/WO2020192316A1/zh
Application granted granted Critical
Publication of CN109933592B publication Critical patent/CN109933592B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/22Indexing; Data structures therefor; Storage structures

Abstract

本发明提供一种数据存储方法、数据回滚方法、设备和存储介质,该方法包括:执行所接收到的第一区块中打包的交易,在第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将第一区块的区块信息存储到本地数据库中;在本地数据库中存储所存储的键值对的逆向操作信息;在本地数据库中存储第一区块的区块高度与第一区块的状态哈希的对应关系。本申请使得状态数据库中只存储最重要的状态数据信息,降低状态数据库的数据存储量,提高读取效率,提高用户体验。

Description

数据存储方法、数据回滚方法、设备和存储介质
技术领域
本申请涉及区块链技术领域,具体涉及一种数据存储方法、数据回滚方法、设备和存储介质。
背景技术
现有的区块链技术中,大多使用状态树结构存储区块上的数据,常见的状态树有MPT树、Merkle树等。单纯的状态树结构主要的问题在于数据的存储量和性能,状态树的存储数据要比普通kv数据库大5-10倍,读取数据时,从状态树中读取数据比从普通kv数据库中读取数据慢40倍。使用状态树存储数据会产生数据膨胀,读取效率低下的问题。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种降低数据存储量、提高读取效率的数据存储方法、数据回滚方法、设备和存储介质。
第一方面,本发明提供一种数据存储方法,包括:
执行所接收到的第一区块中打包的交易,在第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将第一区块的区块信息存储到本地数据库中;
在本地数据库中存储所存储的键值对的逆向操作信息;
在本地数据库中存储第一区块的区块高度与第一区块的状态哈希的对应关系;
其中,逆向操作信息用于回滚本地数据库中的数据,区块信息包括第一区块的区块头信息、第一区块的区块体信息、第一区块所打包的交易信息、第一区块的执行日志。
第二方面,本发明提供一种数据回滚方法,包括:
当状态数据库回滚到第一状态哈希时,根据本地数据库中各区块的逆向操作信息将本地数据库回滚至第一状态哈希对应的第一区块高度;其中,逆向操作信息用于回滚本地数据库中的数据,状态数据库及本地数据库中存储有各区块的区块高度与状态哈希的对应关系。
第三方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的数据存储方法及数据回滚方法。
第四方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的数据存储方法及数据回滚方法。
本发明诸多实施例提供的数据存储方法、数据回滚方法、设备和存储介质通过执行所接收到的第一区块中打包的交易,在第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将第一区块的区块信息存储到本地数据库中;将第一区块的区块高度与第一区块的状态哈希的对应关系存储到状态数据库及本地数据库中;以及,在本地数据库中存储所存储的键值对的逆向操作信息的方法,使得状态数据库中只存储最重要的状态数据信息,降低状态数据库的数据存储量,提高读取效率,提高用户体验。
本发明一些实施例提供的数据存储方法、数据回滚方法、设备和存储介质进一步通过配置本地数据库中键值对中键的区块回滚深度的第一阈值;监测本地数据库中第一键的区块回滚深度是否超过第一阈值:是,则删除第一键的第一阈值数量个区块之前的逆向操作信息的方法,保证本地数据库中在第一阈值数量个区块之前的数据纯净。
本发明一些实施例提供的数据存储方法、数据回滚方法、设备和存储介质进一步通过以键值对形式将第一区块的附加信息存储到本地数据库中,使得状态数据库中只存储最重要的状态数据信息,但是用户可通过本地数据库查询额外的附加信息,进一步改善用户体验。
本发明一些实施例提供的数据存储方法、数据回滚方法、设备和存储介质进一步通过当状态数据库的数据回滚到第一状态哈希时,根据本地数据库中各区块的逆向操作信息将本地数据库的数据回滚至第一状态哈希对应的第一区块高度的方法,保证了状态数据库与本地数据库中数据回滚的一致性,减少了本地数据库中不必要的数据存储量。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种数据存储方法的流程图。
图2为图1所示方法的一种优选实施方式中步骤S14的流程图。
图3为图1所示方法的一种优选实施方式的流程图。
图4为本发明一实施例提供的一种数据回滚方法的流程图。
图5为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本发明一实施例提供的一种数据存储方法的流程图。如图1所示,在本实施例中,本发明提供一种数据存储方法,包括:
S12:执行所接收到的第一区块中打包的交易,在第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将第一区块的区块信息存储到本地数据库中;
S14:在本地数据库中存储所存储的键值对的逆向操作信息;
S16:在本地数据库中存储第一区块的区块高度与第一区块的状态哈希的对应关系;
其中,逆向操作信息用于回滚本地数据库中的数据,区块信息包括第一区块的区块头信息、第一区块的区块体信息、第一区块所打包的交易信息、第一区块的执行日志。
具体地,以状态数据库中存储的数据为gameid:gamedetail;本地数据库中存储的数据为gameid:gamedetail,block:{blockheader;blockbody;txs;record},statehash:blockheight,blockheight:statehash及gameid:gamedetail,block:{blockheader;blockbody;txs;record},statehash:blockheight,blockheight:statehash的逆向操作信息;将在本地数据库中存储所存储的键值对的逆向操作信息配置为:若所存储的键值对的操作类型为创建,则在本地数据库中写入第一逆向操作;其中,第一逆向操作为删除所创建的键;若所存储的键值对的操作类型为更新,则在本地数据库中写入第二逆向操作;其中,第二逆向操作为记录第一键值对,第一键值对的键为所更新的键,第一键值对的值为所更新的键的上一个版本的值;若所存储的键值对的操作类型为删除,则在本地数据库中写入第三逆向操作;其中,第三逆向操作为对删除的键值对打标识,有标识的键值对用于标记删除的键值对为例;
假设第一区块为区块高度为100的区块block_100,block_100中打包3条交易tx_1、tx_2、tx_3,且tx_1、tx_2、tx_3都执行成功;block_100的区块头信息为header_100,block_100的区块体信息为body_100,block_100所打包的交易信息为tx_1、tx_2、tx_3,block_100的执行日志为record_100;tx_1表示用户甲创建竞猜游戏a,竞猜游戏a的gameid为111,竞猜游戏a的游戏详情gamedetail是xxx;tx_2表示用户甲更新了所创建的竞猜游戏b,竞猜游戏b的gameid是222,竞猜游戏b更新前的gamedetail是mmm,竞猜游戏b更新后的gamedetail是nnn;tx_3表示用户甲删除了所创建的竞猜游戏c,所删除的竞猜游戏c的gameid是333,所删除的竞猜游戏c删除前的gamedetail是yyy;block_100的statehash为statehash_100,block_100的blockheight为blockheight_100;
在步骤S12中,节点A执行所接收到的第一区块中打包的交易tx_1、tx_2、tx_3,在第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将第一区块的区块信息存储到本地数据库中;状态数据库中存储的数据为:111:xxx,222:mmm,本地数据库存储的数据为:111:xxx,222:mmm, block_100:{header_100;body_100;tx_1+tx_2+tx_3;record_100};
在步骤S14中,节点A在本地数据库中存储所存储的键值对的逆向操作信息;所存储的键值对的逆向操作信息如下:
111:xxx的逆向操作信息为:删除所创建的键,即del(111);
222:mmm的逆向操作信息为:记录第一键值对,该第一键值对的键为所更新的键,该第一键值对的值为所更新的键的上一个版本的值,即222:nnn;
的逆向操作信息为:对删除的键值对打标识,即333':yyy';
block_100:{header_100;body_100;tx_1+tx_2+tx_3;record_100}的逆向操作信息为:删除所创建的键,即del(block_100:{header_100;body_100;tx_1+tx_2+tx_3;record_100});
statehash_100:blockheight_100的逆向操作信息为:删除所创建的键,即del(statehash_100:blockheight_100);
blockheight_100:statehash_100的逆向操作信息为:删除所创建的键,即del(blockheight_100:statehash_100);
在步骤S16中,节点A在本地数据库中存储第一区块的区块高度与第一区块的状态哈希的对应关系;本地数据库中存储对应关系:statehash_100:blockheight_100,blockheight_100:statehash_100;
最终,状态数据库中存储的数据为:111:xxx del(111),222:mmm(222:nnn),本地数据库存储的数据为:111:xxx(),222:mmm,(333':yyy'),block_100:{header_100;body_100;tx_1+tx_2+tx_3;record_100}(del(block_100:{header_100;body_100;tx_1+tx_2+tx_3;record_100})),statehash_100:blockheight_100(del(statehash_100:blockheight_100)),blockheight_100:statehash_100(del(blockheight_100:statehash_100))。
在上述实施例中,以状态数据库中存储的数据为gameid:gamedetail;本地数据库中存储为gameid:gamedetail,block:{blockheader;blockbody;txs;record},statehash:blockheight,blockheight:statehash,及gameid:gamedetail,block:{blockheader;blockbody;txs;record},statehash:blockheight,blockheight:statehash的逆向操作信息为例做了示例性的阐述;在更多实施例中,还可以根据实际需求,在状态数据库及本地数据库存储不同的键值对,只要状态数据库中存储状态数据,本地数据库中以键值对形式存储区块信息、所存储的键值对的逆向操作信息、第一区块的区块高度与第一区块的状态哈希的对应关系,即可实现相同的技术效果,本地数据库中可不存储状态数据;以及,在本地数据库中存储其它附加信息以生成其它键值对,例如,存储的附加信息为区块链中所有交易产生的手续费总额,也可实现相同的技术效果。
在本地数据库中不存储状态数据,用户甲想要读取区块高度为100的区块block_100的状态数据时,节点A执行如下操作:
接收用户终端发送的状态数据读取请求信息;
根据状态数据读取请求信息读取本地数据库中存储的第一区块的区块高度与第一区块的状态哈希的对应关系,以获取该第一区块的状态哈希;
根据所获取的状态哈希从状态数据库中读取第一区块的状态数据信息;
具体地,节点A接收用户甲发送的读取区块高度为100的区块block_100的状态数据读取请求信息;
节点A根据状态数据读取请求信息读取本地数据库中存储的statehash_100:blockheight_100,blockheight_100:statehash_100,以获取block_100的状态哈希statehash_100;
节点A根据所获取的statehash_100从状态数据库中读取block_100的状态数据信息:111:xxx,222:mmm,
在上述实施例中,以将在本地数据库中存储所存储的键值对的逆向操作信息配置为:若所存储的键值对的操作类型为创建,则在本地数据库中写入第一逆向操作;其中,第一逆向操作为删除所创建的键;若所存储的键值对的操作类型为更新,则在本地数据库中写入第二逆向操作;其中,第二逆向操作为记录第一键值对,第一键值对的键为所更新的键,第一键值对的值为所更新的键的上一个版本的值;若所存储的键值对的操作类型为删除,则在本地数据库中写入第三逆向操作;其中,第三逆向操作为对删除的键值对打标识,有标识的键值对用于标记删除的键值对为例进行了示例性阐述;在更多实施例中,逆向操作信息可根据实际需求进行配置,例如,若所存储的键值对的操作类型为删除,将其逆向操作配置为在本地数据库中写入第三逆向操作,第三逆向操作为对删除的键值对进行重创建,即的逆向操作信息为:create(333:yyy),可实现相同的技术效果。
上述实施例通过执行所接收到的第一区块中打包的交易,在第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将第一区块的区块信息存储到本地数据库中;将第一区块的区块高度与第一区块的状态哈希的对应关系存储到状态数据库及本地数据库中;以及,在本地数据库中存储所存储的键值对的逆向操作信息的方法,使得状态数据库中只存储最重要的状态数据信息,降低状态数据库的数据存储量,提高读取效率,提高用户体验。
在一优选实施例中,图1所示的方法包括:
配置本地数据库中键值对中键的区块回滚深度的第一阈值;
监测本地数据库中第一键的区块回滚深度是否超过第一阈值:是,则删除第一键的第一阈值数量个区块之前的逆向操作信息。
具体地,假设第一阈值为10000,本地数据库中第一键的区块回滚深度为10001;
节点A配置本地数据库中键值对中键的区块回滚深度的第一阈值;第一阈值为10000;
节点A监测本地数据库中第一键的区块回滚深度是否超过第一阈值,由于本地数据库中第一键的区块回滚深度为10001,超过第一阈值,则删除第一键的10000个区块之前的逆向操作信息。
上述实施例保证本地数据库中在第一阈值数量个区块之前的数据纯净。
图2为图1所示方法的一种优选实施方式中步骤S14的流程图。如图2所示,在一优选实施例中,步骤S14包括:
S142:判断所存储的键值对的操作类型:
若操作类型为创建,则执行步骤S143:在本地数据库中写入第一逆向操作;其中,第一逆向操作为删除所创建的键;
若操作类型为更新,则执行步骤S144:在本地数据库中写入第二逆向操作;其中,第二逆向操作为记录第一键值对,第一键值对的键为所更新的键,第一键值对的值为所更新的键的上一个版本的值;
若操作类型为删除,则执行步骤S145:在本地数据库中写入第三逆向操作;其中,第三逆向操作为对删除的键值对打标识,有标识的键值对用于标记删除的键值对。
上述实施例的数据存储原理可参考图1所示的方法,此处不再赘述。
图3为图1所示方法的一种优选实施方式的流程图。如图3所示,在一优选实施例中,步骤S12后还包括:
S13:以键值对形式将第一区块的附加信息存储到本地数据库中;其中,附加信息包括区块链中所有交易产生的手续费总额。
上述实施例的数据存储原理可参考图1所示的方法,此处不再赘述。
上述实施例使得状态数据库中只存储最重要的状态数据信息,但是用户可通过本地数据库查询额外的附加信息,进一步改善用户体验。
图4为本发明一实施例提供的一种数据回滚方法的流程图。如图4所示,在本实施例中,本发明提供一种数据回滚方法,包括:
S22:当状态数据库的数据回滚到第一状态哈希时,根据本地数据库中各区块的逆向操作信息将本地数据库的数据回滚至第一状态哈希对应的第一区块高度。
具体地,以图1构造的应用场景示例为例,假设节点A发现block_100需要回滚,且需要回滚到block_99;block_99中无交易,其本地数据库存储的数据为:block_99:{header_99;body_99;nil;record_99},statehash_99:blockheight_99,blockheight_99:statehash_99;
在步骤S22中,当状态数据库的数据回滚到statehash_99时,根据本地数据库中block_100的逆向操作信息将本地数据库的数据回滚至blockheight_99;
在本地数据库中存储有如下信息,其中,分号左边为block_100所添加或修改或删除的键值对,分号右边为block_100所添加或修改或删除的键值对对应的逆向操作信息:
111:xxx;del(111);
222:mmm;222:nnn;
333':yyy';
block_100:{header_100;body_100;tx_1+tx_2+tx_3;record_100};del(block_100:{header_100;body_100;tx_1+tx_2+tx_3;record_100});
statehash_100:blockheight_100;del(statehash_100:blockheight_100);
blockheight_100:statehash_100;del(blockheight_100:statehash_100)。
结合block_99本身的键值对,回滚后的数据为:
222:nnn;
333:yyy;
block_99:{header_99;body_99;nil;record_99};
statehash_99:blockheight_99;
blockheight_99:statehash_99。
上述实施例保证了状态数据库与本地数据库中数据回滚的一致性,减少了本地数据库中不必要的数据存储量。
图5为本发明一实施例提供的一种设备的结构示意图。
如图5所示,作为另一方面,本申请还提供了一种设备500,包括一个或多个中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有设备500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上述任一实施例描述的数据存储方法及数据回滚方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行数据存储方法及数据回滚方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的数据存储方法及数据回滚方法。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (7)

1.一种数据存储方法,其特征在于,包括:
执行所接收到的第一区块中打包的交易,在所述第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将所述第一区块的区块信息存储到本地数据库中;
在所述本地数据库中存储所存储的键值对的逆向操作信息;
在所述本地数据库中存储所述第一区块的区块高度与所述第一区块的状态哈希的对应关系;
其中,所述逆向操作信息用于回滚所述本地数据库中的数据,所述区块信息包括所述第一区块的区块头信息、所述第一区块的区块体信息、所述第一区块所打包的交易信息、所述第一区块的执行日志。
2.根据权利要求1所述的方法,其特征在于,包括:
配置所述本地数据库中键值对中键的区块回滚深度的第一阈值;
监测所述本地数据库中第一键的区块回滚深度是否超过所述第一阈值:是,则删除所述第一键的所述第一阈值数量个区块之前的逆向操作信息。
3.根据权利要求1所述的方法,其特征在于,所述在所述本地数据库中存储所存储的键值对的逆向操作信息包括:
判断所述所存储的键值对的操作类型:
若所述操作类型为创建,则在所述本地数据库中写入第一逆向操作;其中,所述第一逆向操作为删除所创建的键;
若所述操作类型为更新,则在所述本地数据库中写入第二逆向操作;其中,所述第二逆向操作为记录第一键值对,所述第一键值对的键为所更新的键,所述第一键值对的值为所更新的键的上一个版本的值;
若所述操作类型为删除,则在所述本地数据库中写入第三逆向操作;其中,所述第三逆向操作为对删除的键值对打标识,有标识的键值对用于标记所述删除的键值对。
4.根据权利要求1所述的方法,其特征在于,所述执行所接收到的第一区块中打包的交易,在所述第一区块中的所有交易执行完成时将状态数据信息存储到状态数据库中,并以键值对形式将所述第一区块的区块信息存储到本地数据库后,还包括:
以键值对形式将所述第一区块的附加信息存储到所述本地数据库中;其中,所述附加信息包括区块链中所有交易产生的手续费总额。
5.一种数据回滚方法,其特征在于,包括:
当状态数据库的数据回滚到第一状态哈希时,根据本地数据库中各区块的逆向操作信息将所述本地数据库的数据回滚至所述第一状态哈希对应的第一区块高度;其中,所述逆向操作信息用于回滚所述本地数据库中的数据,所述状态数据库及所述本地数据库中存储有各区块的区块高度与状态哈希的对应关系。
6.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-5中任一项所述的方法。
7.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
CN201910222959.2A 2019-03-22 2019-03-22 数据存储方法、数据回滚方法、设备和存储介质 Active CN109933592B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910222959.2A CN109933592B (zh) 2019-03-22 2019-03-22 数据存储方法、数据回滚方法、设备和存储介质
PCT/CN2020/075947 WO2020192316A1 (zh) 2019-03-22 2020-02-20 数据存储方法、数据回滚方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910222959.2A CN109933592B (zh) 2019-03-22 2019-03-22 数据存储方法、数据回滚方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109933592A true CN109933592A (zh) 2019-06-25
CN109933592B CN109933592B (zh) 2021-06-01

Family

ID=66988190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910222959.2A Active CN109933592B (zh) 2019-03-22 2019-03-22 数据存储方法、数据回滚方法、设备和存储介质

Country Status (2)

Country Link
CN (1) CN109933592B (zh)
WO (1) WO2020192316A1 (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442580A (zh) * 2019-08-02 2019-11-12 杭州复杂美科技有限公司 一种区块链状态数据存储方法、设备和存储介质
CN111159295A (zh) * 2019-12-28 2020-05-15 深圳市网心科技有限公司 区块链系统、数据存储方法、数据存储装置和设备及介质
WO2019228550A3 (en) * 2019-08-20 2020-05-22 Alibaba Group Holding Limited Blockchain data storage based on shared nodes and error correction code
CN111222881A (zh) * 2019-12-31 2020-06-02 陕西医链区块链集团有限公司 一种保持区块链交易状态基线一致性的方法
CN111274318A (zh) * 2020-01-16 2020-06-12 杭州趣链科技有限公司 一种区块链状态数据的存储、回滚方法、设备和存储介质
CN111309731A (zh) * 2020-02-18 2020-06-19 杭州复杂美科技有限公司 一种区块存储和查询方法、设备及存储介质
CN111651300A (zh) * 2020-06-05 2020-09-11 成都质数斯达克科技有限公司 一种区块链数据恢复方法、装置、设备及介质
WO2020192316A1 (zh) * 2019-03-22 2020-10-01 杭州复杂美科技有限公司 数据存储方法、数据回滚方法、设备和存储介质
CN111796845A (zh) * 2020-07-03 2020-10-20 杭州复杂美科技有限公司 数据库升级方法、状态数据查询方法、设备和存储介质
WO2021017435A1 (zh) * 2019-07-31 2021-02-04 创新先进技术有限公司 区块链状态数据存储方法及装置、电子设备
US10956444B2 (en) 2019-07-31 2021-03-23 Advanced New Technologies Co., Ltd. Block chain state data synchronization method, apparatus, and electronic device
CN112910648A (zh) * 2019-12-03 2021-06-04 北京百度网讯科技有限公司 区块链隐私状态的共识方法和装置
CN113037503A (zh) * 2021-05-26 2021-06-25 北京百度网讯科技有限公司 数据处理方法、装置、设备及存储介质
CN113157494A (zh) * 2021-04-19 2021-07-23 支付宝(杭州)信息技术有限公司 区块链系统中数据备份的方法及装置
CN113329031A (zh) * 2019-10-10 2021-08-31 深圳前海微众银行股份有限公司 一种区块的状态树的生成方法及装置
US11113272B2 (en) 2019-07-31 2021-09-07 Advanced New Technologies Co., Ltd. Method and apparatus for storing blockchain state data and electronic device
CN115017226A (zh) * 2021-03-05 2022-09-06 京东科技信息技术有限公司 一种数据存储方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636401A (zh) * 2013-11-15 2015-05-20 中国石油天然气股份有限公司 一种scada系统数据回滚的方法及装置
CN105847041A (zh) * 2016-03-18 2016-08-10 烽火通信科技股份有限公司 一种基于网管系统命令行数据的交互方法
CN106598703A (zh) * 2016-12-08 2017-04-26 用友网络科技股份有限公司 集成系统的事务补偿方法和装置
CN107332876A (zh) * 2017-05-31 2017-11-07 深圳前海微众银行股份有限公司 区块链状态的同步方法及装置
US20180025065A1 (en) * 2013-01-15 2018-01-25 Amazon Technologies, Inc. Efficient query processing using histograms in a columnar database
CN108596767A (zh) * 2018-05-09 2018-09-28 中国工商银行股份有限公司 区块链历史数据清理方法及装置
CN109104292A (zh) * 2017-06-20 2018-12-28 中兴通讯股份有限公司 更新部署处理方法、相关设备和计算机可读存储介质
CN109165221A (zh) * 2018-08-16 2019-01-08 北京京东尚科信息技术有限公司 区块链的数据存储方法、装置、区块链节点及存储介质
CN109241032A (zh) * 2018-08-16 2019-01-18 北京京东尚科信息技术有限公司 账本数据库组件、运行方法及存储介质
CN109359159A (zh) * 2018-09-30 2019-02-19 深圳前海微众银行股份有限公司 分布式存储方法、系统及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106874440B (zh) * 2017-02-07 2019-11-12 杭州秘猿科技有限公司 一种基于sql数据库的区块链状态存储方法
CN109359222B (zh) * 2018-08-06 2021-07-06 杭州复杂美科技有限公司 数据存储方法及系统、设备和存储介质
CN109933592B (zh) * 2019-03-22 2021-06-01 杭州复杂美科技有限公司 数据存储方法、数据回滚方法、设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180025065A1 (en) * 2013-01-15 2018-01-25 Amazon Technologies, Inc. Efficient query processing using histograms in a columnar database
CN104636401A (zh) * 2013-11-15 2015-05-20 中国石油天然气股份有限公司 一种scada系统数据回滚的方法及装置
CN105847041A (zh) * 2016-03-18 2016-08-10 烽火通信科技股份有限公司 一种基于网管系统命令行数据的交互方法
CN106598703A (zh) * 2016-12-08 2017-04-26 用友网络科技股份有限公司 集成系统的事务补偿方法和装置
CN107332876A (zh) * 2017-05-31 2017-11-07 深圳前海微众银行股份有限公司 区块链状态的同步方法及装置
CN109104292A (zh) * 2017-06-20 2018-12-28 中兴通讯股份有限公司 更新部署处理方法、相关设备和计算机可读存储介质
CN108596767A (zh) * 2018-05-09 2018-09-28 中国工商银行股份有限公司 区块链历史数据清理方法及装置
CN109165221A (zh) * 2018-08-16 2019-01-08 北京京东尚科信息技术有限公司 区块链的数据存储方法、装置、区块链节点及存储介质
CN109241032A (zh) * 2018-08-16 2019-01-18 北京京东尚科信息技术有限公司 账本数据库组件、运行方法及存储介质
CN109359159A (zh) * 2018-09-30 2019-02-19 深圳前海微众银行股份有限公司 分布式存储方法、系统及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SUDEEP.D ET AL.: ""Performance rise in Content Based Video retrieval using multi-level Thepade"s sorted ternary Block Truncation Coding with intermediate block videos and even-odd videos"", 《INTERNATIONAL CONFERENCE ON ADVANCES IN COMPUTING, COMMUNICATIONS AND INFORMATICS》 *
张亮 等: ""区块链技术综述"", 《计算机工程》 *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020192316A1 (zh) * 2019-03-22 2020-10-01 杭州复杂美科技有限公司 数据存储方法、数据回滚方法、设备和存储介质
US10956444B2 (en) 2019-07-31 2021-03-23 Advanced New Technologies Co., Ltd. Block chain state data synchronization method, apparatus, and electronic device
WO2021017435A1 (zh) * 2019-07-31 2021-02-04 创新先进技术有限公司 区块链状态数据存储方法及装置、电子设备
US11113272B2 (en) 2019-07-31 2021-09-07 Advanced New Technologies Co., Ltd. Method and apparatus for storing blockchain state data and electronic device
CN110442580B (zh) * 2019-08-02 2021-08-31 杭州复杂美科技有限公司 一种区块链状态数据存储方法、设备和存储介质
CN110442580A (zh) * 2019-08-02 2019-11-12 杭州复杂美科技有限公司 一种区块链状态数据存储方法、设备和存储介质
US11269864B2 (en) 2019-08-20 2022-03-08 Advanced New Technologies Co., Ltd. Blockchain data storage based on shared nodes and error correction code
US10769135B1 (en) 2019-08-20 2020-09-08 Alibaba Group Holding Limited Blockchain data storage based on shared nodes and error correction code
US11016962B2 (en) 2019-08-20 2021-05-25 Advanced New Technologies Co., Ltd. Blockchain data storage based on shared nodes and error correction code
CN111902817A (zh) * 2019-08-20 2020-11-06 创新先进技术有限公司 基于共享节点和纠错编码的区块链数据存储
WO2019228550A3 (en) * 2019-08-20 2020-05-22 Alibaba Group Holding Limited Blockchain data storage based on shared nodes and error correction code
CN111902817B (zh) * 2019-08-20 2024-04-09 创新先进技术有限公司 基于共享节点和纠错编码的区块链数据存储
CN113329031A (zh) * 2019-10-10 2021-08-31 深圳前海微众银行股份有限公司 一种区块的状态树的生成方法及装置
CN112910648A (zh) * 2019-12-03 2021-06-04 北京百度网讯科技有限公司 区块链隐私状态的共识方法和装置
CN112910648B (zh) * 2019-12-03 2023-04-07 北京百度网讯科技有限公司 区块链隐私状态的共识方法和装置
CN111159295A (zh) * 2019-12-28 2020-05-15 深圳市网心科技有限公司 区块链系统、数据存储方法、数据存储装置和设备及介质
CN111222881A (zh) * 2019-12-31 2020-06-02 陕西医链区块链集团有限公司 一种保持区块链交易状态基线一致性的方法
CN111274318B (zh) * 2020-01-16 2023-04-25 杭州趣链科技有限公司 一种区块链状态数据的存储、回滚方法、设备和存储介质
CN111274318A (zh) * 2020-01-16 2020-06-12 杭州趣链科技有限公司 一种区块链状态数据的存储、回滚方法、设备和存储介质
CN111309731A (zh) * 2020-02-18 2020-06-19 杭州复杂美科技有限公司 一种区块存储和查询方法、设备及存储介质
CN111651300A (zh) * 2020-06-05 2020-09-11 成都质数斯达克科技有限公司 一种区块链数据恢复方法、装置、设备及介质
CN111796845A (zh) * 2020-07-03 2020-10-20 杭州复杂美科技有限公司 数据库升级方法、状态数据查询方法、设备和存储介质
CN111796845B (zh) * 2020-07-03 2022-05-24 杭州复杂美科技有限公司 数据库升级方法、状态数据查询方法、设备和存储介质
CN115017226A (zh) * 2021-03-05 2022-09-06 京东科技信息技术有限公司 一种数据存储方法、装置、电子设备及存储介质
CN113157494A (zh) * 2021-04-19 2021-07-23 支付宝(杭州)信息技术有限公司 区块链系统中数据备份的方法及装置
CN113157494B (zh) * 2021-04-19 2024-03-26 支付宝(杭州)信息技术有限公司 区块链系统中数据备份的方法及装置
CN113037503B (zh) * 2021-05-26 2021-10-15 北京百度网讯科技有限公司 数据处理方法、装置、设备及存储介质
CN113037503A (zh) * 2021-05-26 2021-06-25 北京百度网讯科技有限公司 数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2020192316A1 (zh) 2020-10-01
CN109933592B (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
CN109933592A (zh) 数据存储方法、数据回滚方法、设备和存储介质
CN109271446A (zh) 一种平行链数据同步方法、设备和存储介质
CN109359222A (zh) 数据存储方法及系统、设备和存储介质
CN105677250B (zh) 对象存储系统中的对象数据的更新方法和更新装置
CN109684333A (zh) 一种数据存储及裁剪方法、设备和存储介质
CN109559234A (zh) 一种区块链状态数据的存储方法、设备和存储介质
CN103782295B (zh) 分布式数据管理系统中的查询说明计划
CN105095313B (zh) 一种数据访问方法和设备
CN110113408A (zh) 一种区块同步方法、设备和存储介质
CN110442577A (zh) 一种状态数据存储、查询和管理方法、设备及存储介质
US20060161596A1 (en) Method and system for synchronizing multiple user revisions to a balanced scorecard
CN109977274A (zh) 一种数据查询和验证方法、系统、设备及存储介质
CN110489413A (zh) 一种交易记录存储、查询方法和系统、设备及存储介质
CN109447635A (zh) 用于区块链的信息存储方法和装置
CN110392121A (zh) 平行链区块生成方法、设备和存储介质
CN110287170A (zh) 数据库升级方法、状态数据调用方法、设备和存储介质
CN109145188A (zh) 用于搜索区块链数据的方法、设备及计算机可读存储介质
CN110516150A (zh) 平行链交易推送方法、设备和存储介质
CN110287196A (zh) 区块存储方法、平行链交易获取方法、设备和存储介质
CN102779088B (zh) 事务处理设备、事务处理方法及事务处理程序
CN110442580A (zh) 一种区块链状态数据存储方法、设备和存储介质
CN109447639A (zh) 隐私交易余额扫描方法、设备和存储介质
CN108932286A (zh) 一种数据存储方法、数据查询方法及装置
CN110287264A (zh) 分布式数据库的数据批量更新方法、装置以及系统
CN109670975A (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