基于区块链节点网络的处理方法、装置及电子设备与流程

文档序号:18081761发布日期:2019-07-06 10:08阅读:326来源:国知局
基于区块链节点网络的处理方法、装置及电子设备与流程

本发明涉及区块链技术领域,尤其是涉及一种基于区块链节点网络的处理方法、装置及电子设备。



背景技术:

近年来,随着区块链技术的火爆发展,p2p(point-to-point,点对点)技术的应用再次被推向高潮。区块链技术使用的底层网络拓扑结构均是由节点与其相邻节点相连而组成的网状结构。但是由于区块链技术交易或者挖矿通常是以全网节点验证的方式进行,导致验证时间比较长。

综上,现有的区块链节点网络存在验证时间比较长的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供基于区块链节点网络的处理方法、装置及电子设备,以缓解或部分缓解现有技术中全网节点验证存在的验证时间长的技术问题。

第一方面,本发明实施例提供了一种基于区块链节点网络的处理方法,包括:确定所述节点的处理性能以及所述节点所处的网络类型;判断所述节点的处理性能以及所述节点所处的网络类型是否均满足预设性能评判标准;所述预设性能评判标准包括:所述节点的cpu性能、内存性能、硬盘剩余空间占比、交换区(swapplace,简称swap)分区、网络带宽以及网络速度均不低于阈值;所述节点所处的网络类型为非内网类型;如果所述节点的处理性能以及所述节点所处的网络类型均满足所述预设性能评判标准,将所述节点标记为超级节点;其中所述超级节点为所述区块链节点网络中能够直接参与验证的节点。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:基于超级节点分组规则对所述节点进行分组。

所述超级节点分组规则包括:如果在所述节点上线时,存在待分配状态的普通节点,将所述待分配状态的普通节点纳管到由所述节点管理的子组中;如果在所述节点上线时,存在未满的超级节点组,将所述节点或由所述节点管理的子组纳管到所述未满的超级节点组中;其中所述未满的超级节点组为超级节点的数量小于预设的组超级节点阈值的母组;如果所述节点上线时,既不存在待分配状态的普通节点也不存在未满的超级节点组,则构建新母组并将所述节点纳管到所述新母组中;其中所述未满的超级节点组为超级节点的数量小于预设的组超级节点阈值的母组;如果所述节点上线时,既不存在待分配状态的普通节点也不存在未满的超级节点组,将所述节点标记为未达到满负载状态的超级节点。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述如果在所述节点上线时,存在待分配状态的普通节点,将所述待分配状态的普通节点纳管到由所述节点管理的子组中,包括:获取所述待分配状态的普通节点的数量q;基于所述待分配状态的普通节点的数量q与预先确定的所述节点所能承载的普通节点的个数p将所述待分配状态的普通节点纳管到由所述节点管理的子组中。

结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述基于所述待分配状态的普通节点的数量q与预先确定的所述节点所能承载的普通节点的个数p将所述待分配状态的普通节点纳管到由所述节点管理的子组中,包括:将所述待分配状态的普通节点的数量q与预先确定的所述节点所能承载的普通节点的个数p进行比较;当q小于等于p时,将所述待分配状态的普通节点中的q个纳管到由所述节点管理的子组中;当q大于p时,从q个所述待分配状态的普通节点中按照预设选取规则选取出p个纳管到由所述节点管理的子组中。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:确定所述节点所能承载的普通节点的个数p;所述确定所述节点所能承载的普通节点的个数p,包括:获取所述节点的所述硬盘剩余空间占比;基于所述硬盘剩余空间占比以及预设带负载系数计算出所述节点所能够承载的普通节点的个数p。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述方法还包括:如果所述节点的处理性能以及所述节点所处的网络类型中的任一项不满足所述预设性能评判标准,将所述节点标记为普通节点;其中所述普通节点为所述区块链节点网络中不能直接参与验证的节点。

结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述方法还包括:基于普通节点分组规则对所述节点进行分组;所述基于普通节点分组规则对所述节点进行分组,包括:如果在所述节点上线时,存在未达到满负载状态的超级节点,将所述节点纳管到由所述未达到满负载状态的超级节点管理的子组中;如果在所述节点上线时,不存在未达到满负载状态的超级节点,将所述节点标记为待分配状态的普通节点。

结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述方法还包括:如果在所述节点上线时,存在掉线的超级节点,按照预设的超级节点离线预备机制对所述由所述掉线的超级节点管理的子组进行处理。

结合第一方面的第七种可能的实施方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述预设的超级节点离线预备机制包括:如果所述掉线的超级节点管理的子组中纳管有普通节点,存在未达到满负载状态的超级节点,则将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中;如果所述掉线的超级节点管理的子组中纳管有普通节点,不存在未达到满负载状态的超级节点,则将所述普通节点标记为待分配状态的普通节点等待分配。

结合第一方面的第八种可能的实施方式,本发明实施例提供了第一方面的第九种可能的实施方式,其中,所述如果所述掉线的超级节点管理的子组中纳管有普通节点,存在未达到满负载状态的超级节点,将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中,包括:如果所述掉线的超级节点管理的子组中纳管有普通节点,在所述掉线的超级节点管理的子组所在的母组中存在未达到满负载状态的超级节点,将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中;如果所述掉线的超级节点管理的子组中纳管有普通节点,存在全超级节点组,将所述普通节点纳管到所述全超级节点组中;其中所述全超级节点组为仅存在超级节点没有普通节点,且超级节点的数量小于等于预设的组超级节点阈值的母组。

第二方面,本发明实施例还提供一种基于区块链节点网络的处理装置,包括:确定模块,用于确定所述节点的处理性能以及所述节点所处的网络类型;判定模块,用于判断所述节点的处理性能以及所述节点所处的网络类型是否均满足预设性能评判标准;所述预设性能评判标准包括:所述节点的cpu性能、内存性能、硬盘剩余空间占比、虚拟内存(swap)分区、网络带宽以及网络速度均不低于阈值;所述节点所处的网络类型为非内网类型;标记模块,用于如果所述节点的处理性能以及所述节点所处的网络类型均满足所述预设性能评判标准,将所述节点标记为超级节点;其中所述超级节点为所述区块链节点网络中能够直接参与验证的节点。

第三方面,本公开提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。

第四方面,本公开提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述的方法。

本发明实施例带来了以下有益效果:本发明实施例提供的基于区块链节点网络的处理方法、装置、电子设备及机器可读存储介质,其中,该基于区块链节点网络的处理方法,应用于节点,包括以下步骤:确定节点的处理性能以及节点所处的网络类型;判断节点的处理性能以及节点所处的网络类型是否均满足预设性能评判标准;预设性能评判标准包括:所述节点的cpu性能、内存性能、硬盘剩余空间占比、交换区swap分区、网络带宽以及网络速度均不低于阈值;节点所处的网络类型为非内网类型;如果节点的处理性能以及节点所处的网络类型均满足所述预设性能评判标准,将节点标记为超级节点;其中超级节点为区块链节点网络中能够直接参与验证的节点。因此,本发明实施例提供的技术方案,对于区块链节点网络中的任一节点,通过获取节点的处理性能以及节点所处的网络类型,并将节点的处理性能以及节点所处的网络类型与预设性能评判标准进行比较来判断节点是否适合作为直接参与验证的超级节点;如果该节点适合作为超级节点,则将节点标记为超级节点并参与验证,本发明实施例通过评判得到的超级节点并由超级节点直接参与验证的方式,缓解了传统的区块链网络以全网节点验证的方式导致的验证时间长,验证效率较低的技术问题,能够减少验证时长,提高了验证效率。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于区块链节点网络的处理方法的流程图;

图2为本发明实施例提供的另一种基于区块链节点网络的处理方法的流程图;

图3为本发明实施例提供的第三种基于区块链节点网络的处理方法的流程图;

图4为本发明实施例提供的第四种基于区块链节点网络的处理方法的流程图;

图5为本发明实施例提供的第五种基于区块链节点网络的处理方法的流程图;

图6为本发明实施例提供的区块链网络拓扑结构的概览图;

图7为本发明实施例提供的不同类型的子组、母组的示意图;

图8为本发明实施例提供的区块链网络拓扑结构的一种内部结构示意图;

图9为本发明实施例提供的一种基于区块链节点网络的处理装置的示意图;

图10为本发明实施例提供的电子设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,区块链技术使用的底层网络拓扑结构均是由节点与其相邻节点相连而组成的网状结构。但是由于区块链技术交易或者挖矿通常是以全网节点验证的方式进行,导致验证时间比较长,基于此,本发明实施例提供的一种基于区块链节点网络的处理方法、装置及电子设备,可以缓解或部分缓解现有技术中全网节点验证存在的验证时间长的技术问题,一定程度上缩短验证时间,有利于提高验证效率。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于区块链节点网络的处理方法方法进行详细介绍。

