CN110601902B - 一种基于区块链网络的交互数据处理方法及装置 - Google Patents
一种基于区块链网络的交互数据处理方法及装置 Download PDFInfo
- Publication number
- CN110601902B CN110601902B CN201910904867.2A CN201910904867A CN110601902B CN 110601902 B CN110601902 B CN 110601902B CN 201910904867 A CN201910904867 A CN 201910904867A CN 110601902 B CN110601902 B CN 110601902B
- Authority
- CN
- China
- Prior art keywords
- node
- proxy
- service
- information
- service node
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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
- H04L67/1097—Protocols 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]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于区块链网络的交互数据处理方法及装置。该方法包括:第一代理节点获取第一业务节点发起的第一流量数据;第一代理节点与第一业务节点属于第一区块链网络;根据第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;根据第一代理节点的外网信息、第二代理节点的外网信息、第一自定义头和第一流量数据,生成第一代理数据包;第二代理节点与第二业务节点属于第二区块链网络;将第一代理数据包发送至第二代理节点,以使第二代理节点解析第一代理数据包,将第一流量数据转发至第二业务节点。采用本申请,提高了区块链网络的安全性,同时提高了针对区块链网络的网络管理的效率。
Description
技术领域
本申请涉及数据处理的技术领域,尤其涉及一种基于区块链网络的交互数据处理方法及装置。
背景技术
随着计算机网络的不断发展,企业之间的交流也更多的依赖于互联网。此间交流过程中,网络安全始终是一个必须关注且异常重要的问题。
当前技术中,对于区块链开放平台而言,当区块链开放平台中存在多个区块链节点时,每个区块链节点都会存在一个地址和端口,当某个区块链开放平台中的区块链节点需要与另一个区块链开放平台中的区块链平台进行信息交互时,是通过两个不同平台的区块链节点之间的地址和端口进行交互,因此,区块链开放平台中的每个区块链节点的地址和端口都会直接暴露在网络边界处,导致区块链开放平台的安全性得不到保障。
此外,由于区块链开放平台中每个区块链节点的地址和端口均暴露在网络边界处,在对区块链开放平台进行网络管理时,也需要管理区块链开放平台中每个区块链节点的网络,导致网络管理难度大,效率低。
发明内容
本申请提供了一种基于区块链网络的交互数据处理方法及装置,可提高区块链网络的安全性,同时可提高针对区块链网络的网络管理效率。
本申请一方面提供了一种基于区块链网络的交互数据处理方法,包括:
第一代理节点获取第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;
根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;
根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;
将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。
其中,所述第一代理节点获取第一业务节点发起的第一流量数据,包括:
所述第一代理节点接收所述第一业务节点发送的第一业务数据包;所述第一业务数据包包括所述第一流量数据、所述第一业务节点对应的虚拟映射地址和所述第二业务节点对应的虚拟映射地址;
提取所述第一业务数据包中的所述第一流量数据,根据所述第一业务节点的虚拟映射地址获取所述第一业务节点对应的节点信息,根据所述第二业务节点的虚拟映射地址获取所述第二业务节点对应的节点信息。
其中,所述根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包,包括:
根据所述第一代理节点的外网信息和所述第二代理节点的外网信息,生成外网地址头;
将所述第一自定义头和所述第一流量数据封装在传输层协议,得到待发送数据包;
将所述外网地址头和所述待发送数据包进行拼接,得到所述第一代理数据包。
其中,还包括:
获取所述第二代理节点发送的第二代理数据包;
解析所述第二代理数据包,得到第二自定义头和第二流量数据;
解析所述第二自定义头,得到所述第一业务节点的节点信息和所述第二业务节点的节点信息;
根据所述第一业务节点的节点信息和所述第二业务节点的节点信息,将所述第二流量数据转发至所述第一业务节点。
其中,所述根据所述第一业务节点的节点信息和所述第二业务节点的节点信息,将所述第二流量数据转发至所述第一业务节点,包括:
基于所述第一业务节点的节点信息获取所述第一业务节点对应的虚拟映射地址,基于所述第二业务节点的节点信息获取所述第二业务节点对应的虚拟映射地址;
基于所述第一业务节点对应的虚拟映射地址、所述第二业务节点对应的虚拟映射地址和所述第二流量数据,重构得到所述第二代理数据包对应的第二业务数据包;
将所述第二业务数据包转发至所述第一业务节点。
其中,所述第一业务节点的节点信息包括所述第一区块链网络的标识信息、所述第一业务节点的节点名称以及所述第一业务节点的节点端口信息;所述第二业务节点的节点信息包括所述第二业务节点对应的第二区块链网络的标识信息、所述第二业务节点的节点名称以及所述第二业务节点的节点端口信息;所述第一自定义头包括所述第一业务节点的节点信息、所述第二业务节点的节点信息和所述第一自定义头对应的版本信息。
其中,所述将所述第一代理数据包发送至所述第二代理节点,包括:
基于所述第一代理数据包中的所述第一代理节点的外网信息以及所述第二代理节点的外网信息,将所述第一代理数据包发送至所述第二代理节点。
其中,所述第一业务节点包括具有配置功能的第一控制节点;所述第二业务节点包括具有配置功能的第二控制节点;还包括:
获取所述第一控制节点发送的连接请求,将所述连接请求发送至所述第二代理节点,以使所述第二代理节点将所述连接请求发送至所述第二控制节点,获取所述第二控制节点返回的确认连接信息;所述连接请求是由所述第一控制节点在获取到所述第二代理节点的外网信息时所生成的;
接收所述第二代理节点发送的所述确认连接信息,将所述确认连接信息发送至所述第一控制节点,以使所述第一控制节点完成与所述第二控制节点之间的连接。
其中,还包括:
获取所述第二代理节点发送的第三业务节点的节点信息,将所述第三业务节点的节点信息发送至所述第一控制节点,以使所述第一控制节点配置所述第三业务节点与所述第一代理节点之间的通信连接关系;所述第三业务节点为所述第二区块链网络中的新增节点,且所述第三业务节点具有与所述第一区块链网络进行相互访问的权限。
其中,还包括:
获取所述第一控制节点发送的第一心跳信息,将所述第一心跳信息发送至所述第二代理节点,以使所述第二代理节点将所述第一心跳信息转发至所述第二控制节点;所述第一心跳信息用于指示所述第二控制节点检测与所述第一控制节点之间的连接状态;
获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点;所述第二心跳信息用于指示所述第一控制节点检测与所述第二控制节点之间的连接状态。
其中,所述第二心跳信息中携带有授权节点对应的第一哈希值;所述授权节点指所述第二区块链网络中与所述第一代理节点之间具有通信连接关系的节点;
所述获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点,包括:
获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点,以使所述第一控制节点生成已配置的与所述第一代理节点之间具有通信连接关系的所有第二业务节点对应的第二哈希值,且在检测到所述第一哈希值与所述第二哈希值不一致时,输出警报信息。
本申请一方面提供了一种基于区块链网络的交互数据处理装置,包括:
第一获取模块,用于获取第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;
第一生成模块,用于根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;
第二生成模块,用于根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;
第一转发模块,用于将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。
其中,所述第一获取模块,包括:
接收单元,用于接收所述第一业务节点发送的第一业务数据包;所述第一业务数据包包括所述第一流量数据、所述第一业务节点对应的虚拟映射地址和所述第二业务节点对应的虚拟映射地址;
提取单元,用于提取所述第一业务数据包中的所述第一流量数据,根据所述第一业务节点的虚拟映射地址获取所述第一业务节点对应的节点信息,根据所述第二业务节点的虚拟映射地址获取所述第二业务节点对应的节点信息。
其中,所述第二生成模块,包括:
生成单元,用于根据所述第一代理节点的外网信息和所述第二代理节点的外网信息,生成外网地址头;
封装单元,用于将所述第一自定义头和所述第一流量数据封装在传输层协议,得到待发送数据包;
拼接单元,用于将所述外网地址头和所述待发送数据包进行拼接,得到所述第一代理数据包。
其中,还包括:
第二获取模块,用于获取所述第二代理节点发送的第二代理数据包;
第一解析模块,用于解析所述第二代理数据包,得到第二自定义头和第二流量数据;
第二解析模块,用于解析所述第二自定义头,得到所述第一业务节点的节点信息和所述第二业务节点的节点信息;
第二转发模块,用于根据所述第一业务节点的节点信息和所述第二业务节点的节点信息,将所述第二流量数据转发至所述第一业务节点。
其中,所述第二转发模块,包括:
获取单元,用于基于所述第一业务节点的节点信息获取所述第一业务节点对应的虚拟映射地址,基于所述第二业务节点的节点信息获取所述第二业务节点对应的虚拟映射地址;
重构单元,用于基于所述第一业务节点对应的虚拟映射地址、所述第二业务节点对应的虚拟映射地址和所述第二流量数据,重构得到所述第二代理数据包对应的第二业务数据包;
转发单元,用于将所述第二业务数据包转发至所述第一业务节点。
其中,所述第一业务节点的节点信息包括所述第一区块链网络的标识信息、所述第一业务节点的节点名称以及所述第一业务节点的节点端口信息;所述第二业务节点的节点信息包括所述第二业务节点对应的第二区块链网络的标识信息、所述第二业务节点的节点名称以及所述第二业务节点的节点端口信息;所述第一自定义头包括所述第一业务节点的节点信息、所述第二业务节点的节点信息和所述第一自定义头对应的版本信息。
其中,所述第一转发模块,还用于:
基于所述第一代理数据包中的所述第一代理节点的外网信息以及所述第二代理节点的外网信息,将所述第一代理数据包发送至所述第二代理节点。
其中,所述第一业务节点包括具有配置功能的第一控制节点;所述第二业务节点包括具有配置功能的第二控制节点;所述交互数据处理装置,还包括:
请求获取模块,用于获取所述第一控制节点发送的连接请求,将所述连接请求发送至所述第二代理节点,以使所述第二代理节点将所述连接请求发送至所述第二控制节点,获取所述第二控制节点返回的确认连接信息;所述连接请求是由所述第一控制节点在获取到所述第二代理节点的外网信息时所生成的;
确认接收模块,用于接收所述第二代理节点发送的所述确认连接信息,将所述确认连接信息发送至所述第一控制节点,以使所述第一控制节点完成与所述第二控制节点之间的连接。
其中,所述交互数据处理装置,还用于:
获取所述第二代理节点发送的第三业务节点的节点信息,将所述第三业务节点的节点信息发送至所述第一控制节点,以使所述第一控制节点配置所述第三业务节点与所述第一代理节点之间的通信连接关系;所述第三业务节点为所述第二区块链网络中的新增节点,且所述第三业务节点具有与所述第一区块链网络进行相互访问的权限。
其中,所述交互数据处理装置,还包括:
第一心跳获取模块,用于获取所述第一控制节点发送的第一心跳信息,将所述第一心跳信息发送至所述第二代理节点,以使所述第二代理节点将所述第一心跳信息转发至所述第二控制节点;所述第一心跳信息用于指示所述第二控制节点检测与所述第一控制节点之间的连接状态;
第二心跳获取模块,用于获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点;所述第二心跳信息用于指示所述第一控制节点检测与所述第二控制节点之间的连接状态。
其中,所述第二心跳信息中携带有授权节点对应的第一哈希值;所述授权节点指所述第二区块链网络中与所述第一代理节点之间具有通信连接关系的节点;
所述第二心跳获取模块,还用于:
获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点,以使所述第一控制节点生成已配置的与所述第一代理节点之间具有通信连接关系的所有第二业务节点对应的第二哈希值,且在检测到所述第一哈希值与所述第二哈希值不一致时,输出警报信息。
本申请一方面提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器调用时,以执行如本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述一方面中的方法。
本申请首先获取第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。由此可见,本申请提出的方法可以通过第一代理节点和第二代理节点,实现第一区块链网络中的第一业务节点与第二区块链网络中的第二区块链网络之间的数据交互,即当存在多个第一业务节点时,第一区块链网络只需暴露第一代理节点的外网地址和端口,当存在多个第二业务节点时,第二区块链网络也只需暴露第二代理节点的外网地址和端口,提高了第一区块链网络和第二区块链网络的安全性。并且,在对第一区块链网络和第二区块链网络进行网络管理时,也只需要管理第一代理节点的网络和第二代理节点的网络,提高了网络管理的效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种区块链网络的网络架构示意图;
图2是本申请提供的一种基于区块链网络的交互数据处理方法的流程示意图;
图3是本申请提供的另一种基于区块链网络的交互数据处理方法的流程示意图;
图4是本申请提供的一种数据交互的场景示意图;
图5是本申请提供的一种平台连接的流程示意图;
图6是本申请提供的一种数据交互的场景示意图;
图7是本申请提供的一种网络交互的场景示意图;
图8是本申请提供的一种多平台连接的场景示意图;
图9是本申请提供的一种基于区块链网络的交互数据处理装置的结构示意图;
图10是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,是本申请提供的一种区块链网络的网络架构示意图。如图1所示,网络101A可以称之为第一区块链网络,网络102A可以称之为第二区块链网络,网络101A可以为A企业所部属的区块链网络平台,网络102A可以为B企业所部属的区块链网络平台,A企业与B企业互不相同。每个区块链网络平台中可以包括多个业务节点。此处,网络101A中包括业务节点101a、业务节点102a、业务节点103a、业务节点104a和业务节点105a。其中,业务节点105a为网络101A中的控制节点,可以将业务节点105a称之为第一控制节点;节点106a为网络101A中的代理节点,可以将节点106a称之为第一代理节点。网络102A中包括业务节点107a、业务节点108a、业务节点109a、业务节点110a和业务节点111a。其中,业务节点111a为网络102A中的控制节点,可以将业务节点111a称之为第二控制节点;节点112a为网络102A中的代理节点,可以将节点112a称之为第二代理节点。上述网络101A中的业务节点的个数和网络102A中的业务节点的个数根据实际应用场景决定,此处以其个数均为5个进行说明。其中,上述每个节点(包括业务节点和代理节点)可以对应于一个或者多个服务器,上述每个节点中除代理节点和控制节点之外的节点均可以称之为区块链节点,例如,业务节点101a、业务节点102a、业务节点103a和业务节点104a为网络101A中的区块链节点;业务节点107a、业务节点108a、业务节点109a、业务节点110a为网络102A中的区块链节点。
其中,一个区块链网络中的控制节点用于控制该区块链网络与其他区块链网络创建连接关系,一个区块链网络中的控制节点还用于,通过其他区块链网络中的业务节点的节点信息对本区块链网络中的代理节点进行配置,使得该代理节点可以知道在其他区块链网络中有哪些业务节点可以进行访问,进而该代理节点可以控制本区块链网络中的业务节点可以向其他区块链网络中的哪些业务节点进行访问。此处,上述第一控制节点105a与第二控制节点111a之间已经建立连接,即表明上述网络101A和网络102A之间已经建立了连接。
其中,当第一控制节点105a已对第一代理节点106a配置完网络102A中的第二业务节点的节点信息时,网络101A中的第一业务节点可以向第二业务节点发送业务数据包,即表明第一业务节点可以访问第二业务节点。其中,上述第一业务节点可以是业务节点101a、业务节点102a、业务节点103a和业务节点104a中任一个节点,上述第二业务节点可以是业务节点107a、业务节点108a、业务节点109a和业务节点110a中任一个节点。第一业务节点并不能直接将上述业务数据包发送给第二业务节点,该业务数据包发送的具体过程为:当第一业务节点向第二业务节点发送业务数据包时,在该业务数据包还在第一区块链网络的内网范围内,第一代理节点106a可以截获到该业务数据包。由于该业务数据包中除了包含有第一业务节点向第二业务节点发送的实际数据(即实际需要发送的数据,例如TCP字段(一种传输数据))之外,还可以包括数据传输协议。因此,第一代理节点106a可以从接收到的业务数据包中提取出第一业务节点向第二业务节点发送的实际数据,并对提取出的实际数据进行重新封装,即将第一代理节点的外网信息和第二代理节点的外网信息与该实际数据封装在一起,得到代理数据包。第一代理节点可以通过代理数据包中封装的第一代理节点的外网信息和第二代理节点的外网信息,将该代理数据包发送给第二代理节点112a。第二代理节点112a可以对接收到的代理数据包进行解析,得到该代理数据包中的上述实际数据,并对解析得到的实际数据进行重构,还原出上述第一业务节点原本发送给第二业务节点的业务数据包。第二代理节点112a可以将重构得到的业务数据包发送给第二业务节点。到此,即实现了第一业务节点通过第一代理节点106a和第二代理节点112a,将上述业务数据包发送给了第二业务节点。此间业务数据包的发送过程中,第一业务节点感知不到第一代理节点106a的存在,第二业务节点也感知不第二代理节点112a的存在。在第一业务节点的认知下,其业务数据包的发送对象为第二业务节点,而非第一代理节点106a,同理,在第二业务节点的认知下,接收到的业务数据包的发送对象为第一业务节点,而非第二代理节点112a。
通过本申请提供的方法,不同区块链网络之间在进行数据交互时,只需通过每个区块链网络自己的代理节点进行数据交互,使得每个区块链网络可以只向网络边界映射一个外网地址和一个外网端口,即代理节点对应的外网地址和外网端口,大大提高了每个区块链网络的网络安全性。并且,外网地址的资源往往也非常有限,通过本申请所提供的方法,一个区块链网络只需分配一个外网地址,大大减少了一个区块链网络对于外网地址的占用。此外,在对区块链网络内部进行网络管理时,只需管理对外开放外网地址和外网端口的代理节点的网络,大大提高了对于区块链网络的网络管理的效率。更多的,由于每个区块链网络只在网络边界映射了一个外网地址和外网端口,因此,也可以使得对区块链网络的定位更加直观便捷。
请参见图2,是本申请提供的一种基于区块链网络的交互数据处理方法的流程示意图,如图2所示,所述方法可以包括:
步骤S101,第一代理节点获取第一业务节点发起的第一流量数据;
具体的,第一流量数据的发送对象为第二业务节点。其中,第一代理节点和第一业务节点均属于第一区块链网络的节点,上述第二业务节点属于第二区块链网络中对第一业务节点具有访问权限的节点。第一区块链网络和第二区块链网络均为区块链平台(或者称之为区块链服务平台),例如,第一区块链网络和第二区块链网络可以是BaaS平台(一种区块链开放平台)。第一区块链网络中存在多个区块链节点,上述第一业务节点为第一区块链网络中的区块链节点。第二区块链网络中也存在多个区块链节点,上述第二业务节点即为第二区块链网络中的区块链节点。第一区块链网络中的区块链节点的数量以及第二区块链网络中的区块链节点的数量根据实际应用场景决定,这里不作限制。第一代理节点可以获取到第一业务节点发起的第一流量数据,实际上,第一代理节点会接收到第一业务节点发送的第一业务数据包,第一代理节点可以在该第一业务数据包中提取得到上述第一流量数据。上述第一流量数据为第一业务节点发送给第二业务节点的实际业务流量(例如,TCP(一种传输层协议)数据段)。需要进行说明的是,第一业务节点在发送第一业务数据包时,感知不到第一代理节点的存在,第一业务数据包中包括第一业务节点向第二业务节点的完整的数据(包括第一业务节点所认知的自己的外网地址和端口、第二业务节点的外网地址和端口以及传输层协议),即第一业务节点所认知的发送对象为第二业务节点,而非第一代理节点,只是第一代理节点被第一区块链网络授权可以截获到第一业务节点发送的第一业务数据包。
步骤S102,根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;
具体的,第一业务节点在发送第一业务数据包给第一代理节点时,还可以将自己的节点信息和第一业务数据包对应的发送对象(即第二业务节点)的节点信息一起发送给第一代理节点,第一代理节点可以根据第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头。上述第一业务节点的节点信息中可以包括第一业务节点的节点名称以及节点端口,上述第二业务节点的节点信息中可以包括第二业务节点的节点名称以及节点端口。因此,自定义头中可以包括:第一业务节点的节点名称以及节点端口,第二业务节点的节点名称以及节点端口。该自定义头用于指示第二代理节点找到第一流量数据的正确的发送对象(即第二业务节点),第二代理节点与第二业务节点同属于第二区块链网络。
步骤S103,根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;
具体的,第一区块链网络对应有一个外网信息,即第一区块链网络中第一代理节点的外网信息;第二区块链网络对应有一个外网信息,即第二区块链网络中第二代理节点的外网信息。其中,外网信息包括外网地址和外网端口。第一代理节点可以根据自己的外网信息、第二代理节点的外网信息、上述生成的第一自定义头以及获取到的第一流量数据包,生成第一代理数据包,即该第一代理数据包为第一代理节点对第一业务数据包进行重新拆解并重新封装所生成的数据包。
步骤S104,将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点;
具体的,第一代理节点可以将生成的第一代理数据包发送至第二代理节点,第二代理节点对接收到的第一代理数据包进行解析,并得到第一代理数据包中的第一自定义头和第一流量数据。第二代理节点可以通过第一自定义头知道第一流量数据的发送对象为第二业务节点,同时,第二代理节点会将第一流量数据重新封装为上述第一业务数据包(即还原出与第一业务节点发送第一流量数据给第二业务节点时相同的数据包格式),第二代理节点会将还原出的第一业务数据包转发给第二业务节点,第二业务节点可以从接收到的第一业务数据包中提取得到上述第一流量数据。到此,即实现了第一业务节点通过第一代理节点和第二代理节点,将第一流量数据发送给了第二业务节点。并且,由于第二业务节点接收到的第一流量数据也为其对应的第一业务数据包,因此,第二业务节点也感知不到第二代理节点的存在,在第二业务节点的认知中,接收到的第一流量数据对应的第一业务数据包是由第一业务节点发送过来的。也可以得知,两个不同区块链网络中的两个业务节点要进行数据交互,需要通过所述两个不同区块链网络中各自的代理节点进行数据交互,而不能直接进行数据交互。
本申请首先获取第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。由此可见,本申请提出的方法可以通过第一代理节点和第二代理节点,实现第一区块链网络中的第一业务节点与第二区块链网络中的第二区块链网络之间的数据交互,即当存在多个第一业务节点时,第一区块链网络只需暴露第一代理节点的外网地址和端口,当存在多个第二业务节点时,第二区块链网络也只需暴露第二代理节点的外网地址和端口,提高了第一区块链网络和第二区块链网络的安全性。并且,在对第一区块链网络和第二区块链网络进行网络管理时,也只需要管理第一代理节点的网络和第二代理节点的网络,提高了网络管理的效率。
请参见图3,是本申请提供的另一种基于区块链网络的交互数据处理方法的流程示意图,如图3所示,所述方法可以包括:
步骤S201,第一代理节点接收所述第一业务节点发送的第一业务数据包;
具体的,这里需要解释控制节点,第一区块链网络中包括第一控制节点,第二区块链网络中包括第二控制节点。第一代理节点需要通过第一控制节点进行配置,第二代理节点需要通过第二控制节点进行配置。第一区块链网络的管理员可以将第二区块链网络的外网信息(包括IP(外网地址)和Port(端口))和连接密钥输入到第一控制节点(可以称之为控制台)中,并确认连接(例如通过点击“连接”按钮确认连接),确认连接之后,第一控制节点会生成连接请求。该连接请求中可以携带第一区块链网络的管理员录入第一控制节点的连接密钥或者是根据该连接密钥生成的哈希值。连接密钥用于防止非授权的区块链网络连接第二区块链网络。其中,第二代理节点的外网信息和连接密钥可以是第二区块链网络的管理员通过线下的方式提供给第一区块链网络的管理员的,其中,线下的方式是指通过非区块链相关的信息传递渠道的方式,例如通过某些即时通讯应用提供(发送),例如邮件或者聊天应用等方式。
第一代理节点可以获取所述第一控制节点发送的连接请求,将所述连接请求发送至所述第二代理节点,以使所述第二代理节点将所述连接请求发送至所述第二控制节点,获取所述第二控制节点返回的确认连接信息:其中,上述连接请求为第一控制节点在获取到第二代理节点的外网信息和连接密钥,并确认连接时所生成的。第一代理节点可以将第一控制节点发送的连接请求发送给第二代理节点,第二代理节点可以将接收到的连接请求转发给第二控制节点。第二控制节点在获取到该连接请求时,可以对该连接请求的合法性进行验证,例如,第二控制节点会验证连接请求中所携带的连接密钥或者连接密钥对应的哈希值,是否是正确的连接密钥或者正确的哈希值。当第二控制节点验证出连接请求中所携带的连接密钥或者哈希值是正确的时,第二控制节点可以完成与第一控制节点之间的连接,并生成确认连接信息。第二控制节点可以将该确认连接信息发送给第二代理节点。
第一代理节点可以接收所述第二代理节点发送的所述确认连接信息,将所述确认连接信息发送至所述第一控制节点,以使所述第一控制节点完成与所述第二控制节点之间的连接:第一代理节点可以将接收到的第二代理节点发送的确认连接信息转发给第一控制节点,第一控制节点可以根据该确认连接请求完成与第二控制节点之间的连接。到此,即实现了第一控制节点和第二控制节点之间的相互连接,第一控制节点和第二控制节点连接完成,表明第一区块链网络与第二区块链网络之间连接完成。
当第一控制节点与第二控制节点连接成功时,第一区块链网络中若是有可以向第二区块链网络进行开放(即可供第二区块链网络访问)的区块链节点(可以是第二业务节点中除第二控制节点之外的节点)时,第一控制节点可以通过第一代理节点和第二代理节点将第一区块链网络中开放的区块链节点的节点信息发送给第二控制节点,第二控制节点接收到第一区块链网络中的区块链节点的节点信息之后,会通过该区块链节点的节点信息对第二代理节点进行配置,使得第二代理节点允许第二区块链网络中的所有区块链节点(可以指第二业务节点中除第二控制节点之外的节点)可以对第一区块链网络中已通过节点信息进行配置的区块链节点发起连接。同理,若是第二区块链网络中有可以向第一区块链网络进行开放(即可供第一区块链网络访问)的区块链节点(指第二业务节点中除第二控制节点之外的节点)时,第二控制节点可以通过第一代理节点和第二代理节点将第二区块链网络中开放的区块链节点的节点信息发送给第一控制节点,第一控制节点接收到第二区块链网络中的区块链节点的节点信息之后,会通过该区块链节点的节点信息对第一代理节点进行配置,使得第一代理节点允许第一区块链网络中的所有区块链节点(可以指第一业务节点中除第一控制节点之外的节点)可以对第一区块链网络中已通过节点信息进行配置的区块链节点发起连接。第一区块链网络的管理员和第二区块链网络的管理员可以事先设置支持对方相互访问自己的控制节点,即第一区块链网络中的第一控制节点可以通过第一代理节点向第二控制节点发起连接,第二区块链网络中的第二控制节点可以通过第二代理节点向第一控制节点发起连接。通过上述过程,即实现了第一业务节点可以对第二业务节点发起连接,第二业务节点也可以对第一业务节点发起连接。
请参见图4,是本申请提供的一种数据交互的场景示意图。下述过程都以图4所示的场景进行说明。如图4所示,节点100f为第一业务节点,节点101f为第一代理节点,节点102f为第二代理节点,节点103f为第二业务节点。
如图4所示,第一代理节点101f可以接收第一业务节点100f发送的第一业务数据包100s,该第一业务数据包100s中除了有第一流量数据之外,还可以有第一业务节点对应的虚拟映射地址,第二业务节点对应的虚拟映射地址,以及第一业务节点发送第一业务数据包到第二业务节点所用的传输层协议。其中,第一业务节点对应的虚拟映射地址可以是由第一控制节点分配的,第二业务节点对应的虚拟映射地址可以是由第二控制节点分配的。第一业务数据包中的第一业务节点对应的虚拟映射地址和第二业务节点对应的虚拟映射地址,可以是第一业务节点从第一控制节点处获取得到的。第一控制节点中的第二业务节点的虚拟映射地址,可以是在第二控制节点发送第二业务节点的节点信息给第一控制节点时一起发送过来的。第一流量数据可以封装在传输层协议(例如TCP协议或者UDP协议(一种传输层协议))中,再与地址头进行拼接得到上述第一业务数据包。其中,地址头中包括上述第一业务节点对应的虚拟映射地址和第二业务节点对应的虚拟映射地址。上述虚拟映射地址可以指为第一业务节点和第二业务节点分配的一个虚拟的外网地址。其中,第一控制节点中可以存在一个地址映射表,该地址映射表可以是由第一控制节点创建的,该地址映射表中可以包括第一控制节点为第一区块链网络中每个业务节点分别分配的虚拟映射地址,还可以包括第一控制节点存储的对第二区块链网络中具有访问权限的每个业务节点对应的虚拟映射地址,对第二区块链网络中具有访问权限的每个业务节点对应的虚拟映射地址是由第一控制节点发送过来的。即每个区块链网络中的每个业务节点对应的虚拟映射地址可以是对应由每个区块链网络中的控制节点分配的。
步骤S202,提取所述第一业务数据包中的所述第一流量数据,根据所述第一业务节点的虚拟映射地址获取所述第一业务节点对应的节点信息,根据所述第二业务节点的虚拟映射地址获取所述第二业务节点对应的节点信息;
具体的,如图4所示,第一代理节点101f可以从第一业务数据包100s中提取得到上述第一流量数据101s,还可以从第一业务数据包100s中提取得到第一业务节点100f对应的虚拟映射地址,并提取得到第二业务节点103f对应的虚拟映射地址。第一代理节点101f可以通过第一业务节点100f对应的虚拟映射地址103s获取到第一业务节点100f对应的节点信息(包括第一业务节点的节点名称和节点端口),第一代理节点101f还可以通过第二业务节点103f对应的虚拟映射地址102s获取到第二业务节点103f对应的节点信息(包括第二业务节点的节点名称和节点端口)。
步骤S203,根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;
具体的,如图4所示,第一代理节点101f可以根据第一业务节点100f的节点信息和第二业务节点103f的节点信息生成第一自定义头104s。第一自定义头中可以包括的字段信息为第一业务节点的节点名称(即本端节点名称)、第一业务节点的节点端口(即本端节点端口)、第二业务节点的节点名称(即对端节点名称)和第二业务节点的节点名称(即对端节点端口)。第一自定义头104s中还可以包括的字段信息有第一区块链网络的标识信息(即本端区块链网络标识)以及第二区块链网络的标识信息(即对端区块链网络标识),每个区块链网络的标识信息是唯一的,每个区块链网络的标识信息用于唯一标识对应的区块链网络。第一自定义头104s中还可以包括的字段信息有第一自定义头104s对应的版本号以及保留字段,其中第一自定义头104s中的版本号和保留字段用于后续进行协议升级,使得功能扩展更便利。可以将每个节点对应的端口称之为节点对应的节点端口信息,可以将第一自定头中的版本号和保留字段称之为第一自定义头对应的版本信息。
步骤S204,根据所述第一代理节点的外网信息和所述第二代理节点的外网信息,生成外网地址头;
具体的,如图4所示,第一代理节点101f可以根据第一代理节点101f的外网信息和第二代理节点102f的外网信息生成外网地址头,其中,第一代理节点101f的外网信息中包括第一代理节点101f对应的外网地址(即外网IP)和外网端口(可以简称端口),第二代理节点102f的外网信息中包括第二代理节点102f对应的外网地址和外网端口。
步骤S205,将所述第一自定义头和所述第一流量数据封装在传输层协议,得到待发送数据包;
具体的,如图4所示,第一代理节点101f可以将第一自定义头104s和第一流量数据101s(即有效载荷,也可以称之为业务负载)重新封装在新的传输层协议(即外网协议头,例如TCP协议或者UDP协议)之内,得到待发送数据包。
步骤S206,将所述外网地址头和所述待发送数据包进行拼接,得到所述第一代理数据包;
具体的,如图4所示,第一代理节点101f可以将上述得到的外网地址头和待发送数据包进行拼接,得到第一代理数据包105s,到此,即实现了第一代理节点101f将第一业务节点100f发送的第一业务数据包100s进行重新封装得到第一代理数据包105s。
步骤S207,基于所述第一代理数据包中的所述第一代理节点的外网信息以及所述第二代理节点的外网信息,将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点;
具体的,如图4所示,第一代理节点101f可以通过第一代理数据包105s中的第一代理节点101f的外网信息(包括第一代理节点的外网地址和端口),以及第二代理节点102f的外网信息(包括第二代理节点的外网地址和端口),将上述第一代理数据包105s发送至第二代理节点102f。第二代理节点102f在接收到第一代理数据包105s时,可以剥离第一代理数据包105s中的外网地址头和外网协议头,得到第一自定义头104s和第一流量数据101s。第二代理节点102f可以对第一自定义头104s进行解析,得到第一业务节点100f的节点信息(包括第一业务节点的节点名称和节点端口)和第二业务节点103f的节点信息(包括第二业务节点的节点名称和节点端口)。第二代理节点可以根据第二业务节点103f的节点名称以及第二区块链网络内部集群的DNS(域名)进行路由,找到第二业务节点103f,并将第一流量数据101s发送给第二业务节点。第二业务节点的节点名称可以为一个域名,可以通过第二业务节点的节点名称与内网地址(可以是虚拟映射地址)之间的映射关系,找到第二业务节点的虚拟映射地址。具体为:第二控制节点中也存储有第二区块链网络中每个业务节点对应的虚拟映射地址和第一区块链网络中其具有访问权限的每个业务节点(例如第一业务节点)对应的虚拟映射地址。其中,第二控制节点存储的第二区块链网络中每个业务节点对应的虚拟映射地址可以是第二控制节点分配的,第二控制节点中存储的第二区块链网络中与其具有访问权限的业务节点对应的虚拟映射地址,可以是由第一控制节点发送过来的。第二代理节点102f可以根据第一业务节点100f的节点信息在第二控制节点中获取到第一业务节点100f对应的虚拟映射地址,第二代理节点102f还可以根据第二业务节点103f的节点信息在第二控制节点中获取到第二业务节点103f对应的虚拟映射地址。其中,第一控制节点中存储的第一业务节点100f对应的虚拟映射地址和第二业务节点103f对应的虚拟映射地址,与第二控制节点中存储的第一业务节点100f对应的虚拟映射地址和第二业务节点103f对应的虚拟映射地址相同。第二代理节点102f可以将第一流量数据重新封装在传输层协议之内,再将重新封装之后的第一流量数据与地址头相拼接,重新创建得到上述第一业务数据包100s。该地址头中包括第一业务节点对应的虚拟映射地址和第二业务节点对应的虚拟映射地址,进而第二代理节点会将还原出的第一业务数据包100s发送给第二业务节点。即整个过程为,第一业务节点100f在发送第一业务数据包100s时,是向第二业务节点103f发送的,为了让第一业务节点100f感知不到第一代理节点101f的存在,第一业务数据包100s中包括第一业务节点100f对应的虚拟映射地址103s和第二业务节点103f对应的虚拟映射地址102s,即在第一业务节点100f的感知中,是直接将第一业务数据包100s发送给第二业务节点103f的。但是,在第一业务节点100f发送第一业务数据包100s时,第一代理节点101f可以截获该第一业务数据包100s,并提取出该第一业务数据包100s中的第一流量数据101s,将该第一流量数据101s进行重新封装,得到第一代理数据包105s。第一代理节点101f将重新封装得到的第一代理数据包105s发送至第二代理节点102f,第二代理节点102f在接收到该第一代理数据包105s时,会提取出该第一代理数据包中的第一流量数据101s,并对该第一流量数据重新封装,还原得到上述第一业务数据包100s。第二代理节点进而会将还原出的第一业务数据包100s发送给第二业务节点103f,即第二业务节点103f也感知不到第二代理节点102f的存在,在第二业务节点103f的感知中,是第一业务节点100f直接将该第一业务数据包100s发送给自己的。
其中,需要进行说明的是,第一区块链网络中的每个节点与第二区块链网络中的每个节点之间的数据交互,都是通过第一区块链网络中的第一代理节点和第二区块链网络中的第二代理节点完成的,并且,第一代理节点在接收到第一业务节点发送的第一业务数据包都会对其进行重新封装,得到第一代理数据包,再将该第一代理数据包发送给第二代理节点,第二代理节点也会通过接收到的第一代理数据包将其还原出第一业务数据包,进而将还原出的第一业务数据包发送给第二业务节点。
其中,上述第一业务节点也可以包括第一控制节点,第二业务节点也可以包括第二控制节点,第一业务数据包可以是第一控制节点发送给第二控制节点的连接请求(即上述步骤S201中的连接请求)对应的业务数据包。其中,第一区块链网络的管理员还可以通过线下的方式,将第一控制节点的节点端口、节点名称以及为第一控制节点分配的虚拟映射地址告知第二区块链网络的管理员,第二区块链网络的管理员也可以通过线下的方式,将第二控制节点的节点端口、节点名称以及为第二控制节点分配的虚拟映射地址告知第一区块链网络的管理员。第一区块链网络的管理员可以将第二控制节点的节点端口、节点名称和虚拟映射地址录入第一控制节点,第一控制节点可以存储第二控制节点的节点端口、节点名称和虚拟映射地址。第二区块链网络的管理员可以将第一控制节点的节点端口、节点名称和虚拟映射地址录入第二控制节点,第二控制节点可以存储第一控制节点的节点端口、节点名称和虚拟映射地址。第一控制节点在发送上述连接请求时,是发送的该连接请求对应的业务数据包,该连接数据包中还包括第一控制节点对应的虚拟映射地址和第二控制节点对应的虚拟映射地址,第一代理节点获取到该连接请求对应的业务数据包时,会提取出该业务数据包中第一控制节点对应的虚拟映射地址和第二控制节点对应的虚拟映射地址,第一代理节点可以根据第一控制节点对应的虚拟映射地址获取到第一控制节点对应的节点信息,并根据第二控制节点对应的虚拟映射地址获取到第二控制节点对应的节点信息,第一代理节点可以根据第一控制节点对应的节点信息和第二控制节点对应的节点信息生成自定义头,并根据该自定义头、第一代理节点对应的外网信息和第二代理节点对应的外网信息生成连接请求对应的代理数据包,第一代理节点会将该代理数据包发送至第二代理节点,第二代理节点会对该代理数据包进行解析,获取到该代理数据包中的自定义头和流量数据(包括连接请求的流量数据),第二代理节点可以对解析出的自定义头进一步解析,得到第一控制节点对应的节点信息和第二控制节点对应的节点信息。第二代理节点可以根据第一控制节点对应的节点信息获取到第一控制节点对应的虚拟映射地址,并根据第二控制节点对应的节点信息获取到第二控制节点对应的虚拟映射地址。第二代理节点可以通过第一控制节点对应的虚拟映射地址、第二控制节点对应的虚拟映射地址以及连接请求对应的流量数据,重构得到连接请求对应的业务数据包,并将重构得到的业务数据包发送给第二控制节点。
第二控制节点可以从获取到的业务数据包中提取出上述连接请求,当检测到该连接请求合法时,会生成确认连接信息(即上述步骤S201中的确认连接信息)。第二控制节点可以将该确认连接信息对应的业务数据包发送给第二代理节点,第二代理节点可以提取出接收到的业务数据包中的确认连接信息,将提取出的确认连接信息重新封装为代理数据包(与上述连接请求对应的代理数据包同样的生成方式),并将重新封装得到的代理数据包发送至第一代理节点,第一代理节点可以从接收到的代理数据包中解析出上述确认连接信息,并根据该确认连接信息重构得到该确认连接信息对应的业务数据包。第一代理节点可以将重构得到的业务数据包发送至第一控制节点,第一控制节点可以从接收到的业务数据包中提取得到上述确认连接信息。
同理,第一代理节点可以获取第二代理节点发送的第二代理数据包:该第二代理数据包可以包含第二业务节点发送给第一业务节点的第二流量数据,该第二代理数据包是第二代理节点通过对第二业务节点发送给第一业务节点的第二业务数据包进行重新封装得到的,即第二业务数据包为第二流量数据对应的数据包。第二代理节点可以解析所述第二代理数据包,得到第二自定义头和第二流量数据:第二代理节点可以从第二代理数据包中解析出第二自定义头和第二流量数据,第二自定义头中包括第二自定义头对应的版本号、保留字段、第一业务节点的节点信息、第二业务节点的节点信息、第一区块链网络的标识信息和第二区块链网络的标识信息。第一代理节点可以解析所述第二自定义头,得到所述第一业务节点的节点信息和所述第二业务节点的节点信息:第二代理节点可以从第二自定义头中解析出第一业务节点的节点信息以及第二业务节点的节点信息。第一代理节点可以根据所述第一业务节点的节点信息和所述第二业务节点的节点信息,将所述第二流量数据转发至所述第一业务节点,具体包括:第一代理节点可以根据所述第一业务节点的节点信息获取所述第一业务节点对应的虚拟映射地址,并根据所述第二业务节点的节点信息获取所述第二业务节点对应的虚拟映射地址。第一代理节点可以基于所述第一业务节点对应的虚拟映射地址、所述第二业务节点对应的虚拟映射地址和所述第二流量数据,重构得到所述第二代理数据包对应的第二业务数据包:第一代理节点可以将第一业务节点的虚拟映射地址和第二业务节点的虚拟映射地址组合封装为地址头,同时第一代理节点可以将第二流量数据封装在传输层协议之内,接着第一代理节点可以将封装在传输层协议中的第二流量数据与封装得到的地址头进行拼接,还原得到第二业务数据包,第一代理节点可以将重构得到的第二业务数据包转发给第一业务节点。
第一代理节点可以获取所述第二代理节点发送的第三业务节点的节点信息,将所述第三业务节点的节点信息发送至所述第一控制节点,以使所述第一控制节点配置所述第三业务节点与所述第一代理节点之间的通信连接关系:可以将第二区块链网络中创建的新的并可以向第一区块链网络开放的区块链节点(即新增节点),以及存在的需要向第一区块链网络开放但还未对第一区块链网络开放的区块链节点统称为第三业务节点,第三业务节点具有与第一区块链网络进行相互访问的权限。第二控制节点可以将第三业务节点的节点信息对应的业务数据包(可以理解为上述第二业务数据包)发送给第二代理节点,第二代理节点可以对接收到的业务数据包进行重新封装,得到第三业务节点的节点信息对应的代理数据包,第二代理节点可以将该代理数据包发送给第一代理节点。第一代理节点可以接收到第二代理节点发送的第三业务节点的节点信息对应的代理数据包。第一代理节点可以对该代理数据包进行解析,得到该代理数据包中的自定义头和流量数据(即包含了第三业务节点的节点信息的流量数据)。该自定义头中包括该自定义头对应的版本号、保留字段、第一区块链网络的标识信息、第二区块链网络的标识信息、第一控制节点的节点信息和第二控制节点的节点信息。第一代理节点可以进一步对解析得到的自定义头进行解析,得到第一控制节点的节点信息和第二控制节点的节点信息。第一代理节点可以根据第一控制节点的节点信息获取到第一控制节点的虚拟映射地址,并根据第二控制节点的节点信息获取到第二控制节点的虚拟映射地址。第一代理节点可以根据第一控制节点的虚拟映射地址、第二控制节点的虚拟映射地址以及第三业务节点的节点信息对应的流量数据,重构得到第三业务节点的节点信息对应的业务数据包,进而第一代理节点可以将重构得到的业务数据包转发至第一控制节点,即实现了第一控制接收到了第二控制节点发送的第三业务节点的节点信息,第一控制节点可以存储第三业务节点的节点信息。第一控制节点可以对第一代理节点进行配置,即配置第一代理节点和第三业务节点之间的通信连接关系,使得配置之后的第一代理节点支持第一区块链网络中的所有业务节点可以对第三业务节点发起访问,即发起连接。只有当第一控制节点通过第二区块链网络中的业务节点的节点信息对第一控制节点进行配置之后,第一区块链网络中的业务节点才可以对第二区块链网络中相应的业务节点进行访问,发起连接。
第一代理节点还可以获取所述第一控制节点发送的第一心跳信息,将所述第一心跳信息发送至所述第二代理节点,以使所述第二代理节点将所述第一心跳信息转发至所述第二控制节点:上述第一心跳信息用于指示第二控制节点检测与所述第一控制节点之间的连接状态,上述第一心跳信息可以是基于时间周期所生成的,即第一控制节点可以根据时间周期,定期生成上述第一心跳信息,例如当时间周期为1小时,则第一控制节点可以每隔1小时生成一次第一心跳信息。第一控制节点可以将第一心跳信息对应的业务数据包(可以理解为上述第一业务数据包)发送给第一代理节点,第一代理节点对该业务数据包进行重新封装,得到第一心跳信息对应的代理数据包。第一代理节点可以将该代理数据包发送至第二代理节点,第二代理节点会将该代理数据包重构得到第一心跳信息对应的业务数据包,进而第二代理节点会将重构得到的业务数据包发送给第二控制节点。第二控制节点可以从接收到的业务数据包中提取得到第一心跳信息,并根据该第一心跳信息检测与第一控制节点之间的连接状态。当检测到连接不正常时,第二控制节点可以输出警报信息或者提示信息,其中,可以通过输出文本提示信息的方式,也可以通过响铃(例如警报铃声)的方式,还可以通过语音播放(例如语音播放“连接异常请检查”)的方式。
第一代理节点也可以获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点:上述第二心跳信息用于指示第一控制节点检测与所述第二控制节点之间的连接状态,上述第二心跳信息可以是基于时间周期所生成的,即第二控制节点可以根据时间周期,定期生成上述第二心跳信息,例如当时间周期为1小时,则第二控制节点可以每隔1小时生成一次第二心跳信息。第二控制节点可以将第二心跳信息对应的业务数据包(可以理解为上述第二业务数据包)发送给第二代理节点,第二代理节点对该业务数据包进行重新封装,得到第二心跳信息对应的代理数据包。第二代理节点可以将该代理数据包发送至第一代理节点,第一代理节点会将该代理数据包重构得到第二心跳信息对应的业务数据包,进而第一代理节点会将重构得到的业务数据包发送给第一控制节点。第一控制节点可以从接收到的业务数据包中提取得到第二心跳信息,并根据该第二心跳信息检测与第二控制节点之间的连接状态。当检测到连接不正常时,第一控制节点可以输出警报信息或者提示信息,其中,可以通过输出文本提示信息的方式,也可以通过响铃的方式,还可以通过语音播放(例如语音播放“连接异常请检查”)的方式。
通过上述第一心跳信息和第二心跳信息使得第一控制节点和第二控制节点可以定期检测其两者之间的连接状态,保障了第一区块链网络和第二区块链网络之间的连接的稳定性和实时性。
可以将第二区块链网络中向第一区块链网络开放的业务节点称之为授权节点,即授权节点为第二区块链网络中第一区块链网络可以发起连接的业务节点,授权节点指第二区块链网络中与第一代理节点之间具有通信连接关系的节点。例如上述第二业务节点,第一控制节点已配置过第二业务节点和第一代理节点之间的通信连接关系。上述第二心跳信息中可以携带有授权节点对应的第一哈希值,该第一哈希值可以是第二控制节点根据所有授权节点的节点信息或者虚拟映射地址而生成的。第一代理节点可以获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点,以使所述第一控制节点生成已配置的与所述第一代理节点之间具有通信连接关系的所有第二业务节点对应的第二哈希值,且在检测到所述第一哈希值与所述第二哈希值不一致时,输出警报信息:当第一代理节点获取到第二心跳信息时,将该第二心跳信息转发给第一控制节点,当第一控制节点接收到第二心跳信息时,第一控制节点可以根据自身已保存的第二区块链网络中的业务节点(或者可以说是第二区块链网络中已配置过与第一代理节点之间的通信连接关系的业务节点)的节点信息,生成第二哈希值,例如第一控制节点可以生成已配置的与所述第一代理节点之间具有通信连接关系的所有第二业务节点对应的第二哈希值。第一控制节点可以对第一哈希值与第二哈希值进行比较,当比较出第一哈希值与第二哈希值不相同时,则表明第二区块链网络向第一区块链网络开放的业务节点,与第一控制节点已配置的第二区块链网络中与第一代理节点之间具有通信连接关系的业务节点不一致,匹配不上,则第一控制节点可以输出警报信息,用于提示第一区块链网络的管理员,第一控制节点对第一代理节点所配置的第二区块链网络中的业务节点的节点信息有误。
同理,第一心跳信息中也可以携带第一区块链网络中向第二区块链网络开放的业务节点对应的哈希值,与上述过程相同,第二控制节点相应也会根据自己所配置的第一区块链网络中与第二代理节点具有通信连接关系的所有业务节点(例如第一业务节点)对应的哈希值,并检测接收到的哈希值与所生成的哈希值是否相同,当检测到不相同时,第二控制节点也可以输出警报信息,用于提示第二区块链网络的管理员,第二控制节点对第二代理节点所配置的第一区块链网络中的业务节点的节点信息有误。
本申请首先获取第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。由此可见,本申请提出的方法可以通过第一代理节点和第二代理节点,实现第一区块链网络中的第一业务节点与第二区块链网络中的第二区块链网络之间的数据交互,即当存在多个第一业务节点时,第一区块链网络只需暴露第一代理节点的外网地址和端口,当存在多个第二业务节点时,第二区块链网络也只需暴露第二代理节点的外网地址和端口,提高了第一区块链网络和第二区块链网络的安全性。并且,在对第一区块链网络和第二区块链网络进行网络管理时,也只需要管理第一代理节点的网络和第二代理节点的网络,提高了网络管理的效率。
请参见图5,是本申请提供的一种平台连接的流程示意图。其中,步骤0网络就绪:第一企业已经安装并部署好自己的第一区块链网络,网络已经就绪,可以进行连接。第二企业也已经安装并部署好自己的第二区块链网络,网络已经就绪,可以进行连接。步骤1服务启动:第二区块链网络的网络就绪,平台服务已经启动,可以请求连接。步骤2配置请求:第一区块链网络向第二区块链网络发送配置请求是线下完成的,即不是通过区块链的信息传输渠道传输的,第一区块链网络通过配置请求获取第二区块链网络的外网信息,包括外网端口、外网地址以及连接密钥。其中,连接密钥用于防止非法的区块链网络连接第二区块链网络,连接密钥可以通过一些机制定期更新,保障连接密钥的安全性和隐私性。步骤3返回配置:第二区块链网络返回配置也是线下完成的,即第二区块链网络向第一区块链网络返回配置信息,该配置信息包括第二区块链网络的外网信息。步骤4输入配置:第一区块链网络接收到第二区块链网络发送的配置信息之后,可以将获取到的配置信息输入本区块链网络中的第一控制节点中,录入完成之后,点击连接以确认连接,第一控制节点会生成连接请求。步骤5开始连接:第一控制节点将连接请求通过第一代理节点发送至第二区块链网络,即通过第一代理节点发送至第二代理节点,第二代理节点有将连接请求转发至第二区块链网络中的第二控制节点,第二控制节点可以对该连接请求的合法性进行判断,若判断为合法,则生成确认连接信息。步骤6连接成功:第二控制节点通过第二代理节点和第一代理节点向第一控制节点发送确认连接信息,以完成与第一控制节点之间的连接。其中,步骤5和步骤6为线上过程,指是通过区块链相关信息传输渠道完成。
请参见图6,是本申请提供的一种数据交互的场景示意图。第一区块链网络可以与第二区块链网络之间相互进行公开信息的交换,如步骤0和步骤1所示。步骤0和步骤1的先后顺序没有影响。其中,公开信息可以指区块链网络中的区块链节点的节点信息。例如,当第一区块链网络中创建有新的区块链节点需要向第二区块链网络进行开放时,第一区块链网络可以将该区块链节点的节点信息发送给第二区块链网络,即第一区块链网络中的第一控制节点通过第一代理节点和第二代理节点,将该区块链节点的节点信息发送给第二区块链网络的第二控制节点,使得第二控制节点可以根据该区块链节点对第二代理节点进行配置。当第二区块链网络中创建有新的区块链节点需要向第一区块链网络进行开放时,第二区块链网络可以将该区块链节点的节点信息发送给第一区块链网络。即第二区块链网络中的第二控制节点通过第一代理节点和第二代理节点,将该区块链节点的节点信息发送给第一区块链网络的第一控制节点,使得第一控制节点可以根据该区块链节点对第一代理节点进行配置。如图6所示,第一区块链网络和第二区块链网络之间还可以定期相互发送心跳信息,以确保双方之间的连接状态。
请参见图7,是本申请提供的一种网络交互的场景示意图。如图7所示,业务平台可以指上述第一区块链网络和第二区块链网络,控制台可以指业务平台中的控制节点(例如上述第一控制节点和第二控制节点)。其中,业务平台中包括超级账本网络(Fabric网络)、开源网络(BCOS网络)和可信网络(TrustSQL网络)。其中,超级账本网络(Fabric网络)、开源网络(BCOS网络)和可信网络(TrustSQL网络)均分别由多个区块链节点构成,控制台、超级账本网络(Fabric网络)、开源网络(BCOS网络)和可信网络(TrustSQL网络)对应的节点的端口均与代理(即代理节点,例如上述第一代理节点和第二代里节点)进行连接。通过代理将需要发送至平台外部的流量进行封装,即通过代理封装平台所有外部流量,并通过代理对应的外网地址(外网IP)和端口号(即Port端口、外网端口)将封装的外部流量发送至平台外部。在业务平台和企业网络边界之中,为平台的内网(可以称为企业内网),包括网络的隔离区(DMZ)、防火墙和网络地址转换(NAT)。即通过代理将封装好的平台外部流量通过企业内网发送至企业网络边界之外。同样业务平台也是通过代理接收来自平台外部的数据。
请参见图8,是本申请提供的一种多平台连接的场景示意图。即可以存在多个区块链网络相互连接,并通过多个区块链网络中各自的代理节点进行平台之间的数据交互。如图8所示,此处以9个区块链网络为例进行说明。区块链网络1与区块链网络4相互连接,区块链网络2与区块链网络4相互连接,区块链网络3与区块链网络4相互连接,区块链网络4与区块链网络7相互连接,区块链网络5与区块链网络4相互连接,区块链网络5与区块链网络6相互连接,区块链网络5与区块链网络7相互连接,区块链网络7与区块链网络8相互连接,区块链网络7与区块链网络9相互连接。相互连接的区块链网络可以相互开放各自区块链网络中的业务节点供对方访问,其中,业务节点与业务节点之间的相互访问均是通过各自对应的代理节点实现。
其中,不同代理节点之间的数据交互可以采用多种不同的传输协议,可以优先选择UDP协议,也可以TCP协议、IPSec协议(安全通信协议族)、L2TP协议(一种隧道协议)、PPTP协议(点到点隧道协议)、IP协议(传输控制协议)、IPIP协议(核心协议)、GER协议(一种隧道协议)或者MPLS(多协议标签交换)协议。对于负载数据(例如上述第一流量数据和第二流量数据)的编码方式可以是明文编码,还可以采用Google Protocol Buffer(一种结构化数据存储格式)、JCE(一组包,提供用于加密、密钥生成和协商的框架和实现)等方式进行编码,以提高数据传输效率,增加安全性。此外控制台之间(例如第一控制节点和第二控制节点之间)的传输协议可以是HTTP协议(请求-响应协议)或者HTTPS协议(超文本传输安全协议),也可以是GRPC协议(一种通信协议)、GRPCs协议(一种通信协议)或者UDP协议。使用本申请提供的方法,可以协助企业之间通过各自的区块链网络进行信息交互,提供了信息同步的方法。同时,为后续期间联盟链的治理提供了协议通道,支持每个区块链网络中的控制节点发起相应的治理请求,例如修改区块链的出块时间、邀请新的区块链参与方加入、安装新的合约和变更合约共识策略等,并可以在指定的范围内传播和处理以上事件。此外,通过本申请提供的方法,还可以承担一定的中继功能,例如,帮助银行、证券和保险这类受到监管、使用专线、难以实现企业间的全互联的企业,中继传输部分数据,提升区块链网络中节点的连接性和互操作性。
请参见图9,是本申请提供的一种基于区块链网络的交互数据处理装置的结构示意图。如图9所示,该交互数据处理装置1可以包括:第一获取模块101、第一生成模块102、第二生成模块103和第一转发模块104;
第一获取模块101,用于获取第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;
第一生成模块102,用于根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;
第二生成模块103,用于根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;
第一转发模块104,用于将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。
其中,所述第一获取模块101、第一生成模块102、第二生成模块103和第一转发模块104的具体功能实现方式请参见图2对应的实施例中的步骤S101-步骤S104,这里不再进行赘述。
其中,所述第一获取模块101,包括接收单元1011和提取单元1012:
接收单元1011,用于接收所述第一业务节点发送的第一业务数据包;所述第一业务数据包包括所述第一流量数据、所述第一业务节点对应的虚拟映射地址和所述第二业务节点对应的虚拟映射地址;
提取单元1012,用于提取所述第一业务数据包中的所述第一流量数据,根据所述第一业务节点的虚拟映射地址获取所述第一业务节点对应的节点信息,根据所述第二业务节点的虚拟映射地址获取所述第二业务节点对应的节点信息。
其中,所述接收单元1011和提取单元1012的具体功能实现方式请参见图3对应的实施例中的步骤S202,这里不再进行赘述。
其中,所述第二生成模块103,包括生成单元1031、封装单元1032和拼接单元1033:
生成单元1031,用于根据所述第一代理节点的外网信息和所述第二代理节点的外网信息,生成外网地址头;
封装单元1032,用于将所述第一自定义头和所述第一流量数据封装在传输层协议,得到待发送数据包;
拼接单元1033,用于将所述外网地址头和所述待发送数据包进行拼接,得到所述第一代理数据包。
其中,所述生成单元1031、封装单元1032和拼接单元1033的具体功能实现方式请参见图3对应的实施例中的步骤S204-步骤S206,这里不再进行赘述。
其中,所述交互数据处理装置1,还包括第二获取模块105、第一解析模块106、第二解析模块107和第二转发模块108:
第二获取模块105,用于获取所述第二代理节点发送的第二代理数据包;
第一解析模块106,用于解析所述第二代理数据包,得到第二自定义头和第二流量数据;
第二解析模块107,用于解析所述第二自定义头,得到所述第一业务节点的节点信息和所述第二业务节点的节点信息;
第二转发模块108,用于根据所述第一业务节点的节点信息和所述第二业务节点的节点信息,将所述第二流量数据转发至所述第一业务节点。
其中,所述第二获取模块105、第一解析模块106、第二解析模块107和第二转发模块108的具体功能实现方式请参见图3对应的实施例中的步骤S207,这里不再进行赘述。
其中,所述第二转发模块108,包括获取单元1081、重构单元1082和转发单元1083:
获取单元1081,用于基于所述第一业务节点的节点信息获取所述第一业务节点对应的虚拟映射地址,基于所述第二业务节点的节点信息获取所述第二业务节点对应的虚拟映射地址;
重构单元1082,用于基于所述第一业务节点对应的虚拟映射地址、所述第二业务节点对应的虚拟映射地址和所述第二流量数据,重构得到所述第二代理数据包对应的第二业务数据包;
转发单元1083,用于将所述第二业务数据包转发至所述第一业务节点。
其中,所述获取单元1081、重构单元1082和转发单元1083的具体功能实现方式请参见图3对应的实施例中的步骤S207,这里不再进行赘述。
其中,所述第一业务节点的节点信息包括所述第一区块链网络的标识信息、所述第一业务节点的节点名称以及所述第一业务节点的节点端口信息;所述第二业务节点的节点信息包括所述第二业务节点对应的第二区块链网络的标识信息、所述第二业务节点的节点名称以及所述第二业务节点的节点端口信息;所述第一自定义头包括所述第一业务节点的节点信息、所述第二业务节点的节点信息和所述第一自定义头对应的版本信息。
其中,所述第一转发模块104,还用于:
基于所述第一代理数据包中的所述第一代理节点的外网信息以及所述第二代理节点的外网信息,将所述第一代理数据包发送至所述第二代理节点。
其中,所述第一业务节点包括具有配置功能的第一控制节点;所述第二业务节点包括具有配置功能的第二控制节点;所述交互数据处理装置1,还包括请求获取模块109、确认接收模块110:
请求获取模块109,用于获取所述第一控制节点发送的连接请求,将所述连接请求发送至所述第二代理节点,以使所述第二代理节点将所述连接请求发送至所述第二控制节点,获取所述第二控制节点返回的确认连接信息;所述连接请求是由所述第一控制节点在获取到所述第二代理节点的外网信息时所生成的;
确认接收模块110,用于接收所述第二代理节点发送的所述确认连接信息,将所述确认连接信息发送至所述第一控制节点,以使所述第一控制节点完成与所述第二控制节点之间的连接。
其中,所述请求获取模块109和确认接收模块110的具体功能实现方式请参见图3对应的实施例中的步骤S207,这里不再进行赘述。
其中,所述交互数据处理装置1,还用于:
获取所述第二代理节点发送的第三业务节点的节点信息,将所述第三业务节点的节点信息发送至所述第一控制节点,以使所述第一控制节点配置所述第三业务节点与所述第一代理节点之间的通信连接关系;所述第三业务节点为所述第二区块链网络中的新增节点,且所述第三业务节点具有与所述第一区块链网络进行相互访问的权限。
其中,所述交互数据处理装置1,还包括第一心跳获取模块111和第二心跳获取模块112:
第一心跳获取模块111,用于获取所述第一控制节点发送的第一心跳信息,将所述第一心跳信息发送至所述第二代理节点,以使所述第二代理节点将所述第一心跳信息转发至所述第二控制节点;所述第一心跳信息用于指示所述第二控制节点检测与所述第一控制节点之间的连接状态;
第二心跳获取模块112,用于获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点;所述第二心跳信息用于指示所述第一控制节点检测与所述第二控制节点之间的连接状态。
其中,所述第一心跳获取模块111和第二心跳获取模块112的具体功能实现方式请参见图3对应的实施例中的步骤S207,这里不再进行赘述。
其中,所述第二心跳信息中携带有授权节点对应的第一哈希值;所述授权节点指所述第二区块链网络中与所述第一代理节点之间具有通信连接关系的节点;
所述第二心跳获取模块112,还用于:
获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点,以使所述第一控制节点生成已配置的与所述第一代理节点之间具有通信连接关系的所有第二业务节点对应的第二哈希值,且在检测到所述第一哈希值与所述第二哈希值不一致时,输出警报信息。
本申请首先获取第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。由此可见,本申请提出的方法可以通过第一代理节点和第二代理节点,实现第一区块链网络中的第一业务节点与第二区块链网络中的第二区块链网络之间的数据交互,即当存在多个第一业务节点时,第一区块链网络只需暴露第一代理节点的外网地址和端口,当存在多个第二业务节点时,第二区块链网络也只需暴露第二代理节点的外网地址和端口,提高了第一区块链网络和第二区块链网络的安全性。并且,在对第一区块链网络和第二区块链网络进行网络管理时,也只需要管理第一代理节点的网络和第二代理节点的网络,提高了网络管理的效率。
请参见图10,是本申请提供的一种计算机设备的结构示意图。如图10所示,所述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,所述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文图2和图3中任一个所对应实施例中对所述基于区块链网络的交互数据处理方法的描述。
应当理解,本申请中所描述的计算机设备1000可执行前文图2和图3中任一个所对应实施例中对所述基于区块链网络的交互数据处理方法的描述,也可执行前文图9所对应实施例中对所述交互数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且所述计算机可读存储介质中存储有前文提及的交互数据处理装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2和图3中任一个所对应实施例中对所述基于区块链网络的交互数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖范围。
Claims (14)
1.一种基于区块链网络的交互数据处理方法,其特征在于,包括:
第一代理节点获取第一控制节点发送的连接请求,将所述连接请求发送至第二代理节点,以使所述第二代理节点将所述连接请求发送至第二控制节点,获取所述第二控制节点返回的确认连接信息;所述连接请求是由所述第一控制节点在获取到所述第二代理节点的外网信息时所生成的;所述第一控制节点是第一业务节点中具有配置功能的节点;所述第二控制节点是第二业务节点中具有配置功能的节点;
接收所述第二代理节点发送的所述确认连接信息,将所述确认连接信息发送至所述第一控制节点,以使所述第一控制节点完成与所述第二控制节点之间的连接;
所述第一代理节点获取所述第一业务节点发起的第一流量数据;所述第一代理节点与所述第一业务节点同属于第一区块链网络;
根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;
根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;
将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。
2.根据权利要求1所述的方法,其特征在于,所述第一代理节点获取所述第一业务节点发起的第一流量数据,包括:
所述第一代理节点接收所述第一业务节点发送的第一业务数据包;所述第一业务数据包包括所述第一流量数据、所述第一业务节点对应的虚拟映射地址和所述第二业务节点对应的虚拟映射地址;
提取所述第一业务数据包中的所述第一流量数据,根据所述第一业务节点的虚拟映射地址获取所述第一业务节点对应的节点信息,根据所述第二业务节点的虚拟映射地址获取所述第二业务节点对应的节点信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包,包括:
根据所述第一代理节点的外网信息和所述第二代理节点的外网信息,生成外网地址头;
将所述第一自定义头和所述第一流量数据封装在传输层协议,得到待发送数据包;
将所述外网地址头和所述待发送数据包进行拼接,得到所述第一代理数据包。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取所述第二代理节点发送的第二代理数据包;
解析所述第二代理数据包,得到第二自定义头和第二流量数据;
解析所述第二自定义头,得到所述第一业务节点的节点信息和所述第二业务节点的节点信息;
根据所述第一业务节点的节点信息和所述第二业务节点的节点信息,将所述第二流量数据转发至所述第一业务节点。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一业务节点的节点信息和所述第二业务节点的节点信息,将所述第二流量数据转发至所述第一业务节点,包括:
基于所述第一业务节点的节点信息获取所述第一业务节点对应的虚拟映射地址,基于所述第二业务节点的节点信息获取所述第二业务节点对应的虚拟映射地址;
基于所述第一业务节点对应的虚拟映射地址、所述第二业务节点对应的虚拟映射地址和所述第二流量数据,重构得到所述第二代理数据包对应的第二业务数据包;
将所述第二业务数据包转发至所述第一业务节点。
6.根据权利要求1所述的方法,其特征在于,所述第一业务节点的节点信息包括所述第一区块链网络的标识信息、所述第一业务节点的节点名称以及所述第一业务节点的节点端口信息;所述第二业务节点的节点信息包括所述第二业务节点对应的第二区块链网络的标识信息、所述第二业务节点的节点名称以及所述第二业务节点的节点端口信息;所述第一自定义头包括所述第一业务节点的节点信息、所述第二业务节点的节点信息和所述第一自定义头对应的版本信息。
7.根据权利要求1所述的方法,其特征在于,所述将所述第一代理数据包发送至所述第二代理节点,包括:
基于所述第一代理数据包中的所述第一代理节点的外网信息以及所述第二代理节点的外网信息,将所述第一代理数据包发送至所述第二代理节点。
8.根据权利要求1所述的方法,其特征在于,还包括:
获取所述第二代理节点发送的第三业务节点的节点信息,将所述第三业务节点的节点信息发送至所述第一控制节点,以使所述第一控制节点配置所述第三业务节点与所述第一代理节点之间的通信连接关系;所述第三业务节点为所述第二区块链网络中的新增节点,且所述第三业务节点具有与所述第一区块链网络进行相互访问的权限。
9.根据权利要求1所述的方法,其特征在于,还包括:
获取所述第一控制节点发送的第一心跳信息,将所述第一心跳信息发送至所述第二代理节点,以使所述第二代理节点将所述第一心跳信息转发至所述第二控制节点;所述第一心跳信息用于指示所述第二控制节点检测与所述第一控制节点之间的连接状态;
获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点;所述第二心跳信息用于指示所述第一控制节点检测与所述第二控制节点之间的连接状态。
10.根据权利要求9所述的方法,其特征在于,所述第二心跳信息中携带有授权节点对应的第一哈希值;所述授权节点指所述第二区块链网络中与所述第一代理节点之间具有通信连接关系的节点;
所述获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点,包括:
获取所述第二代理节点发送的第二心跳信息,将所述第二心跳信息转发至所述第一控制节点,以使所述第一控制节点生成已配置的与所述第一代理节点之间具有通信连接关系的所有第二业务节点对应的第二哈希值,且在检测到所述第一哈希值与所述第二哈希值不一致时,输出警报信息。
11.一种基于区块链网络的交互数据处理装置,其特征在于,包括:
请求获取模块,用于获取第一控制节点发送的连接请求,将所述连接请求发送至第二代理节点,以使所述第二代理节点将所述连接请求发送至第二控制节点,获取所述第二控制节点返回的确认连接信息;所述连接请求是由所述第一控制节点在获取到所述第二代理节点的外网信息时所生成的;所述第一控制节点是第一业务节点中具有配置功能的节点;所述第二控制节点是第二业务节点中具有配置功能的节点;
确认接收模块,用于接收所述第二代理节点发送的所述确认连接信息,将所述确认连接信息发送至所述第一控制节点,以使所述第一控制节点完成与所述第二控制节点之间的连接;
第一获取模块,用于获取所述第一业务节点发起的第一流量数据;第一代理节点与所述第一业务节点同属于第一区块链网络;
第一生成模块,用于根据所述第一业务节点的节点信息和第二业务节点的节点信息,生成第一自定义头;所述第二业务节点为第二区块链网络中对所述第一业务节点具有访问权限的区块链节点;
第二生成模块,用于根据所述第一代理节点的外网信息、第二代理节点的外网信息、所述第一自定义头和所述第一流量数据,生成第一代理数据包;所述第二代理节点同属于所述第二区块链网络;
第一转发模块,用于将所述第一代理数据包发送至所述第二代理节点,以使所述第二代理节点解析所述第一代理数据包,得到所述第一自定义头和所述第一流量数据,根据所述第一自定义头将所述第一流量数据转发至所述第二业务节点。
12.根据权利要求11所述的装置,其特征在于,所述第一获取模块包括:
接收单元,用于接收所述第一业务节点发送的第一业务数据包;所述第一业务数据包包括所述第一流量数据、所述第一业务节点对应的虚拟映射地址和所述第二业务节点对应的虚拟映射地址;
提取单元,用于提取所述第一业务数据包中的所述第一流量数据,根据所述第一业务节点的虚拟映射地址获取所述第一业务节点对应的节点信息,根据所述第二业务节点的虚拟映射地址获取所述第二业务节点对应的节点信息。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-10中任一项所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904867.2A CN110601902B (zh) | 2019-09-24 | 2019-09-24 | 一种基于区块链网络的交互数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904867.2A CN110601902B (zh) | 2019-09-24 | 2019-09-24 | 一种基于区块链网络的交互数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110601902A CN110601902A (zh) | 2019-12-20 |
CN110601902B true CN110601902B (zh) | 2021-07-27 |
Family
ID=68863038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910904867.2A Active CN110601902B (zh) | 2019-09-24 | 2019-09-24 | 一种基于区块链网络的交互数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110601902B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245727B (zh) * | 2020-01-07 | 2022-08-12 | 深圳市网心科技有限公司 | 基于dht网络的消息路由方法、电子设备、代理节点及介质 |
CN111405038A (zh) * | 2020-03-13 | 2020-07-10 | 杭州复杂美科技有限公司 | 区块链内网节点连接方法、设备和存储介质 |
CN112738239B (zh) * | 2020-12-29 | 2023-03-31 | 杭州趣链科技有限公司 | 基于区块链的跨网安全数据共享方法及其系统 |
CN112822180B (zh) * | 2020-12-30 | 2022-07-29 | 广东电网有限责任公司 | 内外网跨链通信方法、装置、计算机设备和存储介质 |
CN113542352B (zh) * | 2021-06-08 | 2024-04-09 | 支付宝(杭州)信息技术有限公司 | 节点联合建模的方法和节点 |
CN114157640B (zh) * | 2022-02-10 | 2022-05-31 | 北京中宇万通科技股份有限公司 | 用于区块链通信系统的方法、控制器与代理装置 |
CN115190162B (zh) * | 2022-06-27 | 2023-11-28 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
CN115277179B (zh) * | 2022-07-26 | 2024-08-13 | 湖南三湘银行股份有限公司 | 一种基于多步保护的开放平台综合安全保护方法 |
CN115314273B (zh) * | 2022-07-29 | 2024-03-26 | 蚂蚁区块链科技(上海)有限公司 | 一种数据传输系统、方法、电子设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
CN107742210A (zh) * | 2017-10-13 | 2018-02-27 | 布比(北京)网络技术有限公司 | 一种不同区块链间的跨链转账系统和方法 |
CN108900321A (zh) * | 2018-06-06 | 2018-11-27 | 广州链块科技有限公司 | 一种区块链分区间进行实时原子交易的方法 |
CN110266655A (zh) * | 2019-05-30 | 2019-09-20 | 中国工商银行股份有限公司 | 一种基于区块链的跨链互联方法、设备以及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10404571B2 (en) * | 2015-12-29 | 2019-09-03 | Futurewei Technologies, Inc. | Communication among network controllers |
CN107301536B (zh) * | 2017-06-12 | 2019-07-12 | 腾讯科技(深圳)有限公司 | 资源转移方法及装置 |
-
2019
- 2019-09-24 CN CN201910904867.2A patent/CN110601902B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
CN107742210A (zh) * | 2017-10-13 | 2018-02-27 | 布比(北京)网络技术有限公司 | 一种不同区块链间的跨链转账系统和方法 |
CN108900321A (zh) * | 2018-06-06 | 2018-11-27 | 广州链块科技有限公司 | 一种区块链分区间进行实时原子交易的方法 |
CN110266655A (zh) * | 2019-05-30 | 2019-09-20 | 中国工商银行股份有限公司 | 一种基于区块链的跨链互联方法、设备以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110601902A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110601902B (zh) | 一种基于区块链网络的交互数据处理方法及装置 | |
CN107800602B (zh) | 一种报文处理方法、设备及系统 | |
CN102377629B (zh) | 终端穿越私网与ims核心网中服务器通信的方法、装置及网络系统 | |
EP3432523B1 (en) | Method and system for connecting a terminal to a virtual private network | |
US6816462B1 (en) | System and method to determine connectivity of a VPN secure tunnel | |
US6915436B1 (en) | System and method to verify availability of a back-up secure tunnel | |
CN104168173B (zh) | 终端穿越私网与ims核心网中服务器通信的方法、装置及网络系统 | |
US20160285820A1 (en) | Method for processing address resolution protocol message, switch, and controller | |
US20150381563A1 (en) | Relay system for transmitting ip address of client to server and method therefor | |
CN107360205B (zh) | 数据报文的传输方法及装置、系统 | |
CN104993993B (zh) | 一种报文处理方法、设备和系统 | |
CN112217685B (zh) | 隧道探测方法、终端设备、系统、计算机设备和存储介质 | |
CN113938474B (zh) | 一种虚拟机访问方法、装置、电子设备和存储介质 | |
CN113992440B (zh) | 一种网关设备和将本地数据传入IPsec隧道的方法 | |
CN113839824A (zh) | 流量审计方法、装置、电子设备及存储介质 | |
CN106027387A (zh) | 一种语音业务的处理方法、网关设备及系统 | |
CN114338116B (zh) | 加密传输方法、装置及sd-wan网络系统 | |
CN113873041B (zh) | 报文传输方法、装置、网络设备及计算机可读存储介质 | |
CN107666671B (zh) | 基于twamp的错误连接检测的方法及装置 | |
CN113472625B (zh) | 基于移动互联网的透明桥接方法、系统、设备及存储介质 | |
CN114666249B (zh) | 云平台上的流量采集方法、设备以及计算机可读存储介质 | |
CN114553567A (zh) | 多方安全计算中的网络传输方法和系统 | |
CN114884667A (zh) | 一种通信鉴权方法、设备及存储介质 | |
JP2011077887A (ja) | パケット転送システム、パケット転送方法、通信装置及びパケット転送プログラム | |
CN117650965B (zh) | 基于uCPE原有端口实现SD-WAN管理网络的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40015681 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |