CN111817967A - 区块链网络的通信优化系统、注册方法及报文转发方法 - Google Patents

区块链网络的通信优化系统、注册方法及报文转发方法 Download PDF

Info

Publication number
CN111817967A
CN111817967A CN202010884713.4A CN202010884713A CN111817967A CN 111817967 A CN111817967 A CN 111817967A CN 202010884713 A CN202010884713 A CN 202010884713A CN 111817967 A CN111817967 A CN 111817967A
Authority
CN
China
Prior art keywords
node
block chain
relay
proxy
relay 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.)
Granted
Application number
CN202010884713.4A
Other languages
English (en)
Other versions
CN111817967B (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110110434.7A priority Critical patent/CN112929285B/zh
Priority to CN202010884713.4A priority patent/CN111817967B/zh
Publication of CN111817967A publication Critical patent/CN111817967A/zh
Application granted granted Critical
Publication of CN111817967B publication Critical patent/CN111817967B/zh
Priority to US17/360,392 priority patent/US11388017B2/en
Priority to EP21182263.0A priority patent/EP3962002B1/en
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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions

Landscapes

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

Abstract

本说明书实施例公开了区块链网络的通信优化系统、注册方法及报文转发方法,系统包括两个或以上中继节点及全局节点。中继节点用于:响应于区块链节点的连接请求,与区块链节点建立连接;接收区块链节点的注册请求,该注册请求包括区块链节点的ID和该区块链节点连接的中继节点的ID;基于该注册请求生成注册事件并将该注册事件发送给全局节点,该注册事件包括区块链节点的ID和该区块链节点连接的中继节点的ID;根据获得的注册事件更新本地路由表,该本地路由表包括区块链节点的ID与该区块链节点连接的中继节点的ID的对应关系;根据该本地路由表转发来自区块链节点的报文。全局节点用于将来自任一中继节点的注册事件发送给其他中继节点。

Description

区块链网络的通信优化系统、注册方法及报文转发方法
技术领域
本说明书涉及信息技术领域,特别涉及区块链网络的通信优化系统、注册方法及报文转发方法。
背景技术
区块链网络基于P2P(Peer to Peer,点对点)网络构建,当区块链节点之间以点对点的方式传输报文时,区块链节点需要生成多份广播报文分别发送给其他区块链节点,造成区块链节点占用的上行带宽和跨区域带宽较大,这一问题在广播相对频繁的联盟链中更为突出。
因此,希望提供一种能够减小区块链节点占用的上行带宽和跨区域带宽的方案。
发明内容
本说明书实施例之一提供一种区块链网络的通信优化系统。所述通信优化系统包括:两个或以上中继节点,以及全局节点。所述中继节点用于:响应于区块链节点的连接请求,与区块链节点建立连接;接收区块链节点发送的注册请求,所述注册请求包括区块链节点的ID和该区块链节点连接的中继节点的ID;基于所述注册请求生成注册事件并将所述注册事件发送给所述全局节点,所述注册事件包括区块链节点的ID和该区块链节点连接的中继节点的ID;根据获得的注册事件更新本地路由表,所述本地路由表包括区块链节点的ID与该区块链节点连接的中继节点的ID的对应关系;根据所述本地路由表转发来自区块链节点的报文。所述全局节点用于将来自任一中继节点的注册事件发送给其他中继节点。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的注册方法。所述通信优化系统包括:两个或以上中继节点,以及全局节点。所述中继节点包括IP模块、第一负载均衡模块、一组代理节点、服务发现模块及第一数据库。所述方法由中继节点中的任一代理节点执行,其包括:从同一中继节点的第一负载均衡模块接收来自区块链节点的注册请求,响应于所述注册请求与区块链节点建立连接;基于所述注册请求生成注册事件;将所述注册事件发送给同一中继节点的服务发现模块,以使:同一中继节点的服务发现模块将所述注册事件发送所述全局节点,所述全局节点将所述注册事件发送给其他中继节点的服务发现模块;从同一中继节点的服务发现模块接收来自其他中继节点的注册事件;根据获得的注册事件更新本地路由表。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的注册系统。所述通信优化系统包括:两个或以上中继节点,以及全局节点。所述中继节点包括第一负载均衡模块、一组代理节点、服务发现模块及第一数据库。所述注册系统在所述中继节点中的任一代理节点上实现,其包括:连接模块,用于从同一中继节点的第一负载均衡模块接收来自区块链节点的注册请求,响应于所述注册请求与区块链节点建立连接;注册事件生成模块,用于基于所述注册请求生成注册事件;注册事件发送模块,用于将所述注册事件发送给所述中继节点的服务发现模块,以使:同一中继节点的服务发现模块将所述注册事件发送所述全局节点,所述全局节点将所述注册事件发送给其他中继节点的服务发现模块;注册事件接收模块,用于从所述中继节点的服务发现模块接收来自其他中继节点的注册事件;本地路由表更新模块,用于根据获得的注册事件更新本地路由表。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的注册装置。所述注册装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的注册方法。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的报文转发方法。所述通信优化系统包括两个或以上中继节点。所述中继节点包括第一负载均衡模块、一组代理节点。所述代理节点的本地路由表包括区块链节点的ID与该区块链节点连接的代理节点的IP、该区块链节点连接的中继节点的ID的对应关系。所述方法由中继节点中的任一代理节点执行,其包括:从同一中继节点的第一负载均衡模块接收携带目的区块链节点的ID的单播报文;判断目的区块链节点连接的中继节点是否为本中继节点;若否,则根据目的区块链节点连接的中继节点的ID确定目的区块链节点连接的中继节点的第一负载均衡模块的IP,根据目的区块链节点连接的中继节点的第一负载均衡模块的IP将所述单播报文发送给目的区块链节点连接的中继节点的第一负载均衡模块;若是,则判断目的区块链节点连接的代理节点是否为本代理节点,若是,则将所述单播报文发送给所连接的目的区块链节点,否则根据目的区块链节点连接的代理节点的IP将单播报文发送给目的区块链节点连接的代理节点。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的报文转发系统,其中,所述通信优化系统包括两个或以上中继节点。所述中继节点包括第一负载均衡模块、一组代理节点。所述代理节点的本地路由表包括区块链节点的ID与该区块链节点连接的代理节点的IP、该区块链节点连接的中继节点的ID的对应关系。所述报文转发系统在所述中继节点中的任一代理节点上实现,其包括:报文接收模块,用于从同一中继节点的第一负载均衡模块接收携带目的区块链节点的ID的单播报文;单播报文转发模块,用于:判断目的区块链节点连接的中继节点是否为本中继节点;若否,则根据目的区块链节点连接的中继节点的ID确定目的区块链节点连接的中继节点的第一负载均衡模块的IP,根据目的区块链节点连接的中继节点的第一负载均衡模块的IP将所述单播报文发送给目的区块链节点连接的中继节点的第一负载均衡模块;若是,则判断目的区块链节点连接的代理节点是否为本代理节点,若是,则将所述单播报文发送给所连接的目的区块链节点,否则根据目的区块链节点连接的代理节点的IP将单播报文发送给目的区块链节点连接的代理节点。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的报文转发方法。所述通信优化系统包括两个或以上中继节点。所述中继节点包括第一负载均衡模块、一组代理节点。所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系。所述方法由中继节点中的任一代理节点执行,其包括:从同一中继节点的第一负载均衡模块接收携带目的区块链网络的ID的广播报文;在所述广播路由表中查找包含所述目的区块链网络的ID的目标对应关系;检查目标对应关系中是否包含本中继节点的ID,若是,则将所述广播报文发送给本中继节点中的其他代理节点;检查目标对应关系中是否包含其他中继节点的ID,若是,则根据检查到的其他中继节点的ID确定其他中继节点的第一负载均衡模块的IP,根据确定的其他的中继节点的第一负载均衡模块的IP将广播报文发送给其他中继节点的第一负载均衡模块;检查所述广播路由表中是否存在包含目的区块链网络的ID以及本代理节点的IP的目的对应关系,若是,则根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的报文转发系统。所述通信优化系统包括两个或以上中继节点。所述中继节点包括第一负载均衡模块、一组代理节点。所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系。所述报文转发系统在所述中继节点中的任一代理节点执行,其包括:报文接收模块,用于从同一中继节点的第一负载均衡模块接收携带目的区块链网络的ID的广播报文;目标对应关系查找模块,用于在所述广播路由表中查找包含所述目的区块链网络的ID的目标对应关系;第一广播报文转发模块,用于检查目标对应关系中是否包含本中继节点的ID,若是,则将所述广播报文发送给本中继节点中的其他代理节点;第二广播报文转发模块,用于检查目标对应关系中是否包含其他中继节点的ID,若是,则根据检查到的其他中继节点的ID确定其他中继节点的第一负载均衡模块的IP,根据确定的其他的中继节点的第一负载均衡模块的IP将广播报文发送给其他中继节点的第一负载均衡模块;第三广播报文转发模块,用于检查所述广播路由表中是否存在包含目的区块链网络的ID以及本代理节点的IP的目的对应关系,若是,则根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的报文转发方法。所述通信优化系统包括两个或以上中继节点。所述中继节点包括第一负载均衡模块、一组代理节点。所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系。所述方法由中继节点中的任一代理节点执行,其包括:从同一中继节点的第一负载均衡模块接收广播报文;将所述广播报文发送给本中继节点中的其他代理节点;将所述广播报文发送给其他中继节点的第一负载均衡模块;检查所述本地路由表中是否包含本代理节点的IP,若是,则根据包含本代理节点的IP的对应关系中区块链节点的ID将广播报文发送给所连接的区块链节点。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的报文转发系统。所述通信优化系统包括两个或以上中继节点。所述中继节点包括第一负载均衡模块、一组代理节点。所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系。所述报文转发系统在所述中继节点中的任一代理节点上实现,其包括:报文接收模块,用于从同一中继节点的第一负载均衡模块接收广播报文;第四广播报文转发模块,用于将所述广播报文发送给本中继节点中的其他代理节点;第五广播报文转发模块,用于将所述广播报文发送给其他中继节点的第一负载均衡模块;第六广播报文转发模块,用于检查所述本地路由表中是否包含本代理节点的IP,若是,则根据包含本代理节点的IP的对应关系中区块链节点的ID将广播报文发送给所连接的区块链节点。
本说明书实施例之一提供一种基于区块链网络的通信优化系统的报文转发装置。所述注册装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的报文转发方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的区块链网络中广播报文的传输路径示意图;
图2是根据本说明书一些实施例所示的区块链节点连接中继节点后广播报文的传输路径示意图;
图3是根据本说明书一些实施例所示的区块链网络的通信优化系统的示例性框图;
图4是根据本说明书一些实施例所示的中继节点转发单播报文的报文传输路径示意图;
图5是根据本说明书一些实施例所示的单链场景下中继节点转发广播报文的报文传输路径示意图;
图6是根据本说明书一些实施例所示的多链场景下中继节点转发广播报文的报文传输路径示意图;
图7是根据本说明书一些实施例所示的中继节点的示例性框图;
图8是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的注册方法的示例性流程图;
图9是根据本说明书一些实施例所示的代理节点转发单播报文的示例性流程图;
图10是根据本说明书一些实施例所示的多链场景下代理节点转发广播报文的示例性流程图;
图11是根据本说明书一些实施例所示的单链场景下代理节点转发广播报文的示例性流程图;
图12是根据本说明书一些实施例所示的代理节点转发单播报文的示意图;
图13是根据本说明书一些实施例所示的代理节点的本地路由表的示意图;
图14是根据本说明书一些实施例所示的多链场景下代理节点转发广播报文的示意图;
图15是根据本说明书一些实施例所示的多链场景下代理节点的广播路由表的示意图;
图16是根据本说明书一些实施例所示的全局节点的示例性框图;
图17是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的注册系统的示例性模块图;
图18是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的报文转发系统的示例性模块图;
图19是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的报文转发系统的示例性模块图;
图20是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的报文转发系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
图1是根据本说明书一些实施例所示的区块链网络中广播报文的传输路径示意图。
P2P全称对等式网络,又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能。中心服务器意味着,当受到攻击的时候,中心服务器一旦宕机,整个网络和服务就会出现问题。P2P网络的优势在于,每个节点既是客户端又是服务端,所以当受到攻击时,任何一台机器垮掉,也不会影响整体的服务。区块链的核心是去中心化,这和P2P网络的观念不约而同,所以区块链网络一般都将P2P作为底层实现,包括大部分的公有链网络(简称公有链)和联盟链网络(简称联盟链)都采用了类似的底层实现。
区块链网络中,底层的P2P网络可包括一个或多个P2P节点,这样的一个P2P节点同时一般也是区块链网络中的一个节点,例如图1中的节点1~节点8。如图1所示,当节点1要在区块链网络中广播一条报文后,需要发送7条重复的报文出去,每一条报文发送给其他7个节点中的一个。随着节点的不断加入,区块链网络中的节点每次广播报文后需要发送的报文数量也不断增加,区块链节点占用的上行带宽和跨区域带宽也不断增加。
联盟链作为区块链的一种,由于经常使用PBFT(Practical Byzantine FaultTolerance,实用拜占庭容错)算法或类似的共识算法来使节点间达成共识,共识节点需要进行大量的广播,若以各个共识节点两两直连的方式传输广播报文,上述带宽占用问题更为突出。在一些场景下,联盟链对安全性的要求较高,联盟节点需要设置IP白名单,新的联盟节点加入联盟链后,若要保证联盟链中的节点能够两两直接通信,则每个联盟节点都需要更新自己的IP白名单。以图1为例,节点1~节点8属于同一联盟链,假设联盟节点8是新加入的节点,若要保证联盟链中的节点能够两两直接通信,则联盟节点1~联盟节点7分别需要把联盟节点8的IP添加进自己的IP白名单,以及联盟节点8需要把联盟节点1~联盟节点7的IP都添加进自己的IP白名单。
图2是根据本说明书一些实施例所示的区块链节点连接中继节点后广播报文的传输路径示意图。
在一些实施例中,任一区块链节点可与至少一个中继节点建立连接。对于同一条广播报文,区块链节点可以只发送一条广播报文给所连接的中继节点,中继节点之间也可以只转发一条广播报文,从而可以极大地节省区块链节点占用的上行带宽和跨区域带宽。例如,如图2所示,节点1~节点8属于同一区块链网络,假设节点1要广播一条报文,节点1可以向所连接的中继节点1发送一条广播报文。中继节点1收到广播报文后,分别向所连接的节点2、节点3发送一条广播报文,以及分别向中继节点2、中继节点3发送一条广播报文。中继节点2收到广播报文后,分别向所连接的节点6、节点7、节点8发送一条广播报文。中继节点3收到广播报文后,分别向所连接的节点4、节点5发送一条广播报文。
对于联盟链,由于连接至中继节点后,联盟节点可以将报文通过中继节点发送到其他联盟节点,即联盟节点与中继节点直接通信,则联盟节点可以在IP白名单中添加中继节点的IP。即,只要联盟节点的IP白名单中添加了所连接的中继节点的IP,无论该中继节点或其他中继节点连接了哪些新加入联盟链的联盟节点,该联盟节点都无需更新IP白名单以与新加入的联盟节点通信。以图2为例,节点1~节点8属于同一联盟链,联盟节点1可以把中继节点1的IP添加进IP白名单,如此,无论联盟链中新加入多少节点,联盟节点1都可以通过向中继节点1发报文来与其他联盟节点通信。
下面结合图3至图6详细介绍包含所述中继节点的通信优化系统的组成及工作流程。
图3是根据本说明书一些实施例所示的区块链网络的通信优化系统的示例性框图。如图3所示,系统300可以包括两个或以上中继节点(如节点310-1、节点310-2、...、节点310-n)以及全局节点320。
中继节点可具有对系统300外部暴露的IP(IP地址的简称),以使区块链节点基于该IP与中继节点建立连接。具体地,区块链节点可发起携带中继节点的IP的连接请求,以使中继节点响应于该连接请求,与该区块链节点建立连接。在一些实施例中,区块链节点可以通过中继节点的IP与中继节点建立长连接。长连接可以在多次事务中保持打开状态。建立长连接的两个设备间可通过心跳机制来判断对方是否保持“存活”,可以周期性地剔除假连接,以达到连接复用的目的。
在一些实施例中,中继节点可以具有对系统300外部暴露的一组(至少两个)IP,以用于容灾。具体地,区块链节点可以先基于该组IP中的任一IP与中继节点建立连接,当发现基于任一IP的通信出现故障(例如,消息发不出去、向对方发送消息后未收到应答等)时,可切换至该组IP中的其他IP与中继节点建立连接。
区块链节点可就近选择中继节点建立连接,以获得较好的网络服务质量(QoS,Quality of Service)。例如,可以根据物理区域的划分在单个物理区域设置至少一个中继节点,具体地,可以将一个城市/国家/地区/洲作为一个物理区域。例如,可以在中国的单个城市设置两个中继节点,位于该城市的任一区块链节点可选择其中一中继节点为主用,选择另一个中继节点为备用。又如,可以在欧洲设置两个中继节点,位于欧洲的任一区块链节点可选择其中一中继节点为主用,选择另一个中继节点为备用。关于主用/备用中继节点的更多细节,可以参考后文的相关描述。
区块链节点与中继节点建立连接后,可向中继节点发起注册请求,该注册请求可包括区块链节点的ID和该区块链节点连接的中继节点的ID。中继节点接收到该注册请求后,可基于该注册请求生成注册事件并将该注册事件发送给全局节点320,该注册事件可包括区块链节点的ID和该区块链节点连接的中继节点的ID。
区块链节点与中继节点之间可通过公网进行通信。出于隐私保护的考虑,区块链节点发送给中继节点的报文中的消息体可以是经过加密的。
全局节点320可用于将来自任一中继节点的注册事件发送给其他中继节点。
中继节点(不妨以节点310-i为例)可根据获得的注册事件更新本地路由表。该本地路由表包括区块链节点的ID与该区块链节点连接的中继节点的ID的对应关系,以指示区块链节点和中继节点的连接关系,因此中继节点310-i可根据该本地路由表转发来自区块链节点的报文。应当理解,中继节点310-i的本地路由表的更新包括两类,一类是根据自身接收到的注册请求或生成的注册事件对本地路由表进行更新,还有一类是根据从全局节点320接收到的来自其他中继节点310-j(j
Figure 101903DEST_PATH_IMAGE001
i)的注册事件对本地路由表进行更新。另外,经过更新系统300内每个中继节点的本地路由表可保持一致(同步)。
对于携带目的区块链节点的ID的单播报文,中继节点(不妨以节点310-i为例)可以在本地路由表中查找包含目的区块链节点的ID的对应关系,目的区块链节点的ID对应的中继节点的ID即目的区块链节点连接的中继节点的ID。进而,中继节点310-i可判断目的区块链节点连接的中继节点(不妨记为节点310-j)是否为本中继节点。若是(即j=i),则将所述单播报文转发给目的区块链节点。否则(即j
Figure 914395DEST_PATH_IMAGE001
i),中继节点310-i将单播报文转发给目的区块链节点连接的中继节点310-j,中继节点310-j可接收到携带目的区块链节点的ID的单播报文后,通过查询本地路由表发现目的区块链节点的ID对应中继节点的ID为中继节点310-j(即本中继节点的ID),说明目的区块链节点连接于本中继节点,则中继节点310-j可将单播报文发送给目的区块链节点。
下面结合图4举例说明。图4中区块链节点1要向区块链节点6发送单播报文,区块链节点1连接于中继节点310-1,区块链节点6连接于中继节点310-2,中继节点310-1接收到携带区块链节点6的ID的单播报文后,可根据本地路由表中查找区块链节点6的ID的对应的中继节点的ID,得到中继节点310-2的ID,说明区块链节点6连接于中继节点310-2,则中继节点310-1将单播报文发送给中继节点310-2。中继节点310-2接收到携带区块链节点6的ID的单播报文后,可根据本地路由表中查找区块链节点6的ID的对应的中继节点的ID,得到本中继节点(中继节点310-2)的ID,说明区块链节点6连接于本中继节点,则中继节点310-2将单播报文发送给所连接的区块链节点6。
对于广播报文,可进一步分单链和多链两种情况讨论。
针对单链,系统300内的中继节点连接的区块链节点属于同一区块链网络。中继节点310-i接收到来自区块链节点的广播报文后,一方面可向本中继节点连接的各区块链节点(不包括发送广播报文的区块链节点)分别发送一份广播报文。另一方面,对于任一其他中继节点310-j,中继节点310-i可向其发送一份广播报文,中继节点310-j接收到广播报文后可向本中继节点连接的各区块链节点(不包括发送广播报文的区块链节点)分别发送一份广播报文。
下面结合图5举例说明。图5中连接于系统300的区块链节点属于同一区块链网络。中继节点310-1接收到来自区块链节点1的广播报文后,一方面可以向本中继节点连接的各区块链节点(不包括发送广播报文的区块链节点1),即区块链节点2和区块链节点3,分别发送一份广播报文。另一方面,中继节点310-1可以向中继节点310-2、中继节点310-3分别发送一份广播报文。类似地,中继节点310-2接收到广播报文后,可以向本中继节点连接的各区块链节点,即区块链节点5、区块链节点6、区块链节点7和区块链节点8,分别发送一份广播报文。中继节点310-3接收到广播报文后,可以向本中继节点连接的区块链节点4发送一份广播报文。
针对多链,系统300内的中继节点连接的区块链节点可属于不同的区块链网络,故需要通过区块链网络的ID来区分区块链节点所属的区块链网络。具体地,区块链节点发起的注册请求中不仅包含区块链节点的ID,还包含该区块链节点所属的区块链网络的ID。相应地,中继节点获得的注册事件不仅包含区块链节点的ID,还包含该区块链节点所属的区块链网络的ID。另外,中继节点的本地路由表可包括两部分,一部分可称为单播路由表,另一部分可称为广播路由表,单播路由表可包括区块链节点的ID与该区块链节点连接的中继节点的ID,广播路由表可包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的中继节点的ID。
当接收到携带目的区块链网络的ID的广播报文后,中继节点310-i可在本地路由表中查找包含所述目的区块链网络的ID的对应关系(以下称为目标对应关系)。对于查找到的任一目标对应关系,一方面中继节点310-i可检查该目标对应关系中是否包含本中继节点的ID。若包含,则中继节点310-i可从该目标对应关系中确定本中继节点连接的目的区块链网络中的区块链节点的ID,从而向从而该ID对应的区块链节点发送一份广播报文。另一方面,中继节点310-i可检查该目标对应关系中是否包含其他中继节点(记为节点310-j,j
Figure 561408DEST_PATH_IMAGE001
i)的ID。若包含,则对于任一其他中继节点310-j,中继节点310-i可向其发送一份广播报文。接收到携带目的区块链网络的ID的广播报文后,中继节点310-j可在本地路由表中查找包含所述目的区块链网络的ID以及本中继节点(中继节点310-j)的ID的对应关系,从而可根据查找到的包含所述目的区块链网络的ID以及本中继节点(中继节点310-j)的ID的每一对应关系中区块链节点的ID(标识中继节点310-j连接的目的区块链网络中的区块链节点),向中继节点310-j连接的每一属于目的区块链网络的区块链节点发送一份广播报文。
下面结合图6举例说明。区块链节点1、区块链节点3、区块链节点7、区块链节点8属于同一区块链网络,区块链节点2、区块链节点4、区块链节点5、区块链节点6属于其他区块链网络。如图6所示,区块链节点1向中继节点310-1发送一份携带其区块链网络ID的广播报文,区块链节点1所属的区块链网络的ID即目的区块链网络的ID。中继节点310-1接收到来自区块链节点1的广播报文后,可以在本地路由表中查找包含目的区块链网络的ID的目标对应关系。一方面,中继节点310-1可以检查到有的目标对应关系包含本中继节点(中继节点310-1)的ID,则中继节点310-1可以从中进一步确定本中继节点连接的目的区块链网络中的区块链节点(区块链节点3)的ID,从而向区块链节点3发送一份广播报文。另一方面,中继节点310-1可以检查到有的目标对应关系中包含其他中继节点(即中继节点310-2)的ID,则中继节点310-1可以向中继节点310-2发送一份广播报文。类似地,中继节点310-2接收到广播报文后,可以检查到有的目标对应关系包含本中继节点(中继节点310-2)的ID,则中继节点310-2可以从中进一步确定本中继节点连接的目的区块链网络中的区块链节点(区块链节点7、区块链节点8)的ID,从而向区块链节点7、区块链节点8分别发送一份广播报文。
值得说明的是,区块链节点与中继节点之间传输报文所使用的端口和中继节点之间传输报文所使用的端口可以是不同的,故任一中继节点可以据此辨别接收到的报文是由区块链节点发送过来的(未经其他中继节点转发)还是由其他中继节点转发过来的。基于此,当任一中继节点判断出接收到的广播报文是由其他中继节点转发过来的,可不再向其他中继节点重复转发接收到的广播报文。
由于系统300可由中立方(相对区块链节点而言)来统一部署,系统300内部的设备间可通过Intranet(企事业单位内网,简称内网)建立连接。如此,在系统300内的中继节点间传输来自区块链节点的报文可以获得较低的传输时延。值得一提的是,对于物理距离较远的两个区块链节点,参考前文提到的区块链节点可就近选择中继节点连接可知,连接于这两个区块链节点之间的(两个)中继节点之间的距离通常远比任一区块链节点到所连接的中继节点的距离要远,因此中继节点之间通过内网建立连接以及只传输一条广播报文将很大程度上节省区块链节点间广播报文的传输耗时。
在一些实施例中,系统300内的中继节点之间可建立长连接,例如可通过内网IP建立长连接。在一些实施例中,系统300内的中继节点与全局节点320之间也可建立长连接,例如可通过内网IP建立长连接。
对于联盟链,联盟节点发送给所连接的中继节点的注册请求可由该中继节点发送给该中继节点连接的其他联盟节点,该中继节点和该中继节点连接的其他联盟节点(与该联盟节点属于同一联盟链)可分别该注册请求进行校验。若该中继节点通过对该注册请求的校验且该中继节点连接的其他联盟节点(与该联盟节点属于同一联盟链)中超过预设比例的联盟节点通过对该注册请求的校验,则可视为该联盟节点“正式”接入系统300,系统300内的各中继节点会将与该联盟节点关联的对应关系更新至本地路由表。若未通过校验,则系统300不会为该联盟节点提供通信优化服务,即系统300内的各中继节点不会将与该联盟节点关联的对应关系更新至本地路由表。
在一些实施例中,区块链节点可选择两个中继节点接入系统300,一个作为主用中继节点,另一个作为备用中继节点。具体地,对于这两个中继节点中的每一个,区块链节点向该中继节点发起的注册请求中不仅包含该区块链节点的ID和该中继节点的ID,还包含该中继节点的主备标识,以指示该中继节点为该区块链节点的主用/备用中继节点。相应地,基于所述注册请求生成的注册事件也可包括该区块链节点连接的中继节点的主备标识,任一中继节点的本地路由表可包括区块链节点的ID与该区块链节点连接的中继节点的ID、该区块链节点连接的中继节点的主备标识的对应关系,如此任一中继节点可根据本地路由表区分区块链节点的主用中继节点和备用中继节点。可以理解,区块链节点的备用中继节点用于在该区块链节点的主用中继节点发生故障时接收该区块链节点发送的报文或发送给该区块链节点的报文。
例如,当发送报文的区块链节点(可称为源区块链节点)确定其主用中继节点发生故障(如,报文发不出去或向主用中继节点发送报文后未收到应答)后,可切换至与备用中继节点的连接,将报文发送给备用中继节点,即源区块链节点可通过其备用中继节点传输报文。又如,当源区块链节点连接的中继节点确定目的区块链节点的主用中继节点发生故障(如,报文发不出去或向目的区块链节点的主用中继节点发送报文后未收到应答)后,可切换至与目的区块链节点的备用中继节点的连接,将报文转发给目的区块链节点的备用中继节点,即源区块链节点连接的中继节点通过目的区块链节点的备用中继节点传输报文。
在一些实施例中,区块链节点还可以向所连接的中继节点发起注销请求,该注销请求可包括区块链节点的ID。中继节点接收到该注销请求后,可基于该注销请求生成注销事件并将该注销事件发送给全局节点320,该注销事件可包括区块链节点的ID。相应地,全局节点320可将来自任一中继节点的注销事件发送给其他中继节点。中继节点可根据接收到的注销请求或注销事件更新本地路由表。可以理解,与“注册”相反,“注销”意味着区块链节点要断开与系统300的连接,任一中继节点接收到包含区块链节点的ID的注销请求或注销事件后,可将本地路由表中包含该区块链节点的ID的对应关系删除。
本说明书中,本地路由表中的对应关系和/或事件可以键值对的形式保存。例如,单播路由表/注册事件可以包括以区块链节点的ID为key(以区块链节点的ID对应的信息为value)的键值对。又如,广播路由表可以包括以区块链网络的ID为key(以区块链节点的ID对应的信息为value)的键值对。
在一些实施例中,所述通信优化系统中的任一中继节点或全局节点可以用一个子系统来实现,每个子系统包括具备不同功能的若干模块以实现负载均衡。下面结合图7和图8举例说明。
图7是根据本说明书一些实施例所示的中继节点的示例性框图。如图7所示,中继节点可以包括IP模块710、第一负载均衡模块720、一组代理节点730、服务发现模块740及第一数据库750。
单个中继节点内的一组代理节点是可弹性伸缩的,即单个中继节点内的代理节点数量是可变的。仅作为示意,图7中的中继节点包括代理节点730-1、代理节点730-2、代理节点730-3、...、代理节点730-n。总体上,单个中继节点内的代理节点数量可与连接于该中继节点的区块链节点的数量的变化趋势保持一致。即,当连接于中继节点的区块链节点的数量增多时,可适当增加该中继节点内的代理节点数量。
IP模块710的 IP可作为中继节点对系统300外部(即对区块链节点)暴露的IP,即区块链节点可向中继节点的IP模块710发送携带IP模块710的IP的连接请求,从而中继节点的IP模块710可响应于该连接请求与该区块链节点建立连接。与区块链节点建立连接后,IP模块710可以接收来自区块链节点的报文并将其发送给中继节点内的第一负载均衡模块720。
第一负载均衡模块720可以用于将从中继节点内的IP模块710接收到的注册请求发送给中继节点内的一组代理节点730之一,以及将从中继节点内的IP模块710接收到的报文发送给中继节点内的一组代理节点730之一。在一些实施例中,第一负载均衡模块720可以根据轮询算法从中继节点内的一组代理节点730中确定一个代理节点730-m来接收注册请求/报文。
在一些实施例中,中继节点之间可通过第一负载均衡模块720的IP建立长连接。仅作为示例,第一负载均衡模块720的IP可以是虚拟IP(简称VIP)。
在一些实施例中,同一中继节点中的代理节点之间可通过代理节点的IP建立长连接。
所述一组代理节点中的每个节点都作为中继节点中的核心工作单元,其功能包括与区块链节点建立连接以及根据本地路由表转发来自区块链节点的报文。
关于代理节点的工作流程,可以参考图8至图11及其相关描述。
服务发现模块740可以用于将从本中继节点的任一代理节点接收到的注册事件写入第一数据库750,将本中继节点中任一代理节点生成的注册事件发送给本中继节点中的其他代理节点。任一中继节点的服务发现模块740可以还可以将来自本中继节点的注册事件发送给全局节点320以使全局节点320将该注册事件发送给其他中继节点的服务发现模块740。相应地,任一中继节点的服务发现模块740可以从全局节点320接收来自其他中继节点的注册事件并将其转发给本中继节点中的各代理节点。
图8是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的注册方法的示例性流程图。为了便于描述,不妨将流程800的执行主体记为中继节点310-i中的代理节点730-m,应当理解,中继节点310-i内的其他代理节点730-j(j
Figure 885948DEST_PATH_IMAGE001
i)以及系统300内其他中继节点310-j(j
Figure 830770DEST_PATH_IMAGE001
i)中的代理节点更新本地路由表的流程均可参考流程800。如图8所示,流程800可以包括:
步骤810,接收来自区块链节点的注册请求,响应于所述注册请求与区块链节点建立连接。
在一些实施例中,代理节点可与区块链节点建立长连接。
步骤820,基于所述注册请求生成注册事件。
由于代理节点负责转发报文,所述注册事件不仅可以包含区块链节点的ID、该区块链节点连接的中继节点的ID,还可以包含该区块链节点连接的代理节点的IP,相应地,所述本地路由表不仅可以包含区块链节点的ID和该区块链节点连接的中继节点的ID的对应关系,还可以包含区块链节点的ID与该区块链节点连接的代理节点的IP的对应关系,以便代理节点判断待接收报文的区块链节点连接的代理节点是否为本代理节点。当代理节点确定待接收报文的区块链节点连接的代理节点是本代理节点后,可将报文发送给待接收报文的区块链节点。当代理节点确定待接收报文的区块链节点连接的代理节点不是本代理节点后,可根据IP将报文发送给待接收报文的区块链节点连接的代理节点。
步骤830,将所述注册事件发送给同一中继节点的服务发现模块。
中继节点310-i中的服务发现模块740接收到中继节点310-i的代理节点730-m基于注册请求生成的注册事件后,可将所述注册事件发送到中继节点310-i中的其他代理节点730-n(n≠m)。从而,任一中继节点内的每个代理节点可以根据本代理节点生成的注册事件,也可以根据本中继节点中的其他代理节点生成的注册事件更新本地路由表。
步骤840,从同一中继节点的服务发现模块接收来自其他中继节点的注册事件。
中继节点310-i中的服务发现模块740接收到来自本中继节点的注册事件后,还可将来自本中继节点的注册事件发送到全局节点320。全局节点320接收到来自中继节点310-i的注册事件后,可将来自中继节点310-i的注册事件发送到系统300内的其他中继节点310-j(j
Figure 58620DEST_PATH_IMAGE001
i)的服务发现模块740。中继节点310-j的服务发现模块740接收到来自其他中继节点310-i的注册事件后,可将来自其他中继节点310-i的注册事件发送给中继节点310-j中的每个代理节点。同理,中继节点310-i内的每个代理节点也可从中继节点310-i的服务发现模块740接收到来自其他中继节点310-j(j
Figure 315683DEST_PATH_IMAGE001
i)的注册事件。即,任一中继节点内的每个代理节点可获得来自其他中继节点的注册事件,并根据来自其他中继节点的注册事件更新本地路由表。
步骤850,根据获得的注册事件更新本地路由表。
可以理解,以中继节点310-i的代理节点730-m为例,其获得的注册事件可以包括本代理节点(即代理节点730-m)生成的注册事件、中继节点310-i中的其他代理节点730-n(n
Figure 628983DEST_PATH_IMAGE001
m)生成(即来自本中继节点)的注册事件以及由系统300内的其他中继节点310-j(j
Figure 111917DEST_PATH_IMAGE001
i)中的代理节点生成的注册事件(即来自其他中继节点的注册事件)。经过更新,系统300内每个代理节点的本地路由表可保持一致(同步)。
针对多链,所述注册请求可包括区块链节点的ID、该区块链节点所属的区块链网络的ID、该区块链节点连接的中继节点的ID。相应地,所述注册事件可包括区块链节点的ID、该区块链节点所属的区块链网络的ID、该区块链节点连接的代理节点的IP和该区块链节点连接的中继节点的ID。每个代理节点的本地路由表可包括单播路由表和广播路由表两部分,单播路由表可包括区块链节点的ID与该区块链节点连接的代理节点的IP、该区块链节点连接的中继节点的ID的对应关系,广播路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系。
图9是根据本说明书一些实施例所示的代理节点转发单播报文的示例性流程图。为了便于描述,不妨将流程900的执行主体记为中继节点310-i中的代理节点730-m,应当理解,中继节点310-i内的其他代理节点730-j(j
Figure 896071DEST_PATH_IMAGE001
i)以及系统300内其他中继节点310-j(j
Figure 884887DEST_PATH_IMAGE001
i)中的代理节点转发报文的流程均可参考流程900。如图9所示,流程900可以包括:
步骤910,接收携带目的区块链节点的ID的单播报文。
与中继节点310-i连接的区块链节点先将单播报文发送给中继节点310-i的IP模块710,中继节点310-i的IP模块710再将广播报文发送给中继节点310-i的第一负载均衡模块720,进而中继节点310-i的第一负载均衡模块720可将广播报文发送给中继节点310-i中的某一代理节点(记为代理节点730-m)。
步骤920,根据本地路由表确定目的区块链节点的ID对应的中继节点的ID,得到目的区块链节点连接的中继节点的ID。
步骤930,判断目的区块链节点连接的中继节点是否为本中继节点。
对于中继节点310-i中的代理节点而言,本中继节点即中继节点310-i。可以理解,任一代理节点可保管本中继节点的ID,如此可通过比较目的区块链节点连接的中继节点的ID和本中继节点的ID来判断目的区块链节点连接的中继节点是否为本中继节点。
若否,则执行步骤940。若是,则执行步骤960。
步骤940,根据目的区块链节点连接的中继节点的ID确定目的区块链节点连接的中继节点的第一负载均衡模块的IP。
步骤950,根据目的区块链节点连接的中继节点的第一负载均衡模块的IP将单播报文发送给目的区块链节点连接的中继节点的第一负载均衡模块。
当中继节点310-i中的代理节点730-m确定目的区块链节点连接于系统300内的其他中继节点(不妨记为中继节点310-j,j
Figure 872435DEST_PATH_IMAGE001
i)时,可查找中继节点310-j的ID对应的第一负载均衡模块的IP,得到中继节点310-j中的第一负载均衡模块的IP,从而根据中继节点310-j中的第一负载均衡模块的IP将单播报文发送给中继节点310-j中的第一负载均衡模块。
可以理解,每个中继节点的代理节点可存储有其他中继节点的ID与其他中继节点的第一负载均衡模块的IP的对应关系,以根据其他中继节点的ID确定其他中继节点的第一负载均衡模块的IP。例如,中继节点310-i的代理节点可存储有中继节点310-j(j
Figure 411257DEST_PATH_IMAGE001
i)的ID与中继节点310-j的第一负载均衡模块的IP的对应关系,以根据中继节点310-j的ID确定中继节点310-j的第一负载均衡模块的IP。
中继节点310-j中的第一负载均衡模块接收到单播报文后,可将单播报文发送给中继节点310-j中的某一代理节点,该代理节点转发单播报文的流程可以参考流程900。可以理解,中继节点310-j中先接收到单播报文的代理节点执行完步骤920和步骤930后,会继续执行步骤960。
当然,中继节点310-j中先接收到单播报文的代理节点也可以跳过步骤920直接执行步骤960。可以理解,接收到单播报文的代理节点可以通过一定的方式判断是否需要跳过步骤920。例如,区块链节点发送报文使用的端口和代理节点发送报文的端口可以是不同的,因此接收到单播报文的代理节点可以通过识别单播报文的传输端口确定单播报文是否经过代理节点转发,若是,则可跳过步骤920直接执行步骤960,否则可执行步骤920。
步骤960,根据本地路由表确定目的区块链节点的ID对应的代理节点的ID,得到目的区块链节点连接的代理节点的IP。
步骤970,判断目的区块链节点连接的代理节点是否为本代理节点。
当中继节点310-i中的代理节点730-m确定目的区块链节点连接于本中继节点时,可进一步判断目的区块链节点是否连接于本代理节点。
应当理解,任一代理节点可保管本代理节点的IP,这样可以通过比较目的区块链节点连接的代理节点的IP和本代理节点的IP来判断目的区块链节点连接的代理节点是否为本代理节点。
若是,则执行步骤980,否则执行步骤990。
步骤980,将单播报文发送给所连接的目的区块链节点。
步骤990,根据目的区块链节点连接的代理节点的IP将单播报文发送给目的区块链节点连接的代理节点。
当中继节点310-i中的代理节点730-m确定目的区块链节点连接于本代理节点时,可将单播报文发送给所连接的目的区块链节点。当中继节点310-i中的代理节点730-m确定目的区块链节点连接于同一中继节点中的其他代理节点(不妨记为代理节点730-n)时,可根据同一中继节点中代理节点730-n的IP将单播报文发送给同一中继节点中的代理节点730-n。从而,中继节点310-i中的代理节点730-n可以将单播报文发送给所连接的目的区块链节点。参考前述内容,中继节点310-i中的代理节点730-n可以执行步骤920,也可以跳过步骤920直接执行步骤960。
图10是根据本说明书一些实施例所示的多链场景下代理节点转发广播报文的示例性流程图。为了便于描述,不妨将流程1000的执行主体记为中继节点310-i中的代理节点730-m,应当理解,中继节点310-i内的其他代理节点730-n(n≠m)以及系统300内其他中继节点310-j(j
Figure 535071DEST_PATH_IMAGE001
i)中的代理节点转发报文的流程均可参考流程1000。如图10所示,流程1000可以包括:
步骤1010,接收携带目的区块链网络的ID的广播报文。
目的区块链网络是指接收广播报文的区块链节点所属的区块链网络。
步骤1020,在广播路由表中查找包含目的区块链网络的ID的目标对应关系。
目标对应关系中还包含目的区块链网络中的区块链节点的ID和目的区块链网络中的区块链节点连接的中继节点的ID,指示目的区块链网络中的区块链节点连接的中继节点。
步骤1030,检查目标对应关系中是否包含本中继节点的ID。
若是,则执行步骤1040。
步骤1040,将广播报文发送给本中继节点中的其他代理节点。
当目标对应关系中包含本中继节点的ID时,说明中继节点310-i中的代理节点连接有目的区块链网络中的区块链节点,故中继节点310-i中先接收到广播报文的代理节点730-m可以发送一份广播报文给中继节点310-i中的其他代理节点730-n(n≠m)。如此,中继节点310-i中的每个代理节点可以接收到一份广播报文。
步骤1050,检查目标对应关系中是否包含其他中继节点的ID。
若是,则执行步骤1060。
步骤1060,根据检查到的其他中继节点的ID确定其他中继节点的第一负载均衡模块的IP。
步骤1070,根据确定的其他的中继节点的第一负载均衡模块的IP将广播报文发送给其他中继节点的第一负载均衡模块。
假设中继节点310-i检查到目标对应关系中包含中继节点310-j(j
Figure 632471DEST_PATH_IMAGE001
i)的ID,则中继节点310-i可以根据中继节点310-j的ID确定中继节点310-j的第一负载均衡模块的IP。从而,中继节点310-i可以根据中继节点310-j的第一负载均衡模块的IP发送一份广播报文给中继节点310-j的第一负载均衡模块。
中继节点310-j的第一负载均衡模块接收到广播报文后,可将广播报文发送给中继节点310-j中的某一代理节点(不妨记为代理节点730-p),代理节点730-p接收到广播报文后可发送一份广播报文给中继节点310-j中的其他代理节点730-q(q
Figure 481216DEST_PATH_IMAGE001
p)。
值得注意的是,当任一中继节点中的代理节点从本中继节点的第一负载均衡模块接收到其他中继节点内的代理节点转发过来的广播报文后,可不必重复向其他中继节点(的第一负载均衡模块)转发广播报文。例如,中继节点310-1中的代理节点730-m从目标对应关系中检查到中继节点310-2的ID,中继节点310-1中的代理节点730-m可向中继节点310-2的第一负载均衡模块发送一份广播报文。中继节点310-2中的代理节点730-p从中继节点310-2的第一负载均衡模块接收到广播报文后,可跳过步骤1020和步骤1050直接执行步骤1040和步骤1080。
可以理解,接收到广播报文的代理节点可以通过一定的方式判断是否需要执行步骤1050。例如,区块链节点发送报文使用的端口和代理节点发送报文的端口可以是不同的,因此接收到广播报文的代理节点可以通过识别广播报文的传输端口确定广播报文是否经过代理节点转发,若是,则执行步骤1050,否则不执行步骤1050。
步骤1080,检查广播路由表中是否存在包含目的区块链网络的ID以及本代理节点的IP的目的对应关系。
若是,则执行步骤1090。
步骤1090,根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
根据前述内容,连接有目的区块链网络中的区块链节点的中继节点中每个代理节点都可以接收到一份广播报文。接收到广播报文的代理节点可以检查广播路由表中是否包含目的区块链网络的ID以及本代理节点的IP的目的对应关系,若是,说明本代理节点连接有目的区块链网络中的区块链节点,则可根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
可以理解,当任一代理节点接收到同一中继节点内的其他代理节点发送的广播报文后,可直接检查广播路由表中是否包含目的区块链网络的ID以及本代理节点的IP的目的对应关系,不必重复将广播报文发送给同一中继节点内的其他代理节点,也不必重复将广播报文发送给其他中继节点。其中,接收到广播报文的代理节点可以通过识别广播报文的传输端口确定广播报文是否经过代理节点转发。
图11是根据本说明书一些实施例所示的单链场景下代理节点转发广播报文的示例性流程图。为了便于描述,不妨将流程1100的执行主体记为中继节点310-i中的代理节点730-m,应当理解,中继节点310-i内的其他代理节点730-n(n≠m)以及系统300内其他中继节点310-j(j
Figure 322264DEST_PATH_IMAGE001
i)中的代理节点转发报文的流程均可参考流程1100。如图11所示,流程1100可以包括:
步骤1110,接收广播报文。
步骤1120,将广播报文发送给本中继节点中的其他代理节点。
步骤1130,将广播报文发送给其他中继节点的第一负载均衡模块。
由于单链场景下系统300内所有代理节点所连接的区块链节点属于同一区块链网络,即系统300内每个代理节点都可能连接有接收广播报文的区块链节点,中继节点310-i中的代理节点730-m接收到广播报文后,一方面可以将广播报文发送给本中继节点(中继节点310-i)中的其他代理节点730-n,另一方面可以将广播报文发送给其他中继节点310-j的第一负载均衡模块。
中继节点310-j的第一负载均衡模块接收到广播报文后,可将广播报文发送给中继节点310-j中的某一代理节点(不妨记为代理节点730-p),代理节点730-p接收到广播报文后可发送一份广播报文给中继节点310-j中的其他代理节点730-q(q
Figure 566163DEST_PATH_IMAGE001
p)。
值得注意的是,当任一中继节点中的代理节点从本中继节点的第一负载均衡模块接收到其他中继节点内的代理节点转发过来的广播报文后,可不必重复向其他中继节点转发广播报文。例如,中继节点310-1中的代理节点730-m从目标对应关系中检查到中继节点310-2的ID,中继节点310-1中的代理节点730-m可向中继节点310-2的第一负载均衡模块发送一份广播报文。中继节点310-2中的代理节点730-p从中继节点310-2的第一负载均衡模块接收到广播报文后,可不执行步骤1130。
可以理解,接收到广播报文的代理节点可以通过一定的方式判断是否需要执行步骤1130。例如,区块链节点发送报文使用的端口和代理节点发送报文的端口可以是不同的,因此接收到广播报文的代理节点可以通过识别广播报文的传输端口确定广播报文是否经过代理节点转发,若是,则执行步骤1130,否则不执行步骤1130。
步骤1140,检查本地路由表中是否包含本代理节点的IP。
若是,则可执行步骤1150。
步骤1150,根据包含本代理节点的IP的对应关系中区块链节点的ID将广播报文发送给所连接的区块链节点。
根据前述内容,连接有区块链节点的中继节点中每个代理节点都可以接收到一份广播报文。接收到广播报文的代理节点可以检查本地路由表中是否包含本代理节点的IP,若是,说明本代理节点连接有区块链节点,则可根据包含本代理节点的IP的对应关系中区块链节点的ID将广播报文发送给所连接的区块链节点。
可以理解,当任一代理节点接收到同一中继节点内的其他代理节点发送的广播报文后,可直接检查本地路由表中是否包含本代理节点的IP,不必重复将广播报文发送给同一中继节点内的其他代理节点,也不必重复将广播报文发送给其他中继节点。另外,广播报文还可以携带源区块链节点的ID,任一代理节点可以根据本地路由表确定源区块链节点的ID对应的代理节点的IP,得到源区块链节点连接的代理节点的IP,以确定源区块链节点连接的代理节点是否为本代理节点,若是,则源区块链节点连接的代理节点可不必将广播报文发送给源区块链节点。
下面结合图12和图13示例单播报文的转发流程。如图12所示,第一区域设有两个中继节点且ID分别为region1和region2,第二区域设有两个中继节点且ID分别为region3和region4,第一区域内的区块链节点1、区块链节点2、区块链节点3均以region1为主用中继节点且以region2为备用中继节点,第二区域内的区块链节点4、区块链节点5、区块链节点6均以region3为主用中继节点且以region4为备用中继节点。另外,第一负载均衡模块简称为slb(server load balancer,服务器负载均衡),代理节点简称为proxy。如此,经过更新每个代理节点的本地路由表可以如图13所示。图13中,“1”为主用中继节点的标识,将“0”为节点备用中继节点的标识,node1~node6分别表示区块链节点1-区块链节点6的ID,ip_m表示相应中继节点中编号为m的代理节点的IP(地址)。例如,(node1;region1,1; ip_3)指示区块链节点1的主中继节点为region1,且包含了区块链节点1所连接的(region1中)proxy3的IP(地址)。
基于此,参考图12中实线指示的报文传输路径,若区块链节点1要给区块链节点4发单播报文,则区块链节点1优先将携带区块链节点4的ID(即node4)的单播报文发送给主用中继节点region1的IP模块。在region1内部,IP模块将单播报文发送给slb,slb再将单播报文发送至一组代理节点之一(不妨记为第一代理节点),第一代理节点可根据本地路由表查找区块链节点4的ID对应的region的ID。结合图13,本地路由表中与区块链节点4关联的对应关系有(node4;region3,1; ip_1)以及(node4;region4,0; ip_2)。第一代理节点优先将单播报文发送给区块链节点4的主用中继节点region3的slb。在region3内部,slb将单播报文发送至一组代理节点之一(记为第二代理节点),第二代理节点可根据本地路由表查找区块链节点4的ID对应的region的ID,得到本中继节点region3的ID,从而可继续查找区块链节点4的ID对应的代理节点的IP。参考图12中实线指示的报文传输路径,若第二代理节点为region3中的proxy1,则region3中的proxy1可查找到本代理节点的IP,说明区块链节点4就连接于本代理节点,则region3中的proxy1可将单播报文发送给所连接的区块链节点4。参考图12中虚线指示的报文传输路径,若第二代理节点为region3中非proxy1的代理节点(如proxy2或proxy3)的IP,则第二代理节点可查找到proxy1的IP并根据proxy1的IP将单播报文发送给proxy2。
参考图12中虚线指示的报文传输路径,若区块链节点1确定主用中继节点region1发生故障(如,报文发送不出去、向region1发送报文后未收到应答),则区块链节点1可以向备用中继节点region2的IP模块发送单播报文。类似地,在region2内部,IP模块将单播报文发送给slb,slb再将单播报文发送至一组代理节点之一(仍记为第一代理节点),第一代理节点可根据本地路由表查找区块链节点4的ID对应的region的ID。如图13所示,本地路由表中与区块链节点4关联的对应关系有(node4;region3,1; ip_2)以及(node4;region4,0;ip_1)。第一代理节点优先将单播报文发送给区块链节点4的主用中继节点region3的slb。在region3内部,slb将单播报文发送至一组代理节点之一(仍记为第二代理节点),第二代理节点可根据本地路由表查找区块链节点4的ID对应的region的ID,得到本中继节点region3的ID,从而可继续查找区块链节点4的ID对应的代理节点的IP。若查找到本代理节点(第二代理节点)的IP,说明区块链节点4就连接于本代理节点,则第二代理节点可将单播报文发送给所连接的区块链节点4。若查找到region3内其他代理节点的IP,则根据该IP将单播报文发送给region3内的其他代理节点。
若region1/region2中的第一代理节点确定区块链节点4的主用中继节点region3发生故障(如,报文发送不出去、向region3发送报文后未收到应答),则region1/region2中的第一代理节点可向区块链节点4的备用中继节点region4的slb发送单播报文。关于region4转发单播报文的流程,可以参考region3转发单播报文的流程。
下面结合图14和图15示例单播报文的转发流程。图14中与图12相同的部分可参考图12的相关描述,除此之外,区块链节点1、区块链节点3、区块链节点4、区块链节点5属于同一区块链网络(记为第一区块链网络),区块链节点2、区块链节点6属于另一区块链网络(记为第二区块链网络)。如此,经过更新每个代理节点的广播路由表可以如图13所示。图13中,“1”为主用中继节点的标识,将“0”为节点备用中继节点的标识,node1~node6分别表示区块链节点1-区块链节点6的ID,ip_m表示相应中继节点中编号为m的代理节点的IP(地址),A表示第一区块链网络的ID,B表示第二区块链网络的ID。例如,(A;region1,1; ip_3)指示第一区块链网络中的区块链节点1的主中继节点为region1,且包含了区块链节点1所连接的(region1中)proxy3的IP(地址)。
基于此,参考图14中虚线指示的报文传输路径,若区块链节点1要在第一区块链网络上广播,则区块链节点1优先将携带第一区块链网络的ID(即A)的广播报文发送给主用中继节点region1的IP模块。在region1内部,IP模块将单播报文发送给slb,slb再将单播报文发送至一组代理节点之一。如图14所示,不妨假设region1中的proxy2从slb接收到广播报文。结合图15,广播路由表中,包含第一区块链网络的ID(即A)的对应关系除了(A;node1;region1,1;ip_3)、(A;node1;region2,0;ip_2)之外还有(A;node3;region1,1;ip_3)、(A;node3;region2,0;ip_2)、(A;node4;region3,1;ip_1)、(A;node4;region4,0;ip_2)、(A;node5;region3,1;ip_2)、(A;node5;region4,0;ip_3)。在region1内部,proxy2向其他代理节点(如,proxy1、proxy3)分别发送一条广播报文。由于第一区块链网络中的区块链节点4、区块链节点5的主中继节点为region3,region1中的proxy2优先向region3的slb发送一条广播报文。在region3内部,slb将单播报文发送至一组代理节点之一。如图14所示,不妨假设region3中的proxy3从slb接收到广播报文。在region3内部,proxy3可向其他代理节点(如proxy1、proxy2)分别发送一条单播报文。如此,region1、region3内的每个代理节点都可以收到一条广播报文,其中,与区块链节点3连接的region1中的proxy3、与区块链节点4连接的region3中的proxy1、与区块链节点5连接的region3中的proxy2接收到广播报文后,可分别在广播路由表中查找包含第一区块链网络的ID(即A)以及本代理节点的IP的对应关系,分别找到区块链节点3的ID、区块链节点4的 ID、区块链节点5的ID。从而,region1中的proxy3、region3中的proxy1、region3中的proxy2可分别将广播报文发送给所连接的区块链节点3、区块链节点4、区块链节点5。
参考图14中虚线指示的报文传输路径,若区块链节点1确定主用中继节点region1发生故障(如,报文发送不出去、向region1发送报文后未收到应答),则区块链节点1可以向备用中继节点region2的IP模块发送广播报文。在region2内部,IP模块将单播报文发送给slb,slb再将单播报文发送至一组代理节点之一。参考前述内容,region2内部的每个代理节点可收到一条广播报文。其中,region2中的proxy3可在广播路由表中查找包含第一区块链网络的ID(即A)以及本代理节点的IP的对应关系(A;node3;region1,1; ip_3),说明区块链节点3连接于本代理节点(proxy3),从而region2中的proxy3可将广播报文发送给所连接的区块链节点3。参考前述内容,region2中的proxy3还可根据广播路由表优先发送一条广播报文给区块链节点4、区块链节点5的主中继节点region3的slb。region3转发广播报文的流程,可以参考前文的相关描述。
若region1/region2中的先接收到广播报文的代理节点(如,region1中的proxy2)确定区块链节点4、区块链节点5的主用中继节点region3发生故障(如,报文发送不出去、向region3发送报文后未收到应答),则region1/region2中的第一代理节点可向区块链节点4、区块链节点5的备用中继节点region4的slb发送广播报文。关于region4转发广播报文的流程,可以参考region3转发广播报文的流程。
图16是根据本说明书一些实施例所示的全局节点的示例性框图。如图16所示,全局节点320可包括第二负载均衡模块1610、一组工作节点1620及第二数据库1630。
第二负载均衡模块1610用于从服务发现模块接收注册事件并将其发送给所述一组工作节点1620之一。在一些实施例中,第二负载均衡模块1610可以利用轮询算法从一组工作节点1620中确定一个工作节点来接收注册事件。
工作节点用于将接收到的注册事件写入第二数据库1630。全局节点内的一组工作节点是可弹性伸缩的,即全局节点内的工作节点数量是可变的。仅作为示意,图16中的全局节点320包括工作节点1620-1、工作节点1620-2、工作节点1620-3、...、工作节点1620-n。总体上,全局节点内的工作节点数量可与通信优化系统内的中继节点数量的变化趋势保持一致。即,当通信优化系统内的中继节点数量增多时,可适当增加该全局节点内的工作节点数量。
工作节点还用于将来自任一中继节点的注册事件发送给其他中继节点的第一负载均衡模块。例如,如图4所示,工作节点将来自中继节点310-2的注册事件写入第二数据库后,可将来自中继节点310-2的注册事件分别发送给中继节点310-1、中继节点310-3、...中继节点310-n。
值得说明的是,任一中继节点可以包括至少两个IP模块/第一负载均衡模块/第一数据库以用于主备切换,全局节点也可以包括至少两个第二负载均衡模块/第二数据库以用于主备切换。
图17是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的注册系统的示例性模块图。注册系统1700可以在中继节点(不妨记为中继节点310-i)中的任一代理节点上实现。如图17所示,注册系统1700可以包括连接模块1710、注册事件生成模块1720、注册事件发送模块1730、注册事件接收模块1740以及本地路由表更新模块1750。
连接模块1710可以用于从中继节点310-i的第一负载均衡模块接收来自区块链节点的注册请求,响应于所述注册请求与区块链节点建立连接。
注册事件生成模块1720可以用于基于所述注册请求生成注册事件。
注册事件发送模块1730可以用于将所述注册事件发送给中继节点310-i的服务发现模块,以使:中继节点310-i的服务发现模块将所述注册事件发送给全局节点,全局节点将所述注册事件发送给其他中继节点310-j(j
Figure 755836DEST_PATH_IMAGE001
i)的服务发现模块。
注册事件接收模块1740可以用于从中继节点310-i的服务发现模块接收来自其他中继节点310-j的注册事件。
本地路由表更新模块1750可以用于根据获得的注册事件更新本地路由表。
关于注册系统1700及其模块的更多细节,可以参考图8及其相关描述,这里不再赘述。
图18是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的报文转发系统的示例性模块图。报文转发系统1800可以在中继节点(不妨记为中继节点310-i)中的任一代理节点上实现。如图18所示,报文转发系统1800可以包括报文接收模块1810和单播报文转发模块1820。
报文接收模块1810可以用于从中继节点310-i的第一负载均衡模块接收携带目的区块链节点的ID的单播报文。关于从中继节点310-i的第一负载均衡模块接收携带目的区块链节点的ID的单播报文的详细描述可以参见图9,在此不再赘述。
单播报文转发模块1820可以用于:判断目的区块链节点连接的中继节点是否为本中继节点;若否,则根据目的区块链节点连接的中继节点的ID确定目的区块链节点连接的中继节点的第一负载均衡模块的IP,根据目的区块链节点连接的中继节点的第一负载均衡模块的IP将所述单播报文发送给目的区块链节点连接的中继节点的第一负载均衡模块;若是,则判断目的区块链节点连接的代理节点是否为本代理节点,若是,则将所述单播报文发送给所连接的目的区块链节点,否则根据目的区块链节点连接的代理节点的IP将单播报文发送给目的区块链节点连接的代理节点。
关于报文转发系统1800及其模块的更多细节,可以参考图9及其相关描述,这里不再赘述。
图19是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的报文转发系统的示例性模块图。报文转发系统1900可以在中继节点(不妨记为中继节点310-i)中的任一代理节点上实现。如图19所示,报文转发系统1900可以包括报文接收模块1910、目标对应关系查找模块1920、第一广播报文转发模块1930、第二广播报文转发模块1940以及第三广播报文转发模块1950。
报文接收模块1910可以用于从中继节点310-i的第一负载均衡模块接收携带目的区块链网络的ID的广播报文。
目标对应关系查找模块1920可以用于在所述广播路由表中查找包含目的区块链网络的ID的目标对应关系。
第一广播报文转发模块1930可以用于检查目标对应关系中是否包含本中继节点的ID,若是,则将所述广播报文发送给本中继节点中的其他代理节点。关于检查目标对应关系中是否包含本中继节点的ID,若是,则将所述广播报文发送给本中继节点中的其他代理节点。
第二广播报文转发模块1940可以用于检查目标对应关系中是否包含其他中继节点310-j的ID,若是,则根据检查到的其他中继节点310-j的ID确定其他中继节点310-j的第一负载均衡模块的IP,根据确定的其他的中继节点的第一负载均衡模块的IP将广播报文发送给其他中继节点310-j的第一负载均衡模块。
第三广播报文转发模块1950可以用于检查所述广播路由表中是否存在包含目的区块链网络的ID以及本代理节点的IP的目的对应关系,若是,则根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
关于报文转发系统1900及其模块的更多细节,可以参考图10及其相关描述,这里不再赘述。
图20是根据本说明书一些实施例所示的基于区块链网络的通信优化系统的报文转发系统的示例性模块图。报文转发系统2000可以在中继节点(不妨记为中继节点310-i)中的任一代理节点上实现。如图20所示,报文转发系统2000可以包括报文接收模块2010、第四广播报文转发模块2020、第五广播报文转发模块2030以及第六广播报文转发模块2040。
报文接收模块2010可以用于从中继节点310-i的第一负载均衡模块接收广播报文。
第四广播报文转发模块2020可以用于将所述广播报文发送给本中继节点中的其他代理节点。
第五广播报文转发模块2030可以用于将所述广播报文发送给其他中继节点310-j的第一负载均衡模块。
第六广播报文转发模块2040可以用于检查所述本地路由表中是否包含本代理节点的IP,若是,则根据包含本代理节点的IP的对应关系中区块链节点的ID将广播报文发送给所连接的区块链节点。
关于报文转发系统2000及其模块的更多细节,可以参考图11及其相关描述,这里不再赘述。
应当理解,图17至图20所示的系统及其模块可以利用各种方式来实现。例如,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的设备及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,第四广播报文转发模块2020、第五广播报文转发模块2030和第六广播报文转发模块2040可以是三个单独的模块,也可以合并成一个模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)在单次广播中,区块链节点可发送一条广播报文给中继节点,可有效节省区块链节点占用的上行带宽和跨区域带宽;(2)联盟节点通过中继节点传输报文,可以将中继节点的IP添加进白名单,当有新的联盟节点加入联盟链时无需更新IP白名单;(3)通信优化系统内部可基于内网组网,如此通过中继节点转发报文来自区块链节点的报文可以有效减少报文的传输耗时;(4)区块链节点就近与通信优化系统内的中继节点建立连接,通信优化系统内部基于内网组网,在单次广播中继节点之间可传输一条广播报文,可有效减少报文的传输耗时。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (25)