实施例一:

本发明实施例提供了一种基于区块链节点网络的处理方法,应用于节点,上述的节点指的是区块链节点网络的任一节点,可以是已接入区块链节点网络的节点,也可以是欲接入区块链节点网络的节点(即即将接入区块链节点网络的节点);对于已接入区块链节点网络的节点,可以是离线的节点,也可以是上线的节点;可以是已经根据该处理方法划分得到的超级节点也可以是根据该处理方法划分得到的普通节点;对于欲接入区块链节点网络的节点,可以是该预接入区块链节点网络的节点本身执行,也可以是已接入区块链节点网络的节点对欲接入区块链节点网络的节点执行;这里不对其作出限制。

如图1所示,该方法包括以下步骤:

步骤s102,确定该节点的处理性能以及该节点所处的网络类型;

上述的处理性能包括:cpu性能、内存性能、硬盘剩余空间占比、交换区swap分区、网络带宽以及网络速度;其中,硬盘剩余空间占比指的是硬盘剩余可用空间(简称硬盘剩余空间)占硬盘总空间的比例;swap全称为swapplace,即交换分区,用于在内存不足的时候,暂时存储被踢出的进程。

上述的网络类型是指内外网信息,即包括单纯的内网(例如局域网wlan)、外网(例如4g等移动通信网络)、通过nat(networkaddresstranslation,网络地址转换)穿透技术打通的内网。

步骤s104,判断该节点的处理性能以及该节点所处的网络类型是否均满足预设性能评判标准;该预设性能评判标准包括:节点的cpu性能、内存性能、硬盘剩余空间占比、swap分区、网络带宽以及网络速度均不低于阈值;所述节点所处的网络类型为非内网类型。

上述的非内网类型包括:外网以及通过nat穿透技术打通的内网。

为了减少验证时间,提高验证效率,这里的预设性能标准中节点的cpu性能、内存性能、硬盘剩余空间占比、swap分区、网络带宽以及网络速度通常均设置一个较高的阈值,从而得到处理能力较强的超级节点,即节点的cpu性能、内存性能、硬盘剩余空间占比、swap分区、网络带宽以及网络速度的任一项达不到阈值,就不能作为超级节点。

为了便于理解,处理性能中的阈值的设置标准如下:

1、cpu性能的阈值设置:cpu参考处于天梯cpu性能排行榜的前m名的cpu性能制定,其中m通常可设为50、100等;2、对于内存性能:内存阈值设置为8g;3、硬盘剩余空间占比阈值设置为50%;4、swap分区阈值设置为7g;5、网络带宽阈值设置为10mbps(millionbitspersecond,兆比特每秒);6、网络速度阈值设置为640kbps(kilobitspersecond,比特每秒)。

当且仅当一个节点的处理性能同时满足上述各个条件以及网络类型为非内网时,认为该节点具有较好的性能;否则,认为该节点的性能较差。

通过预设性能评判标准对节点进行筛选,仅有非内网类型且节点的cpu性能、内存性能、硬盘剩余空间占比、swap分区、网络带宽以及网络速度均不低于阈值的性能较好的节点才能够作为超级节点;对于单纯的内网或者节点的cpu性能、内存性能、硬盘剩余空间占比、swap分区、网络带宽以及网络速度有任一项低于阈值的性能较差的节点是不能够作为超级节点的。

需要说明的是,在其他实施例中,预设性能评判标准还可以参照冯诺依曼体系制定的评判计算机性能的算法选定的计算机指标实行,这里不作过多说明。

步骤s106,如果节点的处理性能以及节点所处的网络类型均满足上述预设性能评判标准,将该节点标记为超级节点;其中超级节点为区块链节点网络中能够直接参与验证的节点。

本发明实施例提供的基于区块链节点网络的处理方法,应用于区块链节点网络的节点,通过获取节点的处理性能以及节点所处的网络类型,并将节点的处理性能以及节点所处的网络类型分别与预设性能评判标准进行比较来确定节点是否适合作为直接参与验证的超级节点;如果该节点适合作为超级节点,则将节点标记为超级节点并参与验证,缓解了传统的区块链网络以全网节点验证的方式导致的验证时间长,验证效率较低的技术问题,能够减少验证时长,提高了验证效率。

考虑到对于一个区块链节点网络,如果仅仅将节点标记为超级节点,其数量仍然十分巨大,如何对节点进行管理,使得区块链节点网络的运行更加高效;进一步的,参照图2,本发明实施例提供了另一种基于区块链节点网络的处理方法,与图1的区别在于,该方法还包括:

步骤s202,基于超级节点分组规则对该节点进行分组。

上述的超级节点分组规则包括:

一、如果在目标超级节点上线时,存在待分配状态的普通节点,所述目标超级节点纳管所述待分配状态的普通节点;

二、如果在目标超级节点上线时,存在未满的超级节点组,将所述目标超级节点划分到所述未满的超级节点组中;

三、如果在目标超级节点上线时,既不存在待分配状态的普通节点也不存在未满的超级节点组,将所述节点标记为未达到满负载状态的超级节点和/或构建新的母组并将目标超级节点纳管到新母组中。

具体实现时,该步骤s202可以通过以下方式的至少一种实现:

1、如果在所述节点上线时,存在待分配状态的普通节点,将所述待分配状态的普通节点纳管到由所述节点管理的子组中;此处的节点指的是标记为超级节点的节点。

即如果在超级节点上线时,存在待分配状态的普通节点,由该超级节点纳管待分配状态的普通节点到由该超级节点管理的子组(subgroup,又称为亚组或小组或小分组)中。

考虑到每个超级节点的带负载能力有限,降低超负荷运行对节点网络可能产生的影响。因此,在具体实现时,该步骤1包括:

1)获取所述待分配状态的普通节点的数量q;

2)基于所述待分配状态的普通节点的数量q与预先确定的所述节点所能承载的普通节点的个数p(该节点能够纳管的普通节点的最大值,又称为节点的带负载能力)将所述待分配状态的普通节点纳管到由所述节点管理的子组中。

在实际实施时,该步骤2),包括:

将所述待分配状态的普通节点的数量q与预先确定的所述节点所能承载的普通节点的个数p进行比较;当q小于等于p时,将所述待分配状态的普通节点中的q个纳管到由所述节点管理的子组中;当q大于p时,从q个所述待分配状态的普通节点中按照预设选取规则选取出p个纳管到由所述节点管理的子组中。

这里的预设选取规则包括随机选取规则或者距离选取规则。其中,随机选取规则即按照随机算法进行选取,这里不作过多说明;

距离选取规则是指对于每个超级节点而言,连接在其上的普通节点的位置应当与超级节点处于物理距离上相对较近的位置;这里所谓的相对较近,是指相对于超级节点而言,每个普通节点与超级节点间的物理距离,在整体上,处于中等以下的水平。例如,若一个超级节点附近有100个普通节点,分别计算这100个普通节点与超级节点之间的物理距离。若其中有10个节点距离超级节点的距离在0-10km、20个节点距离超级节点的距离在10-30km、20个节点距离超级节点的距离在30-50km、30个节点距离超级节点的距离在50-70km、20个节点距离超级节点的距离在70-100km,则选择距离超级节点物理距离在中等以下的普通节点中选择,应该是在20个节点距离超级节点距离10-30km和20个节点距离超级节点30-50km的这40个节点中选择该超级节点所要连接的普通节点。

具体的,本实施例中,预设选取规则为距离选取规则。

需要说明的是,为了便于普通节点上线时的接入,提高接入效率,进一步的,在当q小于p,将所述待分配状态的普通节点中的q个纳管到由所述节点管理的子组中时,并将所述节点标记为未达到满负载状态的超级节点;当q大于p时,剩余的(q-p)个待分配状态的普通节点的待分配状态进行二次标记等待分配,即等待能够作为超级节点的新的上线的节点接入。

2、如果在所述节点上线时,存在未满的超级节点组,将所述节点或由所述节点管理的子组纳管到所述未满的超级节点组中;其中这里的节点为超级节点,所述未满的超级节点组为超级节点的数量小于预设的组超级节点阈值的母组(group,又称为分组或者大组)。

3、如果所述节点上线时,既不存在待分配状态的普通节点也不存在未满的超级节点组,则构建新母组并将所述节点纳管到所述新母组中,和/或将所述节点标记为未达到满负载状态的超级节点;其中所述未满的超级节点组为超级节点的数量小于预设的组超级节点阈值的母组。

为了后续便于普通节点的接入,提高分组效率,进一步的,如图3所示,本发明实施例还提供了第三种基于区块链节点网络的处理方法,与图1的区别在于,该方法还包括:

步骤s302,确定该节点所能承载的普通节点的个数p。

