CN111917868A - 区块链节点的寻址方法、装置、路由设备及存储介质 - Google Patents
区块链节点的寻址方法、装置、路由设备及存储介质 Download PDFInfo
- Publication number
- CN111917868A CN111917868A CN202010747197.0A CN202010747197A CN111917868A CN 111917868 A CN111917868 A CN 111917868A CN 202010747197 A CN202010747197 A CN 202010747197A CN 111917868 A CN111917868 A CN 111917868A
- Authority
- CN
- China
- Prior art keywords
- address
- node
- routing table
- packet
- block link
- 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.)
- Pending
Links
Images
Classifications
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Abstract
本发明实施例公开了一种区块链节点的寻址方法、装置、路由设备及存储介质,其中方法包括:接收第一节点的寻址数据包;根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址;将所述寻址数据包转发给所述第一IP地址;若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。通过实施上述方法,可以使区块链网络节点快速加入到区块链网络,并提高区块链网络的安全性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种区块链节点的寻址方法、装置、路由设备及存储介质。
背景技术
随着计算机技术的发展,区块链技术也迅速发展,目前,当一个新的区块链网络节点要加入区块链网络时,该新节点需要知道区块链网络上一些初始节点的IP地址,通常,这些初始节点的IP地址被固化写死在区块链节点的程序中,新节点启动时需要去连接这些初始节点的IP,并通过与这些初始节点通信来发现更多节点,从而与多个节点建立连接以加入区块链网络。但这种方式存在一些问题:一是这种发现其他节点的方式,使得区块链网络未完全去中心化,增加了区块链攻击的可能性;二是如果这些初始节点出现离线、负载过大、网络状态不好等情况,可能导致新的区块链节点无法加入。可见,区块链网络节点如何快速加入到区块链网络,并提高区块链网络的安全性成为急需解决的问题。
发明内容
本发明实施例提供了一种区块链节点的寻址方法、装置、路由设备及存储介质,可以使区块链网络节点快速加入到区块链网络,并提高区块链网络的安全性。
本发明实施例第一方面公开了一种区块链节点的寻址方法,所述方法包括:
接收第一节点的寻址数据包;
根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址;
将所述寻址数据包转发给所述第一IP地址;
若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。
本发明实施例第二方面公开了一种区块链节点的寻址装置,所述装置包括:
接收模块,用于接收第一节点的寻址数据包;
选取模块,用于根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址;
转发模块,用于将所述寻址数据包转发给所述第一IP地址;
所述转发模块,还用于若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。
本发明实施例第三方面公开了一种路由设备,包括处理器、存储器、发射设备和接收设备,所述处理器、存储器、发射设备和接收设备相互连接,其中,所述存储器用于存储计算机程序,所述发射设备用于发送数据,所述接收设备用于接收数据,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
本发明实施例第四方面公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例中,路由器可以接收第一节点的寻址数据包,并根据区块链路由表包括的每个IP地址对应的可达节点数量,从区块链路由表中选取第一IP地址,将寻址数据包转发给第一IP地址,如果第一IP地址为节点IP地址,则第一IP地址对应的第二节点在接收到寻址数据包后,可以向路由器发送针对寻址数据包的应答数据包,路由器接收到该应答数据包后,将该应答数据包转发给第一节点,以使第一节点与根据应答数据包中第一IP地址与第二节点建立连接。通过实施上述方法,可以使区块链网络节点快速加入到区块链网络,并提高区块链网络的安全性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种区块链节点的寻址方法的流程示意图;
图2是现有技术提供的一种标准IP数据包格式的结构示意图;
图3是本发明实施例提供的另一种区块链节点的寻址方法的流程示意图;
图4是本发明实施例提供的一种区块链节点的寻址装置的结构示意图;
图5是本发明实施例提供的一种路由设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本发明实施例提供的一种区块链节点的寻址方法的流程示意图。本实施例中所描述的区块链节点的寻址方法,应用于区块链网络中的路由器,该区块链节点的寻址方法包括以下步骤:
101:路由器接收第一节点的寻址数据包。
其中,路由器为区块链网络中的任意一个路由器,第一节点为加入区块链网络的新节点。
具体的,第一节点的寻址数据包可以是由区块链网络中的其他路由器转发的,也可以是第一节点直接发送的。
在一种实现方式中,当第一节点要接入区块链网络上,或者在第一节点接入区块链网络后,与区块链网络上的其他节点进行通信,第一节点可以利用区块链网络上的路由器对第一节点发送的寻址数据包或传输数据包进行转发,其中,路由器路由协议可以是在TCP/IP协议的基础上,通过调整IP数据包头部部分参数所形成的协议,例如图2所示为现有技术提供的一种标准IP数据包格式的结构示意图,具体调整可以是:对于数据包中包括的版本可以是7,其中,版本号只需跟现有协议版本不冲突,也可以是8或9或10,就本发明实施例不做限定。对于数据包中包括的协议可以是133或134,其中,133表示区块链节点寻址协议,134表示区块链节点传输协议。区分服务:用于表示区块链类型,例如可以用1表示区块链类型为比特币,可以用2表示区块链类型为以太坊,也可以是其他区块链类型,就本发明实施例不做限定。对于数据包中包括的目的地址,若协议为133,则目的地址自动为0.0.0.0,表示随机寻址;若协议为134,则表示目的地址。对于数据包中包括的可选字段:1位,用于表示是否为节点发出的数据,其中,可以用1表示数据包为节点发出的,可以用0表示数据包为路由器发送的。
举例来说,对于路由器接收的第一节点的寻址数据包,寻址数据包中包括的版本为7,协议为133。寻址数据包中包括的区分服务可以用1或2表示,例如,如果区分服务是1,则表示该寻址数据包的区块链类型为比特币,如果区分服务是2,则表示该寻址数据包的区块链类型为以太坊。寻址数据包中包括的目的地址为0.0.0.0,表示可以随机寻址。寻址数据包中包括的可选字段可以用1或0表示,例如,如果可选字段为1,则表示该路由器接收到的寻址数据包是第一节点发送的,如果可选字段为0,则表示该路由器接收到的寻址数据包是区块链网络中其他路由器发送的。
102:路由器根据区块链路由表包括的每个IP地址对应的可达节点数量,从区块链路由表中选取第一IP地址。
具体的,路由器可以维护一个区块链路由表,例如表1所示,该路由器可以根据区块链路由表包括的每个IP地址对应的可达节点数量来选取第一IP地址。具体的实现方式可以是:路由器根据路由表中每个IP地址对应的可达节点数量的多少来选取,IP地址对应的可达节点数量越多,路由器选取该IP地址作为第一IP地址的概率越大。例如表1所示,IP地址为83.32.21.93对应的可达节点数量最多,则路由器会将该IP地址作为第一IP地址的概率比较大。
在一种实现方式中,例如表1为路由器所维护的区块链路由表,该区块链路由表包含可以直接连接该路由器的IP地址,例如表1所示的4个IP地址就是可以直接连接该路由器的IP地址。区块链路由表还包括每个IP地址对应的可达节点数量以及每个IP地址对应的活跃时间。可达节点数量是IP地址的可达节点数量,考虑到直接连接该路由器的IP地址可以是节点的IP地址,也可以是区块链网络中其他路由器的IP地址,所以IP地址的可达节点数量是存在差异的。如果IP地址为节点的IP地址,则可达节点数量为1,例如表1所示的第2行,该IP地址为节点的IP地址,则可达节点数量为1。如果IP地址为其他路由器的IP地址,则可达节点数量为其他路由器排除当前路由器IP地址的可达节点数量,例如表1所示的第3行,该IP地址为其他路由器的IP地址,则可达节点数量为5。活跃时间是最后收到该IP地址的数据包的时间戳。
表1:
在一种实现方式中,路由器可以从区块链路由表中的IP地址选取任意一个IP地址为第一IP地址。例如,路由器可以从如表1所示的区块链路由表中选取第一IP地址,该第一IP地址可以是如表1所示的4个IP地址中的任意一个。
需要注意的是,路由器在区块链路由表中选取作为第一IP地址的IP地址不包括发送寻址数据包的IP地址。
103:路由器将寻址数据包转发给第一IP地址。
104:若第一IP地址为节点IP地址,则在接收到第一IP地址对应的第二节点针对寻址数据包的应答数据包时,路由器将应答数据包转发给第一节点,以使第一节点与根据应答数据包中第一IP地址与第二节点建立连接。
具体的,如果第一IP地址为节点IP地址,则第一IP地址对应的第二节点可以针对寻址数据包向路由器发送应答数据包,该应答数据包中是包括第二节点的IP地址的。路由器接收到该应答数据包后,可以将该应答数据包转发给第一节点,第一节点可以接收该应答数据包。第一节点接收到该应答数据包后,也就是知道了第二节点的IP地址。第一节点就可以根据接收到的第二节点的IP地址与第二节点建立连接,开始数据传输。
在一种实现方式中,如果第一IP地址为区块链网络中其他路由器的IP地址,则该路由器在接收到寻址数据包后,该路由器将该寻址数据包发送给上述的其他路由器,该其他路由器接收到该寻址数据包之后,继续转发该寻址数据包,直到接收到的IP地址为节点IP地址。
本发明实施例中,路由器可以接收第一节点的寻址数据包,根据区块链路由表包括的每个IP地址对应的可达节点数量,从区块链路由表中选取第一IP地址,将寻址数据包转发给第一IP地址,若第一IP地址为节点IP地址,则在接收到第一IP地址对应的第二节点针对寻址数据包的应答数据包时,将应答数据包转发给第一节点,以使第一节点与根据应答数据包中第一IP地址与第二节点建立连接。通过实施上述方法,可以使区块链网络节点快速加入到区块链网络,并提高区块链网络的安全性。
请参阅图3,为本发明实施例提供的另一种区块链节点的寻址方法的流程示意图。本实施例中所描述的区块链节点的寻址方法,应用于区块链网络中的路由器,该区块链节点的寻址方法包括以下步骤:
301:路由器接收第一节点的寻址数据包。
302:在寻址数据包包括的可选字段为第一可选字段时,路由器更新区块链路由表,将第一可选字段更改为第二可选字段。
其中,第一节点的寻址数据包包括可选字段,可选字段可以为第一可选字段或者是第二可选字段,第一可选字段表示寻址数据包为节点发出的数据,第二可选字段表示寻址数据包为路由器发出的数据。具体的,寻址数据包的可选字段可以用0和1表示,也可以用其他方式表示,就本发明实施例不做限定。例如,当寻址数据包的可选字段为1时,即是表示该寻址数据包为节点发出,当寻址数据包的可选字段为0时,即是表示该寻址数据包为路由器发出。
具体的,路由器可以确定寻址数据包包括的可选字段是第一可选字段,还是第二可选字段。如果该路由器确定可选字段为第一可选字段,则表示该寻址数据包为第一节点发送给路由器的,在这种情况下,该路由器可以针对发送该寻址数据包的第二IP地址,对区块链路由表更新,并将寻址数据包第一可选字段更改为第二可选字段,再执行步骤303。
在一种实现方式中,在路由器确定可选字段为第一可选字段的情况下,路由器可以更新区块链路由表。该路由器更新区块链路由表的具体实现可以是:路由器可以判断发送寻址数据包的第二IP地址在该区块链路由表中是否存在。如果存在,则更新区块链路由表中的第二IP地址对应的活跃时间;若不存在,则在区块链路由表中添加一条记录,添加的记录可以包括第二IP地址、第二IP地址对应的可达节点数量以及第二IP地址对应的活跃时间。
举例来说,假设区块链路由表如表1所示,发送寻址数据包的第二IP地址为61.28.24.28,路由器发现该IP地址在区块链路由表存在,则路由器可以更新区块链路由表中该IP地址对应的活跃时间,也就是把表1中的T1改为当前路由器接收到该寻址数据包的时间。假设发送寻址数据包的第二IP地址为76.28.24.28,路由器发现该IP地址在区块链路由表不存在,则路由器可以针对该IP地址,在区块链路由表添加一条记录,添加的记录包括该IP地址、该IP地址对应的可达节点数量以及该IP地址对应的活跃时间。添加针对该IP地址的区块链路由表可以为如表2所示。
表2:
IP地址 | 可达节点数量 | 活跃时间 |
61.28.24.28 | 1 | T1 |
63.28.24.28 | 5 | T2 |
192.168.2.3 | 10 | T3 |
83.32.21.93 | 25 | T4 |
76.28.24.28 | 8 | T5 |
在一种实现方式中,路由器所维护的区块链路由表包含可以直接连接该路由器的IP地址、IP地址对应的可达节点数量以及IP地址对应的活跃时间,还可以包括IP地址对应的区块链类型,区块链类型用来标识IP地址所支持的区块链网络,例如,区块链类型可以是比特币,也可以是以太坊,也可以包括其他区块链类型,就本发明实施例不做限定。
举例来说,例如表3为路由器所维护的区块链路由表,该区块链路由表包含可以直接连接该路由器的IP地址,IP地址对应的可达节点数量、IP地址对应的活跃时间以及IP地址对应的区块链类型。其中,区块链类型用1和2表示,例如表3中区块链类型对应的1表示寻址数据包的区块链类型为比特币,表3中区块链类型对应的2表示寻址数据包的区块链类型为以太坊。假设发送寻址数据包的第二IP地址为61.28.24.28,路由器发现该IP地址在表3中存在,则路由器可以更新表3中该IP地址对应的活跃时间,也就是把表中的T1改为当前路由器接收到该寻址数据包的时间。假设发送寻址数据包的第二IP地址为76.28.24.28,路由器发现该IP地址在表3中不存在,则路由器可以针对该IP地址,在区块链路由表添加记录,考虑到该IP地址的区块链类型可以是比特币,也可以是以太坊,故在添加记录时分别添加针对区块链类型为比特币的记录和区块链类型为以太坊的记录,添加针对该IP地址的区块链路由表可以为如表4所示。
表3:
表4:
区块链类型 | IP地址 | 可达节点数量 | 活跃时间 |
1 | 61.28.24.28 | 1 | T1 |
1 | 63.28.24.28 | 5 | T2 |
1 | 192.168.2.3 | 10 | T3 |
2 | 192.168.2.3 | 15 | T4 |
2 | 83.32.21.93 | 25 | T5 |
1 | 76.28.24.28 | 8 | T6 |
2 | 76.28.24.28 | 8 | T6 |
在一种实现方式中,如果路由器确定可选字段为第二可选字段,则表示该寻址数据包是由其他路由器发送给该路由器的,在这种情况下,则可以直接执行步骤303。
303:路由器从区块链路由表包括的多个IP地址中,选取区块链类型与寻址数据包所包括的区块链类型一致的IP地址集合。
具体的,区块链路由表中可以包括多个IP地址,并且每个IP地址对应的区块链类型可以是一样的,也可以是不一样的。例如表4所示的IP地址为192.168.2.3的情况,该IP地址对应的区块链类型包括比特币和以太坊。路由器可以先获取寻址数据包所包括的区块链类型,在路由器确定该寻址数据包的区块链类型之后,从区块链路由表中选取与该寻址数据包的区块链类型一致的IP地址集合。
举例来说,假设寻址数据包所包括的区块链类型为比特币,则路由器在确定该寻址数据包的区块链类型为比特币后,从表4中选取区块链类型为比特币的IP地址集合,也就是表4中的第2、3、4和7行。假设寻址数据包所包括的区块链类型为以太坊,则路由器在确定该寻址数据包的区块链类型为以太坊后,从表4中选取区块链类型为以太坊的IP地址集合,也就是表4中的第5、6和8行。
304:路由器根据IP地址集合中每个IP地址对应的可达节点数量,从IP地址集合中选取第一IP地址。
具体的,路由器可以根据IP地址集合中每个IP地址对应的可达节点数量来选取第一IP地址。具体实现方式可以是:路由器根据路由表中IP地址集合中每个IP地址对应的可达节点数量的多少来选取,IP地址对应的可达节点数量越多,路由器选取该IP地址作为第一IP地址的概率越大。
需要注意的是,路由器在从IP地址集合中选取第一IP地址的IP地址不包括发送寻址数据包的第二IP地址,也可以在路由器选取区块链类型与寻址数据包所包括的区块链类型一致的IP地址集合时将第二IP地址排除。
举例来说,以区块链路由表为表4为例,假设寻址数据包所包括的区块链类型为比特币,发送寻址数据包的第二IP地址为76.28.24.28。则路由器在确定该寻址数据包的区块链类型为比特币后,从表4中选取区块链类型为比特币的IP地址集合,也就是表4中的第2、3、4和7行。考虑到路由器在区块链路由表中选取作为第一IP地址的IP地址不包括发送寻址数据包的IP地址,也就是表4中的第7行,所以在IP地址集合中选取第一IP地址时,要把该地址排除。那么从表4中可以看出,IP地址为192.168.2.3对应的可达节点数量最多,则路由器会将该IP地址作为第一IP地址的概率比较大。
305:路由器将寻址数据包转发给第一IP地址。
306:若第一IP地址为节点IP地址,则在接收到第一IP地址对应的第二节点针对寻址数据包的应答数据包时,路由器将应答数据包转发给第一节点,以使第一节点与根据应答数据包中第一IP地址与第二节点建立连接。
其中,步骤301和306的具体实施方式可以参见上述实施例步骤101和104的具体描述,此处不再赘述。
本发明实施例中,路由器可以接收第一节点的寻址数据包,在可选字段为第一可选字段时,更新区块链路由表,将第一可选字段更改为第二可选字段,从区块链路由表包括的多个IP地址中,选取区块链类型与寻址数据包所包括的区块链类型一致的IP地址集合,根据IP地址集合中每个IP地址对应的可达节点数量,从IP地址集合中选取第一IP地址,将寻址数据包转发给第一IP地址,若第一IP地址为节点IP地址,则在接收到第一IP地址对应的第二节点针对寻址数据包的应答数据包时,将应答数据包转发给第一节点,以使第一节点与根据应答数据包中第一IP地址与第二节点建立连接。通过实施上述方法,可以使区块链网络节点快速加入到区块链网络,并提高区块链网络的安全性。
在一种实现方式中,路由器可以定期与所连接的路由器之间同步区块链路由表,获取同步后的区块链路由表中每个IP地址对应的活跃时间,并删除同步后的区块链路由表中活跃时间距离当前时间超过预设时长的IP地址所对应的记录。其中,该路由器与所连接的路由器可以每30秒,也可以是每50秒定期同步区块链路由表,就本发明实施例不做限定。预设时长可以是180秒,也可以是其他时长,就本发明实施例不做限定。
在一种实现方式中,在第一节点在接收到第二节点发送的应答数据包后,第一节点可以根据应答数据包中所包括的第一IP地址,也就是第二节点的IP地址与第二节点建立通信连接。当第一节点向第二节点发送数据时,具体的实现方式可以是:第一节点向路由器发送传输数据包,该路由器接收第一节点发送的传输数据包,该传输数据包是包括第一IP地址以及可选字段的。路由器在接收到第一节点发送的传输数据包后,确定该传输数据包的可选字段是第一可选字段,还是第二可选字段。如果路由器确定该可选字段为第一可选字段,则更新区块链路由表,并将第一可选字段更改为第二可选字段,根据区块链路由表和第一IP地址,将传输数据包发送到第二节点。如果路由器确定该可选字段为第二可选字段,则根据区块链路由表和第一IP地址,将传输数据包发送到第二节点。考虑到连接路由器的可以是节点也可以是其他路由器,故区块链路由表中的IP地址可以包括多个节点IP地址和多个其他路由器IP地址。如果第一IP地址存在于多个节点IP地址中,则路由器直接将传输数据包转发到第二节点。如果第一IP地址存在于其他路由器IP地址对应的可达节点数量中,则路由器根据其他路由器IP地址对应的可达节点数量和第一IP地址,通过其他路由器将传输数据包发送到第二节点。
请参阅图4,为本发明实施例提供的一种区块链节点的寻址装置的结构示意图。所述区块链节点的寻址装置包括:
接收模块401,用于接收第一节点的寻址数据包;
选取模块402,用于根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址;
转发模块403,用于将所述寻址数据包转发给所述第一IP地址;
所述转发模块403,还用于若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。
在一种实现方式中,所述寻址数据包包括可选字段,所述装置还包括更新模块404,具体用于:
在所述可选字段为第一可选字段时,更新所述区块链路由表,将所述第一可选字段更改为第二可选字段,并执行所述根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址的操作。
在一种实现方式中,所述更新模块404,具体用于:
判断发送所述寻址数据包的第二IP地址在所述区块链路由表中是否存在;
若存在,则更新区块链路由表中的所述第二IP地址对应的活跃时间;
若不存在,则在区块链路由表中添加一条记录,其中,所述记录包括所述第二IP地址、所述第二IP地址对应的可达节点数量以及所述第二IP地址对应的活跃时间。
在一种实现方式中,所述寻址数据包还包括区块链类型,所述区块链路由表还包括每个IP地址对应的区块链类型,所述区块链类型用于标识IP地址所支持的区块链网络,所述选取模块402,具体用于:
从所述区块链路由表包括的多个IP地址中,选取区块链类型与所述寻址数据包所包括的区块链类型一致的IP地址集合;
根据所述IP地址集合中每个IP地址对应的可达节点数量,从所述IP地址集合中选取第一IP地址。
在一种实现方式中,所述更新模块404,还用于:
定期与所连接的路由器之间同步区块链路由表;
获取同步后的区块链路由表中每个IP地址对应的活跃时间;
删除所述同步后的区块链路由表中活跃时间距离当前时间超过预设时长的IP地址所对应的记录。
在一种实现方式中,所述接收模块401,还用于:接收第一节点发送的传输数据包,其中,所述传输数据包包括所述第一IP地址以及可选字段;
所述更新模块404,还用于:若所述传输数据包的可选字段为第一可选字段,则更新所述区块链路由表,并将所述第一可选字段更改为第二可选字段;
所述转发模块403,还用于:根据所述区块链路由表和所述第一IP地址,将所述传输数据包发送到所述第二节点。
在一种实现方式中,所述区块链路由表中的IP地址包括节点IP地址和路由器IP地址,所述转发模块403,具体用于:
若所述第一IP地址存在于所述节点IP地址中,则将所述传输数据包转发到所述第二节点;
若所述第一IP地址存在于所述路由器IP地址对应的可达节点数量中,则根据所述路由器IP地址对应的可达节点数量和所述第一IP地址,通过其他路由器将所述传输数据包转发到所述第二节点。
可以理解的是,本发明实施例所描述的区块链节点的寻址装置的各功能模块的功能可根据图1或者图3所述的方法实施例中的方法具体实现,其具体实现过程可以参照图1或者图3的方法实施例的相关描述,此处不再赘述。
本发明实施例中,接收模块401接收第一节点的寻址数据包,选取模块402根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址,转发模块403将所述寻址数据包转发给所述第一IP地址,若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,转发模块403将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。通过实施上述方法,可以使区块链网络节点快速加入到区块链网络,并提高区块链网络的安全性。
请参阅图5,为本发明实施例提供的一种路由设备的结构示意图。本实施例中所描述的路由设备,包括:处理器501、存储器502、发射设备503以及接收设备504。上述处理器501、存储器502、发射设备503以及接收设备504之间可以交互数据。
上述处理器501可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述发射设备503可以发送数据,上述接收设备504可以接收数据。
上述存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供程序指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。其中,所述处理器501调用所述程序指令时用于执行:
接收第一节点的寻址数据包;
根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址;
将所述寻址数据包转发给所述第一IP地址;
若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。
在一种实现方式中,所述寻址数据包包括可选字段,所述处理器501,还用于:
在所述可选字段为第一可选字段时,更新所述区块链路由表,将所述第一可选字段更改为第二可选字段,并执行所述根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址的操作。
在一种实现方式中,所述处理器501,具体用于:
判断发送所述寻址数据包的第二IP地址在所述区块链路由表中是否存在;
若存在,则更新区块链路由表中的所述第二IP地址对应的活跃时间;
若不存在,则在区块链路由表中添加一条记录,其中,所述记录包括所述第二IP地址、所述第二IP地址对应的可达节点数量以及所述第二IP地址对应的活跃时间。
在一种实现方式中,所述寻址数据包还包括区块链类型,所述区块链路由表还包括每个IP地址对应的区块链类型,所述区块链类型用于标识IP地址所支持的区块链网络,所述处理器501,具体用于:
从所述区块链路由表包括的多个IP地址中,选取区块链类型与所述寻址数据包所包括的区块链类型一致的IP地址集合;
根据所述IP地址集合中每个IP地址对应的可达节点数量,从所述IP地址集合中选取第一IP地址。
在一种实现方式中,所述处理器501,还用于:
定期与所连接的路由器之间同步区块链路由表;
获取同步后的区块链路由表中每个IP地址对应的活跃时间;
删除所述同步后的区块链路由表中活跃时间距离当前时间超过预设时长的IP地址所对应的记录。
在一种实现方式中,所述处理器501,还用于:
接收第一节点发送的传输数据包,其中,所述传输数据包包括所述第一IP地址以及可选字段;
若所述传输数据包的可选字段为第一可选字段,则更新所述区块链路由表,并将所述第一可选字段更改为第二可选字段;
根据所述区块链路由表和所述第一IP地址,将所述传输数据包发送到所述第二节点。
在一种实现方式中,所述区块链路由表中的IP地址包括节点IP地址和路由器IP地址,所述处理器501,具体用于:
若所述第一IP地址存在于所述节点IP地址中,则将所述传输数据包转发到所述第二节点;
若所述第一IP地址存在于所述路由器IP地址对应的可达节点数量中,则根据所述路由器IP地址对应的可达节点数量和所述第一IP地址,通过其他路由器将所述传输数据包转发到所述第二节点。
具体实现中,本发明实施例中所描述的处理器501和存储器502可执行本发明实施例图1或者图3提供的区块链节点的寻址方法中所描述的实现方式,也可执行本发明实施例图4所描述的区块链节点的寻址装置的实现方式,在此不再赘述。
本发明实施例中,处理器501可以接收第一节点的寻址数据包,根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址,并将所述寻址数据包转发给所述第一IP地址,若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。通过实施上述方法,可以使区块链网络节点快速加入到区块链网络,并提高区块链网络的安全性。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序执行时可包括如图1或者图3对应实施例中的区块链节点的寻址方法的部分或全部步骤。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上对本发明实施例所提供的一种区块链节点的寻址方法、装置、路由设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种区块链节点的寻址方法,应用于区块链网络中的路由器,其特征在于,所述方法包括:
接收第一节点的寻址数据包;
根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址;
将所述寻址数据包转发给所述第一IP地址;
若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。
2.根据权利要求1所述的方法,其特征在于,所述寻址数据包包括可选字段,所述接收第一节点的寻址数据包之后,所述方法还包括:
在所述可选字段为第一可选字段时,更新所述区块链路由表,将所述第一可选字段更改为第二可选字段,并执行所述根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址的操作。
3.根据权利要求2所述的方法,其特征在于,所述更新所述区块链路由表,包括:
判断发送所述寻址数据包的第二IP地址在所述区块链路由表中是否存在;
若存在,则更新区块链路由表中的所述第二IP地址对应的活跃时间;
若不存在,则在区块链路由表中添加一条记录,其中,所述记录包括所述第二IP地址、所述第二IP地址对应的可达节点数量以及所述第二IP地址对应的活跃时间。
4.根据权利要求2或3所述的方法,其特征在于,所述寻址数据包还包括区块链类型,所述区块链路由表还包括每个IP地址对应的区块链类型,所述区块链类型用于标识IP地址所支持的区块链网络,所述根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址,包括:
从所述区块链路由表包括的多个IP地址中,选取区块链类型与所述寻址数据包所包括的区块链类型一致的IP地址集合;
根据所述IP地址集合中每个IP地址对应的可达节点数量,从所述IP地址集合中选取第一IP地址。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
定期与所连接的路由器之间同步区块链路由表;
获取同步后的区块链路由表中每个IP地址对应的活跃时间;
删除所述同步后的区块链路由表中活跃时间距离当前时间超过预设时长的IP地址所对应的记录。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第一节点发送的传输数据包,其中,所述传输数据包包括所述第一IP地址以及可选字段;
若所述传输数据包的可选字段为第一可选字段,则更新所述区块链路由表,并将所述第一可选字段更改为第二可选字段;
根据所述区块链路由表和所述第一IP地址,将所述传输数据包发送到所述第二节点。
7.根据权利要求6所述的方法,其特征在于,所述区块链路由表中的IP地址包括节点IP地址和路由器IP地址,所述根据所述区块链路由表和所述第一IP地址,将所述传输数据包发送到所述第二节点,包括:
若所述第一IP地址存在于所述节点IP地址中,则将所述传输数据包转发到所述第二节点;
若所述第一IP地址存在于所述路由器IP地址对应的可达节点数量中,则根据所述路由器IP地址对应的可达节点数量和所述第一IP地址,通过其他路由器将所述传输数据包转发到所述第二节点。
8.一种区块链节点的寻址装置,其特征在于,所述装置包括:
接收模块,用于接收第一节点的寻址数据包;
选取模块,用于根据区块链路由表包括的每个IP地址对应的可达节点数量,从所述区块链路由表中选取第一IP地址;
转发模块,用于将所述寻址数据包转发给所述第一IP地址;
所述转发模块,还用于若第一IP地址为节点IP地址,则在接收到所述第一IP地址对应的第二节点针对所述寻址数据包的应答数据包时,将所述应答数据包转发给所述第一节点,以使所述第一节点与根据所述应答数据包中第一IP地址与所述第二节点建立连接。
9.一种路由设备,其特征在于,包括处理器、存储器、发射设备和接收设备,所述处理器、存储器、发射设备和接收设备相互连接,其中,所述存储器用于存储计算机程序,所述发射设备用于发送数据,所述接收设备用于接收数据,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747197.0A CN111917868A (zh) | 2020-07-29 | 2020-07-29 | 区块链节点的寻址方法、装置、路由设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747197.0A CN111917868A (zh) | 2020-07-29 | 2020-07-29 | 区块链节点的寻址方法、装置、路由设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111917868A true CN111917868A (zh) | 2020-11-10 |
Family
ID=73287382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010747197.0A Pending CN111917868A (zh) | 2020-07-29 | 2020-07-29 | 区块链节点的寻址方法、装置、路由设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111917868A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113364693A (zh) * | 2021-08-11 | 2021-09-07 | 国网电子商务有限公司 | 一种基于类型属性信息的区块链数据分发方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070030857A1 (en) * | 2005-08-02 | 2007-02-08 | Fulknier John C | Mobile router device |
CN101631086A (zh) * | 2009-08-10 | 2010-01-20 | 武汉烽火网络有限责任公司 | 并行ip路由查找的路由表分区和放置方法 |
CN101883048A (zh) * | 2010-06-25 | 2010-11-10 | 陶洋 | 多维网络的路由方法 |
CN101984605A (zh) * | 2010-11-12 | 2011-03-09 | 中兴通讯股份有限公司 | 路由发现方法及非直连直径系统中的直径节点 |
CN102413539A (zh) * | 2011-10-19 | 2012-04-11 | 西安电子科技大学 | 基于地理位置的大规模无线分布式网络自适应协作路由方法 |
US20150078377A1 (en) * | 2013-09-17 | 2015-03-19 | Cisco Technology, Inc. | Bit Indexed Explicit Replication |
CN104734959A (zh) * | 2013-12-19 | 2015-06-24 | 北京交通大学 | 一种基于树状网络的路由与数据传输方法 |
CN106656784A (zh) * | 2016-10-14 | 2017-05-10 | 中国银联股份有限公司 | 用于区块链网络的数据流传播系统及方法 |
CN108075902A (zh) * | 2016-11-16 | 2018-05-25 | 中兴通讯股份有限公司 | 路由的寻址方法、装置及系统 |
CN108777712A (zh) * | 2018-05-31 | 2018-11-09 | 中国联合网络通信集团有限公司 | 区块链节点通信方法、装置及区块链节点 |
CN109412953A (zh) * | 2018-12-27 | 2019-03-01 | 北京比新科技有限公司 | 一种基于区块链overlay网络的路由信息交互方法 |
US20200014527A1 (en) * | 2018-07-03 | 2020-01-09 | Servicenow, Inc. | Multi-instance architecture supporting trusted blockchain-based network |
-
2020
- 2020-07-29 CN CN202010747197.0A patent/CN111917868A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070030857A1 (en) * | 2005-08-02 | 2007-02-08 | Fulknier John C | Mobile router device |
CN101631086A (zh) * | 2009-08-10 | 2010-01-20 | 武汉烽火网络有限责任公司 | 并行ip路由查找的路由表分区和放置方法 |
CN101883048A (zh) * | 2010-06-25 | 2010-11-10 | 陶洋 | 多维网络的路由方法 |
CN101984605A (zh) * | 2010-11-12 | 2011-03-09 | 中兴通讯股份有限公司 | 路由发现方法及非直连直径系统中的直径节点 |
CN102413539A (zh) * | 2011-10-19 | 2012-04-11 | 西安电子科技大学 | 基于地理位置的大规模无线分布式网络自适应协作路由方法 |
US20150078377A1 (en) * | 2013-09-17 | 2015-03-19 | Cisco Technology, Inc. | Bit Indexed Explicit Replication |
CN104734959A (zh) * | 2013-12-19 | 2015-06-24 | 北京交通大学 | 一种基于树状网络的路由与数据传输方法 |
CN106656784A (zh) * | 2016-10-14 | 2017-05-10 | 中国银联股份有限公司 | 用于区块链网络的数据流传播系统及方法 |
CN108075902A (zh) * | 2016-11-16 | 2018-05-25 | 中兴通讯股份有限公司 | 路由的寻址方法、装置及系统 |
CN108777712A (zh) * | 2018-05-31 | 2018-11-09 | 中国联合网络通信集团有限公司 | 区块链节点通信方法、装置及区块链节点 |
US20200014527A1 (en) * | 2018-07-03 | 2020-01-09 | Servicenow, Inc. | Multi-instance architecture supporting trusted blockchain-based network |
CN109412953A (zh) * | 2018-12-27 | 2019-03-01 | 北京比新科技有限公司 | 一种基于区块链overlay网络的路由信息交互方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113364693A (zh) * | 2021-08-11 | 2021-09-07 | 国网电子商务有限公司 | 一种基于类型属性信息的区块链数据分发方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5722455B2 (ja) | ネットワークにおけるメッセージおよび計算オーバーヘッドの軽減 | |
US8493989B2 (en) | Network device and data control program | |
US8351438B2 (en) | Flooding-based routing protocol having database pruning and rate-controlled state refresh | |
CN106059917B (zh) | 一种路由信息处理方法和装置 | |
WO2015196923A1 (zh) | 一种发送信息的方法和网络装置 | |
CN106850869B (zh) | 一种ip地址的配置方法以及网络设备 | |
CN113794618B (zh) | 基于虚拟网卡的冗余网络通信方法、装置及终端设备 | |
US8045545B2 (en) | Intelligent database exchange for OSPF | |
CN113132227A (zh) | 更新路由信息的方法、装置、计算机设备和存储介质 | |
CN111327545B (zh) | 数据发送方法、装置、网络系统及交换机 | |
CN110662258A (zh) | 一种报文的转发方法、装置及介质 | |
US11343153B2 (en) | BGP logical topology generation method, and device | |
CN111917868A (zh) | 区块链节点的寻址方法、装置、路由设备及存储介质 | |
CN111711571B (zh) | 支持ip透传的自组网按需路由方法、装置和计算机设备 | |
CN107612831B (zh) | 一种访问源站的数据报文的传输方法及装置 | |
CN108092841B (zh) | 一种网关路由信息的维护方法、装置及系统 | |
JP2022120845A5 (zh) | ||
CN108259292B (zh) | 建立隧道的方法及装置 | |
US20220006735A1 (en) | Network device and packet processing method using same | |
CN112637053A (zh) | 路由的备份转发路径的确定方法及装置 | |
CN106533879B (zh) | 一种ptn设备中dcn不规则域互通的方法及装置 | |
CN113794644B (zh) | 一种路由表项删除方法及装置 | |
CN114124780B (zh) | 路由发布方法、装置、电子设备及存储介质 | |
CN113014481B (zh) | 传输链路状态通告的方法、装置、设备及存储介质 | |
JP3693953B2 (ja) | 同報送信方法及び装置並びにプログラム |
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 |