CN110324415A - 一种对等网络的路由实现方法、装置、设备和介质 - Google Patents

一种对等网络的路由实现方法、装置、设备和介质 Download PDF

Info

Publication number
CN110324415A
CN110324415A CN201910579130.8A CN201910579130A CN110324415A CN 110324415 A CN110324415 A CN 110324415A CN 201910579130 A CN201910579130 A CN 201910579130A CN 110324415 A CN110324415 A CN 110324415A
Authority
CN
China
Prior art keywords
node
routing table
identity
routing
peer
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.)
Granted
Application number
CN201910579130.8A
Other languages
English (en)
Other versions
CN110324415B (zh
Inventor
王玉操
张苗
孙君意
郑旗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910579130.8A priority Critical patent/CN110324415B/zh
Publication of CN110324415A publication Critical patent/CN110324415A/zh
Application granted granted Critical
Publication of CN110324415B publication Critical patent/CN110324415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种对等网络的路由实现方法、装置、设备和介质。该方法包括:通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。上述对等网络的路由实现方法,减小了网络攻击对网络正常运行的影响,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。

Description

一种对等网络的路由实现方法、装置、设备和介质
技术领域
本发明实施例涉及路由通信技术,尤其涉及一种对等网络的路由实现方法、装置、设备和介质。
背景技术
主流的开源区块链系统中都用到了P2P(Peer To Peer,对等网络)网络通信。P2P网络中的节点,通过路由协议发现邻居节点的路由信息,形成路由表。在需要发送消息时,基于路由表进行目标节点的选择和发送。对于区块链网络来说,节点需要向区块链网络中广播消息,因此也需要理由路由表中的邻居节点路由信息来进行广播消息的发送。
但是,在P2P网络中存在着很多安全威胁,例如Eclipse攻击,是指攻击者通过侵占节点的路由表,将足够多的虚假节点添加到某些节点的邻居节点集合中,从而在这些节点需要向外发送消息时,大概率是在向虚假的邻居节点发送,无效的消息发送增多,有效的消息发送减少,极端情况下,相当于这些节点被“隔离”于正常对等网络之外了。
如果上述P2P网络攻击存在于区块链所采用的P2P网络中,那么被隔离的节点将无法正常的广播发送消息,这会影响中心化的区块链网络的功能正常运行。
发明内容
本发明实施例提供一种对等网络的路由实现方法、装置、设备和介质,以优化对等网络的路由方案,减少攻击对网络正常运行的影响。
第一方面,本发明实施例提供了一种对等网络的路由实现方法,该方法包括:
通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;
将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;
在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。
第二方面,本发明实施例还提供了一种对等网络的路由实现装置,应用于对等网络节点中,所述装置包括:
设定身份路由表确定模块,用于通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;
设定身份路由表部署模块,用于将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;
消息发送模块,用于在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所述的对等网络的路由实现方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的对等网络的路由实现方法。
本发明实施例中,对等网络节点的路由层中部署两种路由表,一种为由满足设定身份条件的节点的路由信息构成的设定身份路由表,且设定身份路由表是节点上层确定的,路由信息真实有效;另一种为对等网络中的基础路由表。在对等网络节点产生消息发送需求时,基于设定身份路由表和基础路由表分别执行消息在对等网络中的发送操作。由此,即使对等网络节点基础路由表受到网络攻击使该对等网络节点被“隔离”,该对等网络节点仍能够通过设定身份路由表与满足设定身份条件的这些节点保持传输通信,进而,减小了网络攻击对网络正常运行的影响,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
附图说明
图1是本发明实施例一中的一种对等网络的路由实现方法的流程图;
图2是本发明实施例二中的一种对等网络的路由实现方法的流程图;
图3是本发明实施例三中的一种对等网络的路由实现方法的流程图;
图4是本发明实施例五中的一种对等网络的路由实现方法的流程图;
图5是本发明实施例六中的一种对等网络的路由实现装置的结构示意图;
图6是本发明实施例七中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种对等网络的路由实现方法的流程图,本实施例适用于在对等网络中通过设置多种路由表来进行消息路由的技术方案,该技术方案尤为适用于弱中心化的对等网络,例如存在特定身份节点的区块链网络。所谓弱中心化是指对等网络中的各节点由于功能身份的差异,而在消息通信方面存在不同优先级的通信需求。该方法可以由对等网络的路由实现装置来执行,该装置由软件和/或硬件实现,并具体配置于承载有P2P网络节点的计算机设备中。
如图1所示的一种对等网络的路由实现方法,由对等网络节点来执行,具体包括如下操作:
S110、通过节点上层,确定至少一个设定身份路由表,其中,设定身份路由表中的至少一个节点满足设定身份条件。
节点上层,是相对于节点路由层而言的。路由层是指基于设定路由协议来执行路由发现、消息路由控制的硬件和软件的集合。节点上层则是指实现非路由功能的其他层次,例如应用层,交互层等其他功能层。
设定身份条件,具体可以指的是网络节点的相同特征,例如可以是节点所承载的功能身份和所属的类型身份等,通常不同的身份条件会影响节点的路由通信需求。
设定身份路由表,由满足设定身份条件的至少一个节点的路由信息构成,例如是由相同节点类型的多个节点的路由信息构成,或者是由相同功能的多个节点的路由信息构成等。
节点上层首先辨识出满足设定身份条件的至少一个节点,然后根据这些节点的路由信息新建一张路由表,作为设定身份路由表。
值得注意的是,针对不同的对等网络应用场景,设定身份条件不同,进而节点上层确定的设定身份路由表也不同;针对同一对等网络应用场景,节点上层也可以分别根据多个设定身份条件,新建多张设定身份路由表。
本实施例中涉及的节点,可以是网络中的全部节点,也可以是网络中的部分节点,部分节点尤其可以是指网络中的主要节点(或称关键节点)。
S120、将设定身份路由表部署于节点的路由层,其中,路由层还部署于基础路由表。
本实施例中,节点的路由层中部署有两种路由表,一种是基础路由表,一种是设定身份路由表,其中,设定身份路由表的数量为一个或多个。
与设定身份路由表不同,基础路由表中的网络节点无需满足设定身份条件,也即基础路由表中的各个网络节点分别满足不同的身份条件,身份条件在基础路由表中可以不体现出来,无差别对待。其中,基础路由表中可以是网络中全部节点的路由信息,也可以是网络中部分节点路由信息,本实施例对此不做具体限定。
作为本实施例一种可选的实施方式,基础路由表可以是基于对等网络的路由发现协议形成的。
路由发现协议,也即邻居发现协议,工作在节点网络层,负责在链路上发现其他节点和相应的节点地址,由此确定可用路由,维护关于可用路径和其他活动节点的信息可达性。
当有新节点加入网络时,新节点附近的节点会基于路由发现协议发现这个新节点,并在获取新节点地址之后,将新节点路由信息添加至基础路由表中,对基础路由表进行更新。
值得指出的是,基础路由表以及各个设定身份路由表之间是相互独立的。每个路由表对应一个路由子层,各个路由子层之间是可以进行交互的,例如设定身份路由表所属的路由子层从基础路由表所属路由子层中获取节点路由信息,具体的,在新建设定身份路由表时,确定各个设定身份节点之后,即可在通过查询基础路由表以获取这些设定身份节点的路由信息。
路由子层之间是相互独立的,可以设置有或没有优先级。优选是,通信的安全性、可靠性的需求高的设定身份路由表所属路由子层的优先级较高。高优先级的路由子层和低优先级的路由子层之间可以交互信息,例如获取路由信息。
对于网络节点而言,通常可以具备一种或几种设定身份,则网络节点中部署有与其身份对应的路由表。基础路由表中可包括各种身份节点的路由信息,但基础路由表中并不区分节点身份。
S130、在产生消息发送需求时,基于设定身份路由表和基础路由表,分别执行消息在对等网络中的发送。
路由层部署的路由表,是节点进行路由控制的消息传输时的依据。本实施例中,路由层中部署了设定身份路由表和基础路由表,进而,在节点具备消息发送需求时,分别基于设定身份路由表和基础路由表,在对等网络中执行消息发送的操作。
也即,在设定身份路由表中确定出一些第一目标发送节点之后,执行分别向这些第一目标发送节点发送消息的操作;在基础路由表中也确定出一些第二目标发送节点之后,执行分别向这些第二目标发送节点发送消息的操作。
其中,在设定身份路由表中确定第一目标发送节点的方式与在基础路由表中确定第二目标发送节点的方式可以相同,也可以不同。通常情况下,可以采用随机选取的方式来分别确定第一目标发送节点和第二目标发送节点,一般在设定身份路由表中随机选取第一目标发送节点的数量不超过10个,在基础路由表中选取第二目标发送节点的数量不超过20个。
作为本实施例一种可选的实施方式,可以将在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送,具体为:
在产生消息发送需求时,采用设定身份路由表和基础路由表各自的路由表筛选规则,分别从设定身份路由表和基础路由表中确定各自的目标发送节点,将所述消息分别发送给各目标发送节点。
其中,路由表筛选规则可以是距离远近筛选规则、连接可靠性筛选规则、数量筛选规则以及随机筛选规则中的至少一种。
在上述实施方式中,在设定身份路由表和基础路由表中分别确定各自的目标发送节点时,具体是依据设定身份路由表和基础路由表各自的路由表筛选规则来分别确定,二者的路由表筛选规则可以相同,也可以不同,本实施例对此不做具体限定。
其中,距离远近筛选规则指的是根据路由表中各节点与发送节点的路由距离进行筛选,例如是在路由表中筛选出距离发送节点的路由距离最近的节点作为目标发送节点。
连接可靠性筛选规则指的是根据路由表中各节点与发送节点之间的历史通信连接的可靠性进行筛选,例如是在路由表中筛选出与发送节点的历史通信连接可靠性较高的节点作为目标发送节点。
数量筛选规则指的是在路由表中筛选出设定数量的节点作为目标发送节点;随机筛选规则指的是在路由表中进行随机筛选。
具体的,在路由表筛选规则为单一筛选规则,筛选得到的节点数量较多时,可以结合距离远近筛选规则、连接可靠性筛选规则、数量筛选规则以及随机筛选规则中的多个筛选规则作为路由表筛选规则,进行目标发送目标的筛选。
本发明实施例中,对等网络节点的路由层中部署两种路由表,一种为由满足设定身份条件的节点的路由信息构成的设定身份路由表,且设定身份路由表是节点上层确定的,路由信息真实有效;另一种为对等网络中的基础路由表。在对等网络节点产生消息发送需求时,基于设定身份路由表和基础路由表分别执行消息在对等网络中的发送操作。由此,即使对等网络节点基础路由表受到网络攻击使该对等网络节点被“隔离”,该对等网络节点仍能够通过设定身份路由表与满足设定身份条件的这些节点保持传输通信,进而,减小了网络攻击对网络正常运行的影响,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
实施例二
图2是本发明实施例二中的一种对等网络的路由实现方法的流程图,本发明实施例在上述各实施例的技术方案的基础上进行具体化。
其中,本实施例提供的对等网络的路由实现方法,还包括:
在接收到新节点的接入消息时,获取新节点的身份;
根据新节点的身份,将优先级等于或低于新节点身份的路由表传输给新节点;其中,基础路由表的优先级为最低优先级。
如图2所示的一种对等网络的路由实现方法,具体包括如下操作:
S210、通过节点上层,确定至少一个设定身份路由表,其中,设定身份路由表中的至少一个节点满足设定身份条件。
S220、将设定身份路由表部署于节点的路由层,其中,路由层还部署于基础路由表。
S230、在产生消息发送需求时,基于设定身份路由表和基础路由表,分别执行消息在对等网络中的发送。
S240、在接收到新节点的接入消息时,获取新节点的身份。
当某个新节点上线时,与其首先接入的节点(即bootstrap节点)建立通信,可以向bootstrap节点声明自己的节点身份信息,以使bootstrap节点获知新节点的节点身份信息;还可以是bootstrap节点通过其上层(例如是应用层)获取新节点的节点身份信息。其中,新节点上线可以指的是新节点新加入网络,也可以指的是节点断线后重新上线。
具体的,节点身份信息是根据P2P网络具体的应用场景确定的,可以是节点类型、节点层级或者节点功能,还可以是节点优先级等等。
S350、根据新节点的身份,将优先级等于或低于新节点身份的路由表传输给新节点;其中,基础路由表的优先级为最低优先级。
本实施例中,为路由表设置优先级,基础路由表的优先级为最低优先级,设定身份路由表的优先级相对于基础路由表较高。针对存在多个设定身份路由表的情况,根据设定身份的不同,也分别为设定身份路由表设置优先级,设定身份的等级越高,相应的设定身份路由表的优先级也越高。例如,设定身份为节点类型,分别为重要节点和普通节点,与重要节点对应的设定身份路由表的优先级要高于与普通节点对应的设定身份路由表。
具体可以是,bootstrap节点在获取了新节点的身份信息之后,确定与新节点身份信息对应的新节点身份路由表,以及优先级低于新节点身份路由表的设定身份路由表,进而,根据预设的规则将新节点身份路由表传输至新节点,或者将新节点身份路由表以及优先级低于新节点身份路由表的设定身份路由表传输至新节点。
具体还可以是,bootstrap节点在获取了新节点的身份信息之后,确定与新节点身份信息对应的新节点身份节点列表,以及身份等级低于新节点身份信息的节点列表,进而,根据预设的规则将新节点身份节点列表,或者将新节点身份节点列表以及身份等级低于新节点身份信息的节点列表传输至新节点,以使新节点在接收到设定身份的节点列表之后,获取对应的路由信息并创建设定身份路由表。
除此之外,可以是bootstrap节点将基础路由表也传输给新节点,也可以是新节点基于路由发现协议去创建基础路由表,本实施例对此也不做具体限定。
新节点接收到或者创建好设定身份路由表以及基础路由表之后,在路由层进行相应的部署,进而在新节点产生消息发送需求时,可以基于设定身份路由表和基础路由表,分别执行消息在对等网络中的发送。
本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。
在上述技术方案中,当存在新节点上线时,新节点的bootstrap节点确定新节点的身份信息后,向新节点传输优先级等于或低于新节点身份的路由表,以使新节点路由层中也部署有设定身份路由表和基础路由表,进而,即使新节点基础路由表受到网络攻击使该新节点被“隔离”,该新节点仍能够通过设定身份路由表与设定身份节点保持传输通信,以此减小了网络攻击对网络正常运行的影响,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
实施例三
图3是本发明实施例三中的一种对等网络的路由实现方法的流程图,本发明实施例在上述各实施例的技术方案的基础上进行具体化。
其中,对等网络的各节点中部署有区块链系统数据,也即本实施例中对等网络节点为区块链节点,进而,将通过节点上层,确定至少一个设定身份路由表,具体为:
通过节点部署的区块链功能层,确定实现对应功能的设定身份的节点,作为设定功能身份节点,将设定功能身份节点的路由信息添加到设定身份路由表中,其中,设定功能身份节点在区块链中具有实现所述功能的权限,非设定功能身份节点在区块链中不具有实现所述功能的权限。
如图3所示的一种对等网络的路由实现方法,由部署有区块链系统数据的对等网络节点来执行,具体包括如下操作:
S310、通过节点部署的区块链功能层,确定实现对应功能的设定身份的节点,作为设定功能身份节点,其中,设定功能身份节点在区块链中具有实现所述功能的权限,非设定功能身份节点在区块链中不具有实现所述功能的权限。
区块链功能层,可以指的是区块链系统中用于实现某种功能的协议层,例如可以是共识层、交互控制层或接口层等。其中,区块链功能层基于其封装的具体协议可以在网络节点中确定出与具体协议匹配的设定功能身份节点,设定功能身份节点的设定身份即为能够实现设定的功能。
在本实施例中,按照是否能够实现某种功能,将区块链节点划分为两类,一类是设定功能身份节点,能够实现对应的功能,另一类是非设定功能身份节点,不能实现对应的功能。其中,可以优先保护设定功能身份节点的网络安全。
S320、将设定功能身份节点的路由信息添加到设定身份路由表中。
在通过节点部署的区块链功能层确定了设定功能身份节点之后,获取各设定功能身份节点的路由信息,添加至设定身份路由表中,完成对设定身份路由表的创建。
作为本实施例一种可选的实施方式,可以将S320具体为S321-S322:
S321、通过节点的区块链功能层将设定功能身份节点的标识列表发送给节点的路由层。
区块链功能层,确定出区块链系统中的设定功能身份节点之后,获取这些设定功能身份节点的标识信息,形成标识列表发送至节点的路由层。
S322、通过节点的路由层,根据标识列表,并基于路由发现协议或已有路由表确定设定功能身份节点的路由信息,并添加到设定身份路由表中。
节点的路由层,接收到设定功能身份节点的标识列表之后,分别获取标识列表中各个设定功能身份节点的路由信息,添加至设定身份路由表中完成对设定身份路由表的创建。
具体的,路由层可以在根据设定功能身份节点的标识信息在已有的基础路由表中的查询其路由信息,也可以基于路由发现协议重新获取各设定功能身份节点的路由信息。
S330、将设定身份路由表部署于节点的路由层,其中,路由层还部署于基础路由表。
在本实施例中,优先保护的是设定功能身份节点的网络安全,进而,将与设定功能身份节点对应的设定身份路由表只部署在设定功能身份节点的路由层中,非设定功能身份节点中只部署基础路由表。
S340、在产生消息发送需求时,基于设定身份路由表和基础路由表,分别执行消息在对等网络中的发送。
在设定功能身份节点产生消息发送需求时,设定功能身份节点基于设定身份路由表和基础路由表,分别执行消息在对等网络中的发送操作。
在非设定功能身份节点产生消息发送需求时,非设定功能身份节点只基于基础路由表,执行消息在对等网络中的发送操作。
由此,即使设定功能身份节点的基础路由表受到网络攻击使该设定功能身份节点被“隔离”,该设定功能身份节点仍能够通过设定身份路由表与其他设定功能身份节点保持传输通信,以此减小了网络攻击对网络正常运行的影响,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
当存在新区块链节点上线时,新节点与其首先接入的bootstrap节点建立通信,可以是新区块链节点向bootstrap节点声明自己的节点身份信息,以使bootstrap节点获知新区块链节点的节点身份信息;还可以是bootstrap节点通过区块链功能层获取新区块链节点的节点身份信息。
bootstrap节点根据新区块链节点的节点身份信息,判断新区块链节点是否为设定功能身份节点,如果是,则将设定身份路由表提供给新区块链节点,如果不是,则不将设定身份路由表提供给新区块链节点。bootstrap节点还可以将基础路由表提供给新区块链节点,或者是新区块链节点基于路由发现协议去形成基础路由表。其中,bootstrap节点提供给新区块链节点的设定身份路由表是全局的,基础路由表可能是局部的。
当设定功能身份节点存在变更时,设定身份路由表也需进行变更。区块链功能层,重新确定出实现对应功能的设定身份的节点,作为设定功能身份节点,并将设定功能身份节点的路由信息添加到设定身份路由表中,将设定身份路由表中不满足设定身份条件的节点的路由信息移除,以此完成对设定身份路由表的变更。设定功能身份节点将路由层中部署的设定身份路由表进行变更后,即可在产生消息发送需求时,基于设定身份路由表和基础路由表,分别执行消息在对等网络中的发送操作。然而,非设定功能身份节点路由层中没有部署设定身份路由表,故其路由层部署的基础路由表也无需变更。
实施例四
本发明实施例在上述各实施例的技术方案的基础上,提供了几种具体的实施方式。
作为本实施一种具体的实施方式,所述区块链功能层为共识层,设定功能身份节点为基于共识协议确定的至少两个候选出块节点,其中,候选出块节点是在设定周期内负责产生区块的节点,非候选出块节点在设定周期内不具有产生区块的权限。
共识层,主要用于封装网络节点的各类共识协议算法,基于共识层的共识协议可以确定出在设定周期内负责产生区块的候选出块节点,例如是基于共识层的DPoS(Delegated Proof of Stake,股份授权证明机制)共识机制确定出候选出块节点。
候选出块节点,指的是经过共识机制选举的在一个出块周期内拥有记账权的节点,在对应的出块周期负责记账产生区块;非候选出块节点,指的是在一个出块周期内不具有记账权的节点,在对应的出块周期内不负责记账产生区块。
在区块链系统中,每个节点均有可能基于DPoS共识机制,在一个出块周期内被选举为候选出块节点,其他节点作为没有产生区块权限的非候选出块节点。在经过共识机制后,每个节点都能够获知哪些节点是候选出块节点,至少知道候选出块节点的节点标识。由于节点参与了投票,可获知候选出块节点的状态,所以每个节点都至少与一个候选出块节点是能够通信的,进而也就能够获知至少一个候选出块节点的路由地址信息。
共识层,将候选出块节点的标识列表发送给路由层,路由层接收到标识列表之后,基于路由发现协议或者已有路由表获取到候选出块节点的路由信息,添加到候选出块节点路由表中。
候选出块节点将候选出块节点路由表部署于其路由层,也即候选出块节点的路由层中部署基础路由表以及候选出块节点路由表,进而在其在产生消息发送需求时,基于候选出块节点路由表和基础路由表,分别执行消息在区块链系统中的发送操作。
非候选出块节点的路由层中只部署基础路由表,在其在产生消息发送需求时,只基于基础路由表执行消息在区块链系统中的发送操作。
由此,即使候选出块节点的基础路由表受到网络攻击使该候选出块节点被“隔离”,该候选出块节点仍能够通过候选出块节点路由表与其他候选出块节点保持传输通信,以此减小了网络攻击对网络正常运行的影响,保证了候选出块节点的产生区块的能力,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
当存在新区块链节点上线时,新节点与其首先接入的bootstrap节点建立通信,可以是新区块链节点向bootstrap节点声明自己是否为候选出块节点,也可以是bootstrap节点通过共识层确定新区块链节点是否为候选出块节点。
如果新区块链节点为候选出块节点(断线后重新上线),bootstrap节点则将候选出块节点路由表提供给新区块链节点,否则,不将候选出块节点路由表提供给新区块链节点。bootstrap节点还可以将基础路由表提供给新区块链节点,或者是新区块链节点基于路由发现协议去形成基础路由表。其中,bootstrap节点提供给新区块链节点的候选出块节点路由表是全局的,基础路由表可能是局部的。
进而,在新区块链节点为候选出块节点时,依旧可以基于候选出块节点路由表和基础路由表,分别执行消息在区块链系统中的发送操作。
当一个出块周期结束,基于共识机制重新选举候选出块节点时,候选出块节点路由表也需进行变更。共识层,重新确定出各个候选出块节点,并将各个候选出块节点的标识列表提供给路由层,以使路由层获取到各个候选出块节点的路由地址后更新候选出块节点路由表。候选出块节点的变更,对基础路由表并无影响,故基础路由表无需变更。
作为本实施另一种具体的实施方式,区块链功能层为交互控制层,设定功能身份节点为基于中心指令设定的监督节点,其中,监督节点在区块链网络中用于进行区块数据全量验证,非监督节点在区块链网络中用于进行区块数据局部验证或不验证。
交互控制层,主要用于基于交互指令来对节点进行控制,基于交互控制层的交互控制协议可以确定出基于中心指令设定的监督节点以及其他非监督节点。监督节点和非监督节点的角色通常在初始部署区块链时通过中心化指令来确定。
交互控制层,将监督节点的标识列表发送给路由层,路由层接收到标识列表之后,基于路由发现协议或者已有路由表获取到监督节点的路由信息,添加到监督节点路由表中。
监督节点将监督节点路由表部署于其路由层,也即监督节点的路由层中部署基础路由表以及监督节点路由表,进而在其在产生消息发送需求时,基于监督节点路由表和基础路由表,分别执行消息在区块链系统中的发送操作。
非监督节点的路由层中只部署基础路由表,在其在产生消息发送需求时,只基于基础路由表执行消息在区块链系统中的发送操作。
由此,即使监督节点的基础路由表受到网络攻击使该监督节点被“隔离”,该监督节点仍能够通过监督节点路由表与其他监督节点保持传输通信,以此减小了网络攻击对网络正常运行的影响,保证了监督节点进行区块数据全量验证的能力,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
当存在新区块链节点上线时,新节点与其首先接入的bootstrap节点建立通信,可以是新区块链节点向bootstrap节点声明自己是否为监督节点,也可以是bootstrap节点通过交互控制层确定新区块链节点是否为监督节点。
如果新区块链节点为监督节点,bootstrap节点则将监督节点路由表提供给新区块链节点,否则,不将监督节点路由表提供给新区块链节点。bootstrap节点还可以将基础路由表提供给新区块链节点,或者是新区块链节点基于路由发现协议去形成基础路由表。其中,bootstrap节点提供给新区块链节点的监督节点路由表是全局的,基础路由表可能是局部的。
进而,在新区块链节点为监督节点时,依旧可以基于监督节点路由表和基础路由表,分别执行消息在区块链系统中的发送操作。
当监督节点存在变更时,监督节点路由表也需进行变更。交互控制层,重新确定出各个监督节点,并将各个监督节点的标识列表提供给路由层,以使路由层获取到各个监督节点的路由地址后更新监督节点路由表。监督节点的变更,对基础路由表并无影响,故基础路由表无需变更。
作为本实施又一种具体的实施方式,区块链功能层为接口层,设定功能身份节点为基于接口协议设定的轻量级节点,其中,轻量级节点在区块链网络中用于进行部分区块数据的验证和存储,其他普通节点在区块链网络中用于进行全部区块数据的验证和存储。
接口层,主要用于封装网络节点的接口协议,基于接口层的接口协议中设定的交互方式,可以确定出轻量级节点还是其他普通节点。轻量级节点可以通过与其他节点交互并识别出哪些是轻量级节点,从而添加到对应身份的路由表中。或者,轻量级节点也可以从其他节点中直接获取该节点维护的轻量级节点身份路由表。每个轻量级节点中维护的轻量级节点身份路由表可以包括部分或全部在网的轻量级节点。
轻量级节点是相对于全量节点而言,一般只传输、计算和存储部分的区块链数据,通常被大多数用户所采用,可配置在用户终端中,对硬件的要求较低。通过设置轻量级节点身份路由表,能够对轻量级节点的路由通信进行有效保护。
接口层,将轻量级节点的标识列表发送给路由层,路由层接收到标识列表之后,基于路由发现协议或者已有路由表获取到轻量级节点的路由信息,添加到轻量级节点路由表中。
轻量级节点将轻量级节点路由表部署于其路由层,也即轻量级节点的路由层中部署基础路由表以及轻量级节点路由表,进而在其在产生消息发送需求时,基于轻量级节点路由表和基础路由表,分别执行消息在区块链系统中的发送操作。
其他普通节点的路由层中只部署基础路由表,在其在产生消息发送需求时,只基于基础路由表执行消息在区块链系统中的发送操作。
由此,即使轻量级节点的基础路由表受到网络攻击使该轻量级节点被“隔离”,该轻量级节点仍能够通过轻量级节点路由表与其他轻量级节点保持传输通信,以此减小了网络攻击对网络正常运行的影响,保证了轻量级节点进行部分区块数据的验证和存储的能力,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
当存在新区块链节点上线时,新节点与其首先接入的bootstrap节点建立通信,可以是新区块链节点向bootstrap节点声明自己是否为轻量级节点,也可以是bootstrap节点通过接口层确定新区块链节点是否为轻量级节点。
如果新区块链节点为轻量级节点,bootstrap节点则将轻量级节点路由表提供给新区块链节点,否则,不将轻量级节点路由表提供给新区块链节点。bootstrap节点还可以将基础路由表提供给新区块链节点,或者是新区块链节点基于路由发现协议去形成基础路由表。其中,bootstrap节点提供给新区块链节点的轻量级节点路由表是全局的,基础路由表可能是局部的。
进而,在新区块链节点为轻量级节点时,依旧可以基于轻量级节点路由表和基础路由表,分别执行消息在区块链系统中的发送操作。
当轻量级节点存在变更时,轻量级节点路由表也需要进行变更。接口层,重新确定出各个轻量级节点,并将各个轻量级节点的标识列表提供给路由层,以使路由层获取到各个轻量级节点的路由地址后更新轻量级节点路由表。轻量级节点的变更,对基础路由表并无影响,故基础路由表无需变更。
上述以一种特殊身份节点为例进行了说明,实际场景中,也可以部署两种或更多种身份的设定身份路由表。本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。
在上述技术方案中,按照节点实现的具体功能将区块链节点划分为设定功能身份节点和非设定功能身份节点,进而根据对应的区块链功能层确定与设定功能身份对应的设定身份路由表,并将设定身份路由表部署在设定功能身份节点的路由层中,以使设定功能身份节点在其在产生消息发送需求时,可以基于设定身份路由表和基础路由表,分别执行消息在区块链系统中的发送操作。从而达到“即使设定功能身份节点的基础路由表受到网络攻击使该候选出块节点被‘隔离’,该设定功能身份节点仍能够通过设定身份路由表与其他设定功能身份节点保持传输通信”的技术效果,保证了区块链核心功能不受影响,减小了网络攻击对网络正常运行的影响,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
值得指出的是,上述仅是以设定功能身份节点以及非设定功能身份为例进行说明,在区块链系统中,实际存在多种类型的设定功能身份节点,每种设定功能身份节点的路由层中除了部署与其本身设定身份对应的设定身份路由表之外,还可以根据实际需求部署至少一个与其他设定身份对应的其他设定身份路由表,本实施例对此不做具体限定。例如,在候选出块节点的路由层中,还可以部署监督节点路由表和/或轻量级节点路由表。一般情况下,设定功能身份节点部署的各个设定身份路由表的优先级等于或低于与其设定功能身份对应的设定身份路由表的优先级,例如,假设候选出块节点路由表、监督节点路由表以及轻量级节点路由表的优先级依次降低,那么监督节点路由层部署的设定身份路由表可以是监督节点路由表以及轻量级节点路由表,不可以是候选出块节点路由表。
实施例五
图4是本发明实施例五中的一种对等网络的路由实现方法的流程图,本发明实施例在上述各实施例的技术方案的基础上进行具体化。
其中,将通过节点上层,确定至少一个设定身份路由表具体为:
通过管理交互层接收指定节点指令,将指定节点的路由信息添加至设定身份路由表中。
本实施例中,管理交互层,主要用于接收设定配置指令,其中,设定配置指令可以是指定节点身份的指令,例如将企业的内网节点指定为候选超级节点,或者将设定IP(Internet Protocol Address,网际协议地址)网段的节点指定候选超级节点,只有候选超级节点具备被选举为超级节点的资格,超级节点具有产生区块的权限。
以10家企业为例,每家企业包括3个区块链节点,将这30个节点指定为联盟节点,具备被选举为超级节点的资格(也即为候选超级节点的资格),其他普通节点不具备被选举为超级节点的资格。具体的,可以通过共识机制,在这30个联盟节点中选举出预设数量的超级节点,用于产生区块。由此,本实施提供的区块链系统中,包括超级节点、联盟节点和普通节点。
如图4所示的一种对等网络的路由实现方法,由超级节点执行,具体包括如下操作:
S410、通过管理交互层接收指定节点指令,确定网络中的各个联盟节点。
通过管理交互层接收到指定节点指令,根据指定节点指令在网络节点中确定出具备被选举为超级节点的联盟节点。
S420、通过共识层,在各个联盟节点中确定超级节点,并将超级节点的路由信息添加至超级节点路由表中,并将其他联盟节点的路由信息添加至联盟节点路由表中。
共识层,根据共识机制在联盟节点中选举出超级节点,将超级节点的标识列表发送至路由层,路由层根据标识列表,基于路由发现协议或者已有路由表获取超级节点的路由信息,添加至超级节点路由表中。同时,共识层将未被选举为超级节点的其余联盟节点的标识列表发送至路由层,以使路由层获取到这些联盟节点的路由信息后形成联盟节点路由表。
S430、将超级节点路由表、联盟节点路由表以及基础路由表部署于路由层。
超级节点的路由层中分别部署超级节点路由表、联盟节点路由表以及基础路由表,一个路由表对应一个路由子层,路由子层之间是可以相互交互的,例如是获取基础路由表中的路由信息。
S440、在产生消息发送需求时,基于超级节点路由表、联盟节点路由表以及基础路由表,分别执行消息在区块链网络中的发送操作。
超级节点具有消息发送需求时,在同层节点中可以随机选取不超过10个节点进行连接,例如在超级节点路由表中选取三个节点进行连接,在下层节点中选取不超过20个节点进行连接,进而,超级节点可以基于超级节点路由表、联盟节点路由表以及基础路由表,分别执行消息在区块链网络中的发送操作。
关于联盟节点,其优先级低于超级节点,共识层仅将其余联盟节点的标识列表发送至路由层,以使路由层获取到这些联盟节点的路由信息后形成联盟节点路由表,进而,联盟节点路由层中只部署联盟节点路由表以及基础路由表。在联盟节点具有消息发送需求时,在同层节点(即联盟节点)中可以随机选取不超过10个节点进行连接,在下层节点(即普遍节点)中选取不超过20个节点进行连接,进而,超级节点可以基于联盟节点路由表和基础路由表,分别执行消息在区块链网络中的发送操作。
关于普通节点,其优先级低于联盟节点,其路由层只部署基础路由表,在其具有消息发送需求时,只基于基础路由表执行消息在区块链网络中的发送操作。
当存在新节点上线时,新节点首先接入的bootstrap节点根据新节点的身份信息,向新节点传输新节点所在层的节点路由表以及其下层节点路由表。新节点获取到路由信息之后,主动与同层以及下层的节点建立P2P连接,并通过加密、身份认证来保证通信安全。
当超级节点存在变更时,对应的超级节点路由表和联盟节点路由表均需要更新,将重新选举的超级节点的路由信息添加至超级节点路由表中,其余的联盟节点的路由信息添加至联盟节点路由表中。超级节点的变更对基础路由表无影响,基础路由表无需变更。
本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。
在上述技术方案中,对节点身份的区分可以根据实际需求进行确定,具体通过管理交互层接收到的指定节点指令来确定,例如,在所有联盟链的节点中,希望来自于同一企业的节点的通信优先级更高,则可以单独组建一张内部节点的路由表作为最高优先级的路由表,部署在内部节点的路由层中,进而对这些内部节点进行路由安全保护。其中,路由表优先级可以实际需要设置有多个层级。
实施例六
图5为本发明实施例六提供的一种对等网络的路由实现装置的结构示意图,该装置由软件和/或硬件实现,并具体配置于承载有P2P网络节点的计算机设备中。
如图5所示,本实施例提供的对等网络的路由实现装置,应用于对等网络节点中,具体包括:设定身份路由表确定模块510、设定身份路由表部署模块520和消息发送模块530。其中,
设定身份路由表确定模块510,用于通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;
设定身份路由表部署模块520,用于将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;
消息发送模块530,用于在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。
本发明实施例中,对等网络节点的路由层中部署两种路由表,一种为由满足设定身份条件的节点的路由信息构成的设定身份路由表,且设定身份路由表是节点上层确定的,路由信息真实有效;另一种为对等网络中的基础路由表。在对等网络节点产生消息发送需求时,基于设定身份路由表和基础路由表分别执行消息在对等网络中的发送操作。由此,即使对等网络节点基础路由表受到网络攻击使该对等网络节点被“隔离”,该对等网络节点仍能够通过设定身份路由表与满足设定身份条件的这些节点保持传输通信,进而,减小了网络攻击对网络正常运行的影响,增强了网络攻击的作恶难度,使系统的稳定性得到了进一步的提升。
具体的,所述基础路由表基于对等网络的路由发现协议形成。
进一步的,消息发送模块530,具体用于在产生消息发送需求时,采用所述设定身份路由表和所述基础路由表各自的路由表筛选规则,分别从所述设定身份路由表和所述基础路由表中确定各自的目标发送节点,将所述消息分别发送给各所述目标发送节点。其中,
所述路由表筛选规则包括下述至少一个:距离远近筛选规则、连接可靠性筛选规则、数量筛选规则和随机筛选规则。
进一步的,所述对等网络的各节点中部署有区块链系统数据,则设定身份路由表确定模块510,具体包括:
设定功能身份节点确定单元,用于通过所述节点部署的区块链功能层,确定实现对应功能的设定身份的节点,作为设定功能身份节点,其中,所述设定功能身份节点在区块链中具有实现所述功能的权限,非设定功能身份节点在区块链中不具有实现所述功能的权限;
路由信息添加单元,用于将所述设定功能身份节点的路由信息添加到所述设定身份路由表中。
进一步的,路由信息添加单元,具体用于通过所述节点的区块链功能层将所述设定功能身份节点的标识列表发送给所述节点的路由层;通过所述节点的路由层,根据所述标识列表,并基于路由发现协议或已有路由表确定所述设定功能身份节点的路由信息,并添加到所述设定身份路由表中。
可选的,所述区块链功能层为共识层,所述设定功能身份节点为基于共识协议确定的至少两个候选出块节点,其中,所述候选出块节点是在设定周期内负责产生区块的节点,非候选出块节点在所述设定周期内不具有产生区块的权限。
可选的,所述区块链功能层为交互控制层,所述设定功能身份节点为基于中心指令设定的监督节点,其中,所述监督节点在区块链网络中用于进行区块数据全量验证,所述非监督节点在区块链网络中用于进行区块数据局部验证或不验证。
可选的,所述区块链功能层为接口层,所述设定功能身份节点为基于接口协议设定的轻量级节点,其中,所述轻量级节点在区块链网络中用于进行部分区块数据的验证和存储,其他普通节点在区块链网络中用于进行全部区块数据的验证和存储。
进一步的,设定身份路由表确定模块510,还可以具体用于通过管理交互层接收指定节点指令,将指定节点的路由信息添加至所述设定身份路由表中。
进一步的,上述对等网络的路由实现装置,还包括:
节点上线模块,用于在接收到新节点的接入消息时,获取所述新节点的身份;根据所述新节点的身份,将优先级等于或低于所述新节点身份的路由表传输给所述新节点;其中,所述基础路由表的优先级为最低优先级。
本发明实施例所提供的对等网络的路由实现装置可执行本发明任意实施例所提供的对等网络的路由实现方法,具备执行方法相应的功能模块和有益效果。
实施例七
图6示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图6显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种对等网络的路由实现方法。也即,所述处理单元执行所述程序时实现:
通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;
将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;
在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。
实施例八
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的一种对等网络的路由实现方法。也即,该程序被处理器执行时实现:
通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;
将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;
在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)域连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (13)

1.一种对等网络的路由实现方法,其特征在于,由对等网络节点来执行,所述方法包括:
通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;
将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;
在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。
2.根据权利要求1所述的方法,其特征在于,所述基础路由表基于对等网络的路由发现协议形成。
3.根据权利要求1或2所述的方法,其特征在于,在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送包括:
在产生消息发送需求时,采用所述设定身份路由表和所述基础路由表各自的路由表筛选规则,分别从所述设定身份路由表和所述基础路由表中确定各自的目标发送节点,其中所述路由表筛选规则包括下述至少一个:距离远近筛选规则、连接可靠性筛选规则、数量筛选规则和随机筛选规则;
将所述消息分别发送给各所述目标发送节点。
4.根据权利要求1所述的方法,其特征在于,所述对等网络的各节点中部署有区块链系统数据,则通过节点上层,确定至少一个设定身份路由表包括:
通过所述节点部署的区块链功能层,确定实现对应功能的设定身份的节点,作为设定功能身份节点,其中,所述设定功能身份节点在区块链中具有实现所述功能的权限,非设定功能身份节点在区块链中不具有实现所述功能的权限;
将所述设定功能身份节点的路由信息添加到所述设定身份路由表中。
5.根据权利要求4所述的方法,其特征在于,将所述设定功能身份节点的路由信息添加到所述设定身份路由表中包括:
通过所述节点的区块链功能层将所述设定功能身份节点的标识列表发送给所述节点的路由层;
通过所述节点的路由层,根据所述标识列表,并基于路由发现协议或已有路由表确定所述设定功能身份节点的路由信息,并添加到所述设定身份路由表中。
6.根据权利要求4所述的方法,其特征在于,所述区块链功能层为共识层,所述设定功能身份节点为基于共识协议确定的至少两个候选出块节点,其中,所述候选出块节点是在设定周期内负责产生区块的节点,非候选出块节点在所述设定周期内不具有产生区块的权限。
7.根据权利要求4所述的方法,其特征在于,所述区块链功能层为交互控制层,所述设定功能身份节点为基于中心指令设定的监督节点,其中,所述监督节点在区块链网络中用于进行区块数据全量验证,非监督节点在区块链网络中用于进行区块数据局部验证或不验证。
8.根据权利要求4所述的方法,其特征在于,所述区块链功能层为接口层,所述设定功能身份节点为基于接口协议设定的轻量级节点,其中,所述轻量级节点在区块链网络中用于进行部分区块数据的验证和存储,其他普通节点在区块链网络中用于进行全部区块数据的验证和存储。
9.根据权利要求1所述的方法,其特征在于,通过节点上层,确定至少一个设定身份路由表包括:
通过管理交互层接收指定节点指令,将指定节点的路由信息添加至所述设定身份路由表中。
10.根据权利要求1所述的方法,其特征在于,还包括:
在接收到新节点的接入消息时,获取所述新节点的身份;
根据所述新节点的身份,将优先级等于或低于所述新节点身份的路由表传输给所述新节点;
其中,所述基础路由表的优先级为最低优先级。
11.一种对等网络的路由实现装置,其特征在于,应用于对等网络节点中,所述装置包括:
设定身份路由表确定模块,用于通过节点上层,确定至少一个设定身份路由表,其中,所述设定身份路由表中的至少一个节点满足设定身份条件;
设定身份路由表部署模块,用于将所述设定身份路由表部署于所述节点的路由层,其中,所述路由层还部署于基础路由表;
消息发送模块,用于在产生消息发送需求时,基于所述设定身份路由表和所述基础路由表,分别执行消息在对等网络中的发送。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-10中任一所述的对等网络的路由实现方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的对等网络的路由实现方法。
CN201910579130.8A 2019-06-28 2019-06-28 一种对等网络的路由实现方法、装置、设备和介质 Active CN110324415B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910579130.8A CN110324415B (zh) 2019-06-28 2019-06-28 一种对等网络的路由实现方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910579130.8A CN110324415B (zh) 2019-06-28 2019-06-28 一种对等网络的路由实现方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN110324415A true CN110324415A (zh) 2019-10-11
CN110324415B CN110324415B (zh) 2022-04-05