这里的节点为超级节点。

在本实施例中,该步骤s302可以通过以下步骤执行:

1、获取所述节点的所述硬盘剩余空间占比;

具体的,首先获取所述节点的硬盘信息;所述硬盘信息包括硬盘总空间和硬盘剩余空间;然后计算所述硬盘剩余空间占所述硬盘总空间的比例,得到硬盘剩余空间占比;

2、基于所述硬盘剩余空间占比以及预设带负载系数计算出所述节点所能够承载的普通节点的个数p。

这里的预设带负载系数为超级节点在每单位硬盘剩余空间占比所对应的带负载(普通节点)的数量;例如每单位(1=100/100)对应100个普通节点,则预设带负载系数为100;当计算一超级节点的硬盘剩余空间占比为50%时,则该超级节点所能够承载的普通节点的个数p=50%*100=50。

具体的,将所述硬盘剩余空间占比乘以预设带负载系数计算出所述节点所能够承载的普通节点的个数p。

进一步的,参照图4,本发明实施例提供了第四种基于区块链节点网络的处理方法,与图2的区别在于,该方法还包括:

步骤s402,如果该节点的处理性能以及该节点所处的网络类型中的任一项不满足上述预设性能评判标准,将该节点标记为普通节点;其中所述普通节点为所述区块链节点网络中不能直接参与验证的节点。

即所述节点所处的网络类型为单纯的内网或者所述节点的中央处理器cpu性能、内存性能、硬盘剩余空间占比、swap分区、网络带宽以及网络速度中的任一项(例如内存)低于其(内存)对应的阈值,则将所述节点标记为普通节点。

考虑到普通节点上线时如何与外界通信的问题,进一步的,该方法还包括:

步骤s404,基于普通节点分组规则对该节点进行分组。

其中,普通节点分组规则包括:

a、如果在目标普通节点上线时,存在未达到满负载状态的超级节点,由所述未满的超级节点纳管所述目标普通节点;

b、如果在目标普通节点上线时,不存在未达到满负载状态的超级节点,将所述普通节点标记为待分配状态。

需要说明的是,每个超级节点可以管理按照第一预设纳管原则划分的一个子组。第一预设纳管原则包括上述的超级节点分组规则的规则一、如果在目标超级节点上线时,存在待分配状态的普通节点,所述目标超级节点纳管所述待分配状态的普通节点)以及上述的普通节点分组规则a和b。

此外,超级节点按照第二预设纳管规则划分为多组,第二预设纳管规则包括上述的超级节点分组规则的规则二、如果在目标超级节点上线时,存在未满的超级节点组,将所述目标超级节点划分到未满的超级节点组中。

可以理解的是,每个普通节点按照上述的第一预设纳管原则由超级节点纳管。

按照上述普通节点分配规则,该步骤s404包括:

a、如果在所述节点上线时,存在未达到满负载状态的超级节点,将所述节点纳管到由所述未达到满负载状态的超级节点管理的子组中,由所述未达到满负载状态的超级节点纳管所述节点;这里的节点即是指标记为普通节点的节点。

b、如果在所述节点上线时,不存在未达到满负载状态的超级节点,将所述节点标记为待分配状态的普通节点。

由于区块链网络上的节点是由现代计算机、虚拟专用服务器、云服务器及矿机等机器组成。而在主观上,诸如笔记本、普通pc等此类计算机存在用户随时关机的可能,在主观上,由外部环境造成的断电和断网等因素造成的链上节点离线的可能性较大。为了降低节点掉线对区块链节点网络造成的影响,提高区块链节点的稳定性和可靠性,进一步的,参照图5,本发明实施例还提供了第五种基于区块链节点网络的处理方法,与图4的区别在于,该方法还包括:

步骤s502,如果在该节点上线时,存在掉线的超级节点,按照预设的超级节点离线预备机制对由所述掉线的超级节点管理的子组进行处理。

这里的节点是指在线的节点,可以是普通节点,也可以是超级节点,还可以是由掉线的超级节点纳管的在线的普通节点。

鉴于如果是普通节点掉线,相对不会影响其所在的子组的网络结构,只是该普通节点所在子组的超级节点负载的普通节点的个数会减少一个,因而对节点网络不会产生较大影响。但考虑到超级节点承担着其管理的子组内普通节点与组外节点相互通信的桥梁作用,如果是超级节点掉线的话,则可能存在较大问题,尤其是该掉线的超级节点纳管有普通节点的情况。因此提出了一套预设的超级节点离线预备机制。

