基于区块链的数据处理方法、装置、设备及可读存储介质制造方法及图纸

技术编号:38727775 阅读:7 留言:0更新日期:2023-09-08 23:19
本发明专利技术公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,该方法包括:创建初始区块对应的第一世界状态;根据初始区块中的交易更新第一世界状态,得到目标第一世界状态,根据世界状态链对目标第一世界状态进行构建干净状态树处理,得到包含干净现世界状态树的更新目标第一世界状态;将干净现世界状态树对应的第一世界状态根写入初始区块,得到待上链区块,若待上链区块共识通过,则将待上链区块写入区块链中,通过世界状态链将更新目标第一世界状态逐级提交至最新上链世界状态,将更新目标第一世界状态确定为新的共识根世界状态。采用本发明专利技术,可以维护多个区块的世界状态,保证状态数据的一致性。保证状态数据的一致性。保证状态数据的一致性。

【技术实现步骤摘要】
基于区块链的数据处理方法、装置、设备及可读存储介质


[0001]本申请涉及计算机
,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。

技术介绍

[0002]区块链系统是由多个区块链节点组成的区块链网络,每个区块链节点会存储该区块链网络对应的最新上链世界状态,即区块链中的最大区块高度的区块上链后,区块链网络中各个账户所拥有的状态数据共同组成的世界状态。
[0003]现有区块链网络中,区块内交易的执行会修改若干账户所拥有的部分状态数据,因此每当有一个区块上链后,就会有对应有一个新的最新上链世界状态。新区块在共识时,又需要依赖其父区块上链后对应的最新上链世界状态来确定自己上链后对应的最新上链世界状态,因此现有共识机制中往往仅允许一个区块进行共识。若采用多个区块同时进行共识的共识机制,则往往无法保证区块链系统的状态数据的一致性。

技术实现思路

[0004]本申请实施例提供了一种数据处理方法、装置、设备及可读存储介质,可以维护多个待上链区块的世界状态,保证区块链系统的状态数据的一致性。
[0005]本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
[0006]生成初始区块,创建初始区块对应的第一世界状态;第一世界状态具有指向初始区块的父区块对应的第二世界状态的链式关系;第一世界状态和第二世界状态存在于世界状态链中;若父区块为已上链区块中具有最大区块高度的区块,则第二世界状态为共识根世界状态;世界状态链中的第一个世界状态为最新上链世界状态;共识根世界状态具有指向最新上链世界状态的链式关系;最新上链世界状态用于记录已上链区块对应的最新世界状态;
[0007]根据初始区块中的交易更新第一世界状态,得到目标第一世界状态,根据世界状态链对目标第一世界状态进行构建干净状态树处理,得到包含干净现世界状态树的更新目标第一世界状态;
[0008]将干净现世界状态树对应的第一世界状态根写入初始区块,得到待上链区块,将共识区块发送至共识节点,以使共识节点基于第一世界状态根对待上链区块进行共识处理,得到共识结果;
[0009]若共识结果为共识通过结果,则将待上链区块写入区块链中,通过世界状态链将更新目标第一世界状态逐级提交至最新上链世界状态,将更新目标第一世界状态确定为新的共识根世界状态,新的共识根世界状态具有指向提交后的最新上链世界状态的链式关系。
[0010]本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
[0011]初始化模块,用于生成初始区块;
[0012]状态创建模块,用于创建初始区块对应的第一世界状态;第一世界状态具有指向初始区块的父区块对应的第二世界状态的链式关系;第一世界状态和第二世界状态存在于世界状态链中;若父区块为已上链区块中具有最大区块高度的区块,则第二世界状态为共识根世界状态;世界状态链中的第一个世界状态为最新上链世界状态;共识根世界状态具有指向最新上链世界状态的链式关系;最新上链世界状态用于记录已上链区块对应的最新世界状态;
[0013]第一状态更新模块,用于根据初始区块中的交易更新第一世界状态,得到目标第一世界状态;
[0014]第二状态更新模块,用于根据世界状态链对目标第一世界状态进行构建干净状态树处理,得到包含干净现世界状态树的更新目标第一世界状态;
[0015]共识模块,用于将干净现世界状态树对应的第一世界状态根写入初始区块,得到待上链区块,将共识区块发送至共识节点,以使共识节点基于第一世界状态根对待上链区块进行共识处理,得到共识结果;
[0016]状态提交模块,用于若共识结果为共识通过结果,则将待上链区块写入区块链中,通过世界状态链将更新目标第一世界状态逐级提交至最新上链世界状态,将更新目标第一世界状态确定为新的共识根世界状态,新的共识根世界状态具有指向提交后的最新上链世界状态的链式关系。
[0017]其中,状态创建模块,包括:
[0018]创建单元,用于创建初始区块对应的初始世界状态;初始世界状态包含有第一前世界状态指针和第一树节点缓存;第一树节点缓存包含有第一前树节点缓存指针;
[0019]指向单元,用于将第一前世界状态指针指向初始区块的父区块对应的第二世界状态,将第一前树节点缓存指针指向第二世界状态包含的第二树节点缓存,得到初始区块对应的第一世界状态。
[0020]其中,第一状态更新模块,包括:
[0021]交易获取单元,用于顺序遍历初始区块中的交易,获取初始区块中的第k个交易;k为小于或等于H的正整数;H为初始区块中的交易的总数量;
[0022]交易状态创建单元,用于创建第k个交易对应的第k个交易世界状态;第k个交易世界状态具有指向第k

