区块链分叉的处理方法及电子设备、存储介质技术

技术编号:35291646 阅读:10 留言:0更新日期:2022-10-22 12:37
本申请提供一种区块链分叉的处理方法及电子设备、计算机可读存储介质,方法包括:响应于针对初始主链上目标业务合约内目标子链的分叉指令,第一节点确定生成与目标子链对应的分叉主链,停止处理目标业务合约的交易;其中,第一节点为搭载初始主链的共识节点;第二节点处理目标业务合约的交易以更新目标子链,当目标子链更新的子链区块达到预设数量阈值,将已更新的子链区块发送至第一节点;第二节点为搭载分叉主链的共识节点;第一节点将子链区块的交易凭证信息记录至初始主链。本申请方案,初始主链有大量第一节点进行维护,由初始主链记录子链区块的交易凭证信息,保证了目标子链的公信力。公信力。公信力。

【技术实现步骤摘要】
区块链分叉的处理方法及电子设备、存储介质


[0001]本申请涉及区块链
,特别涉及一种区块链分叉的处理方法及电子设备、计算机可读存储介质。

技术介绍

[0002]区块链分叉是指在原有区块链基础上,分裂出另外一条区块链。常见的分叉包括由于区块链协议变更而导致的硬分叉和软分叉。其中,硬分叉情况下,未升级协议的节点无法向前兼容升级协议的节点,此时,未升级协议的节点与升级协议的节点分别维护一条区块链,区块链出现永久性分叉。软分叉情况下,升级后的协议仍符合旧的协议,因此,未升级协议的节点可以兼容升级协议的节点,此时,区块链会出现临时性分叉,后续未升级协议的节点和升级协议的节点会重新维护唯一同一条区块链。此外,区块链因业务发展需要,也可能出现分叉。比如:随着业务发展壮大,单一区块链的数据量过大,则需要拆分出另一区块链,以降低单一区块链的数据量。
[0003]然而,区块链出现分叉后,参与单一区块链的共识节点数量会减少,导致区块链的公信力下降。对于一些与信用相关的业务而言,区块链公信力下降又会进一步导致业务发展受阻。

技术实现思路