其中,所述预设的超级节点离线预备机制包括:

(1)、如果所述掉线的超级节点管理的子组中纳管有普通节点,存在未达到满负载状态的超级节点,则将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中;

具体的,该步骤(1)主要包括以下途径分散网络风险:

1.1、如果所述掉线的超级节点管理的子组中纳管有普通节点,在所述掉线的超级节点管理的子组所在的母组中存在未达到满负载状态的超级节点,将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中;

1.2、如果所述掉线的超级节点管理的子组中纳管有普通节点,存在全超级节点组,将所述普通节点纳管到所述全超级节点组中;其中所述全超级节点组为仅存在超级节点没有普通节点,且超级节点的数量小于等于预设的组超级节点阈值的母组。

选择全超级节点组是因为其内部的超级节点都没有纳管普通节点,可以直接用来代替掉线的超级节点,这样应急效率比较高。

应当指出的是,当全超级节点组包括多个超级节点时,从所述全超级节点组中按照第二预设选取规则选择一个超级节点,由该超级节点纳管所述普通节点,这里第二预设选取规则可以是上述的随机选取规则、距离规则,也可以是负载选取规则,这里的负载选取规则是指基于超级节点的带负载能力进行选取,通常选取带负载能力强(这里主要是指未满状态的超级节点还能够带普通节点的个数)的超级节点,这样可以最大化的分配掉线的超级节点所纳管的普通节点;当然也可以综合考虑距离规则和负载选取规则,即对两者分析后选取出距离相对较近且带负载能力较强的超级节点,当然也可以是设定选取规则的优先级进行选取,对此,本申请不作限定。

在一个实施方案中,以第二预设选取规则为距离选取规则和负载选取规则相结合为例,首先从所述掉线的超级节点管理的子组所在的母组中查询是否存在未达到满负载状态的超级节点,若存在未达到满负载状态的超级节点,将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中;若超级节点管理的子组所在的母组中的所有超级节点均处于满负载状态,然后查询是否存在全超级节点组,最后再从其他存在未达到满状态的超级节点的母组中查询,具体可以从距离掉线的普通节点最近的其他存在未达到满状态的超级节点的母组中查找)

即通过先距离选取规则,然后负载选取规则,最后距离选取规则的方式选取。

具体的,步骤(1)如果所述掉线的超级节点管理的子组中纳管有普通节点,存在未达到满负载状态的超级节点,则将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中,包括以下步骤:

获取所述掉线的超级节点管理的子组中纳管的普通节点的数量n;

基于所述普通节点的数量n以及所述未达到满负载状态的超级节点还能够承载的普通节点的个数m,将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中。

具体的,将n与m进行比较,当n小于等于m时,将所述普通节点纳管到由所述未达到满负载状态的超级节点管理的子组中;当n大于m时,从n个普通节点中按照预设选取规则选取出m个纳管到由所述未达到满负载状态的超级节点管理的子组;将剩余的(n-m)个普通节点标记为待分配状态的普通节点等待分配,即等待能够作为超级节点的新的上线的节点。

需要说明的是,当管理该子组的超级节点重新上线时,按照上述规则进行重新分组。

当未达到满负载状态的超级节点为多个时,将由所述掉线的超级节点管理的子组中的普通节点按照第二预设选取规则分配。

(2)、如果所述掉线的超级节点管理的子组中纳管有普通节点,不存在未达到满负载状态的超级节点,则将所述普通节点标记为待分配状态的普通节点等待分配。

如图6、图7和图8所示,本发明实施例提供了一种区块链网络拓扑结构,采用上述基于区块链节点网络的处理方法,该区块链网络拓扑结构包括多个母组:

每个母组中包括有第一预设数量的超级节点和第二预设数量的普通节点,其中,对于每个母组,每个超级节点所连接的普通节点的数量与所述超级节点的带负载能力确定;每个超级节点所连接的每个普通节点与所述每个超级节点的物理距离在预设范围内;

具体的,每个母组的每个超级节点连接的普通节点数量根据其负载能力的强弱而确定。对于每个超级节点而言,连接在其上的普通节点的位置应当与超级节点处于物理距离上相对较近的位置。