1.一种区块链网络的通信优化系统,其中,包括:两个或以上中继节点,以及全局节点;
所述中继节点用于:响应于区块链节点的连接请求,与区块链节点建立连接;接收区块链节点发送的注册请求,所述注册请求包括区块链节点的ID和该区块链节点连接的中继节点的ID;基于所述注册请求生成注册事件并将所述注册事件发送给所述全局节点,所述注册事件包括区块链节点的ID和该区块链节点连接的中继节点的ID;根据获得的注册事件更新本地路由表,所述本地路由表包括区块链节点的ID与该区块链节点连接的中继节点的ID的对应关系;根据所述本地路由表转发来自区块链节点的报文;
所述全局节点用于将来自任一中继节点的注册事件发送给其他中继节点。
2.如权利要求1所述的系统,其中,所述中继节点包括IP模块、第一负载均衡模块、一组代理节点、服务发现模块及第一数据库;
所述IP模块用于:接收来自区块链节点的携带所述IP模块的IP的连接请求,与区块链节点建立连接;接收来自区块链节点的注册请求并将其发送给同一中继节点的第一负载均衡模块;接收来自区块链节点的报文并将其发送给同一中继节点的第一负载均衡模块;
所述第一负载均衡模块用于:从同一中继节点的IP模块接收来自区块链节点的注册请求并将其发送给同一中继节点内的一组代理节点之一;从同一中继节点的IP模块接收来自区块链节点的报文并将其发送给同一中继节点内的一组代理节点之一;从其他中继节点中的代理节点接收来自区块链节点的报文并将其发送给同一中继节点内的一组代理节点之一;
所述代理节点用于:响应于接收到的注册请求与区块链节点建立连接;根据所述注册请求生成注册事件并将所述注册事件发送给所述服务发现模块;根据获得的注册事件更新所述本地路由表;根据所述本地路由表转发来自区块链节点的报文;其中,所述注册事件还包括该区块链节点连接的代理节点的IP;所述本地路由表还包括区块链节点的ID与该区块链节点连接的代理节点的IP的对应关系;
所述服务发现模块用于:将同一中继节点中任一代理节点生成的注册事件发送给同一中继节点中的其他代理节点;将同一中继节点中任一代理节点生成的注册事件发送给所述全局节点,以使所述全局节点将该注册事件发送给其他中继节点的服务发现模块;将从同一中继节点中任一代理节点接收到的注册事件写入所述第一数据库;从所述全局节点接收来自其他中继节点的注册事件并将其转发给同一中继节点中的各代理节点。
3.如权利要求2所述的系统,其中,每个中继节点的代理节点存储有其他中继节点的ID与其他中继节点的第一负载均衡模块的IP的对应关系;
所述根据所述本地路由表转发来自区块链节点的报文,包括:
当接收到携带目的区块链节点的ID的单播报文后,根据所述本地路由表查找所述目的区块链节点的ID对应的中继节点的ID,得到所述目的区块链节点连接的中继节点的ID,以确定所述目的区块链节点连接的中继节点是否为本中继节点;若否,则根据所述目的区块链节点连接的中继节点的ID确定所述目的区块链节点连接的中继节点的第一负载均衡模块的IP,并根据确定的第一负载均衡模块的IP将所述单播报文发送给所述目的区块链节点连接的中继节点的第一负载均衡模块;若是,则根据所述本地路由表查找所述目的区块链节点的ID对应的代理节点的IP,得到所述目的区块链节点连接的代理节点的IP,以确定所述目的区块链节点连接的代理节点是否为本代理节点,若是,则将所述单播报文发送给所述目的区块链节点,否则根据所述目的区块链节点连接的代理节点的IP将所述单播报文发送给所述目的区块链节点连接的代理节点。
4.如权利要求2所述的系统,其中,所述根据所述本地路由表转发报文,包括:
当接收到广播报文后,将所述广播报文发送给本中继节点中的其他代理节点,将所述广播报文发送给其他中继节点的第一负载均衡模块,在所述本地路由表中查找包含本代理节点的IP的对应关系,根据查找到的对应关系中区块链节点的ID将所述广播报文发送给所连接的区块链节点。
5.如权利要求2所述的系统,其中,所述注册请求还包括该区块链节点所属的区块链网络的ID,所述注册事件还包括该区块链节点所属的区块链网络的ID;
所述本地路由表包括单播路由表和广播路由表,所述单播路由表包括区块链节点的ID与该区块链节点连接的代理节点的IP、该区块链节点连接的中继节点的ID的对应关系,所述广播路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系。
6.如权利要求5所述的系统,其中,每个中继节点的代理节点存储有其他中继节点的ID与其他中继节点的第一负载均衡模块的IP的对应关系;
所述根据所述本地路由表转发报文,包括:
当接收到携带目的区块链网络的ID的广播报文后,在所述广播路由表中查找包含所述目的区块链网络的ID的目标对应关系;检查所述目标对应关系中是否包含本中继节点的ID,若是,则将所述广播报文发送给本中继节点中的其他代理节点;检查目标对应关系中是否包含其他中继节点的ID,若是,则根据检查到的其他中继节点ID确定其他中继节点的第一负载均衡模块的IP,根据确定的第一负载均衡模块的IP将所述广播报文发送给其他中继节点的第一负载均衡模块;检查所述广播路由表是否存在包含所述目的区块链网络的ID以及本代理节点的IP的目的对应关系,若是,则根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
7.如权利要求1所述的系统,其中,所述注册请求还包括该区块链节点连接的中继节点的主备标识,以指示所述中继节点为该区块链节点的主用中继节点或备用中继节点;所述注册事件还包括该区块链节点连接的中继节点的主备标识;所述本地路由表包括区块链节点的ID与该区块链节点连接的中继节点的ID、该区块链节点连接的中继节点的主备标识的对应关系;
区块链节点的备用中继节点用于在该区块链节点的主用中继节点发生故障时,接收该区块链节点发送的报文或发送给该区块链节点的报文。
8.如权利要求1所述的系统,其中,区块链节点通过中继节点的IP与中继节点建立长连接。
9.如权利要求2所述的系统,其中,中继节点之间通过第一负载均衡模块的IP建立长连接。
10.如权利要求2所述的系统,其中,同一中继节点中的代理节点之间通过代理节点的IP建立长连接。
11.如权利要求1所述的系统,其中,所述报文中的消息体经过加密。
12.如权利要求2所述的系统,其中,所述全局节点包括第二负载均衡模块、一组工作节点及第二数据库;
所述第二负载均衡模块用于从所述服务发现模块接收注册事件并将其发送给所述一组工作节点之一;
所述工作节点用于将接收到的注册事件写入所述第二数据库,以及将来自任一中继节点的注册事件发送给其他中继节点的服务发现模块。
13.如权利要求1所述的系统,其中,所述中继节点还用于:接收所连接的区块链节点发送的注销请求,所述注销请求包括区块链节点的ID;根据所述注销请求生成注销事件并将所述注销事件发送给所述全局节点,所述注销事件包括区块链节点的ID;根据获得的注销事件更新本地路由表;
所述全局节点用于将来自任一中继节点的注销事件发送给其他中继节点。
14.一种基于区块链网络的通信优化系统的注册方法,其中,所述通信优化系统包括:两个或以上中继节点,以及全局节点;所述中继节点包括IP模块、第一负载均衡模块、一组代理节点、服务发现模块及第一数据库;所述方法由中继节点中的任一代理节点执行,其包括:
从同一中继节点的第一负载均衡模块接收来自区块链节点的注册请求,响应于所述注册请求与区块链节点建立连接;
基于所述注册请求生成注册事件;
将所述注册事件发送给同一中继节点的服务发现模块,以使:同一中继节点的服务发现模块将所述注册事件发送所述全局节点,所述全局节点将所述注册事件发送给其他中继节点的服务发现模块;
从同一中继节点的服务发现模块接收来自其他中继节点的注册事件;
根据获得的注册事件更新本地路由表。
15.一种基于区块链网络的通信优化系统的注册系统,其中,所述通信优化系统包括:两个或以上中继节点,以及全局节点;所述中继节点包括第一负载均衡模块、一组代理节点、服务发现模块及第一数据库;所述注册系统在所述中继节点中的任一代理节点上实现,其包括:
连接模块,用于从同一中继节点的第一负载均衡模块接收来自区块链节点的注册请求,响应于所述注册请求与区块链节点建立连接;
注册事件生成模块,用于基于所述注册请求生成注册事件;
注册事件发送模块,用于将所述注册事件发送给所述中继节点的服务发现模块,以使:同一中继节点的服务发现模块将所述注册事件发送所述全局节点,所述全局节点将所述注册事件发送给其他中继节点的服务发现模块;
注册事件接收模块,用于从所述中继节点的服务发现模块接收来自其他中继节点的注册事件;
本地路由表更新模块,用于根据获得的注册事件更新本地路由表。
16.一种基于区块链网络的通信优化系统的注册装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求14所述的方法。
17.一种基于区块链网络的通信优化系统的报文转发方法,其中,所述通信优化系统包括两个或以上中继节点;所述中继节点包括第一负载均衡模块、一组代理节点;所述代理节点的本地路由表包括区块链节点的ID与该区块链节点连接的代理节点的IP、该区块链节点连接的中继节点的ID的对应关系;所述方法由中继节点中的任一代理节点执行,其包括:
从同一中继节点的第一负载均衡模块接收携带目的区块链节点的ID的单播报文;
判断目的区块链节点连接的中继节点是否为本中继节点;若否,则根据目的区块链节点连接的中继节点的ID确定目的区块链节点连接的中继节点的第一负载均衡模块的IP,根据目的区块链节点连接的中继节点的第一负载均衡模块的IP将所述单播报文发送给目的区块链节点连接的中继节点的第一负载均衡模块;若是,则判断目的区块链节点连接的代理节点是否为本代理节点,若是,则将所述单播报文发送给所连接的目的区块链节点,否则根据目的区块链节点连接的代理节点的IP将单播报文发送给目的区块链节点连接的代理节点。
18.一种基于区块链网络的通信优化系统的报文转发系统,其中,所述通信优化系统包括两个或以上中继节点;所述中继节点包括第一负载均衡模块、一组代理节点;所述代理节点的本地路由表包括区块链节点的ID与该区块链节点连接的代理节点的IP、该区块链节点连接的中继节点的ID的对应关系;所述报文转发系统在中继节点中的任一代理节点上实现,其包括:
报文接收模块,用于从同一中继节点的第一负载均衡模块接收携带目的区块链节点的ID的单播报文;
单播报文转发模块,用于:判断目的区块链节点连接的中继节点是否为本中继节点;若否,则根据目的区块链节点连接的中继节点的ID确定目的区块链节点连接的中继节点的第一负载均衡模块的IP,根据目的区块链节点连接的中继节点的第一负载均衡模块的IP将所述单播报文发送给目的区块链节点连接的中继节点的第一负载均衡模块;若是,则判断目的区块链节点连接的代理节点是否为本代理节点,若是,则将所述单播报文发送给所连接的目的区块链节点,否则根据目的区块链节点连接的代理节点的IP将单播报文发送给目的区块链节点连接的代理节点。
19.一种基于区块链网络的通信优化系统的报文转发装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求17所述的方法。
20.一种基于区块链网络的通信优化系统的报文转发方法,其中,所述通信优化系统包括两个或以上中继节点;所述中继节点包括第一负载均衡模块、一组代理节点;所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系;所述方法由中继节点中的任一代理节点执行,其包括:
从同一中继节点的第一负载均衡模块接收携带目的区块链网络的ID的广播报文;
在所述广播路由表中查找包含所述目的区块链网络的ID的目标对应关系;
检查目标对应关系中是否包含本中继节点的ID,若是,则将所述广播报文发送给本中继节点中的其他代理节点;
检查目标对应关系中是否包含其他中继节点的ID,若是,则根据检查到的其他中继节点的ID确定其他中继节点的第一负载均衡模块的IP,根据确定的其他的中继节点的第一负载均衡模块的IP将广播报文发送给其他中继节点的第一负载均衡模块;
检查所述广播路由表中是否存在包含所述目的区块链网络的ID以及本代理节点的IP的目的对应关系,若是,则根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
21.一种基于区块链网络的通信优化系统的报文转发系统,其中,所述通信优化系统包括两个或以上中继节点;所述中继节点包括第一负载均衡模块、一组代理节点;所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系;所述报文转发系统在中继节点中的任一代理节点执行,其包括:
报文接收模块,用于从同一中继节点的第一负载均衡模块接收携带目的区块链网络的ID的广播报文;
目标对应关系查找模块,用于在所述广播路由表中查找包含所述目的区块链网络的ID的目标对应关系;
第一广播报文转发模块,用于检查目标对应关系中是否包含本中继节点的ID,若是,则将所述广播报文发送给本中继节点中的其他代理节点;
第二广播报文转发模块,用于检查目标对应关系中是否包含其他中继节点的ID,若是,则根据检查到的其他中继节点的ID确定其他中继节点的第一负载均衡模块的IP,根据确定的其他的中继节点的第一负载均衡模块的IP将广播报文发送给其他中继节点的第一负载均衡模块;
第三广播报文转发模块,用于检查所述广播路由表中是否存在包含所述目的区块链网络的ID以及本代理节点的IP的目的对应关系,若是,则根据目的对应关系中区块链节点的ID将广播报文发送给所连接的目的区块链网络中的区块链节点。
22.一种基于区块链网络的通信优化系统的报文转发装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求20所述的方法。
23.一种基于区块链网络的通信优化系统的报文转发方法,其中,所述通信优化系统包括两个或以上中继节点;所述中继节点包括第一负载均衡模块、一组代理节点;所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系;所述方法由中继节点中的任一代理节点执行,其包括:
从同一中继节点的第一负载均衡模块接收广播报文;
将所述广播报文发送给本中继节点中的其他代理节点;
将所述广播报文发送给其他中继节点的第一负载均衡模块;
检查所述本地路由表中是否包含本代理节点的IP,若是,则根据包含本代理节点的IP的对应关系中区块链节点的ID将广播报文发送给所连接的区块链节点。
24.一种基于区块链网络的通信优化系统的报文转发系统,其中,所述通信优化系统包括两个或以上中继节点;所述中继节点包括第一负载均衡模块、一组代理节点;所述代理节点的本地路由表包括区块链网络的ID与该区块链网络中的区块链节点的ID、该区块链网络中的区块链节点连接的代理节点的IP、该区块链网络中的区块链节点连接的中继节点的ID的对应关系;所述报文转发系统在中继节点中的任一代理节点上实现,其包括:
报文接收模块,用于从同一中继节点的第一负载均衡模块接收广播报文;
第四广播报文转发模块,用于将所述广播报文发送给本中继节点中的其他代理节点;
第五广播报文转发模块,用于将所述广播报文发送给其他中继节点的第一负载均衡模块;
第六广播报文转发模块,用于检查所述本地路由表中是否包含本代理节点的IP,若是,则根据包含本代理节点的IP的对应关系中区块链节点的ID将广播报文发送给所连接的区块链节点。
25.一种基于区块链网络的通信优化系统的报文转发装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求23所述的方法。
CN202010884713.4A 2020-08-28 2020-08-28 区块链网络的通信优化系统及报文转发方法 Active CN111817967B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110110434.7A CN112929285B (zh) 2020-08-28 2020-08-28 区块链网络的通信优化系统
CN202010884713.4A CN111817967B (zh) 2020-08-28 2020-08-28 区块链网络的通信优化系统及报文转发方法
US17/360,392 US11388017B2 (en) 2020-08-28 2021-06-28 Communication optimization systems of blockchain network, registration methods and message forwarding methods
EP21182263.0A EP3962002B1 (en) 2020-08-28 2021-06-29 Communication optimization systems of blockchain network, registration methods and message forwarding methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010884713.4A CN111817967B (zh) 2020-08-28 2020-08-28 区块链网络的通信优化系统及报文转发方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110110434.7A Division CN112929285B (zh) 2020-08-28 2020-08-28 区块链网络的通信优化系统

