包含分片的区块链系统中退出跨片事务的方法及系统技术方案

技术编号:27099215 阅读:17 留言:0更新日期:2021-01-25 18:41
一种包含分片的区块链系统中提交跨片事务的方法及系统。该区块链系统中至少包括两个分片和主链;所述方法包括:源分片在本地提交跨片事务相关的操作发生异常或者等待跨片事务相关的消息发生超时:源分片在本地撤回发生异常/超时的跨片事务操作,针对跨片事务产生需要由对应目标分片执行的退出指令,并将跨片事务退出指令发送至主链;主链将接收到的需要由目标分片执行的退出跨片事务的指令填入主链区块的区块体中;主链将需要目标分片执行的退出跨片事务的指令按照目标分片的标识发送至对应的目标分片中;目标分片生成目标分片区块的过程中,将接收到主链发来的跨片事务退出指令填入所述目标分片区块的区块体中,并执行所述退出跨片事务的指令。所述退出跨片事务的指令。所述退出跨片事务的指令。

【技术实现步骤摘要】
包含分片的区块链系统中退出跨片事务的方法及系统


[0001]本说明书实施例属于区块链
,尤其涉及一种包含分片的区块链系统中退出跨片事务的方法及系统、主链节点和源分片节点。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。

技术实现思路