在每个母组中,在超级节点数量足够多时,平均每个母组的超级节点个数选定在n个(n>=3)。若每个母组内的超级节点均分配有普通节点,且此时还有若干超级节点剩余的情况下,则将剩余的超级节点按照n个(n>=3)一组构成母组;若给所有超级节点均分配有每个超级节点满负载的普通节点,且还剩余普通节点时,则此时普通节点需等待新的超级节点加入网络拓扑结构中,若有新的适合作为超级节点的节点加入时,则将该普通节点由该新的适合作为超级节点纳管,成为一个新的子组。

需要说明的是,左图示出了一种区块链网络拓扑结构包括超级节点以及普通节点的示意图,右图示意性的示出了一种区块链网络拓扑结构的所有超级节点的相互连接的总体结构图。

为了便于理解,这里参照图9对基于区块链节点网络的处理方法的一个具体实施方案进行说明:

对于每个新上线的节点(新节点上线):判断该节点是否适合充当超级节点(superpoint,sp):

如果适合作为sp;计算出该sp的承载能力p;判断已存在的节点中是否存在待分配的普通节点(nomalpoint,np);如果存在待分配的普通节点,统计待分配的np个数q(q>0);若p>q,则将剩余的q个普通节点与新加入的该超级节点相连接(即由该超级节点纳管)而成为一个小分组(subgroup);如果p不大于q,从q中任选p个未分配np与该sp连接而成为小分组(subgroup);对于上述的小分组(subgroup)而言,首先判断网络中已分配的组中是否有超级节点个数少于3个(组超级节点阈值)的大组(groupi,这里的i表示查到的第i个超级节点个数少于3个的大组);若有,则将该新生成的小分组(subgroup)加入到该大组(groupi)中;若没有超级节点个数少于3个(组超级节点阈值)的大组groupi,建立新的大组group,将该小分组(subgroup)加入到该新建的大组group中;如果不存在待分配的普通节点,则判断网络中已分配的组中是否有超级节点个数少于3个(组超级节点阈值)的大组groupi;

如果不适合作为sp,在将该节点标记为np;对于该np节点,首先查询已分配好的组中是否有超级节点sp仍能连接(纳管)np(即是否有超级节点sp已连接的普通节点个数小于其能负载的np个数),如有这样的sp,则将此次新节点(该np)加入到该sp所在组中;否则,说明没有sp可以供新加入的np连接,则将此次新加入的np(该节点)加入待分配np中。

异常情况处理:

在此网络拓扑结构中,若是普通节点掉线,相对不会影响该小组的网络结构,只是该普通节点所在小组的超级节点负载的普通节点的个数会减少一个,因而不会有较大影响。但如若是超级节点掉线的话,则存在较大问题。因为超级节点承担着其组内节点与组外节点相互通信的桥梁作用。因而,需要一套超级节点离线的预备处理机制。

由于在此虚拟网络拓扑结构中,每个组中可能存在多个小组,小组个数可能是3个,具体看设定的小组个数。因而,一般而言,如若一个小组内的一个超级节点掉线,则首先查询其相邻的小组内有没有不满负载的超级节点(所谓不满负载是指超级节点连接的普通节点的个数小于其能负载连接的普通节点个数),若有,则这些普通节点主动连接到其余未满负载的超级节点上。如若该组内的所有超级节点均处于满负载状态,则从所有全sp组中,选择出一个sp充当该掉线组的超级节点。如若没有全sp组,则该掉线组的所有np处于等待新sp加入的状态。

此分组网络拓扑结构,具有以下特性:

(1)动态性:该网络拓扑结构与传统的半分布式结构化网络的区别在于:此网络中每个组中的超级节点和普通节点均是动态生成的。在一个组未被分配前或构建前,构建该组的超级节点和普通节点均是未知的,当有新的节点加入网络时,即有可能生成新的分组;

(2)随机性:组内的每个sp均是按照固定的随机算法分配出的。且组内的np也是按照固定的算法随机分配的。但是这种随机性,服从组内的sp和np在物理距离上距离较近的原则;

(3)组间超级节点对外可见、普通节点对外不可见:对于不同的组只能通过超级节点进行通信。组内的普通节点对于外组的超级节点或普通节点均是不可见的,因为普通节点处于单纯的内网局域网中;

(4)可验证性:组内的节点之间的信息和历史信息均是可验证的,且组内发生交易的参与者等均是可验证的;

(5)虚拟性:区别于传统的物理网络拓扑结构,这里的组内普通节点与超级节点的连接及组间的超级节点间的连接均无物理介质上的直接连接,而是通过网络相互连接而成为的虚拟组结构。

上述处理方法的优势还在于:

