CN111740915B - 邻居节点确定方法、装置、设备和存储介质 - Google Patents
邻居节点确定方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111740915B CN111740915B CN202010779203.0A CN202010779203A CN111740915B CN 111740915 B CN111740915 B CN 111740915B CN 202010779203 A CN202010779203 A CN 202010779203A CN 111740915 B CN111740915 B CN 111740915B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- full
- candidate
- scale
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种邻居节点确定方法、装置、设备和存储介质,涉及区块链技术领域,可应用于云计算和云服务。具体实现方案为:在本机节点接入区块链网络时,确定邻居节点列表;根据区块链网络中其他节点的基本属性,以及其他节点与本机节点之间的通信属性,更新邻居节点列表中的邻居节点;基本属性包括在册身份和/或管理状态。本申请实施例通过引入基本属性和通信属性,能够将区块链网络中的网络带宽进行合理分配,为区块链网络中的本机节点分配合理的邻居节点,避免了带宽资源的浪费,提升了网络吞吐量,从而在避免分叉率提升的情况下,能够进一步提升了出块大小和出块速度,进而提升了区块链网络的数据传输效率,并兼顾了区块链网络的稳定性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及区块链技术,具体涉及一种邻居节点确定方法、装置、设备和存储介质。
背景技术
区块链技术不依赖于额外的第三方管理机构或硬件设施,没有中心管控,从而使得区块链具备去中心化的特性。
由于需要通过分布式核算和存储,实现各个节点的信息验证、传递和管理,达到去中心化的目的,因此,区块链网络中会存在大量的数据传输,导致区块链网络性能远远低于传统的中心化系统。
发明内容
本申请提供了一种传输效率更高、网络稳定性更好的邻居节点确定方法、装置、设备和存储介质。
根据本申请的一方面,提供了一种邻居节点确定方法,包括:
在本机节点接入区块链网络时,确定邻居节点列表;
根据所述区块链网络中其他节点的基本属性,以及所述其他节点与所述本机节点之间的通信属性,更新所述邻居节点列表中的邻居节点;
其中,所述基本属性包括在册身份和/或管理状态。
根据本申请的另一方面,提供了一种邻居节点确定装置,包括:
邻居节点列表确定模块,用于在本机节点接入区块链网络时,确定邻居节点列表;
邻居节点列表更新模块,用于根据所述区块链网络中其他节点的基本属性,以及所述其他节点与所述本机节点之间的通信属性,更新所述邻居节点列表中的邻居节点;
其中,所述基本属性包括在册身份和/或管理状态。
根据本申请的又一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任意一种邻居节点确定方法。
根据本申请的在一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请实施例提供的任意一种邻居节点确定方法。
本申请实施例提高了区块链网络的数据传输效率和网络性能。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的一种邻居节点确定方法的流程图;
图2是本申请实施例提供的另一种邻居节点确定方法的流程图;
图3是本申请实施例提供的另一种邻居节点确定方法的流程图;
图4是本申请实施例提供的一种邻居节点确定装置的结构图;
图5是用来实现本申请实施例的邻居节点确定方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例公开的各邻居节点确定方法和邻居节点确定装置,适用于对区块链网络中任一区块链节点,进行数据传输的邻居节点进行确定的情况。本申请实施例所公开的各邻居节点确定方法可以由邻居节点确定装置执行,该装置采用软件和/或硬件实现,并具体配置于承载有区块链节点的电子设备中。
图1是本申请实施例提供的一种邻居节点确定方法的流程图,该方法包括:
S101、在本机节点接入区块链网络时,确定邻居节点列表。
其中,本机节点可以是区块链网络中的任意区块链节点。在区块链网络中,区块链节点根据自身性能的不同,可以划分为全量级节点(又称全节点)和轻量级节点。其中,全节点是指部署有区块链的部署数据,如智能合约或共识机制等,并存储有所有区块数据和事务数据的节点;轻量级节点是指部署有区块链的部署数据,但是未存储或存储部分区块数据和事务数据的节点,例如仅存储区块链中的区块头,可以参与区块链的数据请求交互过程。为了保证区块链网络中数据传输的有效性和传输效率,本申请所涉及的本机节点通常为区块链网络中的全节点。
其中,本机节点的邻居节点可以理解为接收本机节点所传输数据的区块链节点,可以包括全节点和/或轻量级节点。邻居节点列表中包括本机节点的至少一个邻居节点。需要说明的是,邻居节点列表中邻居节点的最大允许数量,可以由本机节点的节点管理员根据需要或经验值进行设定或调整。为了保证区块链网络的数据传输均衡性,当邻居节点中包括全节点和轻量级节点时,全节点和轻量级节点的最大允许数量可以满足设定比例阈值,该设定比例阈值可以由节点管理员根据需要或经验值进行设定或调整。
在本申请实施例的一种可选实施方式中,确定邻居节点列表,可以是:根据预先指定的区块链网络中的至少一个区块链节点,组合生成邻居节点列表。
示例性地,当本机节点接入区块链网络时,通常会预先指定至少一个主动连接的全节点或者域名服务器,该全节点或域名服务器会发送一些可用的区块链节点给本机节点;本机节点从所接收的各区块链节点中选择至少一个作为邻居节点,进行邻居节点列表的构建。
在本申请实施例的另一可选实施方式中,为了避免通过预先指定的区块链节点与本机节点之间无法正常通信的问题,或者为了避免预先指定的区块链节点数量无法满足邻居节点列表需求的情况,确定邻居节点列表还可以是:在本机节点接入区块链网络时,向区块链网络发送心跳包;根据心跳包反馈结果,构建活跃全节点列表;根据活跃全节点列表,确定邻居节点列表;其中邻居节点列表和活跃全节点列表存在部分节点重合。
可以理解的是,本机节点向区块链节点进行心跳包发送,当本机节点能够接收到心跳包反馈结果时,表明该区块链节点处于运行状态,并且本机节点与该区块链节点之间通信链路正常,因此,可以将该区块链节点作为活跃全节点添加至活跃全节点列表中。当本机节点无法接收到心跳包反馈结果时,表明该区块链节点未处于运行状态,或者本机节点与该区块链节点之间通信链路异常,因此,禁止将该区块链节点作为活跃节点添加至活跃全节点列表中。
由于区块链网络较大时,心跳包发送的方式可能无法及时得到反馈信息,为了加快活跃全节点列表的构建效率,在本申请实施例的另一可选实施方式中,还可以在本机节点接入区块链网络时,侦听区块链网络,并根据区块链网络侦听结果中其他节点的活跃全节点列表,构建活跃全节点列表。可以理解的是,通过参照其他已加入区块链网络中的节点的活跃全节点列表中的全节点信息,能够进一步加快本机节点的活跃全节点列表的构建。
由此可见,通过活跃全节点列表的设置,能够为邻居节点列表的构建提供数据支撑,同时保证本机节点的邻居节点列表中的各邻居节点,能够与本机节点进行正常的数据通信,为区块链网络中的数据传输的有效性和数据传输效率的提高,奠定了基础。
为了保证通信链路情况的实时性,进而保证所确定的邻居节点列表的实时性,可选的,在构建活跃全节点列表之后,在根据活跃全节点列表,确定邻居节点列表之前,本机节点还可以定期向区块链网络发送心跳包,根据心跳包反馈结果,更新活跃全节点列表;或者可选的,在构建活跃全节点列表之后,在根据活跃全节点列表,确定邻居节点列表之前,本机节点还可以定期侦听区块链网络,并根据网络侦听结果中其他节点的活跃全节点列表,更新活跃全节点列表。相应的,在确定邻居节点列表时,根据更新后的获取全节点列表,确定邻居节点列表;其中,邻居节点列表和更新后的活跃全节点列表存在部分节点重合。
需要说明的是,本机节点可以通过区块链网络侦听的方式进行活跃全节点列表的构建或更新,相应的,本机节点也可以向其他节点分享包括自身活跃全节点列表的信息,以辅助其他全节点进行活跃全节点的构建或更新,从而提高整个区块链网络中活跃全节点的构建效率和更新效率,进而提高区块链网络整体的邻居节点确定效率。
示例性地,本机节点在构建活跃全节点列表之后,或者在更新本地的活跃全节点列表之后,根据活跃全节点列表,组装生成广播信息;将广播信息传输至区块链网络,以供其他节点执行以下操作:侦听广播信息,并根据广播信息中的活跃全节点列表,对本地活跃全节点列表进行更新。
在本申请实施例的一种可选实施方式中,确定邻居节点列表,还可以是:响应于区块链网络中的其他节点发送的连接请求,并根据所述连接请求的发起节点,确定邻居节点列表。示例性地,本机节点接收区块链网络中其他区块链节点的连接请求;若本机节点接受该连接请求,则将相应的发起节点添加至邻居节点列表中;若本机节点拒绝该连接请求,则禁止将相应的发起节点添加至邻居节点列表中。其中,发送连接请求的区块链节点可以是全节点或轻量级节点。
可以理解的是,通过响应其他节点连接请求的方式,能够直接根据区块链网络中主动接入的区块链节点进行邻居节点列表的确定,减少了邻居节点确定时的数据运算量,从而提高了邻居节点列表的构建效率。
S102、根据区块链网络中其他节点的基本属性,以及其他节点与本机节点之间的通信属性,更新邻居节点列表中的邻居节点;其中,基本属性包括在册身份和/或管理状态。
其中,其他节点可以包括全节点,也可以包括轻量级节点。其中,在册身份用于表征其他节点在本机节点中是否记录有特殊身份,例如黑名单身份或白名单身份。其中,管理状态用于表征全节点在本机节点中是否处于连接状态,或者用于表征轻量级节点在本机节点中是否处于注册状态。
需要说明的是,当节点在本机节点中为黑名单身份时,则表明该节点网络经常不稳定,或者存在向本机节点恶意传输数据的情况,因此禁止将该节点作为邻居节点添加至邻居节点列表中。当节点在本机节点中为白名单身份时,则表明该节点网络状态长期稳定,且不存在与本机节点进行数据恶意传输的情况,因此直接将该节点作为邻居节点添加至邻居节点列表中。当全节点在本机节点中处于连接状态,则表明该全节点与本机节点已建立通信连接,也即本机节点与该全节点已经构成了互为邻居节点的关系,因此直接将该节点作为邻居节点添加至邻居节点列表中。当轻量级节点在本机节点中处于注册状态,则表明本机节点已同意与该轻量级节点建立通信连接,同时也将该轻量级节点的账户地址记录在册,因此,可以直接将该节点作为邻居节点添加至邻居节点列表中。
其中,通信属性可以是历史数据传输效率、历史数据传输量和历史数据传输时长中的至少一种,用于表征本机节点与其他节点之间的数据传输性能。示例性地,可以将历史数据传输效率较高、历史数据传输量较大、或历史数据传输时长较长的至少一个其他节点作为邻居节点,添加至本机节点的邻居节点列表中,从而保证了本机节点与该邻居节点之间的数据传输性能。典型的,将历史数据传输性能最高、历史数据传输量最大、或历史数据传输时长最长的至少一个其他节点作为邻居节点,添加至本机节点的邻居节点列表中。
可以理解的是,历史数据传输效率较高,表明该节点与本机节点之间通信效率较高,相应的,该节点与本机节点之间的网络性能较好。历史数据传输量较大,表明该节点与本机节点之间的累计数据传输量较大,由于通常情况下区块中的事务数据大小较为固定,因此表明该节点与本机节点之间的数据传输次数较多,因此侧面印证了该节点与本机节点之间的通信频率较高,通信过程中网络性能较好。历史数据传输时长较长,侧面印证了该节点与本机节点之间的通信频率较高,数据传输量较大。因此,通过将历史数据传输效率、历史数据传输量或历史数据传输时长等作为通信属性,对邻居节点列表中的邻居节点进行更新,能够为区块链网络中的数据传输效率以及网络性能的提高,奠定基础。
本申请实施例通过在本机节点接入区块链网络时,确定邻居节点列表;根据区块链网络中其他节点的基本数据以及其他节点与本机节点之间的通信属性,更新邻居节点列表中的邻居节点;其中,基本属性包括在册身份和/或管理状态。上述技术方案通过引入基本属性和通信属性,能够将区块链网络中的网络带宽进行合理分配,为区块链网络中的本机节点分配合理的邻居节点,避免了带宽资源的浪费,提升了网络吞吐量,从而在避免分叉率提升的情况下,能够进一步提升了区块链网络的出块大小和出块速度,进而提升了区块链网络的数据传输效率,并兼顾了区块链网络的稳定性。
图2是本申请实施例提供的另一种邻居节点确定方法的流程图,该方法在上述各技术方案的基础上,进行了优化改进。
进一步地,将操作“根据区块链网络中其他节点的基本属性,以及其他节点与本机节点之间的通信属性,更新邻居节点列表中的邻居节点”细化为“根据其他节点的基本属性,对其他节点进行筛选,得到候选节点;根据本机节点与各候选节点之间的通信属性,对各候选节点进行排序,得到目标排序结果,用于更新邻居节点列表中的邻居节点”,以完善邻居节点列表的更新机制。
如图2所示的一种邻居节点确定方法,包括:
S201、在本机节点接入区块链网络时,确定邻居节点列表。
其中,邻居节点列表中的邻居节点包括全节点和轻量级节点,邻居节点中全节点和轻量级节点之间的比例,可以根据本机节点的网络性能和带负载能力等情况确定,还可以由本机节点管理方根据自身需求进行设定或调整。一般的,为了保证区块链网络的稳定性,通常会针对区块链网络中每个节点根据节点自身状况设置邻居节点列表中邻居节点的最大数量,以及邻居节点列表中全节点和轻量级节点之间的比例,从而对该节点向其他节点进行数据传输时的传输量加以限定。
S202、根据其他节点的基本属性,对其他节点进行筛选,得到候选节点。
其中,其他节点包括轻量级节点和全节点;相应的,候选节点包括候选轻量级节点和候选全节点。
在本申请实施例的一个可选实施方式中,可以根据区块链网络中各轻量级节点的基本属性,对轻量级节点进行筛选,得到候选轻量级节点,从而实现了对其他节点中的候选轻量级节点进行筛选,为邻居节点列表的更新提供了数据支撑。
在本申请实施例的另一可选实施方式中,可以根据区块链网络中各全节点的基本属性,对全节点进行筛选,得到候选全节点,从而实现对其他节点中的候选全节点进行筛选,为邻居节点列表的更新提供了数据支撑。
由于区块链网络中全节点参与区块链的频次较高,为了便于对全节点进行管理,同时减少进行候选全节点确定时的数据运算量,还可以在进行候选全节点确定时,引入活跃全节点列表,实现对区块链网络中全节点的初筛。示例性地,根据活跃全节点列表中全节点的基本属性,对活跃全节点列表中的全节点进行筛选,得到候选全节点。
其中,活跃全节点列表可以采用以下方式进行确定:在本机节点接入区块链网络时,向区块链网络发送心跳包;选取设定数量的接收到心跳包反馈结果的节点,构建活跃全节点列表。
可以理解的是,通过心跳包发送和反馈结果接收的方式,对区块链网络中运行状态正常以及与本机节点通信链路正常的全节点进行筛选,从而保证了所选取的全节点在区块链网络中的活跃性,也即保证了活跃全节点列表中,活跃全节点的可连接性和数据传输流畅性。
当然,为了提高活跃全节点列表中活跃全节点的实时性,进而保证后续所选取的邻居节点的实时性和活跃度,还可以通过本机节点定期向区块链网络发送心跳包,并根据心跳包反馈结果,对活跃全节点列表进行更新。
需要说明的是,通过在候选节点生成过程中,分别针对全节点和轻量级节点进行筛选,得到候选全节点和候选轻量级节点,为后续邻居节点列表中全量级邻居节点和轻量级邻居节点的筛选,提供了数据支撑,同时便于对邻居节点列表中,全量级邻居节点和轻量级邻居节点之间的比例、或数量进行调整。
可选的,若其他节点包括轻量级节点,则可以采用下述至少一种方式进行候选轻量级节点的筛选:若所述轻量级节点的在册身份为黑名单成员,则禁止将所述轻量级节点作为候选轻量级节点;若所述轻量级节点的在册身份为白名单成员,则将所述轻量级节点作为置顶属性的候选轻量级节点;若所述轻量级节点的管理状态为注册状态,则将所述轻量级节点作为置顶属性的候选轻量级节点;以及,若所述轻量级节点的管理状态为非注册状态,则将所述轻量级节点作为排序属性的候选轻量级节点。
可以理解的是,若轻量级节点的在册身份为黑名单成员,则表明该轻量级节点经常网络不稳定,或与本机节点交互异常,例如交互频次过高等,因此,禁止将该轻量级节点作为候选轻量级节点,从而避免该轻量级节点作为本机节点的邻居节点。若轻量级节点的在册身份为白名单成员,则表明该轻量级节点网络稳定,且不存在与本机节点的异常交互操作,因此,可以直接将该轻量级节点作为置顶属性的候选轻量级节点,为后续成为本机节点的邻居节点列表中的邻居节点奠定基础。若轻量级节点的管理状态为注册状态,则表明本机节点已同意与该轻量级节点建立通信连接,同时也将该轻量级节点的账户地址记录在册,因此可以将该轻量级节点作为置顶属性的候选轻量级节点。若轻量级节点的管理状态为非注册状态,则表明本机节点尚未同意与轻量级节点建立通信连接,或者轻量级节点尚未在本机节点中进行注册,也即本机节点并未记录有该轻量级节点的账户地址,因此,可以将该轻量级节点作为排序属性的候选轻量级节点,用于通过排序与其他轻量级节点竞争轻量级邻居节点。
需要说明的是,通过轻量级节点的在册身份和/或管理状态,对轻量级节点进行筛选,得到不同属性的候选轻量级节点,从而为后续轻量级邻居节点的筛选,提供数据支撑。另外,通过置顶属性和排序属性将候选轻量级节点加以区分,从而保证置顶属性中的候选轻量级节点,能够更高概率添加至轻量级邻居节点中,避免频繁变更与本机节点通行的轻量级节点对区块链网络稳定性带来的影响,同时保证了本机节点与其他节点之间的数据传输安全。
可选的,若其他节点包括全节点,则可以采用下述至少一种方式进行候选全节点的筛选:若所述全节点的在册身份为黑名单成员,则禁止将所述全节点作为候选全节点;若所述全节点的在册身份为白名单成员,则将所述全节点作为置顶属性的候选全节点;若所述全节点的管理状态为连接状态,则将所述全节点作为置顶属性的候选全节点;以及,若所述全节点的管理状态为非连接状态,则将所述全节点作为排序属性的候选全节点。
可以理解的是,若全节点的在册身份为黑名单成员,则表明该全节点经常网络不稳定,或存在向本机节点恶意传输数据的情况,因此,禁止将该全节点作为候选全节点,从而避免该全节点作为本机节点的邻居节点。若全节点的在册身份为白名单成员,则表明该全节点网络稳定,且不存在向本机节点恶意传输数据的情况,因此,可以直接将该全节点作为置顶属性的候选全节点,为后续成为本机节点的邻居节点列表中的全量级邻居节点奠定了基础。若全节点的管理状态为连接状态,则表明该全节点与本机节点已建立通信连接,也即本机节点与该全节点已经构成了互为邻居节点的关系,因此可以将该全节点作为置顶属性的候选全节点。若全节点的管理状态为非连接状态,则表明本机节点与全节点尚未建立通信连接,也即本机节点与该全节点尚未构成互为邻居节点的关系,因此,可以将该全节点作为排序属性的候选全节点,用于通过排序结果与其他全节点竞争全量级邻居节点。
需要说明的是,通过全节点的在册身份和/或管理状态,对全节点进行筛选,得到不同属性的候选全节点,从而为后续全量级邻居节点的筛选提供数据支撑。另外,通过置顶属性和排序属性将候选全节点加以区分,从而保证置顶属性中的候选全节点,能够更高概率添加至全量级邻居节点中,避免频繁变更与本机节点通行的全节点对区块链网络稳定性带来的影响,同时保证了本机节点与其他节点之间的数据传输安全。
S203、根据本机节点与各候选节点之间的通信属性,对各候选节点进行排序,得到目标排序结果,用于更新邻居节点列表中的邻居节点。
可选的,若候选节点为候选轻量级节点,则根据排序属性的候选轻量级节点与本机节点之间的通信属性,对排序属性的候选轻量级节点进行排序,得到轻量级初始排序结果;将置顶属性的候选轻量级节点插入至轻量级初始排序结果中排序较高的位置,得到轻量级目标排序结果。相应的,根据轻量级目标排序结果,选取排序靠前的第一设定数量的候选轻量级节点替换邻居节点列表中的部分或全部轻量级邻居节点。其中,第一设定数量由技术人员根据需要或经验值进行确定,仅需保证第一设定数量不大于邻居节点列表中轻量级邻居节点的最大允许数量即可。
可以理解的是,当邻居节点列表中存在的轻量级邻居节点数量过多时,为了不影响区块链网络的数据传输情况,可以根据通信属性预先对邻居节点列表中的各轻量级节点进行排序,然后剔除排序结果较差的第一设定数量的轻量级邻居节点;相应的,根据轻量级目标排序结果,选取排序靠前的第一设定数量的候选轻量级节点添加至邻居节点列表中,以实现对邻居节点列表中轻量级邻居节点的更新。
示例性地,将置顶属性的候选轻量级节点插入至轻量级初始排序结果中排序最高的位置之前,得到轻量级目标排序结果,以保证置顶属性的候选轻量级节点能够优先添加至邻居节点列表中。
需要说明的是,通过将排序属性的候选轻量级节点与本机节点之间的通信属性进行初始排序,并将置顶属性的候选轻量级节点通过插入方式确定目标排序结果,使得在更新邻居节点列表时,能够优先采用置顶属性的候选轻量级节点进行更新,保证了区块链网络数据通信的稳定性,同时保证了排序属性的候选轻量级节点作为轻量级邻居节点时,与本机节点之间的通信性能,兼顾了区块链网络的网络性能和数据传输效率。
可选的,若候选节点为候选全节点,则根据排序属性的候选全节点与本机节点之间的通信属性,对排序属性的候选全节点进行排序,得到全量级初始排序结果;将置顶属性的候选全节点插入至全量级初始排序结果中排序较高的位置,得到全量级目标排序结果;相应的,根据全量级目标排序结果,选取排序靠前的第二设定数量的候选全量级节点替换邻居节点列表中的部分或全部全量级邻居节点。其中,第二设定数量由技术人员根据需要或经验值进行确定,仅需保证第二设定数量不大于邻居节点列表中全量级邻居节点的最大允许数量即可。
可以理解的是,当邻居节点列表中存在的全量级邻居节点数量过多时,为了不影响区块链网络的数据传输情况,可以根据通信属性预先对邻居节点列表中的各全量级节点进行排序,然后剔除排序结果较差的第二设定数量的全量级邻居节点;相应的,根据全量级目标排序结果,选取排序靠前的第二设定数量的候选全量级节点添加至邻居节点列表中,以实现对邻居节点列表中全量级邻居节点的更新。
示例性地,将置顶属性的候选全量级节点插入至全量级初始排序结果中排序最高的位置之前,得到全量级目标排序结果,以保证置顶属性的候选全量级节点能够优先添加至邻居节点列表中。
需要说明的是,通过将排序属性的候选全节点与本机节点之间的通信属性进行初始排序,并将置顶属性的候选全节点通过插入方式确定目标排序结果,使得在更新邻居节点列表时,能够优先采用置顶属性的候选全节点进行更新,保证了区块链网络数据通信的稳定性,同时保证了排序属性的候选全节点作为全量级邻居节点时,与本机节点之间的通信性能,兼顾了区块链网络的网络性能和数据传输效率。
本申请实施例通过将根据区块链网络中其他节点的基本属性,以及其他节点与本机节点之间的通信属性,更新邻居节点列表中的邻居节点,细化为根据其他节点的基本属性,对其他节点进行筛选,得到候选节点;根据本机节点与各候选节点之间的通信属性,对各候选节点进行排序,得到目标排序结果,用于更新邻居节点列表中的邻居节点,完善了邻居节点列表的更新机制,同时通过其他节点先筛选和再排序的方式进行目标排序结果的确定,在为邻居节点列表提供数据支撑的同时,减少了排序过程的数据运算量,从而提高了邻居节点列表的更新效率,进而保证了区块链网络的数据传输稳定性。
图3是本申请实施例提供的另一种邻居节点确定方法的流程图,该方法在上述各技术方案的基础上,提供了一种优选实施方式。
如图3所示的一种邻居节点确定方法,包括:
S310、本机节点的通信链路初始化阶段;以及,
S320、本机节点的通信链路更新阶段。
示例性地,全节点的通信链路初始化阶段,包括:
S311、在本机节点接入区块链网络时,从预设全节点或域名服务器中,获取至少一个第一活跃全节点。
其中,本机节点为区块链网络中的全节点。
S312、向区块链网络广播心跳包,并将接收到心跳包反馈结果的全节点作为第二活跃全节点。
S313、生成包括第一活跃全节点和第二活跃全节点的活跃全节点列表。
其中,活跃全节点列表中所包含全节点的数量无限制,或者不能超过第一设定数量阈值;其中,第一设定数量阈值可以由技术人员根据需要或经验值进行确定。
若要求活跃全节点列表中全节点数量不能超过第一设定数量阈值,且生成的活跃全节点列表数量超过第一设定数量阈值时,可以随机丢弃部分第一活跃全节点和/或第二活跃全节点;或者根据心跳包反馈结果的接收时间,与心跳包发送时间的时间差值,依次剔除时间差值较大的各第二活跃全节点,直至满足数量限值条件。
S314、从活跃全节点列表中选取部分全节点作为全量级邻居节点,并将已在本机节点中注册的轻量级节点作为全量级邻居节点,以初始化邻居节点列表。
其中,邻居节点列表中的全量级邻居节点数量,由本机节点的节点管理员进行设定。
其中,邻居节点列表中的轻量级节邻居节点数量,由本机节点的节点管理员进行设定。其中,轻量级邻居节点和全量级邻居节点的最大允许数量的比例,可以由节点管理员根据需要进行调节。
其中,所选取的全节点的数量由节点管理员根据需要或经验值进行设定,仅需保证小于全量级邻居节点的最大允许数量即可。
示例性地,本机节点的通信链路更新阶段,包括:
S321、剔除活跃全节点列表中位于黑名单中的全节点。
S322、将活跃全节点列表中位于白名单中的全节点,作为置顶属性的候选全节点。
S323、将活跃全节点列表中与本机节点处于连接状态的全节点,作为置顶属性的候选全节点。
S324、将活跃全节点列表中处于非连接状态的全节点,作为排序属性的候选全节点。
S325、根据各排序属性的候选全节点与本机节点之间的历史数据传输速率,对各排序属性的候选全节点进行排序。
S326、选取各置顶属性的候选全节点和历史数据传输速率最高的排序属性的候选全节点,更新邻居节点列表中的全量级邻居节点。
其中,全量级邻居节点的更新数量,不大于邻居节点列表中全量级邻居节点的最大允许数量。该更新数量数值,可以由本机节点的节点管理员根据需要或经验值进行设定。
S327、将区块链网络中除本机节点的黑名单中的轻量级节点以外的轻量级节点,作为候选轻量级节点。
S328、将位于本机节点白名单中的候选轻量级节点,作为置顶属性的候选轻量级节点。
S329、将在本机节点中注册状态的候选轻量级节点,作为置顶属性的候选轻量级节点。
S330、将本机节点中未处于注册状态的候选轻量级节点,作为排序属性的候选轻量级节点。
S331、根据各排序属性的候选轻量级节点与本机节点之间的历史传输数据速率,对排序属性的候选全节点进行排序。
S332、选取各置顶属性的候选年轻量级节点和历史数据传输速率最高的排序属性的候选轻量级节点,更新邻居节点列表中的轻量级邻居节点。
其中,轻量级邻居节点的更新数量,不大于邻居节点列表中轻量级邻居节点的最大允许数量。该更新数量数值,可以由本机节点的节点管理员根据需要或经验值进行设定。
其中,S327~S332可以在S321~S326之前执行,也可以在S321~S326之后执行,还可以两部分并行执行或交叉执行,本申请对两部分方案具体执行顺序不做任何限定。
S333、与邻居节点列表中的各邻居节点建立通信链路,并传输数据,记录数据传输大小和数据传输时长。
S334、根据数据传输大小和数据传输时长比值,确定数据传输速率。
S335、定期向区块链网络广播心跳包,并接收心跳包反馈信号。
S336、根据心跳包反馈信号接收情况,更新本机节点自身的活跃全节点列表。返回执行S321。
具体的,剔除活跃全节点列表中未接收到心跳包反馈信号的全节点,并将设定时间段内接收到心跳包反馈信号的全节点,添加至活跃全节点列表中。
其中,S335~S336还可以通过如下操作进行替代:定期侦听区块链网络中的广播信息,其中广播信息包括其他节点的活跃全节点列表;通过其他节点的活跃全节点列表中的活跃全节点,更新本机节点自身的活跃全节点列表。
当然,本机节点还可以定期将自身的活跃全节点列表组装生成广播信息,传输至区块链网络,以供其他节点执行以下操作:侦听广播信息,并根据侦听到的广播信息中的活跃全节点列表,更新本地活跃全节点列表。
本申请实施例通过在网络带宽和硬件配置固定时,优化节点间的网络通信链路,将网络带宽进行了合理的分配,为每个本机节点分配合理的邻居节点,避免了带宽资源的浪费,同时兼顾了区块链网络的稳定性,进而提高了区块链网络性能。
图4是本申请实施例提供的一种邻居节点确定装置的结构图,该邻居节点确定装置400,包括:邻居节点列表确定模块401和邻居节点列表更新模块402。其中,
邻居节点列表确定模块401,用于在本机节点接入区块链网络时,确定邻居节点列表;
邻居节点列表更新模块402,用于根据区块链网络中其他节点的基本属性,以及其他节点与本机节点之间的通信属性,更新邻居节点列表中的邻居节点;
其中,基本属性包括在册身份和/或管理状态。
本申请实施例通过邻居节点列表确定模块在本机节点接入区块链网络时,确定邻居节点列表;通过邻居节点列表更新模块根据区块链网络中其他节点的基本数据以及其他节点与本机节点之间的通信属性,更新邻居节点列表中的邻居节点;其中,基本属性包括在册身份和/或管理状态。上述技术方案通过引入基本属性和通信属性,能够将区块链网络中的网络带宽进行合理分配,为区块链网络中的本机节点分配合理的邻居节点,避免了带宽资源的浪费,提升了网络吞吐量,从而在避免分叉率提升的情况下,能够进一步提升了出块大小和出块速度,进而提升了区块链网络的数据传输效率,并兼顾了区块链网络的稳定性。
进一步地,邻居节点列表更新模块402,包括:
候选节点得到单元,用于根据其他节点的基本属性,对其他节点进行筛选,得到候选节点;
目标排序结果得到单元,用于根据本机节点与各候选节点之间的通信属性,对各候选节点进行排序,得到目标排序结果,用于更新邻居节点列表中的邻居节点。
进一步地,其他节点包括轻量级节点和全节点;候选节点包括候选轻量级节点和候选全节点;
目标排序结果得到单元,包括:
轻量级邻居节点更新子单元,用于根据候选轻量级节点中的轻量级节点与本机节点之间的通信属性,对各候选轻量级节点进行排序,得到轻量级目标排序结果,用于更新邻居节点列表中的轻量级邻居节点;和/或,
全量级邻居节点更新子单元,用于根据候选全节点中的全节点与本机节点之间的通信属性,对各候选全节点进行排序,得到全量级目标排序结果,用于更新邻居节点列表中的全量级邻居节点。
进一步地,若其他节点包括轻量级节点,则候选节点得到单元,包括下述至少一种:
轻节点在册身份确定子单元,用于若轻量级节点的在册身份为黑名单成员,则禁止将轻量级节点作为候选轻量级节点;
轻节点在册身份确定子单元,还用于若轻量级节点的在册身份为白名单成员,则将轻量级节点作为置顶属性的候选轻量级节点;
轻节点管理状态确定子单元,用于若轻量级节点的管理状态为注册状态,则将轻量级节点作为置顶属性的候选轻量级节点;以及,
轻节点管理状态确定子单元,还用于若轻量级节点的管理状态为非注册状态,则将轻量级节点作为排序属性的候选轻量级节点。
进一步地,轻量级邻居节点更新子单元,包括:
轻量级初始排序结果得到从单元,用于根据排序属性的候选轻量级节点与本机节点之间的通信属性,对排序属性的候选轻量级节点进行排序,得到轻量级初始排序结果;
轻量级目标排序结果得到从单元,用于将置顶属性的候选轻量级节点插入至轻量级初始排序结果中排序较高的位置,得到轻量级目标排序结果。
进一步地,若其他节点包括全量级节点,则候选节点得到单元,包括下述至少一种:
全节点在册身份确定子单元,用于若全节点的在册身份为黑名单成员,则禁止将全节点作为候选全节点;
全节点在册身份确定子单元,还用于若全节点的在册身份为白名单成员,则将全节点作为置顶属性的候选全节点;
全节点管理状态确定子单元,用于若全节点的管理状态为连接状态,则将全节点作为置顶属性的候选全节点;以及,
全节点管理状态确定子单元,还用于若全节点的管理状态为非连接状态,则将全节点作为排序属性的候选全节点。
进一步地,全量级邻居节点更新子单元,包括:
全量级初始排序结果得到从单元,用于根据排序属性的候选全节点与本机节点之间的通信属性,对排序属性的候选全节点进行排序,得到全量级初始排序结果;
全量级目标排序结果得到从单元,用于将置顶属性的候选全节点插入至全量级初始排序结果中排序较高的位置,得到全量级目标排序结果。
进一步地,若其他节点包括全节点,则邻居节点列表确定模块401,包括下述至少一种:
侦听构建单元,用于侦听所述区块链网络,并根据网络侦听结果中其他节点的活跃全节点列表,构建活跃全节点列表;根据所述活跃全节点列表,确定所述邻居节点列表;
心跳包构建单元,用于向区块链网络发送心跳包,并根据心跳包反馈结果,构建活跃全节点列表;
连接确定单元,用于响应于区块链网络中的其他节点发送的连接请求,并根据所述连接请求的发起节点,确定邻居节点列表;
其中,所述邻居节点列表和所述活跃全节点列表存在部分节点重合。
进一步地,装置还包括:
活跃全节点列表更新模块,用于在构建活跃全节点列表之后,在所述根据所述活跃全节点列表,确定所述邻居节点列表之前,定期侦听所述区块链网络,并根据网络侦听结果中其他节点的活跃全节点列表,更新所述活跃全节点列表;或者,定期向区块链网络发送心跳包;根据心跳包反馈结果,更新所述活跃全节点列表。进一步地,所述装置还包括:
广播消息组装模块,用于在所述构建活跃全节点列表之后,根据所述活跃全节点列表,组装生成广播消息;
广播消息传输模块,用于将所述广播消息传输至所述区块链网络,以供其他节点执行以下操作:侦听所述广播消息,并根据所述广播消息中的活跃全节点列表,对本地活跃全节点列表进行更新。
进一步地,候选节点得到单元,包括:
候选全节点得到子单元,用于根据活跃全节点列表中全节点的基本属性,对活跃全节点列表中的全节点进行筛选,得到候选全节点。
上述邻居节点确定装置可执行本发明任意实施例所提供的邻居节点确定方法,具备执行邻居节点确定方法相应的功能模块和有益效果。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是实现本申请实施例的邻居节点确定方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的邻居节点确定方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的邻居节点确定方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的邻居节点确定方法对应的程序指令/模块(例如,附图4所示的邻居节点列表确定模块401和邻居节点列表更新模块402)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的邻居节点确定方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储实现邻居节点确定方法的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至实现邻居节点确定方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现邻居节点确定方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与实现邻居节点确定方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
根据本申请实施例的技术方案,通过引入基本属性和通信属性,能够将区块链网络中的网络带宽进行合理分配,为区块链网络中的本机节点分配合理的邻居节点,避免了带宽资源的浪费,提升了网络吞吐量,从而在避免分叉率提升的情况下,能够进一步提升了出块大小和出块速度,进而提升了区块链网络的数据传输效率,并兼顾了区块链网络的稳定性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (24)
1.一种邻居节点确定方法,包括:
在本机节点接入区块链网络时,确定邻居节点列表;
根据所述区块链网络中其他节点的基本属性,以及所述其他节点与所述本机节点之间的通信属性,更新所述邻居节点列表中的邻居节点;其中,所述通信属性用于表征所述本机节点与所述其他节点之间的数据传输性能;
其中,所述基本属性包括在册身份和/或管理状态。
2.根据权利要求1所述的方法,其中,所述根据所述区块链网络中其他节点的基本属性,以及所述其他节点与所述本机节点之间的通信属性,更新所述邻居节点列表中的邻居节点,包括:
根据所述其他节点的基本属性,对所述其他节点进行筛选,得到候选节点;
根据所述本机节点与各所述候选节点之间的通信属性,对各所述候选节点进行排序,得到目标排序结果,用于更新所述邻居节点列表中的邻居节点。
3.根据权利要求2所述的方法,其中,所述其他节点包括轻量级节点和全量级节点;所述候选节点包括候选轻量级节点和候选全量级节点;
根据所述本机节点与各所述候选节点之间的通信属性,对各所述候选节点进行排序,得到目标排序结果,用于更新所述邻居节点列表中的邻居节点,包括:
根据所述候选轻量级节点中的所述轻量级节点与所述本机节点之间的通信属性,对各候选轻量级节点进行排序,得到轻量级目标排序结果,用于更新所述邻居节点列表中的轻量级邻居节点;和/或,
根据所述候选全量级节点中的所述全量级节点与所述本机节点之间的通信属性,对各候选全量级节点进行排序,得到全量级目标排序结果,用于更新所述邻居节点列表中的全量级邻居节点。
4.根据权利要求3所述的方法,其中,若所述其他节点包括轻量级节点,则所述根据所述其他节点的基本属性,对所述其他节点进行筛选,得到候选节点,包括下述至少一种:
若所述轻量级节点的在册身份为黑名单成员,则禁止将所述轻量级节点作为候选轻量级节点;
若所述轻量级节点的在册身份为白名单成员,则将所述轻量级节点作为置顶属性的候选轻量级节点;
若所述轻量级节点的管理状态为注册状态,则将所述轻量级节点作为置顶属性的候选轻量级节点;以及,
若所述轻量级节点的管理状态为非注册状态,则将所述轻量级节点作为排序属性的候选轻量级节点。
5.根据权利要求4所述的方法,其中,所述根据所述候选轻量级节点中的所述轻量级节点与所述本机节点之间的通信属性,对各候选轻量级节点进行排序,得到轻量级目标排序结果,包括:
根据排序属性的候选轻量级节点与所述本机节点之间的通信属性,对所述排序属性的候选轻量级节点进行排序,得到轻量级初始排序结果;
将置顶属性的候选轻量级节点插入至所述轻量级初始排序结果中排序较高的位置,得到轻量级目标排序结果。
6.根据权利要求3所述的方法,其中,若所述其他节点包括全量级节点,则所述根据所述其他节点的基本属性,对所述其他节点进行筛选,得到候选节点,包括下述至少一种:
若所述全量级节点的在册身份为黑名单成员,则禁止将所述全量级节点作为候选全量级节点;
若所述全量级节点的在册身份为白名单成员,则将所述全量级节点作为置顶属性的候选全量级节点;
若所述全量级节点的管理状态为连接状态,则将所述全量级节点作为置顶属性的候选全量级节点;以及,
若所述全量级节点的管理状态为非连接状态,则将所述全量级节点作为排序属性的候选全量级节点。
7.根据权利要求6所述的方法,其中,所述根据所述候选全量级节点中的所述全量级节点与所述本机节点之间的通信属性,对各候选全量级节点进行排序,得到全量级目标排序结果,包括:
根据排序属性的候选全量级节点与所述本机节点之间的通信属性,对所述排序属性的候选全量级节点进行排序,得到全量级初始排序结果;
将置顶属性的候选全量级节点插入至所述全量级初始排序结果中排序较高的位置,得到全量级目标排序结果。
8.根据权利要求3-7任一项所述的方法,其中,若所述其他节点包括全量级节点,则所述确定邻居节点列表,包括下述至少一种:
侦听所述区块链网络,并根据网络侦听结果中其他节点的活跃全量级节点列表,构建活跃全量级节点列表;根据所述活跃全量级节点列表,确定所述邻居节点列表;
向所述区块链网络发送心跳包,并根据心跳包反馈结果,构建活跃全量级节点列表;根据所述活跃全量级节点列表,确定所述邻居节点列表;以及
响应于区块链网络中的其他节点发送的连接请求,并根据所述连接请求的发起节点,确定邻居节点列表;
其中,所述邻居节点列表和所述活跃全量级节点列表存在部分节点重合。
9.根据权利要求8所述的方法,在所述构建活跃全量级节点列表之后,在所述根据所述活跃全量级节点列表,确定所述邻居节点列表之前,所述方法还包括:
定期侦听所述区块链网络,并根据网络侦听结果中其他节点的活跃全量级节点列表,更新所述活跃全量级节点列表;或者,
定期向区块链网络发送心跳包;根据心跳包反馈结果,更新所述活跃全量级节点列表。
10.根据权利要求8所述的方法,在所述构建活跃全量级节点列表之后,所述方法还包括:
根据所述活跃全量级节点列表,组装生成广播消息;
将所述广播消息传输至所述区块链网络,以供其他节点执行以下操作:侦听所述广播消息,并根据所述广播消息中的活跃全量级节点列表,对本地活跃全量级节点列表进行更新。
11.根据权利要求8所述的方法,其中,所述根据所述其他节点的基本属性,对所述其他节点进行筛选,得到候选节点,包括:
根据所述活跃全量级节点列表中所述全量级节点的基本属性,对所述活跃全量级节点列表中的所述全量级节点进行筛选,得到候选全量级节点。
12.一种邻居节点确定装置,包括:
邻居节点列表确定模块,用于在本机节点接入区块链网络时,确定邻居节点列表;
邻居节点列表更新模块,用于根据所述区块链网络中其他节点的基本属性,以及所述其他节点与所述本机节点之间的通信属性,更新所述邻居节点列表中的邻居节点;其中,所述通信属性用于表征所述本机节点与所述其他节点之间的数据传输性能;
其中,所述基本属性包括在册身份和/或管理状态。
13.根据权利要求12所述的装置,其中,所述邻居节点列表更新模块,包括:
候选节点得到单元,用于根据所述其他节点的基本属性,对所述其他节点进行筛选,得到候选节点;
目标排序结果得到单元,用于根据所述本机节点与各所述候选节点之间的通信属性,对各所述候选节点进行排序,得到目标排序结果,用于更新所述邻居节点列表中的邻居节点。
14.根据权利要求13所述的装置,其中,所述其他节点包括轻量级节点和全量级节点;所述候选节点包括候选轻量级节点和候选全量级节点;
所述目标排序结果得到单元,包括:
轻量级邻居节点更新子单元,用于根据所述候选轻量级节点中的所述轻量级节点与所述本机节点之间的通信属性,对各候选轻量级节点进行排序,得到轻量级目标排序结果,用于更新所述邻居节点列表中的轻量级邻居节点;和/或,
全量级邻居节点更新子单元,用于根据所述候选全量级节点中的所述全量级节点与所述本机节点之间的通信属性,对各候选全量级节点进行排序,得到全量级目标排序结果,用于更新所述邻居节点列表中的全量级邻居节点。
15.根据权利要求14所述的装置,其中,若所述其他节点包括轻量级节点,则所述候选节点得到单元,包括下述至少一种:
轻节点在册身份确定子单元,用于若所述轻量级节点的在册身份为黑名单成员,则禁止将所述轻量级节点作为候选轻量级节点;
轻节点在册身份确定子单元,还用于若所述轻量级节点的在册身份为白名单成员,则将所述轻量级节点作为置顶属性的候选轻量级节点;
轻节点管理状态确定子单元,用于若所述轻量级节点的管理状态为注册状态,则将所述轻量级节点作为置顶属性的候选轻量级节点;以及,
轻节点管理状态确定子单元,还用于若所述轻量级节点的管理状态为非注册状态,则将所述轻量级节点作为排序属性的候选轻量级节点。
16.根据权利要求15所述的装置,其中,所述轻量级邻居节点更新子单元,包括:
轻量级初始排序结果得到从单元,用于根据排序属性的候选轻量级节点与所述本机节点之间的通信属性,对所述排序属性的候选轻量级节点进行排序,得到轻量级初始排序结果;
轻量级目标排序结果得到从单元,用于将置顶属性的候选轻量级节点插入至所述轻量级初始排序结果中排序较高的位置,得到轻量级目标排序结果。
17.根据权利要求14所述的装置,其中,若所述其他节点包括全量级节点,则所述候选节点得到单元,包括下述至少一种:
全量级节点在册身份确定子单元,用于若所述全量级节点的在册身份为黑名单成员,则禁止将所述全量级节点作为候选全量级节点;
全量级节点在册身份确定子单元,还用于若所述全量级节点的在册身份为白名单成员,则将所述全量级节点作为置顶属性的候选全量级节点;
全量级节点管理状态确定子单元,用于若所述全量级节点的管理状态为连接状态,则将所述全量级节点作为置顶属性的候选全量级节点;以及,
全量级节点管理状态确定子单元,还用于若所述全量级节点的管理状态为非连接状态,则将所述全量级节点作为排序属性的候选全量级节点。
18.根据权利要求17所述的装置,其中,所述全量级邻居节点更新子单元,包括:
全量级初始排序结果得到从单元,用于根据排序属性的候选全量级节点与所述本机节点之间的通信属性,对所述排序属性的候选全量级节点进行排序,得到全量级初始排序结果;
全量级目标排序结果得到从单元,用于将置顶属性的候选全量级节点插入至所述全量级初始排序结果中排序较高的位置,得到全量级目标排序结果。
19.根据权利要求14-18任一项所述的装置,其中,若所述其他节点包括全量级节点,则所述邻居节点列表确定模块,包括下述至少一种:
侦听构建单元,用于侦听所述区块链网络,并根据网络侦听结果中其他节点的活跃全量级节点列表,构建活跃全量级节点列表;根据所述活跃全量级节点列表,确定所述邻居节点列表;
心跳包构建单元,用于向区块链网络发送心跳包,并根据心跳包反馈结果,构建活跃全量级节点列表;
连接确定单元,用于响应于区块链网络中的其他节点发送的连接请求,并根据所述连接请求的发起节点,确定邻居节点列表;
其中,所述邻居节点列表和所述活跃全量级节点列表存在部分节点重合。
20.根据权利要求19所述的装置,所述装置还包括:
活跃全量级节点列表更新模块,用于在构建活跃全量级节点列表之后,在所述根据所述活跃全量级节点列表,确定所述邻居节点列表之前,定期侦听所述区块链网络,并根据网络侦听结果中其他节点的活跃全量级节点列表,更新所述活跃全量级节点列表;或者,定期向区块链网络发送心跳包;根据心跳包反馈结果,更新所述活跃全量级节点列表。
21.根据权利要求19所述的装置,还包括:
广播消息组装模块,用于在所述构建活跃全量级节点列表之后,根据所述活跃全量级节点列表,组装生成广播消息;
广播消息传输模块,用于将所述广播消息传输至所述区块链网络,以供其他节点执行以下操作:侦听所述广播消息,并根据所述广播消息中的活跃全量级节点列表,对本地活跃全量级节点列表进行更新。
22.根据权利要求19所述的装置,其中,所述候选节点得到单元,包括:
候选全量级节点得到子单元,用于根据所述活跃全量级节点列表中所述全量级节点的基本属性,对所述活跃全量级节点列表中的所述全量级节点进行筛选,得到候选全量级节点。
23.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的一种邻居节点确定方法。
24.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-11中任一项所述的一种邻居节点确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010779203.0A CN111740915B (zh) | 2020-08-05 | 2020-08-05 | 邻居节点确定方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010779203.0A CN111740915B (zh) | 2020-08-05 | 2020-08-05 | 邻居节点确定方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111740915A CN111740915A (zh) | 2020-10-02 |
CN111740915B true CN111740915B (zh) | 2020-12-11 |
Family
ID=72658038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010779203.0A Active CN111740915B (zh) | 2020-08-05 | 2020-08-05 | 邻居节点确定方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111740915B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804299B (zh) * | 2020-12-30 | 2023-02-28 | 成都知道创宇信息技术有限公司 | 节点测绘方法、装置、测绘设备及可读存储介质 |
CN112995274B (zh) * | 2021-01-28 | 2023-03-21 | 中央财经大学 | 确定连接节点的方法、装置、设备及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108337219A (zh) * | 2017-11-27 | 2018-07-27 | 中国电子科技集团公司电子科学研究院 | 一种物联网防入侵的方法和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101798119B1 (ko) * | 2016-02-23 | 2017-11-16 | 주식회사 코인플러그 | 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 |
CN109150972B (zh) * | 2018-07-17 | 2021-07-23 | 湖南宸瀚信息科技有限责任公司 | 一种双层分片的高效区块链的共识机制的工作方法 |
CN110875938A (zh) * | 2018-08-31 | 2020-03-10 | 元一科技控股有限公司 | 一种区块链中信息的发送方法及装置 |
CN109451039B (zh) * | 2018-12-07 | 2021-06-04 | 上海分布信息科技有限公司 | 一种网络信息传输处理方法 |
-
2020
- 2020-08-05 CN CN202010779203.0A patent/CN111740915B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108337219A (zh) * | 2017-11-27 | 2018-07-27 | 中国电子科技集团公司电子科学研究院 | 一种物联网防入侵的方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111740915A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7138150B2 (ja) | 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム | |
US8276140B1 (en) | Adjustable virtual network performance | |
US9081617B1 (en) | Provisioning of virtual machines using an N-ARY tree of clusters of nodes | |
US9298513B2 (en) | Method and structure for autonomic application differentiation/specialization | |
US20110289119A1 (en) | Methods and systems for monitoring server cloud topology and resources | |
US10491535B2 (en) | Adaptive data synchronization | |
CN111740915B (zh) | 邻居节点确定方法、装置、设备和存储介质 | |
US20170279748A1 (en) | Information processing method and terminal, and computer storage medium | |
CN113742031A (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN106445473A (zh) | 一种容器部署方法及装置 | |
US9110861B2 (en) | Managing host computing devices with a host control component | |
US20130227568A1 (en) | Systems and methods involving virtual machine host isolation over a network | |
CN107666493B (zh) | 一种数据库配置方法及其设备 | |
US11223522B1 (en) | Context-based intelligent re-initiation of microservices | |
CN110391940A (zh) | 服务地址的响应方法、装置、系统、设备和存储介质 | |
US20210218824A1 (en) | Method and device for processing mini program data | |
CN111212126A (zh) | 一种区块链网络的数据传输方法、装置、设备和介质 | |
CN114070733A (zh) | 一种基于区块链网络的共识方法、装置及系统 | |
US9342291B1 (en) | Distributed update service | |
CN102984174A (zh) | 一种发布订阅系统中可靠性保障方法及系统 | |
CN109150981B (zh) | 区块链网络组网方法、装置、设备及计算机可读存储介质 | |
Hu et al. | Transactional mobility in distributed content-based publish/subscribe systems | |
CN102118422B (zh) | Reload对等网络的对等节点及其配置的更新方法和系统 | |
WO2017219775A1 (zh) | 一种配置状态回退方法、装置和计算机存储介质 | |
CN110418092B (zh) | 视频录制管理系统、方法、控制管理节点以及录制节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |