CN110601906A - 一种基于区块链的数据传输方法及装置 - Google Patents
一种基于区块链的数据传输方法及装置 Download PDFInfo
- Publication number
- CN110601906A CN110601906A CN201910936783.7A CN201910936783A CN110601906A CN 110601906 A CN110601906 A CN 110601906A CN 201910936783 A CN201910936783 A CN 201910936783A CN 110601906 A CN110601906 A CN 110601906A
- Authority
- CN
- China
- Prior art keywords
- address
- port
- node
- data packet
- block chain
- 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
Links
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
- H04L41/0826—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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
-
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于区块链的数据传输方法,包括:通过第一代理组件接收第二代理组件发送的组网请求,第二代理组件部署于第二区块链节点,第一代理组件具有第一端口以及第一地址,第二代理组件具有第二端口以及第二地址;根据第二代理组件发送的组网请求,获取第二端口以及第二地址;根据第二端口以及第二地址,建立第一代理组件与第二代理组件的第一区块链子网,第一端口用于第二区块链节点在第一区块链子网中,通过第一端口与第一区块链节点传输多类业务数据包。本申请还公开了一种装置。本申请能够减少了IP地址和端口遭到攻击的可能性,提升安全性,并且降低企业网络的管理成本。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于区块链的数据传输方法及装置。
背景技术
随着互联网的不断发展,区块链技术应运而生,它是一种互联网数据库技术,具有去中心化、公开透明的特点。具体地,区块链技术的本质是去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块取代目前互联网对中心服务器的依赖,使得所有数据的变更或者交易项目都被记录在一个云系统之上。
目前,业界主流的区块链服务(Blockchain as a Service,BaaS)可以用云计算快速搭建的区块链服务,快速验证概念和模型可行性,满足区块链生态系统的服务需求。区块链网络中存在若干区块链节点,而区块链节点上运行着若干个区块链相关进程,每个进程对外暴露不同的服务端口,当BaaS平台部署在企业客户内部时,需要开放大量的网际互联协议(InternetProtocol,IP)地址和端口,以便多个参与方可以完成互联。
然而,暴露大量的IP地址和端口到外网容易遭到攻击,导致安全性较低,并且网络中需要配置较多的IP地址与端口之间的映射,导致企业网络的管理成本较高。
发明内容
本申请实施例提供了一种基于区块链的数据传输方法及装置,只需要对外暴露一个IP地址和端口即可传输多种不同业务类型的数据包,从而减少了IP地址和端口遭到攻击的可能性,提升安全性,并且只需配置一个端口和一个IP地址之间的映射,从而降低了企业网络的管理成本。
有鉴于此,本申请第一方面提供一种基于区块链的数据传输方法,所述数据传输方法应用于第一区块链节点,所述第一区块链节点内部署有第一代理组件,所述数据传输方法包括:
通过所述第一代理组件接收第二代理组件发送的组网请求,其中,所述第二代理组件部署于第二区块链节点,所述第一代理组件具有第一端口以及第一地址,所述第一端口与所述第一地址具有对应关系,所述第二代理组件具有第二端口以及第二地址,所述第二端口与所述第二地址具有对应关系;
根据所述第二代理组件发送的组网请求,获取所述第二端口以及所述第二地址;
根据所述第二端口以及所述第二地址建立第一区块链子网,其中,所述第一端口用于在所述第一区块链子网中,与所述第二区块链节点传输多类业务数据包。
本申请第二方面提供一种数据传输装置,所述数据传输装置应用于第一区块链节点,所述第一区块链节点内部署有第一代理组件,所述数据传输装置包括:
接收模块,用于通过所述第一代理组件接收第二代理组件发送的组网请求,其中,所述第二代理组件部署于第二区块链节点,所述第一代理组件具有第一端口以及第一地址,所述第一端口与所述第一地址具有对应关系,所述第二代理组件具有第二端口以及第二地址,所述第二端口与所述第二地址具有对应关系;
获取模块,用于根据所述接收模块接收的所述第二代理组件发送的组网请求,获取所述第二端口以及所述第二地址;
建立模块,用于根据所述获取模块获取的所述第二端口以及所述第二地址建立第一区块链子网,其中,所述第一端口用于在所述第一区块链子网中,与所述第二区块链节点传输多类业务数据包。
在一种可能的设计中,所述数据传输装置还包括发送模块;
所述发送模块,用于根据所述第二端口以及所述第二地址建立第一区块链子网之后,通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第一业务数据包;
所述发送模块,还用于根据所述第二端口以及所述第二地址建立第一区块链子网之后,通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
在一种可能的设计中,所述接收模块,还用于根据所述第二端口以及所述第二地址建立第一区块链子网之后,通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第一业务数据包;
所述接收模块,还用于通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
在一种可能的设计中,所述接收模块,还用于通过所述第一代理组件接收第三代理组件发送的组网请求,其中,所述第三代理组件部署于第三区块链节点,所述第三代理组件具有第三端口以及第三地址,所述第三端口与所述第三地址具有对应关系;
所述获取模块,还用于根据所述接收模块接收的所述第三代理组件发送的组网请求,获取所述第三端口以及所述第三地址;
所述建立模块,还用于根据所述获取模块获取的所述第三端口以及所述第三地址建立第二区块链子网,其中,所述第三端口用于所述第三区块链节点在所述第二区块链子网中,通过所述第一端口与第一区块链节点传输多类业务数据包。
在一种可能的设计中,所述数据传输装置还包括生成模块;
所述接收模块,还用于通过所述第一代理组件接收所述第二代理组件发送的第一数据包,其中,所述第一数据包至少包括源地址、目标地址以及有效数据;
所述生成模块,用于若所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述目标地址发送所述第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址以及所述有效数据。
在一种可能的设计中,所述第一数据包还包括第一中继地址;
所述发送模块,还用于若所述第一中继地址不为所述第一地址,则将所述第一数据包丢弃或者转发到所述第一中继地址;
所述生成模块,还用于若所述第一中继地址是所述第一地址且所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址、第二中继地址以及所述有效数据,其中所述第二中继地址为第三地址;
所述发送模块,还用于通过所述第一代理组件向所述第三地址发送所述第二数据包。
在一种可能的设计中,所述第一数据包还包括第一转发次数,所述第一转发次数为N,所述N为大于或等于0的整数;
所述生成模块,还用于若所述第一转发次数大于0且所述目标地址不是所述第一地址,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述第二中继地址发送所述第二数据包,其中,所述第二数据包还包括第二中继地址和第二转发次数,所述第二转发次数为(N-1)。
在一种可能的设计中,所述数据传输装置还包括处理模块;
所述处理模块,用于若所述第一地址与所述目标地址一致,则对所述第一数据包中的所述的有效数据进行处理。
在一种可能的设计中,所述获取模块,还用于获取所述第一区块链节点的中继标识;
所述发送模块,还用于若所述中继标识为目标中继标识,则通过所述第一代理组件向所述第二代理组件发送中继允许请求,以使所述第二代理组件根据所述中继允许请求确定所述第一区块链节点属于中继节点,其中,所述中继节点用于转发数据包。
在一种可能的设计中,所述接收模块,还用于通过所述第一代理组件接收所述第二代理组件发送的跨节点连接请求,其中,所述跨节点连接请求携带所述第二区块链节点的连接标识;
所述处理模块,还用于若所述连接标识为目标连接标识,则确定所述第二区块链节点为跨连接节点,其中,所述跨连接节点用于接收源地址属于非直连区块链节点的数据包。
在一种可能的设计中,所述接收模块,还用于通过所述第一代理组件接收所述第二代理组件发送的广播连接请求,其中,所述广播连接请求携带所述第二区块链节点的广播标识;
所述处理模块,还用于根据所述广播标识,来确定是否将所述第二区块链节点的存在广播给相连的区块链节点。
本申请第三方面提供区块链节点,所述区块链节点内部署有第一代理组件,所述区块链节点包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
通过所述第一代理组件接收第二代理组件发送的组网请求,其中,所述第二代理组件部署于第二区块链节点,所述第一代理组件具有第一端口以及第一地址,所述第一端口与所述第一地址具有对应关系,所述第二代理组件具有第二端口以及第二地址,所述第二端口与所述第二地址具有对应关系;
根据所述第二代理组件发送的组网请求,获取所述第二端口以及所述第二地址;
根据所述第二端口以及所述第二地址建立第一区块链子网,其中,所述第一端口用于在所述第一区块链子网中,与所述第二区块链节点传输多类业务数据包;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种基于区块链的数据传输方法,该数据传输方法应用于第一区块链节点,第一区块链节点内部署有第一代理组件,首先第一区块链节点通过第一代理组件接收第二代理组件发送的组网请求,然后第一区块链节点根据第二代理组件发送的组网请求,获取第二端口以及第二地址,最后第一区块链节点根据第二端口以及第二地址,建立第一代理组件与第二代理组件的第一区块链子网,第一端口用于在第一区块链子网中,与第二区块链节点传输多类业务数据包。通过上述方式,利用代理组件建立区块链节点之间的通信,而代理组件只需要对外暴露一个IP地址和端口即可传输多种不同业务类型的数据包,从而减少了IP地址和端口遭到攻击的可能性,提升安全性,并且只需配置一个端口和一个IP地址之间的映射,从而降低了企业网络的管理成本。
附图说明
图1为本申请实施例提供的分布式系统应用于区块链系统的一个可选的结构示意图;
图2为为本申请实施例中提供的区块结构一个可选的示意图;
图3为本申请实施例中区块链系统的一个网络架构示意图;
图4为本申请实施例中部署代理组件的BaaS平台一个结构示意图;
图5为本申请实施例中基于区块链的数据传输方法一个实施例示意图;
图6为本申请实施例中基于单个区块链子网的一个通信示意图;
图7为本申请实施例中基于代理组件的单端口通信示意图;
图8为本申请实施例中基于BaaS平台的一个拓扑结构示意图;
图9为本申请实施例中基于BaaS平台的一个数据传输示意图;
图10为本申请实施例中基于多个区块链子网的一个通信示意图;
图11为本申请实施例中数据包的一个结构示意图;
图12为本申请实施例中基于BaaS平台的另一个拓扑结构示意图;
图13为本申请实施例中基于BaaS平台的另一个数据传输示意图;
图14为本申请实施例中数据传输的方法一个实施例示意图;
图15为本申请实施例中基于BaaS平台的另一个拓扑结构示意图;
图16为本申请实施例中基于BaaS平台的另一个数据传输示意图;
图17为本申请实施例中基于BaaS平台的另一个拓扑结构示意图;
图18为本申请实施例中基于BaaS平台的另一个数据传输示意图;
图19为本申请实施例中通知中继状态的一个实施例示意图;
图20为本申请实施例中通知可传输状态的一个实施例示意图;
图21为本申请实施例中广播可连接状态的一个实施例示意图;
图22为本申请实施例中数据传输装置的一个实施例示意图;
图23为本申请实施例中数据传输装置的另一个实施例示意图;
图24A为本申请实施例中数据传输装置的另一个实施例示意图;
图24B为本申请实施例中数据传输装置的另一个实施例示意图;
图25为本申请实施例中数据传输装置的一个实施例示意图;
图26为本申请实施例中数据传输装置的另一个实施例示意图;
图27为本申请实施例中数据传输装置的另一个实施例示意图;
图28为本申请实施例中区块链节点的一个结构示意图。
具体实施方式
本申请实施例提供了一种基于区块链的数据传输方法及装置,只需要对外暴露一个IP地址和端口即可传输多种不同业务类型的数据包,从而减少了IP地址和端口遭到攻击的可能性,提升安全性,并且只需配置一个端口和一个IP地址之间的映射,从而降低了企业网络的管理成本。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请提供的数据传输方法以及数据传输方法可以应用于区块链系统,区块链系统包括多个区块链节点,每个区块链节点运行有一个区块链即服务(Blockchainas a Service,BaaS)平台。区块链本质上是一种多方协作的账本或数据库,通常的公有链技术如比特币、以太坊或EOS,在性能、安全性以及灵活度上并不能完全满足企业需求。而适用于企业的联盟链技术,比如超级账本结结构(Hyperledger Fabric)、区块链底层技术开源平台(BCOS)以及可信任结构化查询语言(Trust Structured Query Language。TrustSQL)提供了企业所需的准入手段、协作流程、灵活度以及高性能,但却带来了额外的复杂性,比如学习、部署以及管理成本,对此,BaaS服务平台需要帮助企业快速实现自己的区块链部署,并与需要上链的业务系统进行打通。
企业间协作已有一定历史,传统企业间协作通常是通过邮件、即时通讯(InstantMessaging,IM)以及传真等非实时、非正式甚至线下的渠道来进行,当代社会的大规模协作的趋势下,区块链会成为下一代企业间线上协作的基础设施。
基于此,BaaS平台的用途主要是快速建立自己所需的开发环境,提供基于区块链的搜索查询、交易提交以及数据分析等一系列操作服务,这些服务既可以是中心化的,也可以是非中心化的,用来帮助开发者更快地验证自己的概念和模型。开发人员只需通过应用程序编程接口(Application Programming Interface,API)和软件开发工具包(SoftwareDevelopment Kit,SDK)等接口,连接这些功能,降低中小企业使用区块链的门槛。BaaS平台可使开发人员专注于业务应用层面的开发,无需专门建设自己的基础设施,服务购买即可,不仅可节省服务端研发成本,还可提供更好的测试工具,降低部署和测试成本。BaaS平台可根据开发者的产品和业务特点,提供不同的在线配置和代码功能,扩展开发者自定义的功能,满足个性化需求,提高灵活性
应理解,本申请涉及的区块链系统由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、终端设备)通过网络通信的形式连接形成的分布式系统。其中,这里的区块链节点即为区块链区块链节点。
以分布式系统为区块链系统为例,参见图1,图1为本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,如图所示,由多个区块链节点(接入网络中的任意形式的计算设备,如服务器、终端设备)和客户端形成,区块链节点之间形成组成的点对点(Peer To Peer,P2P)网络,P2P协议是一个运行在传输控制协议(TransmissionControl Protocol,TCP)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端设备都可以加入而成为区块链节点,区块链节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各区块链节点的功能,涉及的功能包括:
1)路由,区块链节点具有的基本功能,用于支持区块链节点之间的通信。
区块链节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他区块链节点,供其他区块链节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他区块链节点,其他区块链节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他区块链节点,其他区块链节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的区块链节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中区块链节点提交的记录数据。
请参阅图2,图2为为本申请实施例中提供的区块结构(Block Structure)一个可选的示意图,如图所示,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
为了便于理解,本申请提出了一种数据传输方法的方法以及数据传输的方法,该方法应用于图3所示的区块链系统,请参阅图3,图3为本申请实施例中区块链系统的一个网络架构示意图,如图所示,区块链系统包括多个区块链节点,区块链节点上部署有BaaS平台,具体地,在每个BaaS平台设计有一个代理组件,请参阅图4,图4为本申请实施例中部署代理组件的BaaS平台一个结构示意图,如图所示,本申请提供的BaaS平台将整个区块链网络集群当作一个应用来进行管理,对企业内网来说,已经部署完毕的BaaS平台就是一个单一应用,对外可以仅暴露一个网际互联协议(InternetProtocol,IP)地址和一个端口,从而使得BaaS平台就类似于部署在企业内网的一台普通网页服务器一样。BaaS平台包括BaaS控制台、Fabric网络、BCOS网络以及TrustSQL网络,它们均与代理组件连接,然后通过代理组件向外发送数据,或者向内接收数据,通过此代理组件进行数据传输。基于此,区块链节点可以通过BaaS平台中的代理组件建立与其他区块链节点的连接,即如图3所示,例如,BaaS平台1通过BaaS平台2中的代理组件、代理组件与BaaS平台3中的代理组件、BaaS平台4中的代理组件、BaaS平台5中的代理组件以及BaaS平台6中的代理组件建立连接,从而实现区块链节点1与区块链节点2的互联,区块链节点1与区块链节点3互联,从而实现区块链节点1与区块链节点4的互联,区块链节点1与区块链节点5的互联,区块链节点1与区块链节点6的互联。
类似地,其他BaaS平台也通过代理组件与其他BaaS平台的代理组件建立通信连接,从而实现区块链节点之间的互联。
结合上述介绍,下面将对本申请中基于区块链的数据传输方法进行介绍,请参阅图5,本申请实施例中基于区块链的数据传输方法应用于第一区块链节点,第一区块链节点内部署有第一代理组件,基于区块链的数据传输方法一个实施例包括:
101、通过第一代理组件接收第二代理组件发送的组网请求,其中,第二代理组件部署于第二区块链节点,第一代理组件具有第一端口以及第一地址,第一端口与第一地址具有对应关系,第二代理组件具有第二端口以及第二地址,第二端口与第二地址具有对应关系;
本实施例中,第一区块链节点上运行有BaaS平台,该BaaS平台上部署有第一代理组件,第二区块链节点上也运行有BaaS平台,该BaaS平台上部署有第二代理组件,第一区块链节点与第二区块链节点都属于区块链系统中的节点,第一区块链节点可属于企业A,第二区块链节点可属于企业B。当企业A需要与企业B建立区块链网络时,可以由第二区块链节点通过第二代理组件向第一区块链节点的第一代理组件发送组网请求,可以理解的是,也可以由第一区块链节点通过第一代理组件向第二区块链节点的第二代理组件发送组网请求。
区块链系统还存在其他的区块链节点,区块链节点运行着至少一个与区块链相关进程,每个进程对外暴露不同的服务端口,区块链节点之间要相互可以访问才能组成区块链网络,因此,在区块链节点中部署的代理组件可以将多个进程对外的端口进行汇总,得到一个对外的端口,而对BaaS平台内部的各个进程依旧开放多个端口,每个端口对应相应的进程。为了便于理解,请参阅图6,图6为本申请实施例中基于单个区块链子网的一个通信示意图,如图所示,以第一区块链节点上运行的BaaS平台A和第二区块链节点上运行的BaaS平台B为例,BaaS平台A内部署代理组件A,BaaS平台B部署于代理组件B,在组网的过程中,通过代理组件A和代理组件B进行信号传输。具体地,请参阅图7,图7为本申请实施例中基于代理组件的单端口通信示意图,如图所示,每个代理组件可以对外网仅开设一个端口,这个对应对应于一个IP地址,即代理组件A设置有端口A,代理组件B设置有端口B,第一代理组件可以为代理组件A,第二代理组件可以为代理组件B,端口A可以是第一端口,端口B可以是第二端口,且第一端口对应第一地址,即IP地址A,第二端口对应第二地址,即IP地址B。
102、根据第二代理组件发送的组网请求,获取第二端口以及第二地址;
本实施例中,第一区块链节点根据组网请求,可以获取第二代理组件所对应的第二端口和第二地址,其中,组网请求可以携带源地址、源端口、目标地址和目标端口,以第二代理组件向第一代理组件发送组网请求为例,源地址为第二地址,源端口为第二端口,目标地址为第一地址,目标端口为第一端口。
103、根据第二端口以及第二地址建立第一区块链子网,其中,第一端口用于在第一区块链子网中,与第二区块链节点传输多类业务数据包。
本实施例中,第一区块链节点根据第二端口以及第二地址,建立第一区块链节点与第二区块链节点之间的区块链子网,即得到第一区块链子网。其中,第一端口和第二端口均能够收发多类业务数据包。可以理解的是,业务数据包的类型可以是用于联盟协作的数据包,用于交易处理和节点互联的数据包,用于事件注册的数据包,用于共识、排序和服务的数据包,用于组织之间区块同步的数据包,用于链互联的数据包,用于SDK连接的数据包,用于消息服务的数据包,用于共识的数据包以及用于交易转发与结果收集的数据包。
本申请实施例中,提供了一种基于区块链的数据传输方法,该数据传输方法应用于第一区块链节点,第一区块链节点内部署有第一代理组件,首先第一区块链节点通过第一代理组件接收第二代理组件发送的组网请求,然后第一区块链节点根据第二代理组件发送的组网请求,获取第二端口以及第二地址,最后第一区块链节点根据第二端口以及第二地址,建立第一代理组件与第二代理组件的第一区块链子网,第一端口用于在第一区块链子网中,与第二区块链节点传输多类业务数据包。通过上述方式,利用代理组件建立区块链节点之间的通信,而代理组件只需要对外暴露一个IP地址和端口即可传输多种不同业务类型的数据包,从而减少了IP地址和端口遭到攻击的可能性,提升安全性,并且只需配置一个端口和一个IP地址之间的映射,从而降低了企业网络的管理成本。
可选地,在上述图5对应的各个实施例的基础上,根据第二端口以及第二地址建立第一区块链子网之后,还可以包括:
第一区块链节点通过第一端口向第二代理组件所对应的第二端口发送第一业务数据包;
第一区块链节点通过第一端口向第二代理组件所对应的第二端口发送第二业务数据包,其中,第二业务数据包与第一数据包属于不同业务类型的数据包。
本实施例中,介绍了一种通过同一个端口发送不同业务数据包的方式,为了便于介绍,请参阅图8,图8为本申请实施例中基于BaaS平台的一个拓扑结构示意图,如图所示,在第一区块链节点和第二区块链节点构建起第一区块链子网之后,区块链节点之间即可传输数据包。假设第一区块链节点上运行有企业A的BaaS平台,第二区块链节点上运行有企业B的BaaS平台,企业A的BaaS平台上部署有第一代理组件,第一代理组件提供第一端口,企业B的BaaS平台上部署有第二代理组件,第二代理组件提供第二端口。请参阅图9,图9为本申请实施例中基于BaaS平台的一个数据传输示意图,如图所示,当第一区块链节点向第二区块链发送两种不同类型的业务数据包时,第一区块链节点通过第一端口向第二代理组件所对应的第二端口发送第一业务数据包,且第一区块链节点仍通过第一端口向第二代理组件所对应的第二端口发送第二业务数据包,第二业务数据包与第一数据包属于不同业务类型的数据包。
其次,本申请实施例中,提供了一种通过同一个端口发送不同业务数据包的方式,通过上述方式,能够减少IP地址和端口被曝光的可能性,从而提升方案的安全性,此外,由于网络规模受限,企业所拥有的外网IP地址往往非常有限,受限于有限的IP地址和端口,因此采用同一个端口和IP地址进行数据传输能够减少对区块链节点服务的限制。
可选地,在上述图5对应的各个实施例的基础上,根据第二端口以及第二地址建立第一区块链子网之后,还可以包括:
第一区块链节点通过第一端口接收第二代理组件通过第二端口发送的第一业务数据包;
第一区块链节点通过第一端口接收第二代理组件通过第二端口发送的第二业务数据包,其中,第二业务数据包与第一数据包属于不同业务类型的数据包。
本实施例中,介绍了一种通过同一个端口发送不同业务数据包的方式,为了便于介绍,请再次参阅图8,图8为本申请实施例中基于BaaS平台的一个拓扑结构示意图,如图所示,在第一区块链节点和第二区块链节点构建起第一区块链子网之后,区块链节点之间即可传输数据包。假设第一区块链节点上运行有企业A的BaaS平台,第二区块链节点上运行有企业B的BaaS平台,企业A的BaaS平台上部署有第一代理组件,第一代理组件提供第一端口,企业B的BaaS平台上部署有第二代理组件,第二代理组件提供第二端口。
当第二区块链节点向第一区块链发送两种不同类型的业务数据包时,第二区块链节点通过第二端口向第一代理组件所对应的第一端口发送第一业务数据包,且第二区块链节点仍通过第二端口向第一代理组件所对应的第一端口发送第二业务数据包,第二业务数据包与第一数据包属于不同业务类型的数据包。
其次,本申请实施例中,提供了一种通过同一个端口接收不同业务数据包的方式,通过上述方式,能够减少IP地址和端口被曝光的可能性,从而提升方案的安全性,此外,由于网络规模受限,企业所拥有的外网IP地址往往非常有限,受限于有限的IP地址和端口,因此采用同一个端口和IP地址进行数据传输能够减少对区块链节点服务的限制。
可选地,在上述图5对应的各个实施例的基础上,还可以包括:
通过第一代理组件接收第三代理组件发送的组网请求,其中,第三代理组件部署于第三区块链节点,第三代理组件具有第三端口以及第三地址,第三端口与第三地址具有对应关系;
根据第三代理组件发送的组网请求,获取第三端口以及第三地址;
根据第三端口以及第三地址建立第二区块链子网,其中,第三端口用于第三区块链节点在第二区块链子网中,通过第一端口与第一区块链节点传输多类业务数据包。
本实施例中,介绍了一种基于区块链的代理组件建立多个区块链子网的方法,与建立第一区块链子网的方式类似,第一区块链节点还可以与第三区块链节点构建第二区块链子网。具体地,第三区块链节点上也运行有BaaS平台,该BaaS平台上部署有第三代理组件,第一区块链节点与第三区块链节点都属于区块链系统中的节点,第一区块链节点可属于企业A,第三区块链节点可属于企业C。当企业A需要与企业C建立区块链网络时,可以由第三区块链节点通过第三代理组件向第一区块链节点的第一代理组件发送组网请求,可以理解的是,也可以由第一区块链节点通过第一代理组件向第三区块链节点的第三代理组件发送组网请求。
为了便于理解,请参阅图10,图10为本申请实施例中基于多个区块链子网的一个通信示意图,如图所示,以第一区块链节点上运行的BaaS平台A,第二区块链节点上运行的BaaS平台B以及第三区块链节点上运行的BaaS平台C为例,BaaS平台A内部署代理组件A,BaaS平台B部署于代理组件B,BaaS平台C部署于代理组件C,在组网的过程中,通过代理组件A和代理组件B进行信号传输,通过代理组件A和代理组件C进行信号传输。每个代理组件可以对外网仅开设一个端口,这个对应对应于一个IP地址,即代理组件A设置有端口A,代理组件B设置有端口B,代理组件C设置有端口C,第一代理组件可以为代理组件A,第二代理组件可以为代理组件B,第三代理组件可以为代理组件C,端口A可以是第一端口,端口B可以是第二端口,端口C可以是第三端口,且第一端口对应第一地址,即IP地址A,第二端口对应第二地址,即IP地址B,第三端口对应第三地址,即IP地址C。
第一区块链节点根据组网请求,可以获取第三代理组件所对应的第三端口和第三地址,其中,组网请求可以携带源地址、源端口、目标地址和目标端口,以第三代理组件向第一代理组件发送组网请求为例,源地址为第三地址,源端口为第三端口,目标地址为第一地址,目标端口为第一端口。
第一区块链节点根据第三端口以及第三地址,建立第一区块链节点与第三区块链节点之间的区块链子网,即得到第二区块链子网。其中,第一端口和第三端口均能够收发多类业务数据包。
再次,本申请实施例中,提供了一种基于区块链的代理组件建立多个区块链子网的方法,建立第二区块链子网与建立第一区块链子网的方法类似,通过上述方式,利用代理组件建立区块链节点之间的通信,并且建立多个区块链子网。而代理组件只需要对外暴露一个IP地址和端口即可传输多种不同业务类型的数据包,从而减少了IP地址和端口遭到攻击的可能性,提升安全性,并且只需配置一个端口和一个IP地址之间的映射,从而降低了企业网络的管理成本。
可选地,在上述图5对应的各个实施例的基础上,还可以包括:
通过第一代理组件接收第二代理组件发送的第一数据包,其中,第一数据包至少包括源地址、目标地址以及有效数据;
若第一地址与目标地址不一致,则根据第一数据包生成第二数据包,并且通过第一代理组件向目标地址发送第二数据包,其中,第二数据包至少包括源地址、目标地址以及有效数据。
可选地,第一数据包还包括第一中继地址;
还可以包括:
若第一中继地址不为第一地址,则将第一数据包丢弃或者转发到第一中继地址;
若第一中继地址是第一地址且第一地址与目标地址不一致,则根据第一数据包生成第二数据包,其中,第二数据包至少包括源地址、目标地址、第二中继地址以及有效数据,其中第二中继地址为第三地址;
通过第一代理组件向第三地址发送第二数据包。
本实施例中,提供了一种基于非全互联区块链网络的区块链节点通信方法。在实际应用中,仅通过代理组件打通和简化各个BaaS平台之间的连接并不足够,很多企业网络间还存在新的问题,比如在星型结构中,核心企业A与企业B、企业C和企业D之间均有区块链连接,但是企业B、企业C和企业D两两之间均无连接。
然而,这类星型的网络对区块链类应用不够友好,很多区块链底层引擎需要保证有足够的连接数才能安全、稳定且高效地工作。以比特币和以太坊这类公有链为例,通常节点需要和周围8到15个邻居节点建立长连接,因为周围节点随时可能下线,要保证能交易能快速广播到全网以及以最快的速度收到最新的交易,避免日食攻击,这个连接数的必要的。对于Hyperledger Fabric这种联盟链来说,交易的发起方需要获得多方背书,就需要和多方的节点建立直接连接,星型网络下将无法与其他非直连的节点进行交互。
之所以这类非全互联的网络拓扑在联盟链中比较常见,因为联盟链是许可制网络,所有新加入的参与方都需要得到准入许可,新的参与方所直连的区块链节点是有限的,网络规模常常较小,最差情况下,新的参与方只和一个核心企业互联,容易形成上述星型的网络拓扑。其中,联盟链只针对特定某个群体的成员和有限的第三方,内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,其他第三方可以通过该区块链开放的应用程序接口(ApplicationProgramming Interface,API)进行限定查询。为了获得更好的性能,联盟链对于共识或验证节点的配置和网络环境有一定要求。有了准入机制,可以使得交易性能更容易提高,避免由参次不齐的参与者产生的一些问题。联盟链使用的群体可以是银行、保险、证券、商业协会、集团企业及上下游企业。
星型的网络拓扑对点对点(peer-to-peer,P2P)应用同样不够友好,以星际文件系统(InterPlanetary File System,IPFS)或者比特洪流(BitTorrent,BT)类应用为例,IPFS网络中,当某个区块链节点上传了文件,某个其他区块链节点想要查询和下载该文件时,均需要能够和分布式哈希表(Distributed Hash Table,DHT)网络上的其他区块链节点直连通讯,因此,星型网络下IPFS以及BT将无法很好地工作。
基于此,本申请对代理组件增加了中继能力,使得在星型网络下或者无法直连的网络下,也能实现逻辑上的直连,具体地,请参阅图11,图11为本申请实施例中数据包的一个结构示意图,如图所示,对于代理组件之间传输的流量,在数据包的负载(payload)层之上,增加一个自定义的头部,自定义头部中将包含若干字段,帮助完成流量中继,从而实现区块链网络间全互联。
可以理解的是,本申请中代理组件之间传输的信息,可以使用IP+用户数据报协议(User Datagram Protocol,UDP)的方式对业务数据进行封装,在实际应用中,还可以采用IP+IP的方式对业务数据进行封装,或,采用IP+通用路由封装(Generic RoutingEncapsulation,GRE)+IP的方式对业务数据进行封装,或,采用IP+传输控制协议(Transmission Control Protocol,TCP)的方式对业务数据进行封装,或,采用IP+点对点协议(Point to Point Protocol,PPP)的方式对业务数据进行封装,此处不做限定。
其中,自定义头部可以如下表1所示。
表1
版本号 | 8比特(bit) |
保留字段 | 24比特(bit) |
dst_baas_id | 32比特(bit) |
src_baas_id | 32比特(bit) |
relay_baas_id | 32比特(bit) |
relay_ttl | 8比特(bit) |
“版本号”通常使用8bit长度来表示,方便日后协议升级时使用。
“保留字段”通常预留24bit,即3字节长度,可方便在不升级协议的情况下新增其他功能。
“dst_baas_id”字段通常使用32bit长度表示,其数值含义为数据包最终需要送到哪个BaaS平台。
“src_baas_id”字段通常使用32bit长度表示,其数值含义为数据包是由哪个BaaS平台发出的。
“relay_baas_id”字段通常使用32bit长度表示,其数值含义为,此数据包本次将由哪个BaaS平台进行中继。
“relay_ttl”字段通常使用8bit长度表示,其数值含义为,数据包能经过的最大转发次数,通常设置为8,每转发一次,该值减1,当被减到0时可以丢弃该数据包。该字段作用是防止网络中出现环路,报文被无限转发,消耗过多网络资源。
下面将基于图12和图13介绍中继通信的方式,请参阅图12,图12为本申请实施例中基于BaaS平台的另一个拓扑结构示意图,如图所示,假设第一区块链节点上运行有企业A的BaaS平台,第二区块链节点上运行有企业B的BaaS平台,第三区块链节点上运行有企业C的BaaS平台,企业A的BaaS平台上部署有第一代理组件,第一代理组件提供第一端口,企业B的BaaS平台上部署有第二代理组件,第二代理组件提供第二端口,企业C的BaaS平台上部署有第三代理组件,第三代理组件提供第三端口。请参阅图13,图13为本申请实施例中基于BaaS平台的另一个数据传输示意图,如图所示,第一区块链节点通过第一代理组件接收第二代理组件发送的第一数据包,其中,第一数据包至少包括源地址、目标地址、第一中继地址以及有效数据,即第一数据包的自定义头部可如表2所示。
表2
dst_baas_id | baas_id_C |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_A |
可以理解的是,表2中所示的自定义头部内部仅为一个示意,在实际应用中,还可以对自定义头部设置其他的字段。第一区块链节点可以对第一数据包进行解析,得到第一中继地址relay_baas_id,如果第一地址与目标地址不一致,则第一区块链节点可以根据第一数据包生成第二数据包,并且通过第一代理组件向目标地址发送第二数据包。具体地,如果第一地址与目标地址不一致,而且第一中继地址为第一地址,则第一区块链节点可以将relay_baas_id更新为第二中继地址,第二中继地址即为下一个可以作为中继节点的区块链节点地址,比如可以是baas_id_C,于是,第一区块链节点将源地址、目标地址和第二中继地址作为第二数据包的自定义头部。
即生成的第二数据包的自定义头部可如表3所示。
表3
dst_baas_id | baas_id_C |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_C |
如果第二中继地址为第三地址,那么第一区块链节点可以通过第一代理组件继续向具有第三地址的第三区块链节点的第三代理组件发送第二数据包。由第三区块链节点对第二数据包进行解析,如果解析得到的relay_baas_id和dst_baas_id一致,则表示自己就是目标节点,即企业C可以通过第三区块链节点接收到由企业B发送的业务数据。
第一区块链节点通过第一代理组件接收第二代理组件发送的第一数据包,第一数据包包括源地址、目标地址以及有效数据,此时,第一区块链节点可以判断第一地址与目标地址是否一致,如果不一致,那么就需要根据第一数据包生成第二数据包,并且通过所述第一代理组件向所述目标地址发送第二数据包,第二数据包至少包括源地址、目标地址以及有效数据。可以理解的是,在本实施例中第一区块链节点可以将第二数据包直接发送到目标地址,或者根据预先配置的规则将第二数据包转发给与第一区块链节点通信连接的一个或多个区块链节点。
如果第一数据包还包括第一中继地址,那么第一区块链节点同样需要判断第一地址与目标地址是否一致,如果不一致,那么需要将第一数据包丢弃或者转发到第一中继地址所对应的区块链节点。如果第一中继地址是第一地址且第一地址与目标地址不一致,那么第一区块链节点需要根据第一数据包生成第二数据包,其中,第二数据包至少包括源地址、目标地址、第二中继地址以及有效数据,其中第二中继地址为第三地址,该第三地址为除
第二区块链节点之外与第一区块链节点通信连接的其他区块链节点的地址。于是,第一区块链节点可以通过通过第一代理组件向第三地址发送第二数据包。可以理解的是,可以根据预先配置在第一区块链节点中的转发规则或存储在其中的网络信息来确定该第二中继地址。
进一步地,本申请实施例中,提供了一种基于非全互联区块链网络的区块链节点通信的方式,通过上述方式,即通过代理组件协助多个区块链子网进行互联的同时,增加了流量中继能力,使得在星型网络拓扑下,或者在无法建立直接连接的节点之间,也能够直接建立逻辑上的直连,帮助完善了区块链网络的交易提交流程,满足P2P应用对网络直连的需求。
可选地,在上述图5对应的各个实施例的基础上,第一数据包还包括第一转发次数,第一转发次数为N,N为大于或等于0的整数;
还可以包括:
若第一转发次数大于0,且目标地址不是第一地址,则根据第一数据包生成第二数据包,并且通过第一代理组件向第二中继地址发送第二数据包,其中,第二数据包还包括第二中继地址和第二转发次数,第二转发次数为(N-1)。
本实施例中,提供了一种对于转发次数进行相应处理的方法,即在数据包的自定义头部加入转发次数的字段relay_ttl,每转发一次数据包,其对应的relay_ttl字段值减1,当relay_ttl被减到0时即可丢弃该数据包。
第一区块链节点在收到第一数据包之后,可以对第一数据包进行解析,从而得到第一转发次数为N,如果第一转发次数大于0,则表示还可以第一区块链节点还可以继续转发数据包,如果目标地址不是第一地址,则表示第一区块链节点并不是数据包的最终接收方,于是,第一区块链节点需要根据第一数据包生成第二数据包,在第二数据包还包括第二中继地址和第二转发次数,第二转发次数为(N-1)。第一区块链节点可以通过第一代理组件向第二中继地址发送第二数据包,第二中继地址即为区块链系统中某个区块链节点所对应的地址。
具体地,请再次参阅图12和图13,如图所示,第一区块链节点通过第一代理组件接收第二代理组件发送的第一数据包,其中,第一数据包至少包括源地址、目标地址、第一中继地址、第一转发次数以及有效数据,即第一数据包的自定义头部可如表4所示。
表4
dst_baas_id | baas_id_C |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_A |
relay_ttl | 8 |
可以理解的是,表4中所示的自定义头部内部仅为一个示意,在实际应用中,还可以对自定义头部设置其他的字段。第一区块链节点可以对第一数据包进行解析,得到第一中继地址relay_baas_id,和第一转发次数relay_ttl。若第一转发次数大于0,且目标地址不是第一地址,则第一区块链节点可以根据第一数据包生成第二数据包,再通过第一代理组件向第二中继地址发送第二数据包。具体地,如果第一转发次数大于0,目标地址不是第一地址,而且第一中继地址为第一地址,则第一区块链节点可以将relay_baas_id更新为第二中继地址,第二中继地址即为下一个可以作为中继节点的区块链节点地址,比如可以是baas_id_C。第一转发次数是8,经过第一区块链节点的转发后,第一转发次数减少1,即得到第二转发次数7,也就是说,第一转发次数为N,那么第二转发次数为(N-1)。
于是,第一区块链节点将源地址、目标地址、第二中继地址和第二转发次数作为第二数据包的自定义头部。
即生成的第二数据包的自定义头部可如表5所示。
表5
dst_baas_id | baas_id_C |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_C |
relay_ttl | 7 |
如果第二中继地址为第三地址,且第二转发次数大于0,那么表示还可以继续转发数据包,预设第一区块链节点可以通过第一代理组件继续向具有该第三地址的第三区块链节点的第三代理组件发送第二数据包。由第三区块链节点对第二数据包进行解析,如果解析得到的relay_baas_id和dst_baas_id一致,则表示自己就是目标节点,即企业C可以通过第三区块链节点接收到由企业B发送的业务数据。
进一步地,本申请实施例中,提供了一种对于转发次数进行相应处理的方式,通过上述方式,区块链节点会根据数据包能经过的最大转发次数,确定是否还要继续进行转发,每转发一次数据包,其对应的转发次数字段值减1,当被减到0时可以丢弃该数据包,由此可以防止网络中出现环路,报文被无限转发,消耗过多网络资源。
可选地,在上述图5对应的各个实施例的基础上,还可以包括:
若第一地址与目标地址一致,则对第一数据包中的的有效数据进行处理。
本实施例中,介绍了一种区块链节点执行中继功能的方式,当第一数据包到达第一区块链节点时,第一区块链节点会判断此第一数据包是否是发给自己,即判断第一地址是否为目标地址,若第一地址是目标地址,则第一区块链节点不在转发第一数据包。反之,若第一地址不是目标地址,则第一区块链节点继续判断是否是需要自己转发,即判断第一地址是否为第一中继地址,如果第一地址为第一中继地址,则执行根据第一数据包生成第二数据包的步骤,并继续进行转发,如果第一地址不是第一中继地址,不是则丢弃第一数据包。
下面将基于图15和图16介绍中继通信的方式,请参阅图15,图15为本申请实施例中基于BaaS平台的另一个拓扑结构示意图,如图所示,假设第一区块链节点上运行有企业A的BaaS平台,第二区块链节点上运行有企业B的BaaS平台,第三区块链节点上运行有企业C的BaaS平台,第四区块链节点上运行有企业D的BaaS平台,企业A的BaaS平台上部署有第一代理组件,第一代理组件提供第一端口,企业B的BaaS平台上部署有第二代理组件,第二代理组件提供第二端口,企业C的BaaS平台上部署有第三代理组件,第三代理组件提供第三端口,企业D的BaaS平台上部署有第四代理组件,第四代理组件提供第四端口。请参阅图16,图16为本申请实施例中基于BaaS平台的另一个数据传输示意图,如图所示,第一区块链节点通过第一代理组件接收第二代理组件发送的第一数据包,其中,第一数据包至少包括源地址、目标地址、第一转发次数、第一中继地址以及有效数据,即第一数据包的自定义头部可如表6所示。
表6
版本号 | 1 |
保留字段 | 0 |
dst_baas_id | baas_id_C |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_A |
relay_ttl | 8 |
可以理解的是,表6中所示的自定义头部内部仅为一个示意,在实际应用中,还可以对自定义头部设置其他的字段。第一区块链节点可以对第一数据包进行解析,得到第一中继地址relay_baas_id,和第一转发次数relay_ttl,如果第一地址与目标地址一致,或者第一转发次数为0,则第一区块链节点不再转发第一数据包。如果第一地址与目标地址不一致,且第一中继地址为第一地址,则第一区块链节点可以将relay_baas_id更新为第二中继地址,第二中继地址即为下一个可以作为中继节点的区块链节点地址,比如可以是baas_id_C。需要说明的是,第二中继地址通常是根据路由表确定的,即区块链节点维护了一个路由表,当确定目的地址后可以通过查表确定由哪些区块链节点作为中继节点。可选地,也可以直接向周边所以的邻居区块链节点发送数据包,邻居区块链节点根据解析得到的中继地址判断是否与自身的地址一致,不一致就直接丢弃。
基于表7可知。第一转发次数是8,经过第一区块链节点的转发后,第一转发次数减少1,即得到第二转发次数7。即第二数据包的自定义头部可如表7所示。
表7
版本号 | 1 |
保留字段 | 0 |
dst_baas_id | baas_id_C |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_C |
relay_ttl | 7 |
于是,企业C将接收到第二数据包,并进行业务处理,由此完成了一次流量中继。
下面将以一个具体的场景进行说明,请参阅图17,图17为本申请实施例中基于BaaS平台的另一个拓扑结构示意图,如图所示,企业A的BaaS平台、企业B的BaaS平台、企业C的BaaS平台、企业D的BaaS平台和企业E的BaaS平台上分别部署有代理组件,每个代理组件提供一个端口。假设企业B希望可以向企业E发送业务数据,请参阅图18,图18为本申请实施例中基于BaaS平台的另一个数据传输示意图,如图所示,企业A的BaaS平台通过代理组件接收数据包,其中,数据包至少包括源地址、目标地址、转发次数、中继地址以及有效数据,即数据包的自定义头部可如表8所示。
表8
版本号 | 1 |
保留字段 | 0 |
dst_baas_id | baas_id_E |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_A |
relay_ttl | 8 |
企业A的BaaS平台收到数据包之后确定dst_baas_id不是自己,但是relay_baas_id是自己,于是企业A的BaaS平台对数据包进行重新封装,并进行数据包的转发,即得到的数据包的自定义头部可如表9所示。
表9
版本号 | 1 |
保留字段 | 0 |
dst_baas_id | baas_id_E |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_C |
relay_ttl | 7 |
企业C的BaaS平台收到数据包之后确定dst_baas_id不是自己,但是relay_baas_id是自己,于是企业C的BaaS平台对数据包进行重新封装,并进行数据包的转发,即得到的数据包的自定义头部可如表10所示。
表10
版本号 | 1 |
保留字段 | 0 |
dst_baas_id | baas_id_E |
src_baas_id | baas_id_B |
relay_baas_id | baas_id_E |
relay_ttl | 6 |
企业E接收到该数据包之后,发现dst_baas_id是自己的,于是不再进行数据包的转发,并进行业务处理,由此完成了一次流量中继。
再次,本申请实施例中,提供了一种区块链节点执行中继功能的方式,通过上述方式,区块链节点在解析得到中继地址之后,可以判断第一地址与目标地址是否一致,如果一致,表示该区块链节点就是最后要接收数据的节点,从而完成了数据的传输。由此,提升了方案的可行性和可操作性。
可选地,在上述图5对应的各个实施例的基础上,还可以包括:
获取第一区块链节点的中继标识;
若中继标识为目标中继标识,则通过第一代理组件向第二代理组件发送中继允许请求,以使第二代理组件根据中继允许请求确定第一区块链节点属于中继节点,其中,中继节点用于转发数据包。
本实施例中,介绍了一种区块链节点控制中继功能的方法,在部署BaaS平台部署时,需要提供一些隐私性选项以及中继功能开关,如果需要将区块链节点设置为具有中继功能的节点,则可以将中继功能开关设置为“开启”状态,此时中继标识即被设置为目标中继标识,比如为1。如果需要将区块链节点设置为不具有中继功能的节点,则可以将中继功能开关设置为“关闭”状态,此时中继标识即被设置为非目标中继标识,比如为0。
以第一区块链节点中的BaaS平台为例,第一区块链节点先获取中继标识,假设中继标识为1,则表示第一区块链节点为中继节点,该中继节点可用于转发消息,假设中继标识为0,则表示第一区块链节点不为中继节点,其中,中继标识为1即为目标中继标识。中继标识为0即为非目标中继标识。如果该中继标识为目标中继标识,则第一区块链节点可通过第一代理组件向所有邻居区块链节点(包括第二区块链节点)发送中继允许请求,使得邻居区块链节点能够确定第一区块链节点属于中继节点。可以理解,中继允许请求可以是单独的消息,也可以是包括在其他消息(例如,组网请求)中的信息字段。
为了便于理解,请参阅图19,图19为本申请实施例中通知中继状态的一个实施例示意图,如图所示,假设企业A的BaaS平台开启中继功能的开关,于是可以向企业B的BaaS平台、企业C的BaaS平台和企业D的BaaS平台发送目标中继标识,使得企业B的BaaS平台、企业C的BaaS平台和企业D的BaaS平台也能确定,企业A的BaaS平台已开启中继功能的开关,即企业A的BaaS平台可以实现中继功能。
进一步地,本申请实施例中,提供了一种区块链节点控制中继功能的方式,通过上述方式,对于区块链节点而言,可以选择是否提供中继功能,由此提升方案的灵活性和可操作性。
可选地,在上述图5对应的各个实施例的基础上,还可以包括:
通过第一代理组件接收第二代理组件发送的跨节点连接请求,其中,跨节点连接请求携带第二区块链节点的连接标识;
若连接标识为目标连接标识,则确定第二区块链节点为跨连接节点,其中,跨连接节点用于接收源地址属于非直连区块链节点的数据包。
本实施例中,介绍了一种区块链节点控制非直连区块链节点接入的方法,其中,非直连区块链节点表示没有与目标区块链节点直接相连的节点,该非直连区块链节点可以通过其他区块链节点与目标区块链节点相连,在部署BaaS平台部署时,需要提供一些是否允许非直连邻居连接自己的开关,以第二区块链节点中的BaaS平台为例,第一区块链节点通过第一代理组件接收第二代理组件发送的跨节点连接请求,该跨节点连接请求中携带连接标识,假设连接标识为1,表示第二区块链节点允许非直连的邻居节点连接自己,其中,连接标识为1即为目标连接标识。连接标识为0,表示第二区块链节点不允许非直连的邻居节点连接自己。可以理解,跨节点连接请求可以是单独的消息,也可以是包括在其他消息(例如,组网请求)中的信息字段。
为了便于理解,请参阅图20,图20为本申请实施例中通知可传输状态的一个实施例示意图,如图所示,假设企业B的BaaS平台、企业C的BaaS平台和企业D的BaaS平台都允许非直连的区块链节点接入,那么企业B的BaaS平台可以向企业A的BaaS平台发送目标连接标识,企业C的BaaS平台可以向企业A的BaaS平台发送目标连接标识,企业D的BaaS平台也可以向企业A的BaaS平台发送目标连接标识。
进一步地,本申请实施例中,提供了一种区块链节点控制非直连区块链节点接入的方式,通过上述方式,对于区块链节点而言,可以选择是否允许非直连区块链节点连接自己,由此提升方案的灵活性和可操作性。
可选地,在上述图5对应的各个实施例的基础上,还可以包括:
通过第一代理组件接收第二代理组件发送的广播连接请求,其中,广播连接请求携带第二区块链节点的广播标识;
根据该广播标识,来确定是否将第二区块链节点的存在广播给相连的区块链节点。
本实施例中,介绍了一种区块链节点广播可连接状态的方法,在部署BaaS平台部署时,需要提供一些允许直连邻居节点将自己的存在广播出去的开关,以第二区块链节点中的BaaS平台为例,第一区块链节点通过第一代理组件接收第二代理组件发送的广播连接请求,该广播连接请求中携带广播标识,假设广播标识为1,表示第二区块链节点允许直连邻居节点将自己的存在广播出去,假设广播标识为0,表示第二区块链节点不允许直连邻居节点将自己的存在广播出去。
为了便于理解,请参阅图21,图21为本申请实施例中广播可连接状态的一个实施例示意图,如图所示,假设企业C的BaaS平台允许直连邻居节点将自己的存在广播出去,那么企业C的BaaS平台可以向企业A的BaaS平台发送广播标识,该广播标识可以为1,企业A的BaaS平台可以向企业B的BaaS平台和企业D的BaaS平台发送广播标识,该广播标识可以为1。
进一步地,本申请实施例中,提供了一种区块链节点广播可连接状态的方式,通过上述方式,对于区块链节点而言,可以选择是否允许直连邻居将自己的存在广播出,由此提升方案的灵活性和可操作性。
结合上述介绍,下面将对本申请中数据传输的方法进行介绍,请参阅图14,本申请实施例中数据传输的方法应用于第一区块链节点,第一区块链节点内部署有第一代理组件,数据传输的方法一个实施例包括:
201、通过第一代理组件接收第二代理组件发送的第一数据包,其中,第二代理组件部署于第二区块链节点,第一区块链节点与第二区块链节点构成第一区块链子网,第一数据包至少包括源地址、目标地址、第一中继地址以及有效数据;
本实施例中,第一区块链节点上运行有BaaS平台,该BaaS平台上部署有第一代理组件,第二区块链节点上运行有BaaS平台,该BaaS平台上部署有第二代理组件,第三区块链节点上运行有BaaS平台,该BaaS平台上部署有第三代理组件,第一区块链节点、第二区块链节点和第三区块链节点都属于区块链系统中的节点,第一区块链节点可属于企业A,第二区块链节点可属于企业B,第三区块链节点可属于企业C。
区块链系统还存在其他的区块链节点,区块链节点运行着至少一个与区块链相关进程,每个进程对外暴露不同的服务端口,区块链节点之间要相互可以访问才能组成区块链网络,因此,在区块链节点中部署的代理组件可以将多个进程对外的端口进行汇总,得到一个对外的端口,而对BaaS平台内部的各个进程依旧开放多个端口,每个端口对应相应的进程。每个代理组件可以对外网仅开设一个端口,这个对应对应于一个IP地址,即代理组件A设置有端口A,代理组件B设置有端口B,代理组件C设置有端口C,第一代理组件可以为代理组件A,第二代理组件可以为代理组件B,第三代理组件可以为代理组件C,端口A可以是第一端口,端口B可以是第二端口,端口C可以是第三端口,且第一端口对应第一地址,即IP地址A,第二端口对应第二地址,即IP地址B,第三端口对应第三地址,即IP地址C。
在一些实施例中,当第二区块链节点需要向第三区块链节点传输数据时,由于第二区块链节点与第三区块链节点并没有直接建立连接,因此,需要由第一区块链节点提供中继功能。即第二区块链节点通过第二代理组件向第一区块链节点的第一代理组件发送第一数据包,其中,第一数据包至少包括源地址、目标地址、第一中继地址以及有效数据。
在一些实施例中,第一数据包还可以包括第一转发次数为N,N为大于或等于1的整数,该第一转发次数表征第一数据包可以被转发的次数。
202、若第一中继地址为第一地址,则根据第一数据包生成第二数据包,其中,第二数据包至少包括源地址、目标地址、第二中继地址以及有效数据;
本实施例中,第一区块链节点对第一数据包进行解析,得到自定义头部信息,即源地址、目标地址、第一中继地址以及第一转发次数。第一中继地址为第一地址,则表示第一区块链节点确定自己是中继节点,于是可以将第一中继地址更新为下一个区块链节点的地址,得到第二中继地址,第二中继地址即为下一个可以作为中继节点的区块链节点地址。第一区块链节点将源地址、目标地址和第二中继地址作为第二数据包的自定义头部,与有效数据进行封装后得到第二数据包。
在一些实施例中,与此同时,第一区块链节点还需要判断第一转发次数是否为0,如果为0,那么第一区块链节点将不再转发该第一数据包,如果不为0,那么第一区块链节点需要对第一转发次数减去1,得到第二转发次数,即假设第一转发次数为N,那么第二转发次数为(N-1)。第一区块链节点将源地址、目标地址、第二中继地址和第二转发次数作为第二数据包的自定义头部,与有效数据进行封装后得到第二数据包。
203、若第二中继地址为第三地址,则通过第一代理组件向第三代理组件发送第二数据包,其中,第三代理组件部署于第三区块链节点,第一区块链节点与第三区块链节点构成第二区块链子网。
在一些实施例中,如果第二中继地址为第三地址,那么第一区块链节点可以继续通过第一代理组件向第三代理组件发送第二数据包。第三代理组件收到第二数据包之后,通过解析得到的中继地址以及目标地址,判断自身是否为目标节点,如果目标地址和中继地址(即,第三地址)一致,则第三区块链节点即可对有效数据进行处理。
在一些实施例中,第二数据包还包括第二转发次数,如果生成的第二转发次数大于0,且第二中继地址为第三地址,那么第一区块链节点可以继续通过第一代理组件向第三代理组件发送第二数据包。第三代理组件收到第二数据包之后,通过解析得到的中继地址以及目标地址,判断自身是否为目标节点,如果目标地址和中继地址(即,第三地址)一致,则第三区块链节点即可对有效数据进行处理。
可以理解地,上述第一区块链节点、第二区块链节点以及第三区块链节点仅仅为了表述方便,对区块链节点进行的区分,并不是对其功能的限制,例如第一区块链节点、第二区块链节点以及第三区块链节点中的任一个都可以执行上述实施例中记载的各个方法操作。
本申请实施例中,提供了一种数据传输的方法,第一区块链节点通过第一代理组件接收第二代理组件发送的第一数据包,若第一中继地址为第一地址,则第一区块链节点可以根据第一数据包生成第二数据包,如果第二转发次数大于0,且第二中继地址为第三地址,则第一区块链节点通过第一代理组件向第三代理组件发送第二数据包。通过上述方式,通过代理组件协助多个区块链子网进行互联的同时,增加了流量中继能力,使得在星型网络拓扑下,或者在无法建立直接连接的节点之间,也能够直接建立逻辑上的直连,帮助完善了区块链网络的交易提交流程,满足P2P应用对网络直连的需求,从而能够在受限网络环境下,实现更好的区块链网络及P2P应用的适应性和健壮性。此外,可以协助使用BaaS平台的企业间完成信息交换,提供了信息同步的可能性,也为后续期间联盟链治理提供了协议通道,未来每个BaaS控制台之间均可以发起相应的治理请求(例如,修改出区块链出块时间,邀请新的区块链参与方加入,安装新的合约,变更合约共识策略等),并可以在指定的范围内传播和处理这些事件。
可选地,在上述图14对应的各个实施例的基础上,通过第一代理组件接收第二代理组件发送的第一数据包之前,还可以包括:
通过第一代理组件接收第二代理组件发送的组网请求,其中,第一代理组件具有第一端口以及第一地址,第一端口与第一地址具有对应关系,第二代理组件具有第二端口以及第二地址,第二端口与第二地址具有对应关系;
根据第二代理组件发送的组网请求,获取第二端口以及第二地址;
根据第二端口以及第二地址建立第一区块链子网,其中,第一端口用于第二区块链节点在第一区块链子网中,通过第一端口与第一区块链节点传输多类业务数据包;
通过第一代理组件接收第三代理组件发送的组网请求,其中,第三代理组件具有第三端口以及第三地址,第三端口与第三地址具有对应关系;
根据第三代理组件发送的组网请求,获取第三端口以及第三地址;
根据第三端口以及第三地址建立第二区块链子网,其中,第三端口用于第三区块链节点在第二区块链子网中,通过第一端口与第一区块链节点传输多类业务数据包。
本实施例中,介绍了一种基于区块链的代理组件建立多个区块链子网的方法,第一区块链节点还可以与第二区块链节点构建第一区块链子网。具体地,第二区块链节点上运行有BaaS平台,该BaaS平台上部署有第二代理组件,第一区块链节点与第二区块链节点都属于区块链系统中的节点,第一区块链节点可属于企业A,第二区块链节点可属于企业B。当企业A需要与企业B建立区块链网络时,可以由第二区块链节点通过第二代理组件向第一区块链节点的第一代理组件发送组网请求,可以理解的是,也可以由第一区块链节点通过第一代理组件向第二区块链节点的第二代理组件发送组网请求。第一区块链节点根据第二端口以及第二地址,建立第一区块链节点与第二区块链节点之间的区块链子网,即得到第一区块链子网。其中,第一端口和第二端口均能够收发多类业务数据包。
可以理解的是,与建立第一区块链子网的方式类似,第二区块链子网的建立方式也与上述方式类似,此处不做赘述。
其次,本申请实施例中,提供了一种基于区块链的代理组件建立多个区块链子网的方法,通过上述方式,利用代理组件建立区块链节点之间的通信,并且建立多个区块链子网。而代理组件只需要对外暴露一个IP地址和端口即可传输多种不同业务类型的数据包,从而减少了IP地址和端口遭到攻击的可能性,提升安全性,并且只需配置一个端口和一个IP地址之间的映射,从而降低了企业网络的管理成本。
下面对本申请中的数据传输装置进行详细描述,请参阅图22,图22为本申请实施例中数据传输装置一个实施例示意图,数据传输装置应用于第一区块链节点,所述第一区块链节点内部署有第一代理组件,数据传输装置30包括:
接收模块301,用于通过所述第一代理组件接收第二代理组件发送的组网请求,其中,所述第二代理组件部署于第二区块链节点,所述第一代理组件具有第一端口以及第一地址,所述第一端口与所述第一地址具有对应关系,所述第二代理组件具有第二端口以及第二地址,所述第二端口与所述第二地址具有对应关系;
获取模块302,用于根据所述接收模块301接收的所述第二代理组件发送的组网请求,获取所述第二端口以及所述第二地址;
建立模块303,用于根据所述获取模块302获取的所述第二端口以及所述第二地址建立第一区块链子网,其中,所述第一端口用于在所述第一区块链子网中,与所述第二区块链节点传输多类业务数据包。
可选地,在上述图22所对应的实施例的基础上,请参阅图23,本申请实施例提供的数据传输装置30的另一实施例中,所述数据传输装置30还包括发送模块304;
所述发送模块304,用于根据所述第二端口以及所述第二地址建立第一区块链子网之后,通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第一业务数据包;
所述发送模块304,还用于根据所述第二端口以及所述第二地址建立第一区块链子网之后,通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
可选地,在上述图22所对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
所述接收模块302,还用于根据所述第二端口以及所述第二地址建立第一区块链子网之后,通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第一业务数据包;
所述接收模块302,还用于通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
可选地,在上述图22所对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
所述接收模块301,还用于通过所述第一代理组件接收第三代理组件发送的组网请求,其中,所述第三代理组件部署于第三区块链节点,所述第三代理组件具有第三端口以及第三地址,所述第三端口与所述第三地址具有对应关系;
所述获取模块302,还用于根据所述接收模块301接收的所述第三代理组件发送的组网请求,获取所述第三端口以及所述第三地址;
所述建立模块303,还用于根据所述获取模块302获取的所述第三端口以及所述第三地址建立第二区块链子网,其中,所述第三端口用于所述第三区块链节点在所述第二区块链子网中,通过所述第一端口与第一区块链节点传输多类业务数据包。
可选地,在上述图22或图23所对应的实施例的基础上,请参阅图24A,本申请实施例提供的数据传输装置30的另一实施例中,所述数据传输装置30还包括生成模块305;
所述接收模块301,还用于通过所述第一代理组件接收所述第二代理组件发送的第一数据包,其中,所述第一数据包至少包括源地址、目标地址以及有效数据;
所述生成模块305,用于若所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述目标地址发送所述第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址以及所述有效数据。
可选地,在上述图24A所对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,所述第一数据包还包括第一中继地址;
所述发送模块304,还用于若所述第一中继地址不为所述第一地址,则将所述第一数据包丢弃或者转发到所述第一中继地址;
所述生成模块305,还用于若所述第一中继地址是所述第一地址且所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址、第二中继地址以及所述有效数据,其中所述第二中继地址为第三地址;
所述发送模块304,还用于通过所述第一代理组件向所述第三地址发送所述第二数据包。
可选地,在上述图24A所对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,所述第一数据包还包括第一转发次数,所述第一转发次数为N,所述N为大于或等于0的整数;
所述生成模块305,还用于若所述第一转发次数大于0且所述目标地址不是所述第一地址,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述第二中继地址发送所述第二数据包,其中,所述第二数据包还包括第二中继地址和第二转发次数,所述第二转发次数为(N-1)。
可选地,在上述图22所对应的实施例的基础上,请参阅图24B,本申请实施例提供的数据传输装置30的另一实施例中,所述数据传输装置还包括处理模块306;
所述处理模块306,用于若所述第一地址与所述目标地址一致,则对所述第一数据包中的所述的有效数据进行处理。
可选地,在上述图23所对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
所述获取模块302,还用于获取所述第一区块链节点的中继标识;
所述发送模块304,还用于若所述中继标识为目标中继标识,则通过所述第一代理组件向所述第二代理组件发送中继允许请求,以使所述第二代理组件根据所述中继允许请求确定所述第一区块链节点属于中继节点,其中,所述中继节点用于转发数据包。
可选地,在上述图24B所对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
所述接收模块301,还用于通过所述第一代理组件接收所述第二代理组件发送的跨节点连接请求,其中,所述跨节点连接请求携带所述第二区块链节点的连接标识;
所述处理模块306,还用于若所述连接标识为目标连接标识,则确定所述第二区块链节点为跨连接节点,其中,所述跨连接节点用于接收源地址属于非直连区块链节点的数据包。
可选地,在上述图24B所对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
所述接收模块301,还用于通过所述第一代理组件接收所述第二代理组件发送的广播连接请求,其中,所述广播连接请求携带所述第二区块链节点的广播标识;
所述处理模块306,还用于根据所述广播标识,来确定是否将所述第二区块链节点的存在广播给相连的区块链节点。
下面对本申请中的数据传输装置进行详细描述,请参阅图25,图25为本申请实施例中数据传输装置一个实施例示意图,数据传输装置应用于第一区块链节点,所述第一区块链节点内部署有第一代理组件,数据传输装置40包括:
接收模块401,用于通过所述第一代理组件接收第二代理组件发送的第一数据包,其中,所述第二代理组件部署于第二区块链节点,所述第一区块链节点与所述第二区块链节点构成第一区块链子网,所述第一数据包至少包括源地址、目标地址、第一中继地址以及有效数据;
生成模块402,用于若所述第一中继地址为所述第一地址,则根据所述接收模块401接收的所述第一数据包生成第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址、第二中继地址以及所述有效数据;
发送模块403,用于若所述第二中继地址为所述第三地址,则通过所述第一代理组件向第三代理组件发送所述生成模块402生成的所述第二数据包,其中,所述第三代理组件部署于第三区块链节点,所述第一区块链节点与所述第三区块链节点构成第二区块链子网。
可选地,在上述图25所对应的实施例的基础上,请参阅图26,本申请实施例提供的数据传输装置40的另一实施例中,所述数据传输装置40还包括获取模块404以及建立模块405;
所述接收模块401,还用于通过所述第一代理组件接收第二代理组件发送的第一数据包之前,通过所述第一代理组件接收第三代理组件发送的组网请求,其中,所述第三代理组件部署于第三区块链节点,所述第三代理组件具有第三端口以及第三地址,所述第三端口与所述第三地址具有对应关系;
所述获取模块404,用于根据所述所述接收模块401接收的所述第三代理组件发送的组网请求,获取所述第三端口以及所述第三地址;
所述建立模块405,用于根据所述获取模块404获取的所述第三端口以及所述第三地址建立第二区块链子网,其中,所述第三端口用于所述第三区块链节点在所述第二区块链子网中,通过所述第一端口与第一区块链节点传输多类业务数据包。
可选地,在上述图25或图26所对应的实施例的基础上,请参阅图27,本申请实施例提供的数据传输装置40的另一实施例中,所述数据传输装置40还包括处理模块406;
所述处理模块406,用于所述接收模块401通过所述第一代理组件接收第二代理组件发送的第一数据包之后,若所述第一地址与所述目标地址一致,则对所述第一数据包中的所述的有效数据进行处理。
可选地,在上述图27所对应的实施例的基础上,本申请实施例提供的数据传输装置40的另一实施例中,
所述获取模块404,还用于获取所述第一区块链节点的中继标识;
所述处理模块406,还用于若所述中继标识为目标中继标识,则通过所述第一代理组件向所述第二代理组件发送中继允许请求,以使所述第二代理组件根据所述中继允许请求确定所述第一区块链节点属于中继节点,其中,所述中继节点用于转发数据包。
可选地,在上述图27所对应的实施例的基础上,本申请实施例提供的数据传输装置40的另一实施例中,
所述接收模块401,还用于通过所述第一代理组件接收所述第二代理组件发送的跨节点连接请求,其中,所述跨节点连接请求携带所述第二区块链节点的连接标识;
所述处理模块406,还用于若所述连接标识为目标连接标识,则确定所述第二区块链节点为跨连接节点,其中,所述跨连接节点用于接收源地址属于非直连区块链节点的数据包。
可选地,在上述图27所对应的实施例的基础上,本申请实施例提供的数据传输装置40的另一实施例中,
所述接收模块401,还用于通过所述第一代理组件接收所述第二代理组件发送的广播连接请求,其中,所述广播连接请求携带所述第二区块链节点的广播标识;
所述处理模块406,还用于根据所述广播标识,来确定是否将所述第二区块链节点的存在广播给相连的区块链节点。
图28是本发明实施例提供的一种区块链节点结构示意图,该区块链节点500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对区块链节点中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在区块链节点500上执行存储介质530中的一系列指令操作。
区块链节点500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由区块链节点所执行的步骤可以基于该图28所示的区块链节点结构。
在本申请实施例中,该区块链节点所包括的CPU 522还具有以下功能:
通过所述第一代理组件接收第二代理组件发送的组网请求,其中,所述第二代理组件部署于第二区块链节点,所述第一代理组件具有第一端口以及第一地址,所述第一端口与所述第一地址具有对应关系,所述第二代理组件具有第二端口以及第二地址,所述第二端口与所述第二地址具有对应关系;
根据所述第二代理组件发送的组网请求,获取所述第二端口以及所述第二地址;
根据所述第二端口以及所述第二地址建立第一区块链子网,其中,所述第一端口用于在所述第一区块链子网中,与所述第二区块链节点传输多类业务数据包。
可选地,CPU 522还用于执行如下步骤:
通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第一业务数据包;
通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
可选地,CPU 522还用于执行如下步骤:
通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第一业务数据包;
通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
可选地,CPU 522还用于执行如下步骤:
通过所述第一代理组件接收第三代理组件发送的组网请求,其中,所述第三代理组件部署于第三区块链节点,所述第三代理组件具有第三端口以及第三地址,所述第三端口与所述第三地址具有对应关系;
根据所述第三代理组件发送的组网请求,获取所述第三端口以及所述第三地址;
根据所述第三端口以及所述第三地址建立第二区块链子网,其中,所述第三端口用于所述第三区块链节点在所述第二区块链子网中,通过所述第一端口与第一区块链节点传输多类业务数据包。
可选地,CPU 522还用于执行如下步骤:
通过所述第一代理组件接收所述第二代理组件发送的第一数据包,其中,所述第一数据包至少包括源地址、目标地址以及有效数据;
若所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述目标地址发送所述第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址以及所述有效数据。
可选地,CPU 522还用于执行如下步骤:
若所述第一中继地址不为所述第一地址,则将所述第一数据包丢弃或者转发到所述第一中继地址;
若所述第一中继地址是所述第一地址且所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址、第二中继地址以及所述有效数据,其中所述第二中继地址为第三地址;
通过所述第一代理组件向所述第三地址发送所述第二数据包。
可选地,CPU 522还用于执行如下步骤:
若所述第一转发次数大于0且所述目标地址不是所述第一地址,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述第二中继地址发送所述第二数据包,其中,所述第二数据包还包括第二中继地址和第二转发次数,所述第二转发次数为(N-1)。
可选地,CPU 522还用于执行如下步骤:
若所述第一地址与所述目标地址一致,则对所述第一数据包中的所述的有效数据进行处理。
可选地,CPU 522还用于执行如下步骤:
获取所述第一区块链节点的中继标识;
若所述中继标识为目标中继标识,则通过所述第一代理组件向所述第二代理组件发送中继允许请求,以使所述第二代理组件根据所述中继允许请求确定所述第一区块链节点属于中继节点,其中,所述中继节点用于转发数据包。
可选地,CPU 522还用于执行如下步骤:
通过所述第一代理组件接收所述第二代理组件发送的跨节点连接请求,其中,所述跨节点连接请求携带所述第二区块链节点的连接标识;
若所述连接标识为目标连接标识,则确定所述第二区块链节点为跨连接节点,其中,所述跨连接节点用于接收源地址属于非直连区块链节点的数据包。
可选地,CPU 522还用于执行如下步骤:
通过所述第一代理组件接收所述第二代理组件发送的广播连接请求,其中,所述广播连接请求携带所述第二区块链节点的广播标识;
根据所述广播标识,来确定是否将所述第二区块链节点的存在广播给相连的区块链节点。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种基于区块链的数据传输方法,其特征在于,所述数据传输方法应用于第一区块链节点,所述第一区块链节点内部署有第一代理组件,所述数据传输方法包括:
通过所述第一代理组件接收第二代理组件发送的组网请求,其中,所述第二代理组件部署于第二区块链节点,所述第一代理组件具有第一端口以及第一地址,所述第一端口与所述第一地址具有对应关系,所述第二代理组件具有第二端口以及第二地址,所述第二端口与所述第二地址具有对应关系;
根据所述第二代理组件发送的组网请求,获取所述第二端口以及所述第二地址;
根据所述第二端口以及所述第二地址建立第一区块链子网,其中,所述第一端口用于在所述第一区块链子网中,与所述第二区块链节点传输多类业务数据包。
2.根据权利要求1所述的数据传输方法,其特征在于,所述根据所述第二端口以及所述第二地址建立第一区块链子网之后,所述数据传输方法还包括:
通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第一业务数据包;
通过所述第一端口向所述第二代理组件所对应的所述第二端口发送第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
3.根据权利要求1所述的数据传输方法,其特征在于,所述根据所述第二端口以及所述第二地址建立第一区块链子网之后,所述数据传输方法还包括:
通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第一业务数据包;
通过所述第一端口接收所述第二代理组件通过所述第二端口发送的第二业务数据包,其中,所述第二业务数据包与所述第一数据包属于不同业务类型的数据包。
4.根据权利要求1数据传输方法,其特征在于,所述数据传输方法还包括:
通过所述第一代理组件接收第三代理组件发送的组网请求,其中,所述第三代理组件部署于第三区块链节点,所述第三代理组件具有第三端口以及第三地址,所述第三端口与所述第三地址具有对应关系;
根据所述第三代理组件发送的组网请求,获取所述第三端口以及所述第三地址;
根据所述第三端口以及所述第三地址建立第二区块链子网,其中,所述第三端口用于所述第三区块链节点在所述第二区块链子网中,通过所述第一端口与第一区块链节点传输多类业务数据包。
5.根据权利要求1至4中任一项所述的数据传输方法,其特征在于,所述数据传输方法还包括:
通过所述第一代理组件接收所述第二代理组件发送的第一数据包,其中,所述第一数据包至少包括源地址、目标地址以及有效数据;
若所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述目标地址发送所述第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址以及所述有效数据。
6.根据权利要求5所述的数据传输方法,其特征在于,所述第一数据包还包括第一中继地址;
所述数据传输方法还包括:
若所述第一中继地址不为所述第一地址,则将所述第一数据包丢弃或者转发到所述第一中继地址;
若所述第一中继地址是所述第一地址且所述第一地址与所述目标地址不一致,则根据所述第一数据包生成第二数据包,其中,所述第二数据包至少包括所述源地址、所述目标地址、第二中继地址以及所述有效数据,其中所述第二中继地址为第三地址;
通过所述第一代理组件向所述第三地址发送所述第二数据包。
7.根据权利要求6所述的数据传输方法,其特征在于,所述第一数据包还包括第一转发次数,所述第一转发次数为N,所述N为大于或等于0的整数;
所述数据传输方法还包括:
若所述第一转发次数大于0且所述目标地址不是所述第一地址,则根据所述第一数据包生成第二数据包,并且通过所述第一代理组件向所述第二中继地址发送所述第二数据包,其中,所述第二数据包还包括第二中继地址和第二转发次数,所述第二转发次数为(N-1)。
8.根据权利要求5或6所述的数据传输方法,其特征在于,所述数据传输方法还包括:
若所述第一地址与所述目标地址一致,则对所述第一数据包中的所述的有效数据进行处理。
9.根据权利要求1所述的数据传输方法,其特征在于,所述数据传输方法还包括:
获取所述第一区块链节点的中继标识;
若所述中继标识为目标中继标识,则通过所述第一代理组件向所述第二代理组件发送中继允许请求,以使所述第二代理组件根据所述中继允许请求确定所述第一区块链节点属于中继节点,其中,所述中继节点用于转发数据包。
10.根据权利要求1所述的数据传输方法,其特征在于,所述数据传输方法还包括:
通过所述第一代理组件接收所述第二代理组件发送的跨节点连接请求,其中,所述跨节点连接请求携带所述第二区块链节点的连接标识;
若所述连接标识为目标连接标识,则确定所述第二区块链节点为跨连接节点,其中,所述跨连接节点用于接收源地址属于非直连区块链节点的数据包。
11.根据权利要求1所述的数据传输方法,其特征在于,所述数据传输方法还包括:
通过所述第一代理组件接收所述第二代理组件发送的广播连接请求,其中,所述广播连接请求携带所述第二区块链节点的广播标识;
根据所述广播标识,来确定是否将所述第二区块链节点的存在广播给相连的区块链节点。
12.一种数据传输装置,其特征在于,所述数据传输装置应用于第一区块链节点,所述第一区块链节点内部署有第一代理组件,所述数据传输装置包括:
接收模块,用于通过所述第一代理组件接收第二代理组件发送的组网请求,其中,所述第二代理组件部署于第二区块链节点,所述第一代理组件具有第一端口以及第一地址,所述第一端口与所述第一地址具有对应关系,所述第二代理组件具有第二端口以及第二地址,所述第二端口与所述第二地址具有对应关系;
获取模块,用于根据所述接收模块接收的所述第二代理组件发送的组网请求,获取所述第二端口以及所述第二地址;
建立模块,用于根据所述获取模块获取的所述第二端口以及所述第二地址建立第一区块链子网,其中,所述第一端口用于在所述第一区块链子网中,与所述第二区块链节点传输多类业务数据包。
13.一种区块链节点,其特征在于,所述区块链节点内部署有第一代理组件,所述区块链节点包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括执行如上述权利要求1至11中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
14.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936783.7A CN110601906B (zh) | 2019-09-29 | 2019-09-29 | 一种基于区块链的数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936783.7A CN110601906B (zh) | 2019-09-29 | 2019-09-29 | 一种基于区块链的数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110601906A true CN110601906A (zh) | 2019-12-20 |
CN110601906B CN110601906B (zh) | 2021-05-25 |
Family
ID=68864888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910936783.7A Active CN110601906B (zh) | 2019-09-29 | 2019-09-29 | 一种基于区块链的数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110601906B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111182075A (zh) * | 2019-12-31 | 2020-05-19 | 杭州趣链科技有限公司 | 一种fabric区块链网络联盟组网方法 |
CN111245727A (zh) * | 2020-01-07 | 2020-06-05 | 深圳市网心科技有限公司 | 基于dht网络的消息路由方法、电子设备、代理节点及介质 |
CN111756736A (zh) * | 2020-06-24 | 2020-10-09 | 深圳市网心科技有限公司 | 一种异构区块链间的跨链方法、系统及电子设备和存储介质 |
CN111770102A (zh) * | 2020-07-01 | 2020-10-13 | 中国建设银行股份有限公司 | 一种区块链跨链方法、装置、计算机设备及存储介质 |
CN111917774A (zh) * | 2020-07-31 | 2020-11-10 | 平安科技(深圳)有限公司 | 用于区块链的防攻击方法、装置、电子设备及介质 |
CN111784510B (zh) * | 2020-07-07 | 2021-03-19 | 北京开科唯识技术股份有限公司 | 一种对账方法及装置 |
CN113094428A (zh) * | 2021-03-10 | 2021-07-09 | 贾晓丰 | 一种区域数据管理方法、装置和系统 |
CN115190162A (zh) * | 2022-06-27 | 2022-10-14 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
WO2024021405A1 (zh) * | 2022-07-29 | 2024-02-01 | 蚂蚁区块链科技(上海)有限公司 | 一种数据传输系统和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105872015A (zh) * | 2016-03-17 | 2016-08-17 | 广东微云科技股份有限公司 | 一种桌面云中分布式组件服务的自动发现方法 |
US20190050810A1 (en) * | 2017-08-14 | 2019-02-14 | Honeywell International Inc. | Terminal automation solutions supporting blockchain technology |
CN109462505A (zh) * | 2018-11-12 | 2019-03-12 | 上海点融信息科技有限责任公司 | 实现多个区块链网络之间的跨链通信的方法和装置 |
CN110138586A (zh) * | 2019-04-04 | 2019-08-16 | 平安科技(深圳)有限公司 | 区块链节点管理方法、电子装置、系统及可读存储介质 |
-
2019
- 2019-09-29 CN CN201910936783.7A patent/CN110601906B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105872015A (zh) * | 2016-03-17 | 2016-08-17 | 广东微云科技股份有限公司 | 一种桌面云中分布式组件服务的自动发现方法 |
US20190050810A1 (en) * | 2017-08-14 | 2019-02-14 | Honeywell International Inc. | Terminal automation solutions supporting blockchain technology |
CN109462505A (zh) * | 2018-11-12 | 2019-03-12 | 上海点融信息科技有限责任公司 | 实现多个区块链网络之间的跨链通信的方法和装置 |
CN110138586A (zh) * | 2019-04-04 | 2019-08-16 | 平安科技(深圳)有限公司 | 区块链节点管理方法、电子装置、系统及可读存储介质 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111182075A (zh) * | 2019-12-31 | 2020-05-19 | 杭州趣链科技有限公司 | 一种fabric区块链网络联盟组网方法 |
CN111245727B (zh) * | 2020-01-07 | 2022-08-12 | 深圳市网心科技有限公司 | 基于dht网络的消息路由方法、电子设备、代理节点及介质 |
CN111245727A (zh) * | 2020-01-07 | 2020-06-05 | 深圳市网心科技有限公司 | 基于dht网络的消息路由方法、电子设备、代理节点及介质 |
CN111756736A (zh) * | 2020-06-24 | 2020-10-09 | 深圳市网心科技有限公司 | 一种异构区块链间的跨链方法、系统及电子设备和存储介质 |
CN111770102A (zh) * | 2020-07-01 | 2020-10-13 | 中国建设银行股份有限公司 | 一种区块链跨链方法、装置、计算机设备及存储介质 |
CN111770102B (zh) * | 2020-07-01 | 2022-07-19 | 中国建设银行股份有限公司 | 一种区块链跨链方法、装置、计算机设备及存储介质 |
CN111784510B (zh) * | 2020-07-07 | 2021-03-19 | 北京开科唯识技术股份有限公司 | 一种对账方法及装置 |
CN111917774B (zh) * | 2020-07-31 | 2022-02-08 | 平安科技(深圳)有限公司 | 用于区块链的防攻击方法、装置、电子设备及介质 |
CN111917774A (zh) * | 2020-07-31 | 2020-11-10 | 平安科技(深圳)有限公司 | 用于区块链的防攻击方法、装置、电子设备及介质 |
CN113094428A (zh) * | 2021-03-10 | 2021-07-09 | 贾晓丰 | 一种区域数据管理方法、装置和系统 |
CN113094428B (zh) * | 2021-03-10 | 2024-01-09 | 贾晓丰 | 一种区域数据管理方法、装置和系统 |
CN115190162A (zh) * | 2022-06-27 | 2022-10-14 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
CN115190162B (zh) * | 2022-06-27 | 2023-11-28 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
WO2024021405A1 (zh) * | 2022-07-29 | 2024-02-01 | 蚂蚁区块链科技(上海)有限公司 | 一种数据传输系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110601906B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110601906B (zh) | 一种基于区块链的数据传输方法及装置 | |
CN112470436B (zh) | 用于提供多云连通性的系统、方法、以及计算机可读介质 | |
CN110572460B (zh) | 基于区块链系统的数据传输方法、装置及计算机设备 | |
CN113841363B (zh) | 在不同路由协议的网络和设备间建立通信的系统和方法 | |
CN103036784A (zh) | 用于自组织二层企业网络架构的方法和装置 | |
CN104980528A (zh) | 实现节点间通信的方法、系统及装置 | |
CN107733795B (zh) | 以太网虚拟私有网络evpn与公网互通方法及其装置 | |
EP3477561A1 (en) | System for goods delivery | |
CN110276602B (zh) | 面向物联网的区块链分级共识方法、系统及电子设备 | |
CN103209108A (zh) | 一种基于dvpn的路由生成方法和设备 | |
CN110324159A (zh) | 链路配置方法和控制器 | |
WO2016175647A1 (en) | A secured instant messaging (im) system structure based on identification | |
CN113708979A (zh) | 网络加速的方法和装置 | |
Fu et al. | Resource allocation for blockchain-enabled distributed network function virtualization (NFV) with mobile edge cloud (MEC) | |
CN110933015B (zh) | 数据传输方法、装置和系统 | |
US20220182243A1 (en) | Method and Apparatus for Distributed Ledger | |
CN103401751B (zh) | 因特网安全协议隧道建立方法和装置 | |
Hellebrandt et al. | Increasing trust in tor node list using blockchain | |
Chang et al. | An efficient service discovery system for dual-stack cloud file service | |
CN110995829B (zh) | 实例调用方法、装置及计算机存储介质 | |
CN111182075A (zh) | 一种fabric区块链网络联盟组网方法 | |
CN113810274A (zh) | 一种路由处理方法及相关设备 | |
CN110192382A (zh) | 一种网络通信方法、对等体及系统 | |
CN114513450A (zh) | 计算路由信息发送方法、装置、设备及存储介质 | |
CN108259292B (zh) | 建立隧道的方法及装置 |
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: 40015566 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 |