Publications (2)

Publication Number Publication Date
CN111817967A true CN111817967A (zh) 2020-10-23
CN111817967B CN111817967B (zh) 2020-12-18

Family

ID=72860226

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110110434.7A Active CN112929285B (zh) 2020-08-28 2020-08-28 区块链网络的通信优化系统
CN202010884713.4A Active CN111817967B (zh) 2020-08-28 2020-08-28 区块链网络的通信优化系统及报文转发方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110110434.7A Active CN112929285B (zh) 2020-08-28 2020-08-28 区块链网络的通信优化系统

Country Status (3)

Country Link
US (1) US11388017B2 (zh)
EP (1) EP3962002B1 (zh)
CN (2) CN112929285B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804358A (zh) * 2021-03-30 2021-05-14 支付宝(杭州)信息技术有限公司 一种基于中继设备网络跨链中转数据的方法和装置
CN112804357A (zh) * 2021-03-30 2021-05-14 支付宝(杭州)信息技术有限公司 一种基于中继设备网络跨链读取数据的方法和装置
CN113242305A (zh) * 2021-05-13 2021-08-10 杭州趣链科技有限公司 跨链事务处理方法、装置、计算机设备及介质
CN113342901A (zh) * 2021-08-06 2021-09-03 支付宝(杭州)信息技术有限公司 区块链节点注册至节点集合的方法及装置
CN115297009A (zh) * 2022-07-08 2022-11-04 中电信数智科技有限公司 一种基于区块链分布式网络数字加密一致性优化的方法
WO2024092925A1 (zh) * 2022-10-31 2024-05-10 蚂蚁区块链科技(上海)有限公司 一种加入区块链网络的方法、装置、电子设备和存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114157671B (zh) * 2021-11-26 2024-06-18 支付宝(杭州)信息技术有限公司 将区块链网络承载的信息向多个客户端节点分发的方法
CN115190162B (zh) * 2022-06-27 2023-11-28 杭州溪塔科技有限公司 区块链中的代理服务配置方法及代理服务系统
CN115314273B (zh) * 2022-07-29 2024-03-26 蚂蚁区块链科技(上海)有限公司 一种数据传输系统、方法、电子设备和可读存储介质
JP2024142121A (ja) * 2023-03-29 2024-10-10 株式会社シーズ 情報処理システム、情報処理方法、及びプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1403934A (zh) * 2001-09-06 2003-03-19 华为技术有限公司 对流媒体服务器实现负载均衡的方法和设备
CN103475566A (zh) * 2013-07-10 2013-12-25 北京发发时代信息技术有限公司 一种实时消息交换平台及分布式集群组建方法
US20140244746A1 (en) * 2013-02-26 2014-08-28 Red Hat, Inc. Systems and Methods for Message Routing Using Link State Information
CN109996306A (zh) * 2017-12-29 2019-07-09 华为技术有限公司 通信方法和通信设备
CN110445882A (zh) * 2019-09-19 2019-11-12 腾讯科技(深圳)有限公司 通信连接方法、装置、计算机设备及存储介质
CN111416808A (zh) * 2020-03-13 2020-07-14 财付通支付科技有限公司 跨区块链的数据互存方法、装置、设备及存储介质
CN111447290A (zh) * 2020-06-12 2020-07-24 支付宝(杭州)信息技术有限公司 区块链网络中的通信方法、业务数据传输方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201908957XA (en) 2017-05-15 2019-10-30 Visa Int Service Ass Techniques for secure blockchain routing
WO2018231255A1 (en) 2017-06-16 2018-12-20 Visa International Service Association Blockchain network interaction controller
EP3445009B1 (en) * 2017-08-17 2020-09-23 Nokia Solutions and Networks Oy Selection of network routing topology
CN109639550B (zh) * 2018-12-06 2022-02-18 北京磁云数字科技有限公司 一种多区块链网络组网方法、装置及系统
US20200213215A1 (en) * 2019-01-02 2020-07-02 Hewlett Packard Enterprise Development Lp Access device blockchain network systems and methods
US20200236031A1 (en) * 2019-01-23 2020-07-23 Hewlett Packard Enterprise Development Lp Blockchain Routing Protocols
US20200236032A1 (en) * 2019-01-23 2020-07-23 Hewlett Packard Enterprise Development Lp Blockchain Routing Protocols
JP6811339B2 (ja) * 2019-03-27 2021-01-13 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
CN110535697B (zh) * 2019-08-22 2021-05-11 杭州趣链科技有限公司 一种均衡区块链跨域广播网络负载的方法
CN110650189B (zh) 2019-09-20 2022-01-18 深圳供电局有限公司 一种基于中继的区块链的交互系统及方法
CN110751475A (zh) * 2019-10-24 2020-02-04 杭州趣链科技有限公司 一种区块链交易的跨链方法及系统、设备和存储介质
CN110944058B (zh) * 2019-12-04 2022-03-04 杭州复杂美科技有限公司 区块链内网节点中继连接方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1403934A (zh) * 2001-09-06 2003-03-19 华为技术有限公司 对流媒体服务器实现负载均衡的方法和设备
US20140244746A1 (en) * 2013-02-26 2014-08-28 Red Hat, Inc. Systems and Methods for Message Routing Using Link State Information
CN103475566A (zh) * 2013-07-10 2013-12-25 北京发发时代信息技术有限公司 一种实时消息交换平台及分布式集群组建方法
CN109996306A (zh) * 2017-12-29 2019-07-09 华为技术有限公司 通信方法和通信设备
CN110445882A (zh) * 2019-09-19 2019-11-12 腾讯科技(深圳)有限公司 通信连接方法、装置、计算机设备及存储介质
CN111416808A (zh) * 2020-03-13 2020-07-14 财付通支付科技有限公司 跨区块链的数据互存方法、装置、设备及存储介质
CN111447290A (zh) * 2020-06-12 2020-07-24 支付宝(杭州)信息技术有限公司 区块链网络中的通信方法、业务数据传输方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804358A (zh) * 2021-03-30 2021-05-14 支付宝(杭州)信息技术有限公司 一种基于中继设备网络跨链中转数据的方法和装置
CN112804357A (zh) * 2021-03-30 2021-05-14 支付宝(杭州)信息技术有限公司 一种基于中继设备网络跨链读取数据的方法和装置
CN112804358B (zh) * 2021-03-30 2021-07-23 支付宝(杭州)信息技术有限公司 一种基于中继设备网络跨链中转数据的方法和装置
CN112804357B (zh) * 2021-03-30 2021-08-06 支付宝(杭州)信息技术有限公司 一种基于中继设备网络跨链读取数据的方法和装置
CN113242305A (zh) * 2021-05-13 2021-08-10 杭州趣链科技有限公司 跨链事务处理方法、装置、计算机设备及介质
CN113242305B (zh) * 2021-05-13 2022-11-11 杭州趣链科技有限公司 跨链事务处理方法、装置、计算机设备及介质
CN113342901A (zh) * 2021-08-06 2021-09-03 支付宝(杭州)信息技术有限公司 区块链节点注册至节点集合的方法及装置
WO2023011241A1 (zh) * 2021-08-06 2023-02-09 支付宝(杭州)信息技术有限公司 区块链节点注册至节点集合
CN115297009A (zh) * 2022-07-08 2022-11-04 中电信数智科技有限公司 一种基于区块链分布式网络数字加密一致性优化的方法
CN115297009B (zh) * 2022-07-08 2023-11-17 中电信数智科技有限公司 一种基于区块链分布式网络数字加密一致性优化的方法
WO2024092925A1 (zh) * 2022-10-31 2024-05-10 蚂蚁区块链科技(上海)有限公司 一种加入区块链网络的方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
EP3962002A1 (en) 2022-03-02
EP3962002B1 (en) 2023-04-26
CN112929285B (zh) 2022-05-31
CN111817967B (zh) 2020-12-18
US20210344519A1 (en) 2021-11-04
CN112929285A (zh) 2021-06-08
US11388017B2 (en) 2022-07-12

