[发明专利]一种区块同步方法、计算机设备和存储介质有效
申请号: | 202110476190.4 | 申请日: | 2021-04-29 |
公开(公告)号: | CN113157810B | 公开(公告)日: | 2023-02-03 |
发明(设计)人: | 邓泰生;顾费勇;曹崇瑞;胡志敏 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 深圳紫藤知识产权代理有限公司 44570 | 代理人: | 徐世俊 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 同步 方法 计算机 设备 存储 介质 | ||
1.一种区块同步方法,其特征在于,应用于目标区块链节点,所述方法包括:
获取所述目标区块链节点的第二区块高度以及目标区块链系统中至少两个区块链节点的第一区块高度,若存在至少一个第一区块高度与所述第二区块高度不一致,则根据数值最大的第一区块高度与所述第二区块高度确定所述目标区块链节点的待获取区块,其中,所述目标区块链系统为所述目标区块链节点所属的区块链系统;
从目标区块链系统中选择至少两个区块链节点,作为所述目标区块链节点的同步区块链节点,包括:确定所述目标区块链系统中的候选区块链节点,其中,所述候选区块链节点为所述目标区块链系统中区块数据正常的区块链节点;获取所述候选区块链节点的设备负载信息和设备总资源信息,基于所述设备负载信息和设备总资源信息评估所述候选区块链节点的区块发送速度;基于区块发送速度由高到低从所述候选区块链节点中选择至少两个候选区块链节点,从所述至少两个候选区块链节点中筛选出至少两个与所述目标区块链节点的节点距离低于预设节点距离阈值的候选区块链节点,作为所述目标区块链节点的同步区块链节点;
获取所述同步区块链节点的节点标识,将所述同步区块链节点的节点标识添加到同步节点队列中;
从所述同步节点队列中取出位于队首的节点标识作为当前节点标识;
以所述当前节点标识指示的同步区块链节点为当前同步区块链节点,确定所述待获取区块中,需要从所述当前同步区块链节点中同步的目标区块;
从所述当前同步区块链节点获取所述目标区块;
若所述待获取区块中还存在未从同步区块链节点中获取的区块,将所述当前节点标识写入所述同步节点队列的队尾,返回执行所述从所述同步节点队列中取出位于队首的节点标识作为当前节点标识的步骤,直到所述待获取区块对应的目标区块全部获取完为止。
2.根据权利要求1所述的区块同步方法,其特征在于,所述以所述当前节点标识指示的同步区块链节点为当前同步区块链节点,确定所述待获取区块中,需要从所述当前同步区块链节点中同步的目标区块,包括:
以所述当前节点标识指示的同步区块链节点为当前同步区块链节点,确定所述当前同步区块链节点的最大区块同步数量,其中,所述最大区块同步数量为:在一次同步过程中,所述目标区块链节点可从所述当前同步区块链节点同步的区块的最大数量;
基于所述最大区块同步数量和所述目标区块链节点的当前区块高度,确定所述待获取区块中,需要从所述当前同步区块链节点中同步的目标区块。
3.根据权利要求2所述的区块同步方法,其特征在于,所述从所述同步节点队列中取出位于队首的节点标识作为当前节点标识前,还包括:
获取所述同步区块链节点的设备负载信息和设备总资源信息,以及所述区块链系统中区块的区块平均数据量;
基于所述区块平均数据量,以及每个同步区块链节点的所述设备负载信和设备总资源信息,确定每个同步区块链节点的最大区块同步数量;
建立每个同步区块链节点的节点标识和最大区块同步数量的对应关系;
所述确定所述当前同步区块链节点的最大区块同步数量包括:
基于所述对应关系,获取所述当前节点标识对应的最大区块同步数量作为所述当前同步区块链节点的最大区块同步数量。
4.根据权利要求1所述的区块同步方法,其特征在于,所述从所述当前同步区块链节点获取所述目标区块,包括:
基于所述目标区块生成区块同步请求,所述区块同步请求包括所述目标区块中区块的区块同步顺序指示信息;
向所述当前同步区块链节点发送所述区块同步请求,触发所述当前同步区块链节点按照所述区块同步顺序指示信息指示的区块同步顺序,依次向所述目标区块链节点发送对应的区块;
接收所述当前同步区块链节点发送的区块。
5.根据权利要求1所述的区块同步方法,其特征在于,还包括:
在从所述当前同步区块链节点获取所述目标区块的过程中,若出现区块同步异常情况,停止从所述当前同步区块链节点继续获取所述目标区块;
不执行将所述当前节点标识写入所述同步节点队列的队尾的步骤;
返回执行所述从所述同步节点队列中取出位于队首的节点标识作为当前节点标识的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110476190.4/1.html,转载请声明来源钻瓜专利网。