[发明专利]退出跨片事务的方法和系统、主链节点和目标分片节点在审
申请号: | 202011518628.2 | 申请日: | 2020-12-21 |
公开(公告)号: | CN112579261A | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 邓福喜;周知远;谢桂鲁;徐泉清;李康;杨达一 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F8/30;G06F16/22;G06F16/27 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 张静娟;周良玉 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 退出 事务 方法 系统 节点 目标 分片 | ||
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所述的方法,所述主链接收到目标分片发来的目标分片区块的区块头和跨片事务退出指令后,还对所述目标分片区块的区块头进行验证。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011518628.2/1.html,转载请声明来源钻瓜专利网。