Similar Documents

Publication Publication Date Title
CN111817967B (zh) 区块链网络的通信优化系统及报文转发方法
US9659075B2 (en) Providing high availability in an active/active appliance cluster
US9088478B2 (en) Methods, systems, and computer readable media for inter-message processor status sharing
US7885180B2 (en) Address resolution request mirroring
US8825867B2 (en) Two level packet distribution with stateless first level packet distribution to a group of servers and stateful second level packet distribution to a server within the group
US8432791B1 (en) Network route injections
US7895345B2 (en) Distributed routing table architecture and design
US8521884B2 (en) Network system and method of address resolution
US7720061B1 (en) Distributed solution for managing periodic communications in a multi-chassis routing system
US10637794B2 (en) Resource subscription method, resource subscription apparatus, and resource subscription system
US9503358B2 (en) Distance-based routing in an information-centric network
KR20090034322A (ko) 랑데뷰 연합 내에서의 근접지간 통신을 위한 방법, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램 제품
CN101263696A (zh) 对来自多宿主主机的数据分组进行路由
US20160316011A1 (en) Sdn network element affinity based data partition and flexible migration schemes
US10454884B2 (en) Terminal and multicast address distribution server
WO2021254173A1 (zh) 一种路由处理方法及相关设备
KR20110063328A (ko) 물리적 인터페이스 질의 및 선택을 갖는 원격 프로지져 로출(rpc) 바인드 서비스
US10904327B2 (en) Method, electronic device and computer program product for searching for node
US20230102122A1 (en) Methods, systems, and computer readable media for identifying alternate delivery endpoints for mobile originated data and monitoring reports in a communications network
US12095656B2 (en) Failure detection and mitigation in an MC-LAG environment
US20140181307A1 (en) Routing apparatus and method
CN106487682B (zh) 一种Diameter信令网路由方法和装置
US20220232071A1 (en) Load balancing systems and methods
CN111835858A (zh) 设备接入方法、设备及系统
US9019964B2 (en) Methods and systems for routing application traffic

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40043754

Country of ref document: HK