Family

ID=68120658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910579130.8A Active CN110324415B (zh) 2019-06-28 2019-06-28 一种对等网络的路由实现方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN110324415B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933166A (zh) * 2019-11-27 2020-03-27 中国联合网络通信集团有限公司 一种共识平台、终端、节点和路径选择方法
CN112950369A (zh) * 2019-12-03 2021-06-11 微观(天津)科技发展有限公司 基于区块链的跨境交易信息处理方法、装置以及存储介质
CN113364693A (zh) * 2021-08-11 2021-09-07 国网电子商务有限公司 一种基于类型属性信息的区块链数据分发方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100091648A1 (en) * 2007-06-14 2010-04-15 Huawei Technologies Co., Ltd. Method, device and system for protecting multicast traffic
CN102938705A (zh) * 2012-09-25 2013-02-20 上海证券交易所 一种高可用多机备份路由表管理与切换方法
CN103856399A (zh) * 2014-03-17 2014-06-11 山东大学 一种基于稳定性的Ad Hoc备份路由算法
US20170201582A1 (en) * 2015-06-15 2017-07-13 Graduate School At Shenzhen, Tsinghua University Cross-protocol distributed cloud storage system and data management method based on operation control unit
CN108696589A (zh) * 2018-05-14 2018-10-23 百度在线网络技术(北京)有限公司 区块链数据传输方法、装置、设备和存储介质
CN108924223A (zh) * 2018-06-29 2018-11-30 北京金山安全软件有限公司 一种区块链的节点同步方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100091648A1 (en) * 2007-06-14 2010-04-15 Huawei Technologies Co., Ltd. Method, device and system for protecting multicast traffic
CN102938705A (zh) * 2012-09-25 2013-02-20 上海证券交易所 一种高可用多机备份路由表管理与切换方法
CN103856399A (zh) * 2014-03-17 2014-06-11 山东大学 一种基于稳定性的Ad Hoc备份路由算法
US20170201582A1 (en) * 2015-06-15 2017-07-13 Graduate School At Shenzhen, Tsinghua University Cross-protocol distributed cloud storage system and data management method based on operation control unit
CN108696589A (zh) * 2018-05-14 2018-10-23 百度在线网络技术(北京)有限公司 区块链数据传输方法、装置、设备和存储介质
CN108924223A (zh) * 2018-06-29 2018-11-30 北京金山安全软件有限公司 一种区块链的节点同步方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QI XIA等: ""Secure Payment Routing Protocol for Economic Systems Based on Blockchain"", 《2018 INTERNATIONAL CONFERENCE ON COMPUTING, NETWORKING AND COMMUNICATIONS (ICNC)》 *
海沫; 朱建明: ""区块链网络最优传播路径和激励相结合的传播机制"", 《计算机研究与发展》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933166A (zh) * 2019-11-27 2020-03-27 中国联合网络通信集团有限公司 一种共识平台、终端、节点和路径选择方法
CN112950369A (zh) * 2019-12-03 2021-06-11 微观(天津)科技发展有限公司 基于区块链的跨境交易信息处理方法、装置以及存储介质
CN113364693A (zh) * 2021-08-11 2021-09-07 国网电子商务有限公司 一种基于类型属性信息的区块链数据分发方法及系统

