基于软件定义网络的区块链节点发现与组网方法及装置与流程

文档序号:36420678发布日期:2023-12-20 09:44阅读:30来源:国知局
基于软件定义网络的区块链节点发现与组网方法及装置与流程

本发明涉及计算机,尤其涉及一种基于软件定义网络的区块链节点发现与组网方法及装置。


背景技术:

1、随着互联网的快速发展,区块链作为一种去中心化形式的分布式数据库,能够在资产数字化、供应链、金融、物联网以公共服务等领域提高流通效率,促进产业结构的发展和调整。

2、目前,区块链系统中的每个终端节点都是平等的,当需要将新节点加入区块链系统中时,需要先找到一个与新节点相邻最近的节点,然后建立该节点与新节点直接的连接,再通过该节点将新节点与其他区块链节点连接。然而,这种加入方式的整体耗时较高,对节点间的网络连通性要求较高,导致新节点加入区块链的效率较低。因此,提出一种在新节点加入区块链网络时,能够提高新节点加入区块链网络的效率的技术方案显得尤为重要。


技术实现思路

1、本发明提供了一种基于软件定义网络的区块链节点发现与组网方法及装置,能够在新节点加入区块链网络时,提高新节点加入区块链网络的效率。

2、为了解决上述技术问题,本发明第一方面公开了一种基于软件定义网络的区块链节点发现与组网方法,所述方法包括:

3、当检测到目标区块链节点对应的节点加入请求时,根据所述节点加入请求,在所述目标区块链节点与网络层控制平面的软件定义网络控制器之间的建立网络连接关系;

4、获取所述目标区块链节点对应的区块链节点信息获取请求,并根据所述区块链节点信息获取请求和所述网络连接关系,获取所述软件定义网络控制器的流表中存储的区块链节点集合信息,所述区块链节点集合信息包括区块链网络中的每个区块链节点的第一节点信息;

5、根据所述区块链节点集合信息,将所述目标区块链节点加入所述区块链网络。

6、作为一种可选的实施方式,在本发明第一方面中,在所述根据所述区块链节点集合信息,将所述目标区块链节点加入所述区块链网络之后,所述方法还包括:

7、获取所述目标区块链节点的第二节点信息,所述第二节点信息包括所述目标区块链节点的节点地址信息和/或节点路由信息;

8、根据所述目标区块链节点的第二节点信息、所述区块链节点集合信息以及预设的最短路径算法,计算所述目标区块链节点到所述区块链网络中的每个所述区块链节点的路由信息,得到路由信息集合;

9、根据所述目标区块链节点的第二节点信息和所述路由信息集合,更新所述流表中存储的区块链节点集合信息。

10、作为一种可选的实施方式,在本发明第一方面中,在所述根据所述区块链节点信息获取请求和所述网络连接关系,获取所述软件定义网络控制器的流表中存储的区块链节点集合信息之前,所述方法还包括:

11、获取所述区块链网络中所有所述区块链节点对应的第一节点信息,每个所述区块链节点对应的第一节点信息包括该区块链节点对应的节点地址信息、节点路由信息、网络位置信息和以及连接关系信息中的至少一种;

12、将每个所述区块链节点对应的第一节点信息存储到所述软件定义网络控制器的流表中,得到区块链网络对应的区块链节点集合信息。

13、作为一种可选的实施方式,在本发明第一方面中,所述将每个所述区块链节点对应的第一节点信息存储到所述软件定义网络控制器的流表中,得到区块链网络对应的区块链节点集合信息,包括:

14、生成每个所述区块链节点的第一节点信息对应的数据包,并将所述数据包发送到所述软件定义网络控制器中的开放流交换机;

15、通过所述开放流交换机对所述数据包进行解析,得到所述数据包对应的包头数据;

16、将所述包头数据与所述软件定义网络控制器的流表对应的流表项匹配域进行匹配,当所述包头数据与所述流表项匹配域相匹配时,将所述数据包存储到所述流表中,得到所述区块链网络对应的区块链节点集合信息。

17、作为一种可选的实施方式,在本发明第一方面中,在所述根据所述目标区块链节点的第二节点信息和所述路由信息集合,更新所述流表中存储的区块链节点集合信息之后,所述方法还包括:

18、根据所述路由信息集合,确定与所述目标区块链节点直接连接且相邻最近的第一目标区块链节点以及所述第一目标区块链节点的地址信息;

19、根据所述第一目标区块链节点的地址信息,获取所述第一目标区块链节点中的第一数据集合对应的第一数据标识;

