一种动态异构P2P网络的组网方法及系统与流程

文档序号:22750990发布日期:2020-10-31 09:45阅读:263来源:国知局
一种动态异构P2P网络的组网方法及系统与流程

本发明涉及互联网数字信息追溯领域,尤其涉及一种动态异构p2p网络的组网方法及系统。



背景技术:

传统的p2p对等网络有两种构造形式,一种是无结构的网络,可以适用于海量的节点。一种是有结构的网络,可以用于少量的节点,实现优化的性能。但是在大量的节点(~1000)的情况下,实现有结构的p2p网络,并且能够适应动态的节点变动,是很困难的。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是现有技术的p2p网络结构不适合大量节点的情况,并且无法适应动态的节点变化。具体来讲,当系统中存在大量的网络节点时,通过无结构的p2p网络存在几个问题,一个是节点之间的hop数可能会比较大(>5),导致网络传输的延时增加;第二个问题是单个节点特别是属于核心的节点的负担比较大,需要转发与之相连的大量peer之间的通讯,使得网络整体性能收到限制;第三个问题是现有的p2p网络通常是静态的,无法适应网络结构的变化。对于现有的结构化的p2p网络,通常只能支持少量的节点,而且结构固定,无法动态地调整。

为实现上述目的,本发明提供了一种动态异构p2p网络的组网方法及系统,实现大量节点的p2p对等网络中的高效信息传递。

在本发明的较佳实施方式中,本发明提供了一种动态异构p2p网络的组网方法,包括:

新建一个去中心化的控制模块,控制模块包括一个参与策略模块,参与策略模块用于设定节点参与规则;

参与策略模块根据设定的节点参与规则推导并验证所有参与节点的类型;

当参与节点的类型为a类时,在设定时间内,所有类型为a类的参与节点之间建立p2p连接,构成全连接的类型为a的p2p网络,并在控制模块标记完成;

当参与节点的类型为b类时,在类型为a的p2p网络构建成功后,在设定时间内,与部分a类或b类参与节点建立p2p连接,构成类型为b的p2p网络,并在控制模块标记完成;

当参与节点的类型为c类时,当类型为b的p2p网络构建成功后,在设定时间内,与某个b类参与节点建立p2p连接,构成类型为c的p2p网络;

类型为a的p2p网络、类型为b的p2p网络、类型为c的p2p网络构成一个完整的动态异构p2p网络。

进一步地,当参与节点的类型为a类时,向控制模块递交一个登录操作,并在控制模块的类型a的参与节点列表中记录;

在设定时间内,所有类型为a的参与节点,相互建立p2p连接,构成全连接的类型为a的p2p网络,并在控制模块标记完成;

当参与节点的类型为b类时,向控制模块递交一个登录操作,并在控制模块的类型b的参与节点列表中记录;

在设定时间内,从控制模块获取类型为a的节点列表,所有类型为b的参与节点,与部分a类或b类的参与节点建立p2p连接,构成类型为b的p2p网络,并在控制模块标记完成。

进一步地,类型为b的参与节点设置为与一个或多个a节点连接,或与其他类型为b的参与节点连接,类型为b的参与节点设置为与设定数量的类型为a的参与节点连接,以保证与类型为a的p2p网络的连接度。

进一步地,类型为c的参与节点可以作为下一层次的参与节点的连接点。

在本发明的另一较佳实施方式中,本发明提供了一种动态异构的p2p网络系统,包括:

去中心化的控制模块,用于实现组网过程;

类型为a的p2p网络,由若干个参与节点组成的全连接的p2p网络;

类型为b的p2p网络,由若干个参与节点与类型为a的p2p网络中的多个参与节点连接;

类型为c的p2p网络,由若干个参与节点与类型为b的p2p网络中的某个单个参与节点连接。

进一步地,去中心化的控制模块包括参与策略模块,参与策略模块用于设定节点参与规则,推导并验证参与节点的类型。

进一步地,参与策略模块设置为产生一个随机数,每个参与节点计算随机数与当前参与节点的标识的设定函数的值,用来确定当前参与节点的网络类型。

进一步地,控制模块设置为可以部署在区块链中的一个智能合约,控制模块还包括

提供验证某个参与节点是否属于类型a或b或c的第一可调用模块;

提供参与节点登录类型的第二可调用模块;

提供参与节点可以访问的类型为a或类型为类的参与节点列表的第三可调用模块。

在本发明的又一较佳实施方式中,本发明提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如上述中任一项的方法。

在本发明的又一较佳实施方式中,本发明提供了一种存储有计算机程序的计算机可读存储介质,计算机程序使计算机执行时实现如上述中任一项的一种动态异构p2p网络的组网方法。

技术效果

本发明的一种动态异构p2p网络的组网方法及系统,具有以下效果:支持大量节点的p2p结构化网络;实现大量节点的p2p对等网络中的高效信息传递;优化p2p对等网络中的peer数量和性能;能够适应动态变化的p2p网络,做相应地调整。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的动态异构p2p网络的整体架构示意图;

图2是本发明的一个较佳实施例的p2p网络动态变化的整体架构示意图;

图3是本发明的一个较佳实施例的动态异构p2p网络组网的过程示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下描述中,为了说明而不是为了限定,提出了诸如特定内部程序、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

实施例一

如图3所示,本发明实施例提供了一种动态异构p2p网络的组网方法,包括:

步骤100,新建一个去中心化的控制模,控制模块包括一个参与策略模块,参与策略模块用于设定节点参与规则;节点参与规则的一个较佳实例是采用根据设定的参数,从当前所有的节点列表中随机选出分属于a、b、c类的节点;节点参与规则的另一个较佳实例是根据网络覆盖范围最大化选出设定数量的a类节点、根据网络带宽的最优配置选出设定数量的b类节点、根据就近原则选出剩余c类节点的连接对象(b节点)。

步骤200,参与策略模块根据设定的节点参与规则推导并验证所有参与节点的类型;如果参与节点的类型是a类,则进入步骤300;如果参与节点的类型是b类,等待步骤300完成后,则进入步骤400;如果参与节点的类型是c类,等待步骤400完成后,则进入步骤500;

步骤300,当参与节点的类型为a类时,在设定时间内,所有类型为a类的参与节点之间建立p2p连接,构成全连接的类型为a的p2p网络,并在控制模块标记完成;

步骤400,当参与节点的类型为b类时,在类型为a的p2p网络构建成功后,在设定时间内,与部分a类或b类参与节点建立p2p连接,构成类型为b的p2p网络,并在控制模块标记完成;与部分a类或b类参与节点建立p2p连接时,选择部分a类或b类,可以随机选择,也可以根据设定的规则。

步骤500,当参与节点的类型为c类时,当类型为b的p2p网络构建成功后,在设定时间内,与某个b类参与节点建立p2p连接,构成类型为c的p2p网络;

步骤600,类型为a的p2p网络、类型为b的p2p网络、类型为c的p2p网络构成一个完成的动态异构p2p网络。

进一步地,当参与节点的类型为a类时,向控制模块递交一个登录操作,并在控制模块的类型a的参与节点列表中记录;

在设定时间内,所有类型为a的参与节点,相互建立p2p连接,构成全连接的类型为a的p2p网络,并在控制模块标记完成;

当参与节点的类型为b类时,向控制模块递交一个登录操作,并在控制模块的类型b的参与节点列表中记录;

在设定时间内,从控制模块获取类型为a的节点列表,所有类型为b的参与节点,与部分a类或b类参与节建立p2p连接,构成类型为b的p2p网络,并在控制模块标记完成。

类型为b的参与节点设置为与一个或多个a节点连接,或与其他类型为b的参与节点连接,类型为b的参与节点设置为与设定数量的类型为a的参与节点连接,以保证与类型为a的p2p网络的连接度。

类型为c的参与节点可以作为下一层次的参与节点的连接点。

实施例二

如图1所示,本实施例提供了一种动态异构的p2p网络系统,包括:

去中心化的控制模块,用于实现组网过程;

类型为a的p2p网络101,由若干个参与节点组成的全连接的p2p网络;这类的的节点数量在10~20,每个节点与组内的其他节点形成全连接的p2p网络;类型为a的节点可以用作区块链的共识节点,相互之间通过共识协议进行出块与网络通讯,保证区块链的高性能;

类型为b的p2p网络102,由若干个参与节点与类型为a的p2p网络中的多个参与节点连接;这类节点数量可以是~100。每个b类节点103与一个或多个a类节点101相连,或者与其他b类节点103相连。每个b类节点103可以维持设定数量的a类节点连接104,以保证与a类节点的网络连接度,保证区块链中的信息能够有效地传递。

类型为c的p2p网络103,由若干个参与节点与类型为b的p2p网络中的某个单个参与节点连接。c类节点105通过连接106与某一个b类节点相连。

本实施例中,类型为a的参与节点有11个,类型为b的参与节点有100个,类型为c的参与节点有1000个。这样,任何两个节点之间的距离不大于2个hop。也可以设置每个类型为b的参与节点与至少3个类型为a的参与节点相连。这样,类型为a的参与节点的peer数在~14左右,类型为b的参与节点的peer数在~13左右,使得整个p2p网络有足够的连接度,又能保证信息传递的高性能。

在另一实施例中,类型c的参与节点可以维持多个与类型为b的参与节点的连接,其中一个是主要连接。当主要连接出现网络故障的情况下,类型为c的参与节点可以启用与其他的类型为b的参与节点的连接,以保证类型为c的参与节点与网络的有效连接。

在又一实施例中,c类节点可以作为下一个d类节点的连接点,从而可以支持~10000的p2p网络。类似的,依次类推,可以有更多层次以覆盖更多的p2p节点。

本实施例中,p2p网络可以根据需要动态变化重组,动态变化重组的触发条件,可以是如下条件之一:

设定的时间间隔;

设定的区块链的区块高度;

设定的类型a、b、c的节点数量变动超过某个设定的阈值。

如图2所示的是一个p2p网络动态变化重组前后的变化示意图。在重组之前的节点201是一个类型为a的参与节点,重组后变成一个类型为b的参与节点204。类似地,在重组之前的节点202是一个类型为a的参与节点,重组后变成一个c类节点205。在重组之前的节点203是一个c类节点,重组后变成一个a类节点206。

其中,去中心化的控制模块包括参与策略模块,参与策略模块用于设定节点参与规则,推导并验证参与节点的类型。

参与策略模块设置为产生一个随机数,每个参与节点计算随机数与当前参与节点的标识的设定函数的值,用来确定当前参与节点的网络类型。

控制模块设置为可以部署在区块链中的一个智能合约,智能合约包括多个可调用接口。另外,控制模块还包括

提供验证某个参与节点是否属于类型a或b或c的第一可调用模块;

提供参与节点登录类型的第二可调用模块;

提供参与节点可以访问的类型为a或类型为类的参与节点列表的第三可调用模块。

实施例三

本发明实施例三提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述任一项的方法。

该实施例的计算机设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机设备中的执行过程。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。

所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器可以是所述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。所述存储器也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器还可以既包括所述计算机设备的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述计算机设备所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

本发明实施例还提供了一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序使计算机执行时实现上述任一项所述的一种动态异构p2p网络的组网方法。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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