[go: up one dir, main page]

CN108810186B - 区块链节点通信方法、装置及区块链节点 - Google Patents

区块链节点通信方法、装置及区块链节点 Download PDF

Info

Publication number
CN108810186B
CN108810186B CN201810555793.1A CN201810555793A CN108810186B CN 108810186 B CN108810186 B CN 108810186B CN 201810555793 A CN201810555793 A CN 201810555793A CN 108810186 B CN108810186 B CN 108810186B
Authority
CN
China
Prior art keywords
target node
node
address
nat
source
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
Application number
CN201810555793.1A
Other languages
English (en)
Other versions
CN108810186A (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.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201810555793.1A priority Critical patent/CN108810186B/zh
Publication of CN108810186A publication Critical patent/CN108810186A/zh
Application granted granted Critical
Publication of CN108810186B publication Critical patent/CN108810186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2557Translation policies or rules
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种区块链节点通信方法、装置及区块链节点。该方法包括:主存储节点接收目标节点发送的请求信息;比较该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址是否相同;若该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址不同,则该主存储节点确定该目标节点位于网络地址转换NAT下,并确定该目标节点对应的NAT的公网IP地址,以及该目标节点在该NAT上映射的端口号;通过向该目标节点发送连接请求,确定该目标节点对应的NAT的类型信息;将该NAT的类型信息发送给该目标节点。本发明实施例使得没有公网IP地址的节点也可以成为从存储节点,促进了区块链业务的发展。

Description

区块链节点通信方法、装置及区块链节点
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种区块链节点通信方法、装置及区块链节点。
背景技术
在区块链网络中,主存储节点可以存储完整的区块链账本,从存储节点可以存储部分的区块链账本,从存储节点可接收其他节点的查询访问,该从存储节点通过给其他节点提供查询服务以获取相应的奖励。
现有技术中,为了推广区块链业务,需要更多的节点成为从存储节点,但是要成为从存储节点,需要该节点具有公网IP地址,但是目前很多节点并没有公网IP地址,从而导致了很多节点无法成为从存储节点,限制了区块链业务的发展。
发明内容
本发明实施例提供一种区块链节点通信方法、装置及区块链节点,以使得没有公网IP地址的节点也可以成为从存储节点,促进区块链业务的发展。
第一方面,本发明实施例提供一种区块链节点通信方法,包括:
主存储节点接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息;
所述主存储节点比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同;
若所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同,则所述主存储节点确定所述目标节点位于网络地址转换NAT下,并确定所述目标节点对应的NAT的公网IP地址,以及所述目标节点在所述NAT上映射的端口号;
所述主存储节点通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息;
所述主存储节点将所述NAT的类型信息发送给所述目标节点。
第二方面,本发明实施例提供一种区块链节点通信装置,包括:
接收模块,用于接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息;
比较模块,用于比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同;
第一确定模块,用于当所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同时,确定所述目标节点位于网络地址转换NAT下,并确定所述目标节点对应的NAT的公网IP地址,以及所述目标节点在所述NAT上映射的端口号;
第二确定模块,用于通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息;
发送模块,用于将所述NAT的类型信息发送给所述目标节点。
第三方面,本发明实施例提供一种区块链节点,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现第一方面所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
本发明实施例提供的区块链节点通信方法、装置及区块链节点,通过主存储节点接收目标节点发送的请求信息,比较该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址是否相同,若该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址不同,则主存储节点确定该目标节点位于网络地址转换NAT下,并确定该目标节点对应的NAT的公网IP地址,以及该目标节点在该NAT上映射的端口号,从而使得该目标节点可以成为从存储节点,使得没有公网IP地址的节点也可以成为从存储节点,促进了区块链业务的发展。
附图说明
图1为本发明实施例提供的一种应用场景的示意图;
图2为本发明实施例提供的区块链节点通信方法流程图;
图3为本发明实施例提供的一种区块链网络的示意图;
图4为本发明另一实施例提供的区块链节点通信方法流程图;
图5为本发明另一实施例提供的区块链节点通信方法流程图;
图6为本发明实施例提供的区块链节点通信装置的结构示意图;
图7为本发明实施例提供的区块链节点的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本发明提供的区块链节点通信方法,可以适用于图1所示的通信系统。如图1所示,该通信系统包括:接入网设备11、终端设备12以及服务器13。需要说明的是,图1所示的通信系统可以适用于不同的网络制式,例如,可以适用于全球移动通讯(Global System ofMobile communication,简称GSM)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、时分同步码分多址(Time Division-Synchronous Code Division Multiple Access,简称TD-SCDMA)、长期演进(Long Term Evolution,简称LTE)系统及未来的5G等网络制式。可选的,上述通信系统可以为5G通信系统中高可靠低时延通信(Ultra-Reliable and Low LatencyCommunications,简称URLLC)传输的场景中的系统。
故而,可选的,上述接入网设备11可以是GSM或CDMA中的基站(Base TransceiverStation,简称BTS)和/或基站控制器,也可以是WCDMA中的基站(NodeB,简称NB)和/或无线网络控制器(Radio Network Controller,简称RNC),还可以是LTE中的演进型基站(Evolutional Node B,简称eNB或eNodeB),或者中继站或接入点,或者未来5G网络中的基站(gNB)等,本发明在此并不限定。
上述终端设备12可以是无线终端也可以是有线终端。无线终端可以是指向用户提供语音和/或其他业务数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(Radio Access Network,简称RAN)与一个或多个核心网设备进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。再例如,无线终端还可以是个人通信业务(Personal Communication Service,简称PCS)电话、无绳电话、会话发起协议(Session Initiation Protocol,简称SIP)话机、无线本地环路(Wireless LocalLoop,简称WLL)站、个人数字助理(Personal Digital Assistant,简称PDA)等设备。无线终端也可以称为系统、订户单元(Subscriber Unit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、远程终端(RemoteTerminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(UserAgent)、用户设备(User Device or User Equipment),在此不作限定。可选的,上述终端设备12还可以是智能手表、平板电脑等设备。在本实施例中,终端设备12和服务器13可以是区块链网络中的节点。
本发明提供的区块链节点通信方法,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明实施例提供的区块链节点通信方法流程图。本发明实施例针对现有技术的如上技术问题,提供了区块链节点通信方法,该方法具体步骤如下:
步骤201、主存储节点接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息。
如图3所示,31表示区块链网络中的主存储节点,32表示区块链网络中的目标节点,目标节点32请求成为从存储节点,目标节点32有自己的公网IP地址。33表示另一个目标节点,目标节点33请求成为从存储节点,目标节点33没有公网IP地址,目标节点33通过网络地址转换(Network Address Translation,NAT)与区块链网络通信,34表示NAT,35表示该区块链网络中的查询节点。在本实施例中,由从存储节点为该查询节点35提供查询服务。此处只是示意性说明,并不限定区块链网络的具体网络架构。另外,查询节点35可以是NAT下的节点,也可以不是NAT下的节点。
当目标节点32或目标节点33首次加入区块链网络的时候,需要从该目标节点32或目标节点33的相邻节点获取创世区块,可选的,区块链网络中的节点均存储有创世区块。为了保证该目标节点32或目标节点33获取到真实的创世区块,该目标节点32或目标节点33可以向多个相邻节点发送创世区块查询请求,例如,目标节点32或目标节点33向相邻节点B和相邻节点C分别发送创世区块查询请求,相邻节点B和相邻节点C接收到该创世区块查询请求后,将各自本地存储的创世区块发送给目标节点32或目标节点33,目标节点32或目标节点33比较相邻节点B和相邻节点C反馈的创世区块是否一致,如果相邻节点B和相邻节点C反馈的创世区块一致,则目标节点32或目标节点33将该创世区块存储在本地;如果相邻节点B和相邻节点C反馈的创世区块不一致,则目标节点32或目标节点33还可以继续向相邻节点D和相邻节点E发送创世区块查询请求,并接收相邻节点D和相邻节点E分别反馈的创世区块,若相邻节点B、相邻节点C、相邻节点D和相邻节点E中超过预设比例的相邻节点反馈的创世区块是一致,则目标节点32或目标节点33确定该创世区块是真实的。可选的,相邻节点B、相邻节点C、相邻节点D和相邻节点E中超过百分之五十的相邻节点例如相邻节点C、相邻节点D和相邻节点E分别反馈的创世区块一致,则目标节点32或目标节点33确定相邻节点C反馈的创世区块是真实的,相邻节点B反馈的创世区块是虚假的。
当目标节点32或目标节点33获取到真实的创世区块后,将该创世区块存储到本地,并从该创世区块中获取主存储节点的IP地址,可选的,该创世区块中存储有一个或多个主存储节点的IP地址,该目标节点32或目标节点33可根据一个或多个主存储节点的IP地址,向一个或多个主存储节点发送请求信息,本实施例以目标节点32或目标节点33向一个主存储节点发送请求信息为例,例如,该创世区块中存储有主存储节点31的IP地址,目标节点32向主存储节点31发送请求信息,该请求信息用于表示目标节点32想成为从存储节点,并且该请求信息中包括目标节点32的标识信息、目标节点32对应的终端设备号。或/及,目标节点33向主存储节点31发送请求信息,该请求信息用于表示目标节点33想成为从存储节点,并且该请求信息中包括目标节点33的标识信息、目标节点33对应的终端设备号。
步骤202、所述主存储节点比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同。
当主存储节点31接收到目标节点32发送的请求信息时,主存储节点31获取该请求信息的源IP地址例如TTT,并从主存储节点31本地存储的区块链账本中查找目标节点32在加入区块链网络时广播的IP地址例如UUU,进一步比较该请求信息的源IP地址例如TTT和目标节点32在加入区块链网络时广播的IP地址例如UUU是否相同。
同理,当主存储节点31接收到目标节点33发送的请求信息时,主存储节点31获取该请求信息的源IP地址例如TTT,并从主存储节点31本地存储的区块链账本中查找目标节点33在加入区块链网络时广播的IP地址例如UUU,进一步比较该请求信息的源IP地址例如TTT和目标节点33在加入区块链网络时广播的IP地址例如UUU是否相同。
步骤203、若所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同,则所述主存储节点确定所述目标节点位于网络地址转换NAT下,并确定所述目标节点对应的NAT的公网IP地址,以及所述目标节点在所述NAT上映射的端口号。
如图3所示,目标节点33没有自己的公网IP地址,因此,目标节点33向主存储节点31发送的请求信息的源IP地址可能并不是目标节点33自己的公网IP地址,该请求信息的源IP地址可能是目标节点33对应的局域网中的接入点给目标节点33分配的一个公网IP地址,则该请求信息的源IP地址与目标节点33在加入区块链网络时广播的IP地址可能并不同。因此,当主存储节点31比较目标节点33发送的请求信息的源IP地址例如TTT和目标节点33在加入区块链网络时广播的IP地址例如UUU不同时,主存储节点31确定目标节点33在NAT下,且该目标节点33没有自己的公网IP地址。主存储节点31进一步确定目标节点33对应的NAT的公网IP地址,以及目标节点33在该NAT上映射的端口号,具体的,该请求信息的源IP地址为目标节点33对应的NAT的公网IP地址,该请求信息的源端口号为目标节点33在该NAT上映射的端口号。
如图3所示,目标节点32有自己的公网IP地址,因此,目标节点32向主存储节点31发送的请求信息的源IP地址即为目标节点32自己的公网IP地址,则该请求信息的源IP地址与目标节点32在加入区块链网络时广播的IP地址相同。因此,当主存储节点31比较目标节点32发送的请求信息的源IP地址例如TTT和目标节点32在加入区块链网络时广播的IP地址例如UUU相同时,主存储节点31确定目标节点32不在NAT下,且该目标节点32有自己的公网IP地址,目标节点32发送的请求信息的源IP地址为目标节点32自己的公网IP地址,目标节点32发送的请求信息的源端口号为该目标节点32的端口号。
步骤204、所述主存储节点通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息。
当主存储节点31确定目标节点33在NAT下,且该目标节点33没有自己的公网IP地址时,主存储节点31进一步确定目标节点33对应的NAT的类型信息,目标节点33对应的NAT的类型信息包括非对称型和对称型。
步骤205、所述主存储节点将所述NAT的类型信息发送给所述目标节点。
当主存储节点31确定出目标节点33对应的NAT的类型信息后,将该目标节点33对应的NAT的类型信息发送给目标节点33。
本发明实施例通过主存储节点接收目标节点发送的请求信息,比较该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址是否相同,若该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址不同,则主存储节点确定该目标节点位于网络地址转换NAT下,并确定该目标节点对应的NAT的公网IP地址,以及该目标节点在该NAT上映射的端口号,从而使得该目标节点可以成为从存储节点,使得没有公网IP地址的节点也可以成为从存储节点,促进了区块链业务的发展。
图4为本发明另一实施例提供的区块链节点通信方法流程图。在上述实施例的基础上,本实施例提供的区块链节点通信方法具体包括如下步骤:
步骤401、主存储节点接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息。
步骤401和步骤201的实现方式和具体原理一致,此处不再赘述。
步骤402、所述主存储节点比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同。
步骤402和步骤202的实现方式和具体原理一致,此处不再赘述。
步骤403、若所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同,则所述主存储节点确定所述目标节点位于网络地址转换NAT下。
步骤403和步骤203的实现方式和具体原理一致,此处不再赘述。
步骤404、所述主存储节点根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求。
主存储节点31根据目标节点33发送的请求信息的源IP地址例如TTT和源端口号例如4040,向目标节点33发送连接请求,该连接请求具体可以是TCP连接请求。
步骤405、若所述主存储节点接收到所述目标节点发送的连接响应,则所述主存储节点确定所述目标节点对应的NAT的类型信息为非对称型。
如果目标节点33接收到了主存储节点31发送的连接请求,并向主存储节点31发送连接响应,则说明目标节点33在非对称型的NAT下,即目标节点33对应的NAT的类型信息为非对称型。
步骤406、所述主存储节点将所述NAT的类型信息发送给所述目标节点。
当主存储节点31确定出目标节点33对应的NAT的类型信息后,将该目标节点33对应的NAT的类型信息发送给目标节点33。
步骤407、所述主存储节点接收所述目标节点发送的第一报文,所述第一报文的源IP地址是所述目标节点当前时刻对应的NAT的公网IP地址,所述第一报文的源端口号是所述目标节点当前时刻在所述NAT上映射的端口号。
当目标节点33接收到主存储节点31发送的NAT的类型信息为非对称型时,目标节点33根据自己当前时刻对应的NAT的公网IP地址和目标节点33在所述NAT上映射的端口号,向主存储节点31发送第一报文,该第一报文的源IP地址是目标节点33当前时刻对应的NAT的公网IP地址,该第一报文的源端口号是目标节点33当前时刻在所述NAT上映射的端口号。另外,该第一报文中还包括目标节点33的标识信息和目标节点33对应的终端设备号,使得主存储节点31接收到该第一报文时,根据目标节点33的标识信息识别目标节点33的身份信息。此外,目标节点33还可以采用自己的私钥对该第一报文进行签名,即目标节点33采用自己的私钥对目标节点33的标识信息和目标节点33对应的终端设备号进行签名,并将签名后的内容发送给主存储节点31,以使主存储节点31根据目标节点33签名后的内容识别目标节点33的身份信息。
可选的,在不同时刻目标节点33对应的NAT的公网IP地址和目标节点33在所述NAT上映射的端口号可能是不同的,也就是说,目标节点33向主存储节点31发送请求信息时目标节点33对应的NAT的公网IP地址和目标节点33当前时刻对应的NAT的公网IP地址可能是不同的,目标节点33向主存储节点31发送请求信息时目标节点33在所述NAT上映射的端口号和目标节点33当前时刻在所述NAT上映射的端口号可能是不同的。
步骤408、所述主存储节点根据所述第一报文的源IP地址和源端口号,向所述目标节点发送第二报文。
主存储节点31接收到目标节点33发送的第一报文后,提取该第一报文的源IP地址和源端口号,并将该第一报文的源IP地址和源端口号作为目标节点33新的通信地址,根据该第一报文的源IP地址和源端口,向目标节点33发送第二报文。
步骤409、所述主存储节点接收所述目标节点周期性发送的心跳报文。
目标节点33接收到主存储节点31发送的第二报文后,根据该第二报文中目标节点33新的通信地址向主存储节点31周期性发送心跳报文,以保持目标节点33和主存储节点31之间的心跳通道一直开通。
步骤410、所述主存储节点根据所述目标节点周期性发送的心跳报文,更新本地记录的所述目标节点对应的NAT的公网IP地址和所述目标节点在所述NAT上映射的端口号。
主存储节点31根据目标节点33周期性发送的心跳报文,更新本地记录的目标节点33对应的NAT的公网IP地址和目标节点33在所述NAT上映射的端口号。另外,目标节点33还可以将当前时刻对应的NAT的公网IP地址和目标节点33当前时刻在所述NAT上映射的端口号广播到区块链网络中,以对目标节点33在历史时刻声明的IP地址和端口号进行修正。
本发明实施例通过主存储节点接收目标节点发送的请求信息,比较该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址是否相同,若该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址不同,则主存储节点确定该目标节点位于网络地址转换NAT下,并确定该目标节点对应的NAT的公网IP地址,以及该目标节点在该NAT上映射的端口号,从而使得该目标节点可以成为从存储节点,使得没有公网IP地址的节点也可以成为从存储节点,促进了区块链业务的发展。
图5为本发明另一实施例提供的区块链节点通信方法流程图。在上述实施例的基础上,本实施例提供的区块链节点通信方法具体包括如下步骤:
步骤501、主存储节点接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息。
步骤501和步骤201的实现方式和具体原理一致,此处不再赘述。
步骤502、所述主存储节点比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同。
步骤502和步骤202的实现方式和具体原理一致,此处不再赘述。
步骤503、若所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同,则所述主存储节点确定所述目标节点位于网络地址转换NAT下。
步骤503和步骤203的实现方式和具体原理一致,此处不再赘述。
步骤504、所述主存储节点根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求。
主存储节点31根据目标节点33发送的请求信息的源IP地址例如TTT和源端口号例如4040,向目标节点33发送连接请求,该连接请求具体可以是TCP连接请求。
步骤505、若所述主存储节点在预设时间内未接收到所述目标节点发送的连接响应,则所述主存储节点确定所述目标节点对应的NAT的类型信息为对称型。
主存储节点31根据目标节点33发送的请求信息的源IP地址例如TTT和源端口号例如4040,向目标节点33发送连接请求之后,如果主存储节点31在预设时间内未接收到目标节点33发送的连接响应,则主存储节点31可以再次向目标节点33发送连接请求,如果主存储节点31向目标节点33发送预设数量的连接请求之后,依然在预设时间内未接收到目标节点33发送的连接响应,则说明目标节点33在对称型的NAT下,即目标节点33对应的NAT的类型信息为对称型。
步骤506、所述主存储节点将所述NAT的类型信息发送给所述目标节点。
当主存储节点31确定出目标节点33对应的NAT的类型信息后,将该目标节点33对应的NAT的类型信息发送给目标节点33。
步骤507、所述主存储节点接收查询节点发送的查询请求。
例如,主存储节点31接收到查询节点35发送的查询请求。
步骤508、所述主存储节点向所述目标节点发送所述查询节点的IP地址和端口号,以使所述目标节点和所述查询节点进行信息交互。
主存储节点31将查询节点35的IP地址和端口号发送给目标节点33,可选的,查询节点35的IP地址为该查询请求的源IP地址,查询节点35的端口号为该查询请求的源端口号。目标节点33根据查询节点35的IP地址和端口号,向查询节点35发送心跳报文,并保持目标节点33和查询节点35之间的心跳通道一直开通,当查询节点35需要查询该目标节点33上存储的信息时,查询节点35可以通过目标节点33和查询节点35之间的心跳通道向目标节点33发送查询请求,目标节点33可通过目标节点33和查询节点35之间的心跳通道向查询节点35发送查询结果。
本发明实施例通过主存储节点接收目标节点发送的请求信息,比较该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址是否相同,若该请求信息的源IP地址和该目标节点在加入区块链网络时广播的IP地址不同,则主存储节点确定该目标节点位于网络地址转换NAT下,并确定该目标节点对应的NAT的公网IP地址,以及该目标节点在该NAT上映射的端口号,从而使得该目标节点可以成为从存储节点,使得没有公网IP地址的节点也可以成为从存储节点,促进了区块链业务的发展。
图6为本发明实施例提供的区块链节点通信装置的结构示意图。该区块链节点通信装置可以是上述实施例中的主存储节点。本发明实施例提供的区块链节点通信装置可以执行区块链节点通信方法实施例提供的处理流程,如图6所示,区块链节点通信装置60包括:接收模块61、比较模块62、第一确定模块63、第二确定模块64和发送模块65;其中,接收模块61用于接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息;比较模块62用于比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同;第一确定模块63用于当所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同时,确定所述目标节点位于网络地址转换NAT下,并确定所述目标节点对应的NAT的公网IP地址,以及所述目标节点在所述NAT上映射的端口号;第二确定模块64用于通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息;发送模块65用于将所述NAT的类型信息发送给所述目标节点。
可选的,发送模块65还用于:根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求;第二确定模块64具体用于:当所述接收模块接收到所述目标节点发送的连接响应时,确定所述目标节点对应的NAT的类型信息为非对称型。
可选的,接收模块61还用于:接收所述目标节点发送的第一报文,所述第一报文的源IP地址是所述目标节点当前时刻对应的NAT的公网IP地址,所述第一报文的源端口号是所述目标节点当前时刻在所述NAT上映射的端口号;发送模块65还用于:根据所述第一报文的源IP地址和源端口号,向所述目标节点发送第二报文;接收模块61还用于:接收所述目标节点周期性发送的心跳报文;区块链节点通信装置60还包括:更新模块66,更新模块66用于根据所述目标节点周期性发送的心跳报文,更新本地记录的所述目标节点对应的NAT的公网IP地址和所述目标节点在所述NAT上映射的端口号。
可选的,发送模块65还用于:根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求;第二确定模块64具体用于:当所述主存储节点在预设时间内未接收到所述目标节点发送的连接响应时,确定所述目标节点对应的NAT的类型信息为对称型。
可选的,接收模块61还用于:接收查询节点发送的查询请求;发送模块65还用于:向所述目标节点发送所述查询节点的IP地址和端口号,以使所述目标节点和所述查询节点进行信息交互。
图6所示实施例的区块链节点通信装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明实施例提供的区块链节点的结构示意图。本发明实施例提供的区块链节点可以执行区块链节点通信方法实施例提供的处理流程,如图7所示,区块链节点70包括存储器71、处理器72、计算机程序和通讯接口73;其中,计算机程序存储在存储器71中,并被配置为由处理器72执行以上实施例所述的区块链节点通信方法。
图7所示实施例的区块链节点可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的区块链节点通信方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种区块链节点通信方法,其特征在于,包括:
主存储节点接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息;所述主存储节点和所述目标节点为同一区块链网络中的节点;
所述主存储节点比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同;
若所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同,则所述主存储节点确定所述目标节点位于网络地址转换NAT下,并确定所述目标节点对应的NAT的公网IP地址,以及所述目标节点在所述NAT上映射的端口号,以使所述目标节点成为从存储节点,所述目标节点对应的NAT的公网IP地址为所述请求信息的源IP地址,所述目标节点在所述NAT上映射的端口号为所述请求信息的源端口号;所述目标节点通过所述NAT与所述主存储节点进行通信;
所述主存储节点通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息;
所述主存储节点将所述NAT的类型信息发送给所述目标节点。
2.根据权利要求1所述的方法,其特征在于,所述主存储节点通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息,包括:
所述主存储节点根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求;
若所述主存储节点接收到所述目标节点发送的连接响应,则所述主存储节点确定所述目标节点对应的NAT的类型信息为非对称型。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述主存储节点接收所述目标节点发送的第一报文,所述第一报文的源IP地址是所述目标节点当前时刻对应的NAT的公网IP地址,所述第一报文的源端口号是所述目标节点当前时刻在所述NAT上映射的端口号;
所述主存储节点根据所述第一报文的源IP地址和源端口号,向所述目标节点发送第二报文;
所述主存储节点接收所述目标节点周期性发送的心跳报文;
所述主存储节点根据所述目标节点周期性发送的心跳报文,更新本地记录的所述目标节点对应的NAT的公网IP地址和所述目标节点在所述NAT上映射的端口号。
4.根据权利要求1所述的方法,其特征在于,所述主存储节点通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息,包括:
所述主存储节点根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求;
若所述主存储节点在预设时间内未接收到所述目标节点发送的连接响应,则所述主存储节点确定所述目标节点对应的NAT的类型信息为对称型。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述主存储节点接收查询节点发送的查询请求;
所述主存储节点向所述目标节点发送所述查询节点的IP地址和端口号,以使所述目标节点和所述查询节点进行信息交互。
6.一种区块链节点通信装置,其特征在于,包括:
接收模块,用于接收目标节点发送的请求信息,所述请求信息表示所述目标节点请求成为从存储节点,所述请求信息包括所述目标节点的标识信息;所述主存储节点和所述目标节点为同一区块链网络中的节点;
比较模块,用于比较所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址是否相同;
第一确定模块,用于当所述请求信息的源IP地址和所述目标节点在加入区块链网络时广播的IP地址不同时,确定所述目标节点位于网络地址转换NAT下,并确定所述目标节点对应的NAT的公网IP地址,以及所述目标节点在所述NAT上映射的端口号,以使所述目标节点成为从存储节点,所述目标节点对应的NAT的公网IP地址为所述请求信息的源IP地址,所述目标节点在所述NAT上映射的端口号为所述请求信息的源端口号;所述目标节点通过所述NAT与所述主存储节点进行通信;
第二确定模块,用于通过向所述目标节点发送连接请求,确定所述目标节点对应的NAT的类型信息;
发送模块,用于将所述NAT的类型信息发送给所述目标节点。
7.根据权利要求6所述的区块链节点通信装置,其特征在于,所述发送模块还用于:根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求;
所述第二确定模块具体用于:当所述接收模块接收到所述目标节点发送的连接响应时,确定所述目标节点对应的NAT的类型信息为非对称型。
8.根据权利要求7所述的区块链节点通信装置,其特征在于,
所述接收模块还用于:接收所述目标节点发送的第一报文,所述第一报文的源IP地址是所述目标节点当前时刻对应的NAT的公网IP地址,所述第一报文的源端口号是所述目标节点当前时刻在所述NAT上映射的端口号;
所述发送模块还用于:根据所述第一报文的源IP地址和源端口号,向所述目标节点发送第二报文;
所述接收模块还用于:接收所述目标节点周期性发送的心跳报文;
所述区块链节点通信装置还包括:更新模块,用于根据所述目标节点周期性发送的心跳报文,更新本地记录的所述目标节点对应的NAT的公网IP地址和所述目标节点在所述NAT上映射的端口号。
9.根据权利要求6所述的区块链节点通信装置,其特征在于,所述发送模块还用于:根据所述请求信息的源IP地址和源端口号,向所述目标节点发送连接请求;
所述第二确定模块具体用于:当所述区块链节点通信装置在预设时间内未接收到所述目标节点发送的连接响应时,确定所述目标节点对应的NAT的类型信息为对称型。
10.根据权利要求9所述的区块链节点通信装置,其特征在于,
所述接收模块还用于:接收查询节点发送的查询请求;
所述发送模块还用于:向所述目标节点发送所述查询节点的IP地址和端口号,以使所述目标节点和所述查询节点进行信息交互。
11.一种区块链节点,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-5任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-5任一项所述的方法。
CN201810555793.1A 2018-05-31 2018-05-31 区块链节点通信方法、装置及区块链节点 Active CN108810186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810555793.1A CN108810186B (zh) 2018-05-31 2018-05-31 区块链节点通信方法、装置及区块链节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810555793.1A CN108810186B (zh) 2018-05-31 2018-05-31 区块链节点通信方法、装置及区块链节点

Publications (2)

Publication Number Publication Date
CN108810186A CN108810186A (zh) 2018-11-13
CN108810186B true CN108810186B (zh) 2021-05-18

Family

ID=64089930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810555793.1A Active CN108810186B (zh) 2018-05-31 2018-05-31 区块链节点通信方法、装置及区块链节点

Country Status (1)

Country Link
CN (1) CN108810186B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1697452A (zh) * 2005-06-17 2005-11-16 中兴通讯股份有限公司 一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法
CN101350825A (zh) * 2008-08-22 2009-01-21 中兴通讯股份有限公司 网络地址转换穿越方法和系统、流媒体服务器、机顶盒
CN104980528A (zh) * 2015-06-26 2015-10-14 广州华多网络科技有限公司 实现节点间通信的方法、系统及装置
CN106716421A (zh) * 2016-12-30 2017-05-24 深圳前海达闼云端智能科技有限公司 数据查询方法、装置及节点设备
CN107911421A (zh) * 2017-10-30 2018-04-13 上海点融信息科技有限责任公司 用于配置区块链中跨网络通信的方法、设备和计算机存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1697452A (zh) * 2005-06-17 2005-11-16 中兴通讯股份有限公司 一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法
CN101350825A (zh) * 2008-08-22 2009-01-21 中兴通讯股份有限公司 网络地址转换穿越方法和系统、流媒体服务器、机顶盒
CN104980528A (zh) * 2015-06-26 2015-10-14 广州华多网络科技有限公司 实现节点间通信的方法、系统及装置
CN106716421A (zh) * 2016-12-30 2017-05-24 深圳前海达闼云端智能科技有限公司 数据查询方法、装置及节点设备
CN107911421A (zh) * 2017-10-30 2018-04-13 上海点融信息科技有限责任公司 用于配置区块链中跨网络通信的方法、设备和计算机存储介质

Also Published As

Publication number Publication date
CN108810186A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108712506B (zh) 区块链节点通信方法、装置及区块链节点
EP3668134A1 (en) Wireless communication method, network device, and terminal device
CN109067724B (zh) 区块链数据交易方法、装置、设备及存储介质
CN109640274B (zh) 基于区块链的短信发送方法、装置及计算机可读存储介质
CN109118360B (zh) 区块链对账方法、装置、设备及存储介质
CN108769142B (zh) 交易信息处理方法及区块生成节点
CN108810120B (zh) 区块链节点通信方法、装置及区块链节点
CN108989043B (zh) 区块处理方法、装置及区块链节点
CN108683727B (zh) 区块处理方法及主节点
CN108777710B (zh) 区块链节点间通信方法、装置及区块链节点
CN108848144B (zh) 区块链中节点访问方法、装置及区块链节点
CN108243631B (zh) 一种接入网络的方法及设备
CN108777712B (zh) 区块链节点通信方法、装置及区块链节点
CN109639715B (zh) 避免双花攻击的方法、装置、设备及计算机可读存储介质
CN108768733B (zh) 区块链账本处理方法、装置及区块链节点
CN109087096B (zh) 区块链对账方法、装置、设备及存储介质
CN108833513B (zh) 区块链节点间通信方法、装置及区块链节点
CN108898419B (zh) 奖励信息处理方法、装置及区块链节点
CN108810186B (zh) 区块链节点通信方法、装置及区块链节点
CN108769144A (zh) 存储处理方法、交易节点、存储节点及通信设备
CN108712507B (zh) 区块链节点访问方法、装置及区块链节点
CN103053185B (zh) 网络名称处理方法和移动性管理网元设备
WO2017080303A1 (zh) 一种电路域回落csfb流程处理方法和装置
CN108777711B (zh) 区块链节点通信方法、装置及区块链节点
CN108881414B (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