1个提交世界状态的链式关系;k为1时,第k

1个提交世界状态为第一世界状态;
[0023]交易状态更新单元,用于执行第k个交易,在第k个交易执行的过程中对第k个交易世界状态进行状态更新处理,得到第k个更新交易世界状态;
[0024]交易状态提交单元,用于若第k个交易执行成功,则将第k个更新交易世界状态提交至第k

1个提交世界状态,得到第k个提交世界状态;
[0025]世界状态确定单元,用于当k等于H时,将第H个提交世界状态作为目标第一世界状态。
[0026]其中,第k个交易世界状态包含有账户状态映射和脏账户地址集合;
[0027]交易状态更新单元,包括:
[0028]执行子单元,用于执行第k个交易,在第k个交易执行的过程中确定第k个交易对应的待更新数据;待更新数据包括待更新账户地址、待更新状态数据键和待更新状态数据值;
[0029]账户状态获取子单元,用于根据第k个交易世界状态获取待更新账户地址对应的账户状态,作为待更新账户状态;待更新账户状态包含有待更新状态数据映射和待更新脏状态数据键集合;
[0030]第一映射更新子单元,用于将待更新状态数据键和待更新状态数据值的映射关系更新到待更新状态数据映射中,将待更新状态数据键插入到待更新脏状态数据键集合中,得到现账户状态;
[0031]第二映射更新单元,用于将待更新账户地址和现账户状态的映射关系更新到第k个交易世界状态包含的账户状态映射中,将待更新账户地址插入到第k个交易世界状态包含的脏账户地址集合中,得到第k个更新交易世界状态。
[0032]其中,账户状态获取子单元,具体用于根据待更新账户地址对第k个交易世界状态至最新上链世界状态进行账户状态映射顺序检索;若在账户状态映射顺序检索的过程中检索到与待更新账户地址具有映射关系的账户状态,则将最先检索到的与待更新账户地址具有映射关系的账户状态作为待更新账户状态;若在账户状态映射顺序检索的过程中未检索到与待更新账户地址具有映射关系的账户状态,则根据最新上链世界状态中的世界状态树获取待更新账户地址对应的待更新状态树根,根据待更新账户地址和待更新状态树根建立待更新账户状态本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的数据处理方法,其特征在于,包括:生成初始区块,创建所述初始区块对应的第一世界状态;所述第一世界状态具有指向所述初始区块的父区块对应的第二世界状态的链式关系;所述第一世界状态和所述第二世界状态存在于世界状态链中;若所述父区块为已上链区块中具有最大区块高度的区块,则所述第二世界状态为共识根世界状态;所述世界状态链中的第一个世界状态为最新上链世界状态;所述共识根世界状态具有指向最新上链世界状态的链式关系;所述最新上链世界状态用于记录所述已上链区块对应的最新世界状态;根据所述初始区块中的交易更新所述第一世界状态,得到目标第一世界状态,根据所述世界状态链对所述目标第一世界状态进行构建干净状态树处理,得到包含干净现世界状态树的更新目标第一世界状态;将所述干净现世界状态树对应的第一世界状态根写入所述初始区块,得到待上链区块,将所述待上链区块发送至共识节点,以使所述共识节点基于所述第一世界状态根对所述待上链区块进行共识处理,得到共识结果;若所述共识结果为共识通过结果,则将所述待上链区块写入区块链中,通过所述世界状态链将所述更新目标第一世界状态逐级提交至所述最新上链世界状态,将所述更新目标第一世界状态确定为新的共识根世界状态,所述新的共识根世界状态具有指向提交后的最新上链世界状态的链式关系。2.根据权利要求1所述的方法,其特征在于,所述创建所述初始区块对应的第一世界状态,包括:创建所述初始区块对应的初始世界状态;所述初始世界状态包含有第一前世界状态指针和第一树节点缓存;所述第一树节点缓存包含有第一前树节点缓存指针;将所述第一前世界状态指针指向所述初始区块的父区块对应的第二世界状态,将所述第一前树节点缓存指针指向所述第二世界状态包含的第二树节点缓存,得到所述初始区块对应的第一世界状态。3.根据权利要求1所述的方法,其特征在于,所述根据所述初始区块中的交易更新所述第一世界状态,得到目标第一世界状态,包括:顺序遍历所述初始区块中的交易,获取所述初始区块中的第k个交易;k为小于或等于H的正整数;H为所述初始区块中的交易的总数量;创建所述第k个交易对应的第k个交易世界状态;所述第k个交易世界状态具有指向第k

