【技术实现步骤摘要】
包含分片的区块链系统中退出跨片事务的方法及系统
[0001]本说明书实施例属于区块链
,尤其涉及一种包含分片的区块链系统中退出跨片事务的方法及系统、主链节点和源分片节点。
技术介绍
[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
技术实现思路
[0003]本专利技术的目的在于提供一种包含分片的区块链系统中退出跨片事务的方法及系统、主链节点和源分片节点,包括:一种包含分片的区块链系统中退出跨片事务的方法,该区块链系统中至少包括两个分片,不同分片中的节点存储不同的状态集合;所述区块链系统还包括主链;所述方法包括,源分片在本地提交跨片事务相关的操作发生异常,或者等待跨片事务相关的消息发生超时:源分片在本地撤回发生异常/超时的跨片事务操作,并针对所述跨片事务产生需要由对应目标分片执行的退出指令,并将所述跨片事务退出指令发送至主链;主链生成主链区块的过程中,将接收到的需要由目标分片执行的退出跨片事务的指令填入主链区块的区块体中;所述主链将所述需要目标分片执行的退出跨片事务的指令按照目标分片的标识发送至对应的目标分片中;所述目标分片生成目标分片区块的过程中,将接收到所述主链发来的跨片事务退出指令填入所述目标分片区块的区块体 ...
【技术保护点】
【技术特征摘要】
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所述的系统,所述主链区块的区块体包括的各个目标分片接收的跨片事务退出指令,是未经...
【专利技术属性】
技术研发人员:邓福喜,周知远,谢桂鲁,徐泉清,李康,杨达一,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。