在区块链节点中执行交易的方法及装置制造方法及图纸

技术编号:31157259 阅读:14 留言:0更新日期:2021-12-04 09:54
本说明书提供一种在区块链节点中执行交易的方法及装置,所述区块链节点包括多个状态存储设备和执行设备,所述方法由所述执行设备执行,所述方法包括:在根据任一状态存储设备存储的第一同步信息,确定该状态存储设备重启的情况下,基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标区块;任一状态存储设备出现故障重启之后,所存储的第一同步信息变为预设的初始值;指示所述各个状态存储设备将各自存储的第一同步信息更新为与所述初始值不同的目标值;以及重新执行所述目标区块。块。块。

【技术实现步骤摘要】
在区块链节点中执行交易的方法及装置


[0001]本说明书一个或多个实施例涉及区块链
,特别涉及一种在区块链节点中执行交易的方法及装置。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证数据区块不可篡改和不可伪造。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
[0003]目前来说,为了减小区块链中状态数据的读写压力,可以将状态数据进行分片,并部署到多台机器中,使每个分片只存放状态数据的一个子集。

技术实现思路

[0004]本说明书一个或多个实施例提供一种在区块链节点中执行交易的方法及装置。
[0005]根据第一方面,提供一种在区块链节点中执行交易的方法,所述区块链节点包括多个状态存储设备和执行设备,所述方法由所述执行设备执行,所述方法包括:在根据任一状态存储设备存储的第一同步信息,确定该状态存储设备重启的情况下,基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标区块;任一状态存储设备出现故障重启之后,所存储的第一同步信息变为预设的初始值;指示所述各个状态存储设备将各自存储的第一同步信息更新为与所述初始值不同的目标值;以及重新执行所述目标区块。
[0006]根据第二方面,提供一种在区块链节点中执行交易的方法,所述区块链节点包括多个状态存储设备和执行设备,所述方法包括:所述执行设备在根据任一状态存储设备存储的第一同步信息,确定该状态存储设备重启的情况下,基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标区块,并指示所述各个状态存储设备将各自存储的第一同步信息更新为与所述初始值不同的目标值;其中,任一状态存储设备出现故障重启之后,所存储的第一同步信息变为预设的初始值;所述各个状态存储设备在所述执行设备的指示下,将各自存储的第一同步信息更新为与所述初始值不同的目标值;所述执行设备指重新执行所述目标区块。
[0007]根据第三方面,提供一种在区块链节点中执行交易的装置,所述区块链节点包括多个状态存储设备和执行设备,所述装置部署于所述执行设备,所述装置包括:确定模块,用于在根据任一状态存储设备存储的第一同步信息,确定该状态存储设备重启的情况下,基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标
区块;任一状态存储设备出现故障重启之后,所存储的第一同步信息变为预设的初始值;指示模块,用于指示所述各个状态存储设备将各自存储的第一同步信息更新为与所述初始值不同的目标值;以及执行模块,用于重新执行所述目标区块。
[0008]根据第四方面,提供一种区块链节点,该区块链节点包括多个状态存储设备和执行设备;其中,所述执行设备,用于在根据任一状态存储设备存储的第一同步信息,确定该状态存储设备重启的情况下,基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标区块,并指示所述各个状态存储设备将各自存储的第一同步信息更新为与所述初始值不同的目标值,以及重新执行所述目标区块;所述状态存储设备,用于存储区块链的状态数据,并在所述执行设备的指示下,将存储的第一同步信息更新为与所述初始值不同的目标值;其中,任一状态存储设备出现故障重启之后,所存储的第一同步信息变为预设的初始值。
[0009]根据第五方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面中任一项所述的方法。
[0010]根据第六方面,提供一种及计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面或第二方面中任一项所述的方法。
[0011]本说明书的实施例提供的技术方案可以包括以下有益效果:本说明书的实施例提供的在区块链节点中执行交易的方法和装置,在交易执行的过程中,执行设备和状态存储设备交互时,通过状态存储设备中存储的同步信息,判断状态存储设备是否出现故障后重启,并能够在状态存储设备出现故障并重启的情况下,重新执行可能丢失的数据所对应的区块的交易,从而避免了数据的丢失。
[0012]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0013]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0014]图1是本说明书根据一示例性实施例示出的一种区块链的节点的架构图;图2是本说明书根据一示例性实施例示出的一种在区块链节点中执行交易的方法流程图;图3是本说明书根据一示例性实施例示出的另一种在区块链节点中执行交易的方法的交互流程图;图4是本说明书根据一示例性实施例示出的一种在区块链节点中执行交易装置的框图。
具体实施方式
[0015]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0016]如图1所示,是根据一示例性实施例示出的一种区块链的节点的架构图。其中,区块链的节点可以实现为任何具有计算、处理能力的装置、服务器或设备集群等。
[0017]在图1中,区块链的节点可以包括执行设备和状态存储设备,其中,状态存储设备可以包括状态存储设备1,状态存储设备2,
……
状态存储设备n等n个状态存储设备。可选地,执行设备可以包括第一执行设备和第二执行设备,其中,第二执行设备可以包括设备1,设备2,
……
设备m等m个第二执行设备。可以理解,图1仅是示例性的示出n个状态存储设备和m个第二执行设备,实际上区块链的节点中可以包括任意数目的状态存储设备和任意数目的第二执行设备。例如,状态存储设备的数目可以是任意多个,第二执行设备的数目可以是一个也可以是任意多个,状态存储设备的数目可以和第二执行设备的数目相同,也可以不同。
[0018]在本实施例中,状态存储设备用于存储区块链的状态数据,不同的状态存储设备存储不同账户的状态数据。例如,状态存储设备1存储账户A、账户B和账户C的状态数据,状态存储设备2存储账户E、账户F和账户G的状态数据,
……
状态存储设备n存储账户X、账户Y和账户Z等等。执行设备用于生成并更新同步信息,执行区块包括的交易,并将执行结果包括的状态数据传输给该状态数据的账户所对应的状态存储设备,查询各个状态存储设备各自存储的状态数据所对应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在区块链节点中执行交易的方法,所述区块链节点包括多个状态存储设备和执行设备,所述方法由所述执行设备执行,所述方法包括:在根据任一状态存储设备存储的第一同步信息,确定该状态存储设备重启的情况下,基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标区块;任一状态存储设备出现故障重启之后,所存储的第一同步信息变为预设的初始值;指示所述各个状态存储设备将各自存储的第一同步信息更新为与所述初始值不同的目标值;以及重新执行所述目标区块。2.根据权利要求1所述的方法,其中,所述方法还包括:在对任一状态存储设备进行访问操作的情况下,根据该状态存储设备存储的第一同步信息,确定该状态存储设备是否重启。3.根据权利要求1所述的方法,其中,所述基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标区块,包括:如果所述各个状态存储设备存储的状态数据所对应的区块高度均相同,将该区块高度所对应的区块的下一个区块确定为所述目标区块;如果所述各个状态存储设备存储的状态数据所对应的区块高度不同,将最小的区块高度所对应的区块的下一个区块确定为所述目标区块。4.根据权利要求1所述的方法,其中,所述执行设备包括第一执行设备和第二执行设备;由所述第一执行设备确定目标区块,并指示所述各个状态存储设备将各自存储的第一同步信息更新为所述目标值;由所述第二执行设备重新执行所述目标区块。5.根据权利要求4所述的方法,其中,所述方法还包括:在所述第一执行设备/所述第二执行设备对任一状态存储设备进行访问操作的情况下,所述第一执行设备/所述第二执行设备从接收的该状态存储设备发送的消息中获取该状态存储设备存储的第一同步信息;若该状态存储设备存储的第一同步信息为所述初始值,则确定该状态存储设备重启。6.根据权利要求5所述的方法,其中,所述方法还包括:若该状态存储设备存储的第一同步信息不是所述初始值,并且该状态存储设备存储的第一同步信息与所述第一执行设备/所述第二执行设备存储的第二同步信息相同,继续执行所述访问操作对应的交易;若该状态存储设备存储的第一同步信息不是所述初始值,并且该状态存储设备存储的第一同步信息与所述第一执行设备/所述第二执行设备存储的第二同步信息不同,停止执行所述访问操作对应的交易。7.根据权利要求2或5所述的方法,其中,所述访问操作包括读和/或写的操作。8.根据权利要求4所述的方法,其中,所述方法还包括:在所述第一执行设备出现故障重启之后,由所述第一执行设备确定目标区块,并指示所述各个状态存储设备将各自存储的第一同步信息更新为所述目标值的操作,由所述第二执行设备重新执行所述目标区块。9.根据权利要求4所述的方法,其中,所述方法还包括:在所述第二执行设备出现故障重启之后,由所述第二执行设备读取所述各个状态存储
设备各自存储的第一同步信息;如果读取的各个第一同步信息均相同且不为所述初始值,将存储于所述第二执行设备的第二同步信息更新为与各个第一同步信息相同的值。10.一种在区块链节点中执行交易的方法,所述区块链节点包括多个状态存储设备和执行设备,所述方法包括:所述执行设备在根据任一状态存储设备存储的第一同步信息,确定该状态存储设备重启的情况下,基于各个状态存储设备存储的状态数据所对应的区块高度,确定目标区块,并指示所述各个状态存储设备将各自存储的第一同步信息更新为与所述初始值不同的目标值;其中,任一状态存储设备出现故障重启之后,所存储的第一同步信息变为预设的初始值;所述各个状态存储设备在所述执...

【专利技术属性】
技术研发人员:谢桂鲁
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1