1个提交世界状态的链式关系;k为1时,所述第k

1个提交世界状态为所述第一世界状态;执行所述第k个交易,在第k个交易执行的过程中对所述第k个交易世界状态进行状态更新处理,得到第k个更新交易世界状态;若所述第k个交易执行成功,则将所述第k个更新交易世界状态提交至所述第k

1个提交世界状态,得到第k个提交世界状态;当k等于H时,将第H个提交世界状态作为目标第一世界状态。4.根据权利要求3所述的方法,其特征在于,所述第k个交易世界状态包含有账户状态映射和脏账户地址集合;所述执行所述第k个交易,在第k个交易执行的过程中对所述第k个交易世界状态进行状态更新处理,得到第k个更新交易世界状态,包括:
执行所述第k个交易,在第k个交易执行的过程中确定第k个交易对应的待更新数据;所述待更新数据包括待更新账户地址、待更新状态数据键和待更新状态数据值;根据所述第k个交易世界状态获取所述待更新账户地址对应的账户状态,作为待更新账户状态;所述待更新账户状态包含有待更新状态数据映射和待更新脏状态数据键集合;将所述待更新状态数据键和所述待更新状态数据值的映射关系更新到所述待更新状态数据映射中,将所述待更新状态数据键插入到所述待更新脏状态数据键集合中,得到现账户状态;将所述待更新账户地址和所述现账户状态的映射关系更新到所述第k个交易世界状态包含的账户状态映射中,将所述待更新账户地址插入到所述第k个交易世界状态包含的脏账户地址集合中,得到第k个更新交易世界状态。5.根据权利要求3所述的方法,其特征在于,所述根据所述第k个交易世界状态获取所述待更新账户地址对应的账户状态,作为待更新账户状态,包括:根据所述待更新账户地址对所述第k个交易世界状态至所述最新上链世界状态进行账户状态映射顺序检索;若在账户状态映射顺序检索的过程中检索到与所述待更新账户地址具有映射关系的账户状态,则将最先检索到的与所述待更新账户地址具有映射关系的账户状态作为待更新账户状态;若在账户状态映射顺序检索的过程中未检索到与所述待更新账户地址具有映射关系的账户状态,则根据所述最新上链世界状态中的世界状态树获取所述待更新账户地址对应的待更新状态树根,根据所述待更新账户地址和所述待更新状态树根建立待更新账户状态。6.根据权利要求4所述的方法,其特征在于,所述若所述第k个交易执行成功,则将所述第k个更新交易世界状态向所述第k

1个提交世界状态进行提交,得到第k个提交世界状态,包括:遍历所述第k个更新交易世界状态包含的脏账户地址集合中的账户地址,顺序获取第j个账户地址;j为小于或等于I的正整数;I为所述第k个更新交易世界状态包含的脏账户地址集合中的账户地址的总数量;从所述第k个更新交易世界状态包含的账户状态映射中获取所述第j个账户地址对应的现账户状态;根据所述第k

1个提交世界状态获取所述第j个账户地址的前账户状态;将所述第j个账户地址对应的现账户状态提交至所述第j个账户地址的前账户状态,将所述第j个账户地址插入到所述第k

1个提交世界状态包含的脏账户地址集合,得到第j个过渡提交世界状态;当j等于I时,清空第k个更新交易世界状态包含的脏账户地址集合和账户状态映射,将所述第I个过渡提交世界状态作为第k个提交世界状态。7.根据权利要求6所述的方法,其特征在于,所述将所述第j个账户地址对应的现账户状态提交至所述第j个账户地址的前账户状态,将所述第j个账户地址插入到所述第k

1个提交世界状态包含的脏账户地址集合,得到第j个过渡提交世界状态,包括:将所述第j个账户地址对应的现账户状态包含的状态数据映射中的状态数据键和状态
数据值的映射关系,更新到所述第j个账户地址的前账户状态包含的状态数据映射中;将所述第j个账户地址对应的现账户状态包含的状态数据映射中的状态数据键插入到所述第j个账户地址的前账户状态包含的脏状态数据键集合中,得到第j个过渡提交世界状态。8.根据权利要求2所述的方法,其特征在于,所述根据所述世界状态链对所述目标第一世界状态进行构建干净状态树处理,得到更新目标第一世界状态,包括:对所述目标第一世界状态进行世界状态树查询;若所述目标第一世界状态包含第一世界状态树,则对包含所述第一世界状态树的所述目标第一世界状态进行全链脏账户状态提交处理,得到包含干净现世界状态树的更新目标第一世界状态;若所述目标第一世界状态未包含所述第一世界状态树,则根据所述第一前世界状态指针查找所述第二世界状态;...

【专利技术属性】
技术研发人员:冯浩铭颜喆明屠海涛何立宝陈家宝
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1