(1)快捷性:由于是将节点分组进行管理,且组内的超级节点和普通节点是物理节点上相对较近的,故在区块链应用上,组内共识的时间较短;且分组的拓扑结构更利于通信,在组内消息传递上也更快;可通过物理距离相对较近的节点和超级节点即可完成交易或通信,减少了节点之间通信和转发的时间;

(2)可扩展性:随着新的节点加入,能够不断的扩展新的组,而增加此网络拓扑结构的规模。此种网络结构的可扩展性理论上可认为是无限的。且随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要;

(3)健壮性:由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。组内的某个超级节点掉线时能自动调整整体拓扑,保持掉线节点上的普通节点快速连接到其相邻的2个sp上。网络还能够根据网络带宽、结点数、负载等变化不断地做自适应式的调整;

(4)高性能/价格比:随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。此网络架构能有效地利用互联网中散布的大量结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力;

(5)隐私保护:由于组内的普通节点组内可见组外不可见的特性,用户的隐私信息被窃听和泄漏的可能性大大缩小;超级节点的中继转发,也大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护;

(6)负载均衡:由于每个超级节点既是服务器又是客户机,减少了对传统c/s结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。

基于上述特性,上述的处理方法及其构造的网络拓扑结构可应用于以下场景:

(1)分布式科学计算;此网络结构可以使得众多终端的cpu资源联合起来,服务于一个共同的计算。这种计算一般是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程中,任务(包括逻辑与数据等)被划分成多个片,首选被分到每个组的超级节点上,再由每个超级节点分配给管辖内的普通节点。在不影响原有计算机使用的前提下,利用分散的cpu资源完成计算任务,并将结果返回给一个或多个服务器,将众多结果进行整合,以得到最终结果。

(2)文件共享/检索/下载:将网络划分成分组的虚拟结构,可使得组内的超级节点管理一部分普通节点。网络上存在请求文件的命令时,首先请求每个组中的超级节点,查询超级节点及超级节点管理的普通节点是否有被请求的文件资源,如有则直接在该组中获取资源。此法相对于传统的p2p技术能大幅地提高文件共享/检索/下载的速度。

(3)通信转发:利于该处理方法所提网络结构动态布置通信基站时,由于每个请求节点在发出通信请求时,不断的通过询问离目标通信节点最近的超级节点是否管辖有目标通信节点,如该目标通信节点属于本超级节点管辖的范围,则停止转发和继续请求,直接通过该超级节点所在的基站产生通信。否则,继续转发,这种方式大幅提高了通信的时长消耗,从而提高通信请求的速度和准确性。

(4)区块链底层节点布局:此网络结构可以使得区块链上的节点能有序的被组织起来,且在组内的交易是不需要通过全网转发的,只是需要极少数量的组外超级节点参与到交易的验证。且在需要全网节点都进行共同的一项事务时,通过超级节点能快速与普通节点达到共识,进而让该事务快速被全网节点执行完成。

具体地,若将此虚拟网络拓扑结构运用于区块链上的业务中,可以根据每个业务来作为划分组的依据,即在每个组中,将组内的普通节点设成同一个业务组内的节点,只是超级节点可能是来源于外部。此种根据业务划分组的优点在于1、能够减少交易的转发及传递时间;2、避免组内的业务传递到其他业务组的节点中,一般一个业务组内的交易能尽量在一个组内处理,而不去干扰其他业务组;

实施例三:

如图9所示,本发明实施例提供了一种基于区块链节点网络的处理装置,包括:确定模块901,用于确定所述节点的处理性能以及所述节点所处的网络类型;判定模块902,用于判断所述节点的处理性能以及所述节点所处的网络类型是否均满足预设性能评判标准;所述预设性能评判标准包括:所述节点的cpu性能、内存性能、硬盘剩余空间占比、虚拟内存(swap)分区、网络带宽以及网络速度均不低于阈值;所述节点所处的网络类型为非内网类型;标记模块903,用于如果所述节点的处理性能以及所述节点所处的网络类型均满足所述预设性能评判标准,将所述节点标记为超级节点;其中所述超级节点为所述区块链节点网络中能够直接参与验证的节点。

本发明实施例提供的基于区块链节点网络的处理装置,与上述实施例提供的基于区块链节点网络的处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

参见图10,本发明实施例还提供一种电子设备100,包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。

其中,存储器41可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线42可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。

处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。

进一步,本实施方式还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述实施方式提供的方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。

最后应说明的是:以上实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

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