区块链节点扫描方法、设备和存储介质技术

技术编号:24763871 阅读:17 留言:0更新日期:2020-07-04 11:04
本发明专利技术提供一种区块链节点扫描方法、设备和存储介质,该方法包括:向待连接的节点发送连接请求,判断是否连接成功:否,则将该节点加入本地的内网节点列表;是,则获取该节点的验证信息并验证该验证信息,判断是否验证成功:是,则将该节点加入本地的外网节点列表,获取该节点的连接节点列表,判断连接节点列表中是否存在当前节点未请求连接过的第一节点:是,则将第一节点标记为待连接的节点,返回向待连接的节点发送连接请求。本发明专利技术实现了可以由任意一个或多个区块链节点执行、无需依赖于任何特定设备即可主动统计区块链节点数量。

Blockchain node scanning method, device and storage medium

【技术实现步骤摘要】
区块链节点扫描方法、设备和存储介质
本申请涉及区块链
,具体涉及一种区块链节点扫描方法、设备和存储介质。
技术介绍
区块链网络节点的数量可以作为区块链网络规模大小的评判依据,在现有的区块链节点数量统计方案中,通常由每个节点主动连接一个指定的服务器,然后由该服务器统计数据。上述区块链节点数量统计方案的缺陷在于,一方面,统计方式非常被动,只能等待节点连接,而无法主动进行统计;另一方面,上述方案依赖于指定的服务器,一旦要修改服务器或增加验证服务器,需要更新所有节点的配置。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种可主动统计区块链节点数量,且无需依赖于任何特定设备的区块链节点扫描方法、设备和存储介质。第一方面,本专利技术提供一种适用于区块链节点的区块链节点扫描方法,包括:向待连接的节点发送连接请求,判断是否连接成功:否,则将该节点加入本地的内网节点列表;是,则获取该节点的验证信息并验证该验证信息,判断是否验证成功:是,则将该节点加入本地的外网节点列表;以及,获取该节点的连接节点列表,判断连接节点列表中是否存在当前节点未请求连接过的第一节点:是,则将第一节点标记为待连接的节点,返回向待连接的节点发送连接请求。第二方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的区块链节点扫描方法。第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的区块链节点扫描方法。本专利技术诸多实施例提供的区块链节点扫描方法、设备和存储介质通过向所连接成功的外网节点获取连接节点列表,并请求连接所获取的连接节点列表中尚未连接的节点,完成对区块链网络中全部节点的扫描,从而实现了可以由任意一个或多个区块链节点执行、无需依赖于任何特定设备即可主动统计区块链节点数量;本专利技术一些实施例提供的区块链节点扫描方法、设备和存储介质进一步通过在连接成功后验证随机高度的区块哈希,避免将恶意伪装成区块链节点的设备识别为区块链节点,并保障对正在同步区块数据的新节点完成验证。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术一实施例提供的一种区块链节点扫描方法的流程图。图2为图1所示方法的一种优选实施方式的流程图。图3为图1所示方法的一种优选实施方式的流程图。图4为本专利技术一实施例提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1为本专利技术一实施例提供的一种区块链节点扫描方法的流程图。如图1所示,在本实施例中,本专利技术提供一种适用于区块链节点的区块链节点扫描方法,包括:S11:向待连接的节点发送连接请求,判断是否连接成功:否,则执行步骤S12:将该节点加入本地的内网节点列表;是,则执行步骤S13:获取该节点的验证信息并验证该验证信息,判断是否验证成功:是,则执行步骤S14:将该节点加入本地的外网节点列表;以及,S15:获取该节点的连接节点列表,判断连接节点列表中是否存在当前节点未请求连接过的第一节点:是,则执行步骤S16:将第一节点标记为待连接的节点,返回步骤S11。具体地,在区块链网络中,每个区块链节点需要与若干个其它区块链节点连接,因此每个区块链节点会在本地维护当前节点的连接节点列表。在本实施例中,上述连接节点列表具体包括主动连接节点列表out_peerlist和被动连接节点列表inner_peerlist;在另一些实施例中,区块链节点可根据实际需求配置不细分或根据不同策略细分的连接节点列表。以下以区块链节点A扫描节点并统计节点数为例,对上述方法进行示例性的阐述。在步骤S11中,节点A将本地的连接节点列表out_peerlistA和inner_peerlistA中的各节点标记为待连接的节点,并分别连接各个待连接的节点:节点A连接节点B失败,则执行步骤S12,在节点A本地的内网节点列表中添加节点B,基于节点B的扫描分支结束;节点A连接节点C成功,则执行步骤S13,向节点C获取验证信息VC,并对VC进行验证。具体地,在本实施例中,验证信息VC配置为节点A随机指定的多个随机高度中不大于节点C的当前区块高度HC且最接近HC的随机高度H1的区块哈希blockhash1;在另一些实施例中,还可以根据实际需求采用如图2所示的方法,或,本领域技术人员可以理解的其它方法配置并验证上述验证信息。当节点C返回的区块高度为H1的区块哈希blockhash1与节点A本地存储的区块高度为H1的区块哈希blockhash2不同时,验证失败,节点A认为节点C不是当前区块链网络的节点;当节点C返回的区块高度为H1的区块哈希blockhash1与节点A本地存储的区块高度为H1的区块哈希blockhash2相同时,验证成功,执行步骤S14,在节点A本地的外网节点列表中添加节点C;以及,步骤S15,获取节点C的连接节点列表out_peerlistC和inner_peerlistC,并判断out_peerlistC和inner_peerlistC中是否存在节点A未请求连接过的第一节点:否,则基于节点C的扫描分支结束;是,则执行步骤S16,将第一节点M标记为待连接的节点,返回步骤S11,请求连接节点M,基于节点M继续进行扫描。节点A连接更多节点进行扫描的过程可参照上述连接节点B或C进行扫描的过程,不再一一赘述。当基于每个节点的扫描分支都结束,未获取到新的未连接过的节点信息时,即可结束扫描,并根据节点A本地的内网节点列表和外网节点列表确定当前区块链网络的节点数量。上述示例以节点A主动进行扫描为例进行了示例性的阐述,在更多实施例中,任意一个或多个节点均可分别通过上述方法进行扫描,而不受限于任何特定的设备。上述实施例通过向所连接成功的外网节点获取连接节点列表,并请求连接所获取的连接节点列表中尚未连接的节点,完成对区块链网络中全部节点的扫描,从而实现了可以由任意一个或多个区块链节点执行、无需依赖于任何特定设备即可主动统计区块链节点数量。图2为图1所示方法的一种优选实施方式的流程图。如图2所示,在一优选实施例中,步骤S13包括:S131:获取该节点的当前高度,根据当前高度确定随机高度;S133:获取该节点的随机高度的第一区块哈希;<本文档来自技高网...