[0004]本申请实施例的目的在于提供一种区块链分叉的处理方法及电子设备、计算机可读存储介质,用于在区块链出现分叉后维护分裂出的区块链的公信力。
[0005]一方面,本申请提供了一种区块链分叉的处理方法,包括:
[0006]响应于针对初始主链上目标业务合约内目标子链的分叉指令,第一节点确定生成与所述目标子链对应的分叉主链,停止处理所述目标业务合约的交易;其中,所述第一节点为搭载所述初始主链的共识节点;
[0007]第二节点处理所述目标业务合约的交易以更新所述目标子链,当所述目标子链更新的子链区块达到预设数量阈值,将已更新的子链区块发送至所述第一节点;其中,所述第二节点为搭载所述分叉主链的共识节点;
[0008]所述第一节点将所述已更新的子链区块的交易凭证信息记录至所述初始主链。
[0009]在一实施例中,在所述响应于针对初始主链上目标业务合约内目标子链的分叉指令之前,所述方法还包括:
[0010]所述第一节点根据发送至所述初始主链上多个业务合约的多笔交易,构造临时主链区块;
[0011]所述第一节点根据所述临时主链区块内多笔交易的交易地址,将所述多笔交易划分为若干交易集,并将每一交易集下发至对应的业务合约进行处理;
[0012]所述第一节点接收若干业务合约在执行交易后返回的对应于交易集的交易凭证信息,并根据每一交易集的交易凭证信息和所述临时主链区块,构造候选主链区块;
[0013]所述第一节点基于所述候选主链区块进行共识,以更新所述初始主链。
[0014]在一实施例中,在所述第一节点接收若干业务合约在执行交易后返回的对应于交易集的交易凭证信息之前,所述方法还包括:
[0015]针对所述初始主链上每一接收到交易集的业务合约,所述第一节点通过所述业务合约对交易集内交易进行处理,获得若干交易执行结果;
[0016]针对所述初始主链上每一接收到交易集的业务合约,所述第一节点通过所述业务合约以处理得到的若干交易执行结果、所述业务合约对应的交易集、所述业务合约内子链上一子链区块的交易凭证信息,构造所述业务合约内子链的当前子链区块;
[0017]针对所述初始主链上每一接收到交易集的业务合约,所述第一节点通过所述业务合约,计算所述业务合约的当前子链区块的交易凭证信息,并将所述当前子链区块的交易凭证信息提交至所述第一节点。
[0018]在一实施例中,所述第一节点通过所述业务合约对交易集内交易进行处理,包括:
[0019]当任一交易涉及所述初始主链上指定业务合约时,所述第一节点通过所述业务合约调用所述指定业务合约进行查询,并基于查询结果处理得到所述交易的交易执行结果;其中,所述指定业务合约为接收所述交易的业务合约以外的任一业务合约;或者,
[0020]所述第一节点通过所述业务合约向所述指定业务合约发起修改交易,并基于修改结果处理得到所述交易的交易执行结果。
[0021]在一实施例中,在所述第一节点将所述已更新的子链区块的交易凭证信息记录至所述初始主链之前,所述方法还包括:
[0022]所述第一节点对所述已更新的子链区块进行校验。
[0023]在一实施例中,所述第一节点对所述已更新的子链区块进行校验,包括:
[0024]针对已更新的每一子链区块,所述第一节点通过目标业务合约的合约代码,执行每一子链区块内若干交易,获得若干交易执行结果;
[0025]所述第一节点通过每一子链区块内的若干交易、若干交易对应的若干交易执行结果、每一子链区块的上一子链区块的交易凭证信息,逐个子链区块计算出对应的交易凭证信息;其中,第一个已更新的子链区块的上一子链区块的交易凭证信息记录于所述初始主链;
[0026]针对已更新的每一子链区块,所述第一节点判断为所述子链区块计算出的交易凭证信息,与所述子链区块对应的原始凭证信息是否一致,若一致,确定校验通过;其中,所述原始凭证信息为所述第二节点为所述子链区块计算出的交易凭证信息。
[0027]在一实施例中,在所述第一节点将所述已更新的子链区块的交易凭证信息记录至所述初始主链之后,所述方法还包括:
[0028]响应于针对所述分叉主链上目标业务合约内目标子链的迁移指令,所述第二节点将所述目标子链上所有指定子链区块提交至所述第一节点;其中,所述指定子链区块为所述目标子链从所述初始主链分叉后更新的子链区块;
[0029]所述第一节点校验所有指定子链区块的原始凭证信息,若校验通过,将所有指定子链区块写入所述初始主链;
[0030]所述第一节点重新开始处理所述目标业务合约的交易。
[0031]在一实施例中,所述方法还包括:
[0032]所述第一节点或所述第二节点,响应于针对本地任一业务合约的交易数据查询请求,返回查询结果。
[0033]在一实施例中,所述第二节点处理所述目标业务合约的交易以更新所述目标子链,包括:
[0034]所述第二节点将发送至所述目标业务合约的若干交易,下发至所述目标业务合约;
[0035]所述第二节点通过所述目标业务合约对所述若干交易进行处理,获得若干交易执行结果;
[0036]所述第二节点通过所述目标业务合约,以所述若干交易、所述若干交易执行结果、所述目标子链上一子链区块的交易凭证信息,构造所述目标子链的当前子链区块,以更新所述目标子链。
[0037]另一方面,本申请提供了一种电子设备,所述电子设备包括:
[0038]处理器;
[0039]用于存储处理器可执行指令的存储器;
[0040]其中,所述处理器被配置为执行上述区块链分叉的处理方法。
[0041]此外,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述区块链分叉的处理方法。
[0042]本申本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链分叉的处理方法,其特征在于,包括:响应于针对初始主链上目标业务合约内目标子链的分叉指令,第一节点确定生成与所述目标子链对应的分叉主链,停止处理所述目标业务合约的交易;其中,所述第一节点为搭载所述初始主链的共识节点;第二节点处理所述目标业务合约的交易以更新所述目标子链,当所述目标子链更新的子链区块达到预设数量阈值,将已更新的子链区块发送至所述第一节点;其中,所述第二节点为搭载所述分叉主链的共识节点;所述第一节点将所述已更新的子链区块的交易凭证信息记录至所述初始主链。2.根据权利要求1所述的方法,其特征在于,在所述响应于针对初始主链上目标业务合约内目标子链的分叉指令之前,所述方法还包括:所述第一节点根据发送至所述初始主链上多个业务合约的多笔交易,构造临时主链区块;所述第一节点根据所述临时主链区块内多笔交易的交易地址,将所述多笔交易划分为若干交易集,并将每一交易集下发至对应的业务合约进行处理;所述第一节点接收若干业务合约在执行交易后返回的对应于交易集的交易凭证信息,并根据每一交易集的交易凭证信息和所述临时主链区块,构造候选主链区块;所述第一节点基于所述候选主链区块进行共识,以更新所述初始主链。3.根据权利要求2所述的方法,其特征在于,在所述第一节点接收若干业务合约在执行交易后返回的对应于交易集的交易凭证信息之前,所述方法还包括:针对所述初始主链上每一接收到交易集的业务合约,所述第一节点通过所述业务合约对交易集内交易进行处理,获得若干交易执行结果;针对所述初始主链上每一接收到交易集的业务合约,所述第一节点通过所述业务合约以处理得到的若干交易执行结果、所述业务合约对应的交易集、所述业务合约内子链上一子链区块的交易凭证信息,构造所述业务合约内子链的当前子链区块;针对所述初始主链上每一接收到交易集的业务合约,所述第一节点通过所述业务合约,计算所述业务合约的当前子链区块的交易凭证信息,并将所述当前子链区块的交易凭证信息提交至所述第一节点。4.根据权利要求3所述的方法,其特征在于,所述第一节点通过所述业务合约对交易集内交易进行处理,包括:当任一交易涉及所述初始主链上指定业务合约时,所述第一节点通过所述业务合约调用所述指定业务合约进行查询,并基于查询结果处理得到所述交易的交易执行结果;其中,所述指定业务合约为接收所述交易的业务合约以外的任一业务合约;或者,所述第一节点通过所述业务合约向所述指定业务合约发起修改交易,并基于修改结果处理得到所述交易的交易执行结果。5.根据权利要求1所述的方法,其特征在于,在所述第一节点将所述已更新的子链区块的交易凭...

【专利技术属性】
技术研发人员:胡志鹏杜茂兵顾费勇
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1