Also Published As

Publication number Publication date
CN110324415B (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
US11290324B2 (en) Blockchains for securing IoT devices
Bhat et al. Edge computing and its convergence with blockchain in 5G and beyond: Security, challenges, and opportunities
US10547693B2 (en) Security device capability discovery and device selection
CN110324415B (zh) 一种对等网络的路由实现方法、装置、设备和介质
US9119077B2 (en) Wireless network security
JP2020524434A (ja) ブロックチェーン・ネットワークにおける高速伝搬のための方法及び特殊ネットワーク・ノード
US8612743B2 (en) Wireless network security
CN103959712B (zh) 大型防火墙集群中的定时管理
CN106911648B (zh) 一种环境隔离方法及设备
US20170359365A1 (en) Detecting and evicting malicious vehicles in a vehicle communications network
Bracciale et al. Lightweight named object: An ICN-based abstraction for IoT device programming and management
US20210105282A1 (en) Decentralized access control for authorized modifications of data using a cryptographic hash
JP2024505692A (ja) ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器
US10382322B2 (en) Data routing for electronic devices
WO2020215269A1 (en) Method and apparatus for distributed ledger
CN113259460A (zh) 跨链交互方法及装置
WO2023050966A1 (zh) 验证区块链数据
Mershad PROACT: Parallel multi-miner proof of accumulated trust protocol for Internet of Drones
US11711810B1 (en) System, security and network management using self-organizing communication orbits in distributed networks
KR101950856B1 (ko) 블록체인을 이용한 정보 관리 시스템 및 방법
US20080215760A1 (en) Method and System For Synchronizing Status of Member Servers Belonging to Same Replication Group
CN115865537B (zh) 基于中心化系统管理的隐私计算方法、电子设备和存储介质
CN112702337A (zh) 一种区块节点数据的授权处理方法、装置和计算机设备
Yassein et al. Combining software-defined networking with Internet of Things: Survey on security and performance aspects
CN113259463B (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