【技术保护点】
1.一种区块链节点扫描方法,其特征在于,适用于区块链节点,所述方法包括:/n向待连接的节点发送连接请求,判断是否连接成功:/n否,则将所述节点加入本地的内网节点列表;/n是,则获取所述节点的验证信息并验证所述验证信息,判断是否验证成功:/n是,则将所述节点加入本地的外网节点列表;以及,/n获取所述节点的连接节点列表,判断所述连接节点列表中是否存在当前节点未请求连接过的第一节点:/n是,则将所述第一节点标记为待连接的节点,返回所述向待连接的节点发送连接请求。/n

【技术特征摘要】
1.一种区块链节点扫描方法,其特征在于,适用于区块链节点,所述方法包括:
向待连接的节点发送连接请求,判断是否连接成功:
否,则将所述节点加入本地的内网节点列表;
是,则获取所述节点的验证信息并验证所述验证信息,判断是否验证成功:
是,则将所述节点加入本地的外网节点列表;以及,
获取所述节点的连接节点列表,判断所述连接节点列表中是否存在当前节点未请求连接过的第一节点:
是,则将所述第一节点标记为待连接的节点,返回所述向待连接的节点发送连接请求。


2.根据权利要求1所述的方法,其特征在于,所述获取所述节点的验证信息并验证所述验证信息,判断是否验证成功包括:
获取所述节点的当前高度,根据所述当前高度确定随机高度;
获取所述节点的所述随机高度的第一区块哈希,验证所述第一区块哈希与当前节点的所述随机高度的第二区块哈希是否相同:
是,则验证成功。


3.根据权利要求2所述的方法,其特征在于,所述随机...

【专利技术属性】
技术研发人员:李邦柱王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1