20、根据预设的选取规则,在与所述目标区块链节点直接连接的所有区块链节点中选取除所述第一目标区块链节点之外的第二目标区块链节点,并确定所述第二目标区块链节点的地址信息;

21、根据所述第二目标区块链节点的地址信息,获取所述第二目标区块链节点中的第二数据集合的第二数据标识;

22、将所述第一数据标识和第二数据标识进行对比,当所述第一数据标识和所述第二数据标识相匹配时,将所述第二目标区块链节点中的第二数据集合同步到所述目标区块链节点中。

23、作为一种可选的实施方式,在本发明第一方面中,所述第一数据集合包括至少一个第一数据块,所述第二数据集合包括至少一个第二数据块;

24、所述将所述第一数据标识和第二数据标识进行对比,当所述第一数据标识和所述第二数据标识相匹配时,将所述第二目标区块链节点中的第二数据集合同步到所述目标区块链节点中,包括:

25、根据所述第一数据标识,确定所述第一目标区块链节点中每个所述第一数据块对应的第一哈希值,并根据所述第二数据标识,确定所述第二目标区块链节点中每个所述第二数据块对应的第二哈希值;

26、对每个所述第一数据块对应的第一哈希值进行计算,得到第一目标哈希值,并对每个所述第二数据块对应的第二哈希值进行计算,得到第二目标哈希值;

27、将所述第一目标哈希值与所述第二目标哈希值进行对比,当所述第一目标哈希值和所述第二目标哈希值相匹配时,将所述第二目标区块链节点中的第二数据集合同步到所述目标区块链节点中。

28、作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:

29、获取预设的验证信息,并按照预设的加密秘钥对所述验证信息进行加密;

30、在所述区块链网络的所有所述区块链节点中确定用于接收所述验证信息的接收节点,并将所述验证信息从所述目标区块链节点发送到所述接收节点;

31、通过所述加密秘钥在所述接收节点对所述验证信息进行解密,得到目标信息,并对所述目标信息的内容进行验证,当所述目标信息与所述验证信息的内容相匹配时生成响应消息,并将所述响应消息从所述接收节点发送到所述目标区块链节点;

32、当所述目标区块链节点在预设时长内接收到所述响应消息时,确定所述目标区块链节点与所述接收节点之间通信成功。

33、本发明第二方面公开了一种基于软件定义网络的区块链节点发现与组网装置,所述装置包括:

34、网络连接模块,用于当检测到目标区块链节点对应的节点加入请求时,根据所述节点加入请求,在所述目标区块链节点与网络层控制平面的软件定义网络控制器之间的建立网络连接关系;

35、第一获取模块,用于获取所述目标区块链节点对应的区块链节点信息获取请求,并根据所述区块链节点信息获取请求和所述网络连接关系,获取所述软件定义网络控制器的流表中存储的区块链节点集合信息,所述区块链节点集合信息包括区块链网络中的每个区块链节点的第一节点信息;

36、节点加入模块,用于根据所述区块链节点集合信息,将所述目标区块链节点加入所述区块链网络。

37、作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:

38、第二获取模块,用于在所述节点加入模块根据所述区块链节点集合信息,将所述目标区块链节点加入所述区块链网络之后,获取所述目标区块链节点的第二节点信息,所述第二节点信息包括所述目标区块链节点的节点地址信息和/或节点路由信息;

39、计算模块,用于根据所述目标区块链节点的第二节点信息、所述区块链节点集合信息以及预设的最短路径算法,计算所述目标区块链节点到所述区块链网络中的每个所述区块链节点的路由信息,得到路由信息集合;

40、更新模块,用于根据所述目标区块链节点的第二节点信息和所述路由信息集合,更新所述流表中存储的区块链节点集合信息。

41、作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:

42、第三获取模块,用于在所述第一获取模块根据所述区块链节点信息获取请求和所述网络连接关系,获取所述软件定义网络控制器的流表中存储的区块链节点集合信息之前,获取所述区块链网络中所有所述区块链节点对应的第一节点信息,每个所述区块链节点对应的第一节点信息包括该区块链节点对应的节点地址信息、节点路由信息、网络位置信息和以及连接关系信息中的至少一种;

43、存储模块,用于将每个所述区块链节点对应的第一节点信息存储到所述软件定义网络控制器的流表中,得到区块链网络对应的区块链节点集合信息。

44、作为一种可选的实施方式,在本发明第二方面中,所述存储模块将每个所述区块链节点对应的第一节点信息存储到所述软件定义网络控制器的流表中,得到区块链网络对应的区块链节点集合信息的方式具体包括:

45、生成每个所述区块链节点的第一节点信息对应的数据包,并将所述数据包发送到所述软件定义网络控制器中的开放流交换机;

46、通过所述开放流交换机对所述数据包进行解析,得到所述数据包对应的包头数据;

47、将所述包头数据与所述软件定义网络控制器的流表对应的流表项匹配域进行匹配,当所述包头数据与所述流表项匹配域相匹配时,将所述数据包存储到所述流表中,得到所述区块链网络对应的区块链节点集合信息。

48、作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:

49、第一确定模块,用于在所述更新模块根据所述目标区块链节点的第二节点信息和所述路由信息集合,更新所述流表中存储的区块链节点集合信息之后,根据所述路由信息集合,确定与所述目标区块链节点直接连接且相邻最近的第一目标区块链节点以及所述第一目标区块链节点的地址信息;

50、第四获取模块,用于根据所述第一目标区块链节点的地址信息,获取所述第一目标区块链节点中的第一数据集合对应的第一数据标识;

51、选取模块,用于根据预设的选取规则,在与所述目标区块链节点直接连接的所有区块链节点中选取除所述第一目标区块链节点之外的第二目标区块链节点,并确定所述第二目标区块链节点的地址信息;

52、所述第四获取模块,还用于根据所述第二目标区块链节点的地址信息,获取所述第二目标区块链节点中的第二数据集合的第二数据标识;

53、数据同步模块,用于将所述第一数据标识和第二数据标识进行对比,当所述第一数据标识和所述第二数据标识相匹配时,将所述第二目标区块链节点中的第二数据集合同步到所述目标区块链节点中。

54、作为一种可选的实施方式,在本发明第二方面中,所述第一数据集合包括至少一个第一数据块,所述第二数据集合包括至少一个第二数据块;

55、所述数据同步模块将所述第一数据标识和第二数据标识进行对比,当所述第一数据标识和所述第二数据标识相匹配时,将所述第二目标区块链节点中的第二数据集合同步到所述目标区块链节点中的方式具体包括:

56、根据所述第一数据标识,确定所述第一目标区块链节点中每个所述第一数据块对应的第一哈希值,并根据所述第二数据标识,确定所述第二目标区块链节点中每个所述第二数据块对应的第二哈希值;

57、对每个所述第一数据块对应的第一哈希值进行计算,得到第一目标哈希值,并对每个所述第二数据块对应的第二哈希值进行计算,得到第二目标哈希值;

58、将所述第一目标哈希值与所述第二目标哈希值进行对比,当所述第一目标哈希值和所述第二目标哈希值相匹配时,将所述第二目标区块链节点中的第二数据集合同步到所述目标区块链节点中。

59、作为一种可选的实施方式,在本发明第二方面中,所述第一获取模块,还用于获取预设的验证信息,并按照预设的加密秘钥对所述验证信息进行加密;

60、所述装置还包括:

61、第二确定模块,用于在所述区块链网络的所有所述区块链节点中确定用于接收所述验证信息的接收节点,并将所述验证信息从所述目标区块链节点发送到所述接收节点;

62、验证模块,用于通过所述加密秘钥在所述接收节点对所述验证信息进行解密,得到目标信息,并对所述目标信息的内容进行验证,当所述目标信息与所述验证信息的内容相匹配时生成响应消息,并将所述响应消息从所述接收节点发送到所述目标区块链节点;

63、所述第二确定模块,还用于当所述目标区块链节点在预设时长内接收到所述响应消息时,确定所述目标区块链节点与所述接收节点之间通信成功。

64、本发明第三方面公开了另一种基于软件定义网络的区块链节点发现与组网装置,所述装置包括:

65、存储有可执行程序代码的存储器;

66、与所述存储器耦合的处理器;

67、所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的基于软件定义网络的区块链节点发现与组网方法。

68、本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的基于软件定义网络的区块链节点发现与组网方法。

69、与现有技术相比,本发明实施例具有以下有益效果:

70、本发明实施例中,建立目标区块链节点与软件定义网络控制器之间的网络连接关系,并通过该网络连接关系获取软件定义网络控制器的流表中存储的区块链节点集合信息,根据区块链节点集合信息,将目标区块链节点加入区块链网络。可见,实施本发明能够在新节点加入区块链网络时直接通过软件定义网络控制器获取区块链网络中区块链节点的节点信息,提高新节点发现区块链网络并与现有节点建立初始连接的速度,同时能够重复利用软件定义网络控制器的计算能力、网络位置以及路由信息等资源,进而提高节点发现和建立连接的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1