[0003]本专利技术的目的在于提供一种包含分片的区块链系统中退出跨片事务的方法及系统、主链节点和源分片节点,包括:一种包含分片的区块链系统中退出跨片事务的方法,该区块链系统中至少包括两个分片,不同分片中的节点存储不同的状态集合;所述区块链系统还包括主链;所述方法包括,源分片在本地提交跨片事务相关的操作发生异常,或者等待跨片事务相关的消息发生超时:源分片在本地撤回发生异常/超时的跨片事务操作,并针对所述跨片事务产生需要由对应目标分片执行的退出指令,并将所述跨片事务退出指令发送至主链;主链生成主链区块的过程中,将接收到的需要由目标分片执行的退出跨片事务的指令填入主链区块的区块体中;所述主链将所述需要目标分片执行的退出跨片事务的指令按照目标分片的标识发送至对应的目标分片中;所述目标分片生成目标分片区块的过程中,将接收到所述主链发来的跨片事务退出指令填入所述目标分片区块的区块体中,并执行所述退出跨片事务的指令。
[0004]一种包含分片的区块链系统中退出跨片事务的系统,该区块链系统中至少包括两个分片,不同分片中的节点存储不同的状态集合;所述区块链系统还包括主链;源分片在本地提交跨片事务相关的操作发生异常,或者等待跨片事务相关的消息发生超时:源分片在本地撤回发生异常/超时的跨片事务操作,并针对所述跨片事务产生需要由对应目标分片执行的退出指令,并将所述跨片事务退出指令发送至主链;主链生成主链区块的过程中,将接收到的需要由目标分片执行的退出跨片事务的指令填入主链区块的区块体中;所述主链将所述需要目标分片执行的退出跨片事务的指令按照目标分片的标识发送至对应的目标分片中;所述目标分片生成目标分片区块的过程中,将接收到所述主链发来的跨片事务退出指令填入所述目标分片区块的区块体中,并执行所述退出跨片事务的指令。
[0005]一种包含分片的区块链系统中的源分片节点,包括:执行单元,用于在本地执行跨片事务相关的操作;源分片区块生成单元,用于当执行单元在本地提交跨片事务相关的操作发生异常或者等待跨片事务相关的消息发生超时后,生成源分片区块,并在生成源分片区块的过程中产生跨片事务退出指令;跨片事务退出单元,用于在本地撤回发生异常/超时的跨片事务操作;发送单元,用于将所述跨片事务退出指令发送至主链。
[0006]一种包含分片的区块链系统中的主链节点,包括:接收单元,用于接收需要由目标分片执行的跨片事务退出指令;主链区块生成单元,用于生成主链区块,并在生成主链区块的过程中,将接收到的跨片事务退出指令填入主链区块的区块体中;发送单元,用于将所述跨片事务退出指令按照目标分片的标识发送至对应的目标分片中。
[0007]上述本申请提供的退出跨片事务的方法实施例,在包含分片的区块链系统中通过主链来将源分片中产生的跨分片事务退出指令转发至目标分片,提供了包含分片的区块链系统中退出分片事务的方案,从而保证了跨片事务的原子性。这个过程,通过构成主链的节点的权威性,使得源分片中产生的跨片事务退出指令能够在主链的见证下可靠的转发并在目标分片中执行,并在源分片、主链和目标分片上均存证。
附图说明
[0008]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0009]图1是一实施例中区块链系统架构示意图;图2是一实施例中区块链系统分片架构的示意图;图3是本说明书一实施例中的区块链数据存储的结构示意图;图4是本说明书一实施例中的一个简化版的状态树示意图;图5是本说明书一实施例中的一种区块链状态树的存储结构;图6是本说明书一实施例中的一种区块链状态树的存储结构;图7是本说明书一实施例中的一种区块链状态树的存储结构;图8是本说明书一实施例中的一种区块链状态树的存储结构;图9是本说明书一实施例中的一种区块链状态树的存储结构;图10是本说明书一实施例中的一种区块链分片架构的示意图;图11是本说明书一实施例中的一致性哈希的原理示意图;图12是本说明书一实施例中的一种区块链状态树的存储结构;图13是本说明书一实施例中的区块链节点示意图;图14是本说明书一实施例中的区块链节点示意图;图15是本说明书一实施例中的基于主链的区块链分片系统示意图;
图16是本说明书一实施例中的引入主链的区块链分片系统产生区块的示意图;图17是本说明书一实施例中在包含分片的区块链系统中执行跨片事务的方法;图18是本说明书一实施例中分片2产生的分片区块中包括跨片事务列表并上报该跨片事务列表至主链的示意图;图19是本说明书一实施例中主链产生的主链区块中包括跨片事务及分片区块根的示意图;图20是本说明书一实施例中目标分片产生的目标分片区块中的示意图;图21是本说明书一实施例中目标分片产生的目标分片区块中包括主链区块hash的示意图;图22是本说明书一实施例中目标分片产生的目标分片区块中包括主链区块hash的示意图;图23是本说明书一实施例中目标分片产生的目标分片区块中包括主链区块hash的示意图;图24是本说明书一实施例中返回跨片事务响应至源分片的流程图;图25是本说明书一实施例中主链产生的主链区块中包括跨片事务响应及分片区块根的示意图;图26是本说明书一实施例中源分片产生的源分片区块的示意图;图27是本说明书一实施例中发送提交跨片事务指令及提交跨片事务的示意图;图28是本说明书一实施例中主链产生的主链区块中包括跨片事务提交指令及分片区块根的示意图;图29是本说明书一实施例中目标分片产生的目标分片区块的示意图;图30是本说明书一实施例中发送提交跨片事务响应及提交跨片事务的示意图;图31是本说明书一实施例中主链产生的主链区块中包括跨片事务提交响应及分片区块根的示意图;图32是本说明书一实施例中源分片产生的源分片区块的示意图;图33是本说明书一实施例中发送提交跨片事务指令及提交跨片事务的示意图;图34是本说明书一实施例中发送提交跨片事务指令及提交跨片事务的示意图;图35是本说明书一实施例中主链产生的主链区块中包括跨片事务提交指令及分片区块根的示意图;图36是本说明书一实施例中源分片产生的源分片区块的示意图;图37是本说明书一实施例中发送跨片事务退出指令及提交跨片事务的示意图;图38是本说明书一实施例中主链产生的主链区块中包括跨片事务退出指令及分片区块本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种包含分片的区块链系统中退出跨片事务的方法,该区块链系统中至少包括两个分片,不同分片中的节点存储不同的状态集合;所述区块链系统还包括主链;所述方法包括,源分片在本地提交跨片事务相关的操作发生异常,或者等待跨片事务相关的消息发生超时:源分片在本地撤回发生异常/超时的跨片事务操作,并针对所述跨片事务产生需要由对应目标分片执行的退出指令,并将所述跨片事务退出指令发送至主链;主链生成主链区块的过程中,将接收到的需要由目标分片执行的退出跨片事务的指令填入主链区块的区块体中;所述主链将所述需要目标分片执行的退出跨片事务的指令按照目标分片的标识发送至对应的目标分片中;所述目标分片生成目标分片区块的过程中,将接收到所述主链发来的跨片事务退出指令填入所述目标分片区块的区块体中,并执行所述退出跨片事务的指令。2.如权利要求1所述的方法,所述源分片在本地提交跨片事务相关的操作,包括:源分片在本地执行跨片事务,或,源分片在本地产生跨片事务提交指令,或,源分片在本地提交执行跨片事务所产生的状态。3.如权利要求1所述的方法,所述源分片等待跨片事务相关的消息发生超时,包括:源分片等待跨片事务响应超时,或,源分片等待跨片事务提交响应超时,或,源分片等待跨片事务提交指令超时。4.如权利要求1所述的方法,所述源分片在本地撤回发生异常/超时的跨片事务操作,具体包括:源分片在本地删除执行跨片事务而在底层数据库临时插入的数据;和/或,源分片在本地对执行跨片事务而变更的状态执行反向操作,以使所述状态回退至所述跨片事务执行前的状态。5.如权利要求1所述的方法,所述源分片生成的源分片区块的区块体中还包括所述跨片事务退出指令列表,所述跨片事务退出指令列表包括需要发送至目标分片的跨片事务退出指令。6.如权利要求5所述的方法,所述源分片生成的源分片区块的区块头中还包括跨片事务退出指令_root字段,用于将所述区块体中的跨片事务退出指令列表锁定至区块头中。7.如权利要求1所述的方法,所述主链区块的区块体包括的各个目标分片接收的跨片事务退出指令,是未经主链在之前已生成的区块中打包的。8.如权利要求1所述的方法,所述主链生成主链区块前,还包括:主链中的节点接收到源分片发来的跨片事务退出指令后,对所述跨片事务退出指令进行验证。9.如权利要求8所述的方法,所述验证包括:主链中的节点按照树形结构计算分片发来的跨片事务退出指令构成的树的根节点的hash值,根据该hash判断本次接收到的跨片事务退出指令是否与之前接收到的跨片事务退出指令重复。10.如权利要求1所述的方法,所述源分片除了将所述跨片事务退出指令发送至主链,还将生成的源分片区块的区块头发送至主链。
11.如权利要求10所述的方法,所述主链生成主链区块的过程中,还计算各个源分片发来的源分片区块的区块hash,并将源分片区块hash填入所述主链区块的区块体中。12.如权利要求11所述的方法,所述主链生成主链区块的过程中,还将各个所述分片的分片区块hash按照树形结构计算得到的根的hash值填入主链区块的区块头的分片区块根中。13.如权利要求12所述的方法,所述主链接收到源分片发来的源分片区块的区块头和跨片事务退出指令后,还对所述源分片区块的区块头进行验证。14.如权利要求13所述的方法,所述验证包括,将跨片事务退出按照树形结构组织后得到的树的hash值,确定该值与所述源分片区块的区块头中的跨片事务退出指令_root一致。15.如权利要求1所述的方法,所述主链将所述跨片事务退出指令按照目标分片的标识发送至对应的目标分片中,包括:将所述主链区块的区块体中分组的跨片事务退出指令按照目标分片的标识发送至对应的目标分片中。16.如权利要求1所述的方法,所述主链还将所述主链区块的区块头发送至所述目标分片。17.如权利要求1所述的方法,所述目标分片生成目标分片区块前,还包括:所述目标分片中的节点接收到主链发来的跨片事务退出指令后,对所述跨片事务退出指令进行验证。18.如权利要求17所述的方法,所述验证包括:所述目标分片中的节点按照树形结构计算该跨片事务退出指令构成的树的根节点的hash值,根据该hash判断本次接收到的跨片事务退出指令是否与之前接收到的跨片事务退出指令重复。19.如权利要求16所述的方法,所述目标分片接收到主链发来的主链区块的区块头和跨片事务退出指令后,还对主链区块的区块头进行验证。20.如权利要求16所述的方法,所述目标分片在生成目标分片区块的过程中,根据接收到的主链区块的区块头计算得到该主链区块的hash值,并将该主链区块的hash值填入所述目标分片生成的目标分片区块的区块头中。21.如权利要求20所述的方法,对于主链区块的生成速度不低于分片区块的生成速度的情况,所述目标分片将最新主链区块的hash值填入目标分片生成的目标分片区块的区块头中。22.如权利要求20所述的方法,对于主链区块的生成速度高于分片区块的生成速度的情况:所述目标分片将本目标分片区块中打包的跨片事务退出指令对应的多个主链区块的hash值填入目标分片生成的目标分片区块的区块头中;或,所述目标分片将本目标分片区块中打包的跨片事务退出指令对应的多个主链区块的hash值填入目标分片生成的目标分片区块的区块体中,还将各个所述主链区块的hash按照树形结构计算得到的根的hash值填入所述目标分片区块的区块头的主链区块根Hash中。23.如权利要求1所述的方法,所述主链还发送生成的主链区块的时间戳至目标分片,所述目标分片在生成目标分片区块的过程中将所述主链区块的时间戳填入目标分片区块的timestamp中。24.如权利要求16所述的方法,所述主链通过发送所述主链区块的区块头将所述主链
区块的时间戳发送至所述目标分片。25.如权利要求23或24所述的方法,所述主链发送生成的最新主链区块的时间戳至目标分片,相应的,所述目标分片在生成目标分片区块的过程中将所述最新主链区块的时间戳填入分片区块的timestamp中。26.如权利要求1所述的方法,所述目标分片执行所述跨片事务退出指令,包括:目标分片在本地删除执行跨片事务而在底层数据库临时插入的数据;和/或,目标分片在本地对执行跨片事务而变更的状态执行反向操作,以使所述状态回退至所述跨片事务执行前的状态。27.一种包含分片的区块链系统中退出跨片事务的系统,该区块链系统中至少包括两个分片,不同分片中的节点存储不同的状态集合;所述区块链系统还包括主链;源分片在本地提交跨片事务相关的操作发生异常,或者等待跨片事务相关的消息发生超时:源分片在本地撤回发生异常/超时的跨片事务操作,并针对所述跨片事务产生需要由对应目标分片执行的退出指令,并将所述跨片事务退出指令发送至主链;主链生成主链区块的过程中,将接收到的需要由目标分片执行的退出跨片事务的指令填入主链区块的区块体中;所述主链将所述需要目标分片执行的退出跨片事务的指令按照目标分片的标识发送至对应的目标分片中;所述目标分片生成目标分片区块的过程中,将接收到所述主链发来的跨片事务退出指令填入所述目标分片区块的区块体中,并执行所述退出跨片事务的指令。28.如权利要求27所述的系统,所述源分片在本地提交跨片事务相关的操作,包括:源分片在本地执行跨片事务,或,源分片在本地产生跨片事务提交指令,或,源分片在本地提交执行跨片事务所产生的状态。29.如权利要求27所述的系统,所述源分片等待跨片事务相关的消息发生超时,包括:源分片等待跨片事务响应超时,或,源分片等待跨片事务提交响应超时,或,源分片等待跨片事务提交指令超时。30.如权利要求27所述的系统,所述源分片在本地撤回发生异常/超时的跨片事务操作,具体包括:源分片在本地删除执行跨片事务而在底层数据库临时插入的数据;和/或,源分片在本地对执行跨片事务而变更的状态执行反向操作,以使所述状态回退至所述跨片事务执行前的状态。31.如权利要求27所述的系统,所述源分片生成的源分片区块的区块体中还包括所述跨片事务退出指令列表,所述跨片事务退出指令列表包括需要发送至目标分片的跨片事务退出指令。32.如权利要求31所述的系统,所述源分片生成的源分片区块的区块头中还包括跨片事务退出指令_root字段,用于将所述区块体中的跨片事务退出指令列表锁定至区块头中。
33.如权利要求27所述的系统,所述主链区块的区块体包括的各个目标分片接收的跨片事务退出指令,是未经...

【专利技术属性】
技术研发人员:邓福喜周知远谢桂鲁徐泉清李康杨达一
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1