CN110597825B - 基于区块链的数据处理方法、装置及节点设备 - Google Patents
基于区块链的数据处理方法、装置及节点设备 Download PDFInfo
- Publication number
- CN110597825B CN110597825B CN201910906423.2A CN201910906423A CN110597825B CN 110597825 B CN110597825 B CN 110597825B CN 201910906423 A CN201910906423 A CN 201910906423A CN 110597825 B CN110597825 B CN 110597825B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- target data
- block chain
- chain network
- 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
Links
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/22—Indexing; Data structures therefor; Storage structures
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本发明实施例公开了一种基于区块链的数据处理方法、装置及节点设备,其中,方法包括:获取所述节点设备的工作状态,若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据,根据所述索引信息在所述区块链网络中定位所述目标数据,对所述区块链网络中的所述目标数据进行删除。通过本发明实施例能够节省区块链网络的存储空间,并降低区块链网络的存储压力。
Description
技术领域
本发明涉及安全技术领域,尤其涉及一种基于区块链的数据处理方法、一种基于区块链的数据处理装置及一种节点设备。
背景技术
区块链是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式,其本质上是一个去中心化、高度透明的数据库;区块链可由一串使用密码学方法相关联产生的区块构成,区块能让多方有效记录数据,且可查验记录的数据(即防伪)。基于此,越来越多的用户更青睐在区块链中记录数据,但是,随着时间的推移,用于存储区块链的区块链网络中存储的数据量会越来越大,给区块链网络带来较大的存储压力,影响区块链网络的运行。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于区块链的数据处理方法、装置及节点设备,可节省区块链网络的存储空间,并降低区块链网络的存储压力。
一方面,本发明实施例提供一种基于区块链的数据处理方法,该方法包括:
获取所述节点设备的工作状态;
若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据;
根据所述索引信息在所述区块链网络中定位所述目标数据;
对所述区块链网络中的所述目标数据进行删除。
一方面,本发明实施例提供一种基于区块链的数据处理装置,该装置包括:
获取单元,用于获取所述节点设备的工作状态;若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据;
定位单元,用于根据所述索引信息在所述区块链网络中定位所述目标数据;
删除单元,用于对所述区块链网络中的所述目标数据进行删除。
又一方面,本发明实施例提供了一种区块链网络中的节点设备,包括输入设备和输出设备,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
获取所述节点设备的工作状态;
若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据;
根据所述索引信息在所述区块链网络中定位所述目标数据;
对所述区块链网络中的所述目标数据进行删除。
又一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如下步骤:
获取所述节点设备的工作状态;
若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据;
根据所述索引信息在所述区块链网络中定位所述目标数据;
对所述区块链网络中的所述目标数据进行删除。
本发明实施例中,通过在节点设备处于空闲状态时,从节点设备的本地数据库中获取区块链网络中的目标数据的索引信息,并根据索引信息在区块链网络中定位该目标数据,并对区块链网络中的该目标数据进行删除。即通过索引信息能够快速地在区块链网络定位到需要删除的目标数据,提高定位目标数据的效率;并在节点设备处于空闲状态时,对区块链网络中的目标数据进行删除,能够确保节点设备中的其他数据能够被正常处理,可降低对交易的影响,并可节省区块链网络的存储空间,降低区块链网络的存储压力,使区块链网络更加轻量化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实例提供的一种区块链网络的结构示意图;
图1b是本发明实例提供的一种区块链的示意图;
图2是本发明实施例提供的一种基于区块链的数据处理方法的流程示意图;
图3是本发明实施例提供的一种默克尔帕特里夏树的示意图;
图4是本发明实施例提供的另一种基于区块链的数据处理方法的流程示意图;
图5是本发明实施例提供的一种基于区块链的数据处理装置的结构示意图;
图6是本发明实施例提供的一种基于区块链网络中的节点设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于区块链具有高度透明及去中心化的特征,因此,越来越多的用户更青睐在区块链中记录数据,如账户信息、账户的各种状态、交易状态、交易凭证数据等等。账户信息可以包括用户在区块链中注册的交易地址、用户的身份信息等,账户的状态可以是指剩余资源,交易状态包括交易中、交易完成等;交易凭证数据用于证明发送交易操作的凭证。其中,此处的资源是指交易过程中所需要的资金,其可至少包括法币、电子货币、数字货币等;所谓法币是指一种以法律形式赋予其强制流通使用的货币,如人民币、美元等;所谓电子货币是指以电子形式存储在用户所持有的电子钱包(如QQ钱包、微信钱包等)中的货币;数字货币可以是指利用计算机密码学机制发行的货币。然而,随着时间的推移,整个区块链网络中存储的数据量会越来越大,给区块链网络带来较大的存储压力,影响区块链网络的运行。基于此,本发明实施例提供一种删除区块链网络中无效数据的方案,该方案能够节省区块链网络的存储空间,降低区块链网络的存储压力,可确保区块链网络的正常运行。
首先介绍本方案应用的区块链网络,请参见图1a,图1a为本发明实施例提供的一种区块链网络的结构示意图。区块链网络是由多个节点设备共同组成的一个端到端的去中心化网络,每个节点设备在进行正常工作时可以接收到待记录的数据,并基于接收到的待记录的数据维护该区块链。为了保证区块链网络内的信息互通,区块链网络中的每个节点设备之间可以存在通信连接,节点设备之间可以通过上述通信连接进行数据传输。例如,当区块链网络中的任意节点设备接收到待记录的数据时,区块链网络中的其他节点设备便根据共识算法对该待记录的数据进行验证,并验证成功后(即达成共识后)将该待记录的数据作为区块链中的数据进行存储,使得区块链网络中全部节点设备上存储的数据均一致。也就是说,区块链网络中的每个节点设备均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有数据;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的数据特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中数据的安全性。
在生成区块链中的各个区块时,区块链所在的节点设备在接收到待记录的数据时,对待记录的数据进行校验,完成校验后,将待记录的数据存储至内存池中,并更新其用于记录待记录的数据的哈希树;此处哈希树可以是指默克尔Merkle树、前缀Patricia树、默克尔帕特里夏树(Merkle Patricia Tree,MPT)树等等,之后,将更新时间戳更新为接收到待记录的数据的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256 SHA256 version+prev_hash+merkle_root+ntime+nbits+x<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点设备将新生成的区块分别发送给区块链网络中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
基于上述的描述,请参见图2,图2为本发明实施例提供的基于区块链的数据处理方法,该方法应用于图1a中区块链网络的节点设备(以下简称节点设备),该方法具体包括如下步骤S101~S104。
S101、获取该节点设备的工作状态,若节点设备处于交易状态,则结束本次流程;若节点设备处于空闲状态,则执行步骤S102
节点设备的工作状态包括空闲状态和交易状态,空闲状态是指当前节点设备的内存池中不包括待处理的数据,或包括的待处理的数据量小于预设数据量阈值,交易状态可以是指节点设备的内存池中包括1条待处理的数据,或包括待处理的数据量大于或等于预设数据量阈值。因此,节点设备可以根据内存池中待处理的数据量确定该节点设备的工作状态,待处理的数据可以是指等待记录到区块链网络中的数据。
S102、若该节点设备处于空闲状态,则从该节点设备的本地数据库中获取该区块链网络中的目标数据的索引信息,该目标数据为该区块链网络中的无效数据。
为了避免影响对节点设备中待处理数据的正常处理,即为了避免对正常交易的影响,若节点设备处于空闲状态,则节点设备可以从节点设备的本地数据库中获取该区块链网络中的目标数据的索引信息,该索引信息用于在区块链网络中定位目标数据。该目标数据可以是指区块链网络中的无效数据,如该目标数据为已经被多次更新的数据、被存储较长时间的数据等等。
S103、根据该索引信息在该区块链网络中定位该目标数据。
为了快速地定位到目标数据,节点设备可以根据该索引信息在区块链网络中定位该目标数据。
S104、对该区块链网络中的该目标数据进行删除。
为了节省区块链网络的存储空间,使区块链网络更加轻量化,节点设备可以对该区块链网络中的目标数据进行删除,为了确保区块链网络中每个节点设备的区块链的一致性,该节点设备可以将删除该区块链网络中的目标数据的消息发送给区块链网络中的其他节点设备,以使其他节点设备对该区块链网络中的目标数据进行删除。
本发明实施例中,通过在节点设备处于空闲状态时,从节点设备的本地数据库中获取区块链网络中的目标数据的索引信息,并根据索引信息在区块链网络中定位该目标数据,并对区块链网络中的该目标数据进行删除。即通过索引信息能够快速地在区块链网络定位到需要删除的目标数据,提高定位目标数据的效率;并在节点设备处于空闲状态时,对区块链网络中的目标数据进行删除,能够确保节点设备中的其他数据能够被正常处理,可降低对交易的影响,并可节省区块链网络的存储空间,降低区块链网络的存储压力,使区块链网络更加轻量化。
在一个实施例中,步骤S101之前还包括如下步骤s11~s13。
s11、获取该区块链网络中的目标数据的属性信息。
s12、根据该属性信息验证该目标数据是否为无效数据。
s13、若该目标数据为无效数据,则获取该目标数据的索引信息,并将该索引信息存储至该节点设备的本地数据库中。
在步骤s11~s13中,节点设备可以获取该区块链网络中的目标数据的属性信息,该属性信息包括目标数据被更新的次数、目标数据的有效期等。进一步,可根据该属性信息验证该目标数据是否为无效数据,若是无效数据,表明该目标数据存储在区块链网络中的意义不大,可以获取该目标数据的索引信息,并将该索引信息存储至该节点设备的本地数据库中。通过将该目标数据的索引信息存储在节点设备的本地数据库中,有利于快速地读取索引信息,并有利于后续对该索引信息进行删除操作,另外,该索引信息不占用区块链网络的内存空间,有利于区块链网络中交易的正常运行。在此实施例中,该属性信息包括该目标数据被更新的次数,步骤s12包括如下步骤s21和s22。
s21、判断该目标数据被更新的次数是否大于预设次数阈值。
s22、若是,则确定该目标数据为无效数据。
在步骤s21和s22中,节点设备可以判断该目标数据被更新的次数是否大于预设次数阈值,若是,表明区块链网络中已经存储了每次对该目标数据更新后的数据,此时该目标数据的重要性比较低,节点设备可以确定该目标数据为无效数据,即确定该目标数据为需要删除的数据。
可选的,该属性信息包括该目标数据的有效期,步骤s12包括如下步骤s31-s33。
s31、获取该目标数据在该区块链网络中的存储时长。
s32、判断该存储时长是否超过该目标数据的有效期。
s33、若是,则确定该目标数据为无效数据。
在步骤s31-s33中,目标数据的有效期是指:目标数据的重要性比较高的期限,即在期限内该目标数据的重要性比较高,超过期限该目标数据的重要性比较低。因此,节点设备可以该目标数据所在的区块中的时间戳确定该目标数据在区块链网络中的存储时长,并判断该存储时长是否超过该目标数据的有效期。若是,表明该目标数据的重要性比较低,则确定该目标数据为无效数据,即确定该目标数据为需要删除的数据。
在一个实施例中,步骤S101可包括如下步骤s41~s42。
s41、按照预设时间间隔获取该节点设备中待处理的数据量。
s42、若该待处理的数据量小于预设数据量阈值,则确定该节点设备处于空闲状态。
在步骤s41~s42中,节点设备可以定时检测节点设备是否处于空闲状态,即节点设备可按照预设时间间隔获取该节点设备中待处理的数据量,即获取该节点设备的内存池中待处理的数据量。若该待处理的数据量小于预设数据量阈值,此时表明该节点设备中需要处理的数据比较少,则确定该节点设备处于空闲状态。
在一个实施例中,该目标数据被按照默克尔帕特里夏树的数据存储结构存储于该区块链网络中,该索引信息包括区块标识及目标键值;步骤S103可包括如下步骤s51~s52。
s51、根据该区块标识确定该区块链网络中存储该目标数据的区块。
s52、基于该默克尔帕特里夏树的数据存储结构确定该区块中键值为该目标键值的目标数据。
在步骤s51~s52中,默克尔帕特里夏树是指对区块中的数据进行存储一种数据存储结构,该存储结构中通常包括分支节点、扩展节点、叶子节点。叶子节点:没有子节点,包括一个键值对[key,value],其中,key可以是指区块中记录的数据的标识(即键值)的其中的一个元素或多个元素,是一种十六进制编码,value是指区块中记录的一条数据。扩展节点:也包括一个键值对[key,value],但是这里的value是其他节点的hash值,这个hash可以被用来查询该默克尔帕特里夏树中的其他节点。也就是说通过hash链接到其他节点。分支节点:是一个长度为17字符串,前16个元素对应着key中的16个可能的十六进制字符,如果该节点上有一对[key,value],则17个字符串中最后一个元素代表value,即分支节点既可以搜索路径的终止也可以是路径的中间节点。即当需要将目标数据记录到区块中时,首先生成该目标数据的目标键值(即key),根据目标数据的key值建立默克尔帕特里夏树的节点,并将目标数据记录到所建立的节点中。例如,当需要记录的数据(即value)为10、102、1.1、0.12时,节点设备可以生成这些数据的key值,即每个value对应一个key,value与key之间的对应关系如下表1所示。
表1:
key | value |
a711355 | 10 |
a77d337 | 102 |
a7f9365 | 1.1 |
a77d397 | 0.12 |
可见,这些key值均共享元素a7,a77d337与a77d397共享元素a77d3。可以根据这些key值之间的共享关系建立默克尔帕特里夏树,图3所示。该默克尔帕特里夏树包括2个扩展节点、4个叶子节点、2个分支节点。叶子节点1记录了的value值为10,该value值对应的key值由叶子节点1中的元素1355、分支节点1中的元素1和扩展节点1中的元素a7构成,即该value值对应的key值被记录在叶子节点1、分支节点1和扩展节点1中。同理,叶子节点2中记录的value值为1.1,该value值对应的key值由叶子节点2中的元素9365、分支节点1中的元素f和扩展节点1中的元素a7构成,即该value值对应的key值被记录在叶子节点2、分支节点1和扩展节点1中。当然,此处的value可以是指需要记录的数据、或是指需要记录的数据的编码值。对于其他value值的说明请参考对value值10和value值1.1的说明,重复之处不在赘述。其中,默克尔帕特里夏树的节点中的前缀是指节点标识,即0表示节点为扩展节点,2、3均表示节点为叶子节点。当需要删除区块中的目标数据时,节点设备可以根据该区块标识确定该区块链网络中存储该目标数据的区块,该区块中的数据是按照默克尔帕特里夏树的数据存储结构存储的。进一步,可根据默克尔帕特里夏树的数据存储结构在区块中定位到键值为目标键值的目标数据,即定位默克尔帕特里夏树中key为目标键值的目标数据。例如,该目标键值为a711355,该目标数据对应的区块中的默克尔帕特里夏树如图3所示。节点设备可以在默克尔帕特里夏树中查找目标键值为a711355对应的value值,即该value为10,也即该value为目标数据。
在一个实施例中,步骤S104之后,还包括:对该节点设备的本地数据库中的该目标数据的索引信息进行删除。
为了确保节点设备的本地数据库更加轻量级,在目标数据被删除后,节点设备可以对该节点设备的本地数据库中的该目标数据的索引信息进行删除。
在一个实施例中,该区块链网络中包括智能合约,该智能合约声明该区块链网络中的无效数据的删除规则;当该节点设备处于空闲状态时,该智能合约声明的该删除规则对应的程序被调用并执行,以对该区块链网络中的该目标数据进行删除。
下面以索引信息包括区块高和目标数据的key值和为例,对发明实施例中的基于区块链的数据处理方法进行说明。如图4所示,该方法包括如下步骤s1-s5。
s1、执行智能合约。当接收到将数据记录到区块链网络的请求时,节点设备可以执行区块网络中的智能合约,以将待记录的数据存储至节点设备的缓存中,等待将缓存中的数据存储至区块链网络中。此处的智能合约可以包括该声明该区块链网络中的无效数据的删除规则的智能合约,或者,此处的智能合约能够调用上述声明该区块链网络中的无效数据的删除规则的智能合约。
s2、存储新的数据。节点设备可启动区块的定时打包功能,为缓存中的每条待记录的数据生成key值,对待记录数据的key值、待记录的数据(即value)进行打包并存储至分布式账本中,即将对待记录的数据及对应的key打包后的数据存储至区块链网络中。其中,如果新的数据的key值出现在节点设备的本地数据库中,由于该新的数据不需要删除,因此,可以从该节点设备的本地数据库中删除新的数据的key值。
s3、存储需要删除数据的key和对应的块高。节点设备可根据MPT树确定待删除的数据,例如,该MPT树的叶子节点中的数据(即value)被改变,则该叶子节点的key值也会随之改变,所以变化之前的key值(即原始的key值),以及该key值对应的数据可以删除,即将该MPT树中变化前的叶子节点删除,并该原始的key值,及该原始key值对应的块高存储至节点设备的本地数据库中。同理,随着MPT树结构的变化,扩展节点,分支节点也有被删除的机会。
s4、检测节点设备是否处于空闲状态。节点设备可以定时检测该节点设备是否处于空闲状态,即节点设备可以按照预设时间间隔获取该节点设备中的待处理的数据量,若待处理的数据量小于预设数据量阈值,则确定该节点设备处于空闲状态。
s5、删除目标数据。当节点设备处于空闲状态时,节点设备可以遍历节点设备的本地数据库中所有的key值和对应的块高,如果区块链网络的当前块高减去key值对应的块高大于预设阈值,表明key对应数据被存储较长时间,即key对应的数据已经失效,则删除该key值对应的数据。
本发明实施例提供一种基于区块链的数据处理装置,该基于区块链的数据处理装置可设置于区块链网络中的节点设备中,请参见图5,该装置包括:
获取单元501,用于获取所述节点设备的工作状态;若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据;
定位单元502,用于根据所述索引信息在所述区块链网络中定位所述目标数据;
删除单元503,用于对所述区块链网络中的所述目标数据进行删除。
可选的,获取单元501,还用于获取所述区块链网络中的目标数据的属性信息。
可选的,所述装置还包括:
验证单元504,用于根据所述属性信息验证所述目标数据是否为无效数据;若所述目标数据为无效数据,则获取所述目标数据的索引信息,并将所述索引信息存储至所述节点设备的本地数据库中。
可选的,所述属性信息包括所述目标数据被更新的次数,验证单元504,具体用于判断所述目标数据被更新的次数是否大于预设次数阈值;若是,则确定所述目标数据为无效数据。
可选的,所述属性信息包括所述目标数据的有效期,验证单元504,具体用于获取所述目标数据在所述区块链网络中的存储时长;判断所述存储时长是否超过所述目标数据的有效期;若是,则确定所述目标数据为无效数据。
可选的,删除单元503,还用于对所述节点设备的本地数据库中的所述目标数据的索引信息进行删除。
可选的,所述目标数据被按照默克尔帕特里夏树的数据存储结构存储于所述区块链网络中,所述索引信息包括区块标识及目标键值;定位单元502,具体用于根据所述区块标识确定所述区块链网络中存储所述目标数据的区块;基于所述默克尔帕特里夏树的数据存储结构确定所述区块中键值为所述目标键值的目标数据。
可选的,获取单元501,具体用于按照预设时间间隔获取所述节点设备中待处理的数据量;若所述待处理的数据量小于预设数据量阈值,则确定所述节点设备处于空闲状态。
可选的,所述区块链网络中包括智能合约,所述智能合约声明所述区块链网络中的无效数据的删除规则;当所述节点设备处于空闲状态时,所述智能合约声明的所述删除规则对应的程序被调用并执行,以对所述区块链网络中的所述目标数据进行删除。
本发明实施例中,通过在节点设备处于空闲状态时,从节点设备的本地数据库中获取区块链网络中的目标数据的索引信息,并根据索引信息在区块链网络中定位该目标数据,并对区块链网络中的该目标数据进行删除。即通过索引信息能够快速地在区块链网络定位到需要删除的目标数据,提高定位目标数据的效率;并在节点设备处于空闲状态时,对区块链网络中的目标数据进行删除,能够确保节点设备中的其他数据能够被正常处理,可降低对交易的影响,并可节省区块链网络的存储空间,降低区块链网络的存储压力,使区块链网络更加轻量化。
本发明实施例提供一种区块链网络中的节点设备,请参见图6。该节点设备包括:处理器151、用户接口152、网络接口154以及存储装置155,处理器151、用户接口152、网络接口154以及存储装置155之间通过总线153连接。
用户接口152,用于实现人机交互,用户接口可以包括显示屏或键盘等等。网络接口154,用于与外部设备之间进行通信连接。存储装置155与处理器151耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储装置155可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储装置155可以存储操作系统(下述简称系统),例如ANDROID,IOS,WINDOWS,或者LINUX等嵌入式操作系统。存储装置155还可以存储网络通信程序,该网络通信程序可用于与一个或多个附加设备,一个或多个应用服务器,一个或多个网络设备进行通信。存储装置155还可以存储用户接口程序,该用户接口程序可以通过图形化的操作界面将应用程序的内容形象逼真的显示出来,并通过菜单、对话框以及按键等输入控件接收用户对应用程序的控制操作。存储装置155还可以存储视频数据等。
在一个实施例中,所述存储装置155可用于存储一条或多条的指令;所述处理器151可以调用所述一条或多条的指令时能够实现基于区块链的数据处理方法,具体地,所述处理器151调用所述一条或多条的指令,执行如下步骤:
获取所述区块链网络中的目标数据的属性信息;
根据所述属性信息验证所述目标数据是否为无效数据;
若所述目标数据为无效数据,则获取所述目标数据的索引信息,并将所述索引信息存储至所述节点设备的本地数据库中。
可选的,所述处理器调用指令,执行如下步骤:
判断所述目标数据被更新的次数是否大于预设次数阈值;
若是,则确定所述目标数据为无效数据。
可选的,所述处理器调用指令,执行如下步骤:
获取所述目标数据在所述区块链网络中的存储时长;
判断所述存储时长是否超过所述目标数据的有效期;
若是,则确定所述目标数据为无效数据。
可选的,所述处理器调用指令,执行如下步骤:
对所述节点设备的本地数据库中的所述目标数据的索引信息进行删除。
可选的,所述目标数据被按照默克尔帕特里夏树的数据存储结构存储于所述区块链网络中,所述索引信息包括区块标识及目标键值;所述处理器调用指令,执行如下步骤:
根据所述区块标识确定所述区块链网络中存储所述目标数据的区块;
基于所述默克尔帕特里夏树的数据存储结构确定所述区块中键值为所述目标键值的目标数据。
可选的,所述处理器调用指令,执行如下步骤:
按照预设时间间隔获取所述节点设备中待处理的数据量;
若所述待处理的数据量小于预设数据量阈值,则确定所述节点设备处于空闲状态。
可选的,所述区块链网络中包括智能合约,所述智能合约声明所述区块链网络中的无效数据的删除规则;
当所述节点设备处于空闲状态时,所述智能合约声明的所述删除规则对应的程序被调用并执行,以对所述区块链网络中的所述目标数据进行删除。
本发明实施例中,通过在节点设备处于空闲状态时,从节点设备的本地数据库中获取区块链网络中的目标数据的索引信息,并根据索引信息在区块链网络中定位该目标数据,并对区块链网络中的该目标数据进行删除。即通过索引信息能够快速地在区块链网络定位到需要删除的目标数据,提高定位目标数据的效率;并在节点设备处于空闲状态时,对区块链网络中的目标数据进行删除,能够确保节点设备中的其他数据能够被正常处理,可降低对交易的影响,并可节省区块链网络的存储空间,降低区块链网络的存储压力,使区块链网络更加轻量化。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序解决问题的实施方式以及有益效果可以参见上述图2所述的一种基于区块链的数据处理方法的实施方式以及有益效果,重复之处不再赘述。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (8)
1.一种基于区块链的数据处理方法,应用于区块链网络中的节点设备,其特征在于,所述方法包括:
获取所述节点设备的工作状态;
若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据;所述无效数据是指被更新的次数大于预设次数阈值的目标数据;所述目标数据存储在所述区块链网络中的默克尔帕特里夏树中的叶子节点;所述默克尔帕特里夏树还包括扩展节点和分支节点,所述扩展节点包括所述分支节点的哈希值,所述扩展节点与所述分支节点相连;所述叶子节点包括键值对应的数据,所述分支节点与所述叶子节点相连,所述叶子节点的键值是由该叶子节点中的key-end元素、与所述分支节点中前16个元素中相连的元素以及所述扩展节点中的共享元素所构成的,所述叶子节点中的key-end元素与该叶子节点所包括的所述键值对应的数据不同,与所述分支节点中前16个元素中相连的元素对应的数据为所述叶子节点的键值对应的十六进制字符;所述索引信息包括区块标识及目标键值;
根据所述区块标识确定所述区块链网络中存储所述目标数据的区块,在所述区块中,将所述默克尔帕特里夏树中的所述叶子节点中键值为所述目标键值的数据,确定为所述目标数据;
对所述区块链网络中的所述目标数据进行删除;
对所述节点设备的本地数据库中的所述目标数据的索引信息进行删除。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述区块链网络中的目标数据的属性信息;
根据所述属性信息验证所述目标数据是否为无效数据;
若所述目标数据为无效数据,则获取所述目标数据的索引信息,并将所述索引信息存储至所述节点设备的本地数据库中。
3.如权利要求2所述的方法,其特征在于,所述属性信息包括所述目标数据被更新的次数,所述根据所述属性信息验证所述目标数据是否为无效数据,包括:
判断所述目标数据被更新的次数是否大于预设次数阈值;
若是,则确定所述目标数据为无效数据。
4.如权利要求2所述的方法,其特征在于,所述属性信息包括所述目标数据的有效期,所述根据所述属性信息验证所述目标数据是否为有效数据,包括:
获取所述目标数据在所述区块链网络中的存储时长;
判断所述存储时长是否超过所述目标数据的有效期;
若是,则确定所述目标数据为无效数据。
5.如权利要求1所述的方法,其特征在于,所述获取所述节点设备的工作状态,包括:
按照预设时间间隔获取所述节点设备中待处理的数据量;
若所述待处理的数据量小于预设数据量阈值,则确定所述节点设备处于空闲状态。
6.如权利要求1所述的方法,其特征在于,所述区块链网络中包括智能合约,所述智能合约声明所述区块链网络中的无效数据的删除规则;
当所述节点设备处于空闲状态时,所述智能合约声明的所述删除规则对应的程序被调用并执行,以对所述区块链网络中的所述目标数据进行删除。
7.一种基于区块链的数据处理装置,应用于区块链网络中的节点设备,其特征在于,所述装置包括:
获取单元,用于获取所述节点设备的工作状态;若所述节点设备处于空闲状态,则从所述节点设备的本地数据库中获取所述区块链网络中的目标数据的索引信息,所述目标数据为所述区块链网络中的无效数据;所述无效数据是指被更新的次数大于预设次数阈值的目标数据;所述目标数据存储在所述区块链网络中的默克尔帕特里夏树中的叶子节点;所述默克尔帕特里夏树还包括扩展节点和分支节点,所述扩展节点包括所述分支节点的哈希值,所述扩展节点与所述分支节点相连;所述叶子节点包括键值对应的数据,所述分支节点与所述叶子节点相连,所述叶子节点的键值是由该叶子节点中的key-end元素、与所述分支节点中前16个元素中相连的元素以及所述扩展节点中的共享元素所构成的,所述叶子节点中的key-end元素与该叶子节点所包括的所述键值对应的数据不同,与所述分支节点中前16个元素中相连的元素对应的数据为所述叶子节点的键值对应的十六进制字符;所述索引信息包括区块标识及目标键值;
定位单元,用于根据所述区块标识确定所述区块链网络中存储所述目标数据的区块,在所述区块中,将所述默克尔帕特里夏树中的所述叶子节点中键值为所述目标键值的数据,确定为所述目标数据;
删除单元,用于对所述区块链网络中的所述目标数据进行删除;
所述删除单元,还用于对所述节点设备的本地数据库中的所述目标数据的索引信息进行删除。
8.一种区块链网络中的节点设备,包括输入设备和输出设备,其特征在于,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906423.2A CN110597825B (zh) | 2019-09-24 | 2019-09-24 | 基于区块链的数据处理方法、装置及节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906423.2A CN110597825B (zh) | 2019-09-24 | 2019-09-24 | 基于区块链的数据处理方法、装置及节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597825A CN110597825A (zh) | 2019-12-20 |
CN110597825B true CN110597825B (zh) | 2021-07-27 |
Family
ID=68862839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910906423.2A Active CN110597825B (zh) | 2019-09-24 | 2019-09-24 | 基于区块链的数据处理方法、装置及节点设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597825B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143341B (zh) * | 2019-12-25 | 2023-12-19 | 江苏众享金联科技有限公司 | 一种基于智能合约的区块链账本瘦身方法 |
CN111144755A (zh) * | 2019-12-26 | 2020-05-12 | 安徽朋德信息科技有限公司 | 一种科研仪器实验结果溯源管理系统及方法 |
CN111488626A (zh) * | 2020-04-09 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及介质 |
CN111506580B (zh) * | 2020-06-15 | 2020-12-22 | 支付宝(杭州)信息技术有限公司 | 一种基于中心化块链式账本的交易存储方法 |
CN111459948B (zh) * | 2020-06-15 | 2020-12-29 | 支付宝(杭州)信息技术有限公司 | 一种基于中心化块链式账本的交易完整性验证方法 |
CN113342758B (zh) * | 2021-08-06 | 2021-11-19 | 联想凌拓科技有限公司 | 文件系统的元数据管理方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729383A (zh) * | 2017-09-18 | 2018-02-23 | 联动优势科技有限公司 | 一种索引库生成方法、数据验证方法、装置及平台 |
CN107734021A (zh) * | 2017-09-30 | 2018-02-23 | 上海壹账通金融科技有限公司 | 区块链数据上传方法、系统、计算机系统及存储介质 |
WO2018119930A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN108270836A (zh) * | 2017-01-03 | 2018-07-10 | 华为技术有限公司 | 基于区块链的数据处理方法、设备和系统 |
CN109725841A (zh) * | 2017-10-30 | 2019-05-07 | 华为技术有限公司 | 数据写入方法、装置、存储系统、存储介质与控制器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107728941B (zh) * | 2017-09-28 | 2019-09-24 | 中国银行股份有限公司 | 一种区块链数据压缩方法及系统 |
CN108039943B (zh) * | 2017-12-06 | 2020-10-30 | 清华大学深圳研究生院 | 一种可验证的加密搜索方法 |
CN108200208B (zh) * | 2018-02-11 | 2021-01-05 | 南宁师范大学 | 基于云计算的物流区块链共识算法 |
-
2019
- 2019-09-24 CN CN201910906423.2A patent/CN110597825B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119930A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN108270836A (zh) * | 2017-01-03 | 2018-07-10 | 华为技术有限公司 | 基于区块链的数据处理方法、设备和系统 |
CN107729383A (zh) * | 2017-09-18 | 2018-02-23 | 联动优势科技有限公司 | 一种索引库生成方法、数据验证方法、装置及平台 |
CN107734021A (zh) * | 2017-09-30 | 2018-02-23 | 上海壹账通金融科技有限公司 | 区块链数据上传方法、系统、计算机系统及存储介质 |
CN109725841A (zh) * | 2017-10-30 | 2019-05-07 | 华为技术有限公司 | 数据写入方法、装置、存储系统、存储介质与控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN110597825A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597825B (zh) | 基于区块链的数据处理方法、装置及节点设备 | |
KR102392944B1 (ko) | 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기 | |
CN113329031B (zh) | 一种区块的状态树的生成方法及装置 | |
CN110661658B (zh) | 一种区块链网络的节点管理方法、装置及计算机存储介质 | |
CN110060161B (zh) | 用于区块链交易防重的客户端服务实现方法及服务组件 | |
US20230074102A1 (en) | Method and apparatus for processing data based on block chain, device and readable storage medium | |
CN110851535B (zh) | 基于区块链的数据处理方法、装置、存储介质及终端 | |
CN109995523B (zh) | 激活码管理方法及装置、激活码生成方法及装置 | |
US11108545B2 (en) | Creating a blockchain account and verifying blockchain transactions | |
CN110597916B (zh) | 基于区块链的数据处理方法、装置、存储介质及终端 | |
WO2020048054A1 (zh) | 一种数据存储方法、计算机可读存储介质、服务器及装置 | |
CN113326165B (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN109495874B (zh) | Profile下载的方法和装置 | |
WO2019076102A1 (zh) | 一种数据回滚方法、系统、设备及计算机可读存储介质 | |
CN112184436B (zh) | 数据同步方法、电子设备及可读存储介质 | |
CN112087530A (zh) | 一种将数据上传至区块链系统的方法、装置、设备及介质 | |
CN108234122A (zh) | 令牌校验方法和装置 | |
WO2017080362A1 (zh) | 数据管理方法及装置 | |
CN116977067A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112866265B (zh) | 一种csrf攻击防护方法及装置 | |
CN110688664B (zh) | 一种块链式账本中的权限管理方法、装置及设备 | |
CN112015758B (zh) | 产品取码方法、装置、计算机设备和存储介质 | |
CN113379542B (zh) | 一种区块链交易的查询方法、装置、介质及电子设备 | |
CN117390117A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113342275B (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 |