一种区块链数据同步方法
- 国知局
- 2024-08-02 13:57:33
本发明涉及区块链,具体涉及一种区块链数据同步方法。
背景技术:
1、现有的区块链系统通常采用p2p网络(一种点对点的网络结构),其中,该网络中每个节点都是平等的,彼此平等地连接,没有一个中心化的节点进行管理,每个节点都保存着全网所有的交易数据,都可以独自安全地验证和交换数据。这些数据被保存在一个名为区块的数据结构中,所有的区块是由系统中一些称为矿工的特殊节点创建出来,创建后随机选择邻居节点传播,从而向全网所有节点广播,区块在区块链网络中得到大多数节点的验证通过,达成共识后才能上链。这种区块全网广播,大多数节点验证通过后上链工作方式,并没有将区块链系统与其承载网络紧密配合,可能会因部分节点的网络状态不好,从而增加区块链网络的整体传播时间,导致区块链应用存在吞吐量低的问题。
2、《blockp2p:enabling fast blockchain broadcast with scalable peer-to-peer network topology》提出,blockp2p首先进行地理邻近感知聚簇,利用k-means算法将邻近对等节点聚集到集群中。然后,基于节点属性分类的分层拓扑结构确保节点之间的强连通性和小直径。最后,文中提出了并行生成树广播算法来实现集群内和集群间节点间的快速数据广播。采用地理邻近的节点具有较低的传输时延,但选择地理邻近的节点作为邻居很容易被恶意节点预测,导致区块链系统受到eclipse攻击,基于地理邻近的节点选择策略没有考虑到区块链系统的安全性和鲁棒性;而且更主要的问题是没有考虑到不同节点的网络状态。
3、《面向比特币区块链的邻居节点选择算法研究》考虑到邻居节点的网络状态,在每一轮区块传播过程中更新邻居节点评分,根据评分动态调整每个节点的邻居节点,断开连接后随机探索网络中其他节点建立新的连接。这种方法考虑到了每个节点的网络状态,也考虑到了网络的安全性,但缺乏全局视角,每个节点断开邻居节点后随机选择新的节点并不能保证新连接节点的网络状态,可能会导致一些低效节点被选为邻居节点,影响区块的验证和传播时间。
4、因此,针对现有技术的不足有必要进行改进。
技术实现思路
1、本发明主要解决的技术问题是提供一种区块链数据同步方法,通过将区块链系统与区块链承载网络紧密结合,进而提升区块在区块链网络中的整体传输速率,提高区块链系统的吞吐率。
2、根据第一方面,一种实施例中提供一种区块链数据同步方法,包括:
3、获取区块链网络拓扑图,生成承载网络拓扑图;
4、其中,所述区块链网络拓扑图用于表征区块链网络中各节点之间的第一连接关系;所述承载网络拓扑图用于表征各所述节点在区块链承载网络中的第二连接关系;所述区块链承载网络为由支持所述区块链系统的网络基础设施所构成的网络;
5、利用所述承载网络拓扑图对所述区块链网络拓扑图进行优化而得到区块链网络扩展拓扑图;其中,所述区块链网络扩展拓扑图用于表征各所述节点之间的第三连接关系;
6、对所述区块链网络扩展拓扑图中的所有所述节点进行聚类而得到多个簇;从所述簇中评分高于预设阈值的所述节点中确定所述簇的簇头节点;其中,所述评分是对所述节点的区块链系统信息和区块链承载网络信息进行评估而得到的;所述区块链系统信息包括:所述节点的区块生成数;所述区块链承载网络信息包括所述节点的网络带宽;其中,所述区块生成数为所述节点所生成的区块的数量;
7、分别将各所述节点作为当前节点;利用所述区块链网络扩展拓扑图生成各所述当前节点的候选逻辑邻居节点集合;其中,所述候选逻辑邻居节点集合包括多个候选的逻辑邻居节点;所述逻辑邻居节点指的是所述区块链网络中所述当前节点用于传播所述区块的节点;
8、利用所述簇头节点进行各所述簇之间的消息同步;利用所述候选的逻辑邻居节点进行各所述簇内的消息同步。
9、一实施例中,所述生成承载网络拓扑图,包括:
10、获取所述第二连接关系和所述区块链承载网络信息;
11、利用所述第二连接关系和所述区块链承载网络信息构建所述承载网络拓扑图。
12、一实施例中,所述利用所述承载网络拓扑图对所述区块链网络拓扑图进行优化而得到区块链网络扩展拓扑图,包括:
13、通过所述节点的ip地址将所述区块链网络拓扑图中的所述节点与所述承载网络拓扑图的所述节点进行一一对应;
14、若两个所述节点在所述区块链网络拓扑图中存在所述第一连接关系而在所述承载网络拓扑图中不存在所述第二连接关系时,则将该两个所述节点的所述第一连接关系作为所述区块链网络扩展拓扑图中该两个所述节点的所述第三连接关系;
15、若两个所述节点在所述区块链网络拓扑图中不存在所述第一连接关系而在所述承载网络拓扑图中存在所述第二连接关系时,则将该两个所述节点的所述第二连接关系作为所述区块链网络扩展拓扑图中该两个所述节点的所述第三连接关系;
16、若两个所述节点在所述区块链网络拓扑图中存在所述第一连接关系而在所述承载网络拓扑图中也存在所述第二连接关系时,则将该两个所述节点的所述第一连接关系或所述第二连接关系作为所述区块链网络扩展拓扑图中该两个所述节点的所述第三连接关系。
17、一实施例中,所述利用所述区块链网络扩展拓扑图生成各所述当前节点的候选逻辑邻居节点集合,包括:
18、利用所述区块链网络扩展拓扑图生成各所述当前节点的推荐邻居节点集合;其中,所述推荐邻居节点集合包括多个推荐邻居节点;所述推荐邻居节点为同簇节点集合中与所述当前节点之间的所述第三连接关系的强度不低于预设强度阈值的所述节点;所述同簇节点集合包括所有与所述当前节点属于同一所述簇的所述节点;所述第三连接关系的强度是基于所述第一连接关系和所述第二连接关系而确定的;
19、将所述推荐邻居节点集合作为候选逻辑邻居节点集合;
20、或者,利用所述当前节点与所述推荐邻居节点所对应的权值从所述同簇节点集合中确定所述当前节点的候选逻辑邻居节点集合;
21、其中,所述权值是基于所述当前节点与所述推荐邻居节点之间的区块链链路的通信延迟和/或所述当前节点与所述推荐邻居节点之间的网络链路的网络延迟而得到的;所述区块链链路指的是所述区块链网络中各所述节点之间进行通信的逻辑路径;所述网络链路指的是各所述节点所对应的不同网络基础设施进行通信的物理连接路径。
22、一实施例中,若两个所述节点在所述区块链网络拓扑图中存在所述第一连接关系而在所述承载网络拓扑图中不存在所述第二连接关系时,该两个所述节点的所述第三连接关系的强度为低等;
23、若两个所述节点在所述区块链网络拓扑图中不存在所述第一连接关系而在所述承载网络拓扑图中存在所述第二连接关系时,该两个所述节点的所述第三连接关系的强度为中等;
24、若两个所述节点在所述区块链网络拓扑图中存在所述第一连接关系而在所述承载网络拓扑图中也存在所述第二连接关系时,该两个所述节点的所述第三连接关系的强度为高等。
25、一实施例中,若两个所述节点在所述区块链网络拓扑图中存在所述第一连接关系而在所述承载网络拓扑图中不存在所述第二连接关系时,该两个所述节点所对应的所述权值的表达式为:
26、
27、其中,所述a为该两个所述节点之间的所述通信延迟;所述a为第一权值系数;
28、若两个所述节点在所述区块链网络拓扑图中不存在所述第一连接关系而在所述承载网络拓扑图中存在所述第二连接关系时,该两个所述节点所对应的所述权值的表达式为:
29、
30、其中,所述b为该两个所述节点之间的所述网络延迟;所述b为第二权值系数;
31、若两个所述节点在所述区块链网络拓扑图中存在所述第一连接关系而在所述承载网络拓扑图中也存在所述第二连接关系时,该两个所述节点所对应的所述权值的表达式为:
32、
33、其中,所述c为该两个所述节点之间的所述通信延迟和所述网络延迟的平均值;所述c为第三权值系数。
34、一实施例中,所述利用所述当前节点与所述推荐邻居节点所对应的所述权值从所述同簇节点集合中确定所述当前节点的候选逻辑邻居节点集合,包括:
35、若所述当前节点实际所需的邻居节点的数量少于或等于所述推荐邻居节点集合中所述推荐邻居节点的数量,则从所述推荐邻居节点集合中选择所对应的所述权值最大的多个所述推荐邻居节点作为所述候选的逻辑邻居节点;
36、若所述当前节点实际所需的邻居节点的数量大于所述推荐邻居节点集合中所述推荐邻居节点的数量,则除了将所述推荐邻居节点集合中所有所述推荐邻居节点均作为所述候选的逻辑邻居节点之外,从所述同簇节点集合中确定剩余所需的所述候选的逻辑邻居节点。
37、一实施例中,所述推荐邻居节点集合还包括一个或多个推荐随机节点;所述推荐随机节点为与所述当前节点的所述状态等级相同/相近且与所述当前节点不属于同一所述簇的所述节点。
38、一实施例中,所述评分的表达式为:
39、s=α×g+θ×b;
40、其中,所述α和θ分别为第一评分系数和第二评分系数;所述g为所述区块生成数,所述b为所述节点的网络带宽。
41、一实施例中,所述区块链系统信息还包括:所述节点的在线时间;所述区块链承载网络信息还包括所述节点的cpu处理性能和所述节点的内存;其中,所述评分的表达式为:
42、s=α×g+β×u+φ×c+θ×b+λ×m;
43、α+β+φ+θ+λ=1;
44、其中,所述β、φ与λ分别为第三评分系数、第四评分系数和第五评分系数,所述u为所述在线时间,所述c为所述cpu处理性能,所述m为所述内存。
45、一实施例中,所述各所述簇之间的消息同步先于各所述簇内的消息同步;其中,所述利用所述候选的逻辑邻居节点进行所述簇内的消息同步,包括:
46、所述当前节点优先通过与所述当前节点的状态等级相同的所述候选的逻辑邻居节点进行所述簇内的消息同步;其中,所述节点的状态等级是分别基于所述节点的评分而确定的。
47、一实施例中,所述当前节点不能通过高于该当前节点的所述状态等级的所述候选的逻辑邻居节点进行所述簇内的消息同步。
48、一实施例中,若所述评分低于预设评分阈值的所述候选的逻辑邻居节点产生区块,则提高该候选的逻辑邻居节点的所述状态等级。
49、根据第二方面,一种实施例中提供一种计算机可读存储介质。该计算机可读存储介质包括程序。所述程序能够被处理器执行以实现如本文中任一实施例所述的方法。
50、本技术的有益效果是:
51、本技术的区块链数据同步方法,包括:获取区块链网络拓扑图,生成承载网络拓扑图;利用承载网络拓扑图对区块链网络拓扑图进行优化而得到区块链网络扩展拓扑图;对区块链网络扩展拓扑图中的所有节点进行聚类而得到多个簇;从簇中评分高于预设阈值的节点中确定簇的簇头节点;分别将各节点作为当前节点;利用区块链网络扩展拓扑图生成各当前节点的候选逻辑邻居节点集合;利用簇头节点进行各簇之间的消息同步;利用候选的逻辑邻居节点进行各簇内的消息同步,其中,评分是对节点的区块链系统信息和区块链承载网络信息进行评估而得到的;最终实现提升区块在区块链网络中的整体传输速率,提高区块链系统的吞吐率。
本文地址:https://www.jishuxx.com/zhuanli/20240801/241245.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表