CN111935000B - 消息传输方法及装置 - Google Patents

消息传输方法及装置 Download PDF

Info

Publication number
CN111935000B
CN111935000B CN202011021693.4A CN202011021693A CN111935000B CN 111935000 B CN111935000 B CN 111935000B CN 202011021693 A CN202011021693 A CN 202011021693A CN 111935000 B CN111935000 B CN 111935000B
Authority
CN
China
Prior art keywords
node
relay
block chain
target
blockchain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011021693.4A
Other languages
English (en)
Other versions
CN111935000A (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.)
Ant Blockchain Technology Shanghai 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 CN202011021693.4A priority Critical patent/CN111935000B/zh
Publication of CN111935000A publication Critical patent/CN111935000A/zh
Application granted granted Critical
Publication of CN111935000B publication Critical patent/CN111935000B/zh
Priority to EP21179950.7A priority patent/EP3975505B1/en
Priority to US17/362,940 priority patent/US11233849B2/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
    • H04L45/00Routing or path finding of packets in data switching 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
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/20Repeater circuits; Relay circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • 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
    • 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/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本说明书一个或多个实施例提供一种消息传输方法及装置,应用于区块链中继通信网络中的第一中继节点,所述方法包括:根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,以分别生成对应于各个区块链节点的路由策略,且路由策略被组织成树状路由表;在接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息时,根据树状路由表确定区块链中继通信网络中与所述目标区块链节点相连的目标中继节点;通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。

Description

消息传输方法及装置
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种消息传输方法及装置。
背景技术
区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种消息传输方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种消息传输方法,应用于区块链中继通信网络中的第一中继节点,所述方法包括:
根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,以分别生成对应于各个区块链节点的路由策略,所述路由策略中包含相应的区块链节点所属的区块链节点集合和所连接的中继节点;
在接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息时,根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点;其中,所述树状路由表为按照树状结构对所述路由策略进行组织得到,各个路由策略对应于所述树状结构中从根节点至叶子节点的各条路径,每条路径中的叶子节点表征相应路由策略对应的区块链节点且叶子节点的取值为相应区块链节点所连接的中继节点的信息、非叶子节点表征相应路由策略所含的区块链节点集合;
通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。
根据本说明书一个或多个实施例的第二方面,提出了一种消息传输装置,应用于区块链中继通信网络中的第一中继节点,所述装置包括:
注册单元,根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,以分别生成对应于各个区块链节点的路由策略,所述路由策略中包含相应的区块链节点所属的区块链节点集合和所连接的中继节点;
确定单元,在接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息时,根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点;其中,所述树状路由表为按照树状结构对所述路由策略进行组织得到,各个路由策略对应于所述树状结构中从根节点至叶子节点的各条路径,每条路径中的叶子节点表征相应路由策略对应的区块链节点且叶子节点的取值为相应区块链节点所连接的中继节点的信息、非叶子节点表征相应路由策略所含的区块链节点集合;
传输单元,通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种区块链节点与区块链中继通信网络的交互示意图。
图2是一示例性实施例提供的一种消息传输场景的示意图。
图3是一示例性实施例提供的一种消息传输方法的流程图。
图4是一示例性实施例提供的一种树状路由表的示意图。
图5是一示例性实施例提供的一种结合角色类型的树状路由表的示意图。
图6-7是一示例性实施例提供的一种对中继节点进行集合划分的示意图。
图8是一示例性实施例提供的一种设备的结构示意图。
图9是一示例性实施例提供的一种消息传输装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是一示例性实施例提供的一种区块链节点与区块链中继通信网络的交互示意图。如图1所示,假定区块链中继通信网络包含中继11、中继12、中继13和中继14等若干中继节点。以中继11为例,该中继11可以通过网关101与区块链网络中的节点21相连;类似地,其他中继节点也可以与区块链网络中的其他区块链节点相连。网关101用于协助节点21接入区块链中继通信网络,该网关101在逻辑上相当于区块链网络中的一个区块链节点,但该网关101本身并不参与区块链共识,这样节点21可以通过区块链网络所采用的通信协议与该网关101进行通信,并且该网关101不会对区块链网络中的共识等过程产生负面影响。网关101本质上是节点21接入区块链中继通信网络的适配程序,该适配程序可以部署在节点21上,也可以部署在中继11上,还可以部署在独立于中继11和节点21的另一设备中,本说明书并不对此进行限制。
区块链网络中包含若干区块链节点,区块链节点之间的需要实现诸如共识、交易传输、区块同步等通信操作。在相关技术中,各个区块链节点之间直接采用P2P(Peer toPeer,点对点)技术进行通信,以传输交易、区块等,但由于各种网络因素导致通信时延高、稳定性差,无法满足应用需求。因此,类似于上述的节点21,每个区块链节点都可以分别接入区块链中继通信网络中的中继节点,这样区块链节点之间就可以通过区块链中继通信网络来实现通信。由于区块链中继通信网络是面向区块链实时传输的骨干中继通信网络,各个中继节点之间能够通过高QoS保障的优质带宽进行通信交互,因而由区块链中继通信网络接管区块链节点之间通信的中间链路,能够降低通信时延、提高稳定性,从而显著提升区块链节点之间的通信质量。
区块链中继通信网络可以适用于各种类型的区块链网络,包括公有链、私有链和联盟链等。譬如,应用于公有链的区块链中继通信网络主要包括Falcon、Fast BitcoinRelay Network(FBRN)、Fast Internet Bitcoin Relay Engine(FIBRE)等,而应用于联盟链的区块链中继通信网络主要包括BloXRoute、Blockchain Transmission Network (BTN)等。但是,相关技术中的上述区块链中继通信网络只能够在区块链节点之间的通信过程中起到中继作用,与未使用区块链中继通信网络时采用的P2P传输机制并没有本质差异。
以图2所示的消息传输场景为例。假定区块链网络中的节点21与区块链中继通信网络中的中继11相连、节点22与中继12相连、节点23与中继13相连、节点24-25与中继14相连;其中,为了便于理解,此处省去了前文所述的网关(如网关101)。当节点21需要向节点22和节点24发送消息时,节点21首先将消息发送至中继11,而中继11将该消息分别转发至中继12、中继13,中继12一方面将该消息转发至节点22、另一方面将该消息转发至中继14,中继13一方面将该消息转发至节点23、另一方面将该消息转发至中继14,中继14将该消息转发至节点24和节点25。那么,最终节点22和节点24收到的来自节点21的消息,但是节点23和节点25等也同样收到了该消息,而中继14向节点25转发消息的操作、中继11向中继13转发消息的操作、中继13分别向中继14和节点23转发消息的操作都并非必要,这些操作造成了对通讯资源的浪费。
为了节省通讯资源,通过区块链中继通信网络实现更为高效的通信过程,本说明书提供了新的消息传输方案。
图3是一示例性实施例提供的一种消息传输方法的流程图。如图3所示,该方法应用于区块链中继通信网络中的第一中继节点,该方法可以包括:
步骤302,根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,以分别生成对应于各个区块链节点的路由策略,所述路由策略中包含相应的区块链节点所属的区块链节点集合和所连接的中继节点。
区块链中继通信网络中可以在控制面和数据面上实现分层,可以把网络数据的转发控制策略和数据传输过程分离,使得转发控制策略可自由定义,而数据传输也能够更加通用和高效。对于区块链中继通信网络而言,控制面可以理解为消息路由的策略,而数据面是指区块链消息在区块链中继通信网络中的传输。而区块链节点通过提交注册请求,可以根据应用(或业务)上的需求而自由配置自身所属的区块链节点集合,进而调整与该区块链节点相关的消息路由。
通过上述方式,区块链消息在区块链中继通信网络中的传输过程得以优化。仍以上文所述的节点21~25为例:假定节点21希望将区块链消息发送至节点22和节点24,如果节点22和节点24预先通过发送注册请求而加入了同一区块链节点集合,那么节点21只要将该区块链消息的目标对象标注为该区块链节点集合,就可以确保区块链中继通信网络仅将该区块链消息发送至归属于该区块链节点集合的节点22和节点24,比如节点21将区块链消息发送至中继11、中继11将该区块链消息转发至中继12、中继12分别将区块链消息转发至节点22和中继14,中继14将该区块链消息转发至节点24,而避免将该区块链消息发送至其他的中继节点和区块链节点,以避免通信资源的浪费。下文会针对区块链消息在区块链中继通信网络中的传输过程进行详细描述。
如果注册请求中包含集合标识,中继节点可以将发起该注册请求的区块链节点注册至该集合标识对应的区块链节点集合中;其中,如果该集合标识对应的区块链节点集合事先已经创建,那么相当于将该区块链节点加入该区块链节点集合,如果该集合标识对应的区块链节点集合事先并未创建,那么相当于创建该区块链节点集合,并将该区块链节点加入该区块链节点集合。
如果注册请求中未包含集合标识,中继节点可以将发起注册请求的区块链节点注册至默认区块链节点集合。默认区块链节点集合可以包括发起注册请求的区块链节点所属区块链网络中的所有区块链节点;或者,默认区块链节点集合可以为其他预定义的区块链节点集合,这取决于区块链中继通信网络采用的预定义策略。
在不考虑区块链节点加入的区块链节点集合时,该区块链节点在区块链中继通信网络中对应的路由策略仅涉及该区块链节点的节点ID和与该区块链节点相连的中继节点的中继ID,比如图2中的节点21对应的路由策略为“节点21-中继11”、节点22对应的路由策略为“节点22-中继12”等。而在考虑了区块链节点加入的区块链节点集合后,该区块链节点在区块链中继通信网络中对应的路由策略中会增加与该区块链节点集合相关的信息。比如,当节点21加入了区块链节点集合SID1时,该节点21对应的路由策略可以由上述的“节点21-中继11”更新为“SID1/节点21-中继11”,表明该节点21归属于区块链节点集合SID1。
同一区块链节点可以根据应用需求而加入一个或多个区块链节点集合,即不同区块链节点集合所含的区块链节点可能存在重叠,比如区块链节点集合C1可以包括节点21、节点22和节点23,区块链节点集合C2可以包括节点22、节点23、节点24和节点25,那么节点22和节点23就同时归属于这2个区块链节点集合C1和C2。同一区块链节点分别加入多个区块链节点集合时,会相应产生多条路由策略,比如上述的节点21可以分别加入区块链节点集合SID1和区块链节点集合SID2,此时该节点21可以存在2条对应的路由策略,分别为对应于区块链节点集合SID1的“SID1/节点21-中继11”、对应于区块链节点集合SID2的“SID2/节点21-中继11”。
区块链节点集合之间可以存在一定的层级关系,基于该层级关系以及区块链节点所属的区块链节点集合、区块链节点与中继节点之间的连接关系,可以将各个区块链节点在区块链中继通信网络中对应的路由策略形成一树状结构,即树状路由表。树状路由表为按照树状结构对路由策略进行组织得到,各个路由策略对应于树状结构中从根节点至叶子节点的各条路径,每条路径中的叶子节点表征相应路由策略对应的区块链节点且叶子节点的取值为相应区块链节点所连接的中继节点的信息、非叶子节点表征相应路由策略所含的区块链节点集合。例如图4所示,假定节点21和节点22均归属于区块链节点集合SID1,节点23、节点24和节点25均归属于区块链节点集合SID2,而区块链节点集合SID1和区块链节点集合SID2均归属于区块链节点集合CID1(因此,节点21~25实际上均归属于区块链节点集合CID1),因此区块链节点集合CID1在该树状路由表中对应于根节点41,区块链节点集合SID1和区块链节点集合SID2在该树状路由表中分别对应于根节点41的子节点42-43,节点21和节点22在该树状路由表中分别对应于节点42的子节点44-45,节点23、节点24和节点25在该树状路由表中分别对应于节点43的子节点46~48,且节点44~48为该树状路由表的叶子节点,而这些叶子节点的取值为相连的中继节点的中继ID,比如节点21与中继11相连,因而叶子节点44的取值为中继11,等等。
需要指出的是:除了可以用每条路径中的叶子节点表征相应路由策略对应的区块链节点、叶子节点的取值表征相应区块链节点所连接的中继节点的信息、非叶子节点表征相应路由策略所含的区块链节点集合,实际上也可以认为每条路径中的叶子节点表征中继节点(即相应路由策略对应的区块链节点所连接的中继节点),那么紧邻该叶子节点的非叶子节点表征相应路由策略对应的区块链节点、其他非叶子节点表征相应路由策略所含的区块链节点集合。譬如在图4中,可以认为中继11、中继12、中继13、中继14为叶子节点,而节点21~节点25分别为对应路径上紧邻叶子节点的非叶子节点,其他非叶子节点分别为根节点41、子节点42-43等。
当然,图4所示的树状路由表是逻辑层面的路由关系,中继节点实际在记录这些路由关系时往往采用其他形式。例如,对于每个区块链节点而言,中继节点可以按照从根节点至该区块链节点对应的叶子节点的路径,生成该区块链节点对应的路由策略,并通过预定义的分隔符对相邻节点予以分隔,那么节点21对应的路由策略可以为CID1/SID1/Node1:tn1,其中Node1为节点21的节点ID、tn1为中继11的中继ID。类似地,节点23对应的路由策略可以为CID1/SID2/Node3:tn3,其中Node3为节点23的节点ID、tn3为中继13的中继ID,等等。
通过在路由策略中对区块链节点所处的整条路径上的节点予以描述,使得低层级的区块链节点集合的集合标识可以更加灵活。例如,在上述的区块链节点集合SID1和SID2的基础上,进一步包含了下一层级的区块链节点集合,比如归属于区块链节点集合SID1的区块链节点集合1、归属于区块链节点集合SID2的区块链节点集合2,那么即便区块链节点集合1和区块链节点集合2采用相同的集合标识,也可以通过区块链节点集合SID1和SID2之间的差异予以区分。
步骤304,在接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息时,根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点。
第一中继节点可以从相连的区块链节点处接收到上述区块链消息,并通过本说明书的技术方案传输该区块链消息,比如第一中继节点仅将该区块链消息转发至目标中继节点,而并不转发至其他的中继节点。当然,第一中继节点也可以是从区块链中继通信网络中的其他中继节点处接收到上述区块链消息,此时第一中继节点可能是目标中继节点之一,或者第一中继节点也可能并非目标中继节点,但需要通过第一中继节点将区块链消息转发至目标中继节点。譬如在图2所示的实施例中,假定节点21希望将区块链消息发送至目标区块链节点集合,该目标区块链节点集合的成员为节点24:中继11首先从节点21处收到区块链消息,并确定出目标中继节点为与节点24相连的中继14,且中继11与中继14之间的路由转发路径为“中继11-中继12-中继14”,因此中继11将该区块链消息转发至中继12;中继12收到区块链消息后,发现目标中继节点为中继14,因此中继12将区块链消息转发至中继14;中继14收到区块链消息后,发现目标中继节点为自己、目标区块链节点为节点24,因此中继14将区块链消息转发至节点24。
本说明书中的目标区块链节点为区块链节点在区块链消息中所指示的消息接收方,第一中继节点在收到该区块链消息后,可以通过区块链消息中记载的标识信息来确定目标区块链节点。区块链消息中包含的标识信息可以为节点标识或集合标识,或者同时包含节点标识和集合标识。
节点标识可以包括目标区块链节点所属的区块链节点集合的标识和该目标区块链节点的标识。比如在图4所示的实施例中,如果希望将节点23作为目标区块链节点,那么该节点23对应的节点标识可以由其所属的区块链节点集合的标识“CID1/SID2”和该节点23自身的节点ID“Node3”进行组合,譬如组合后的节点标识可以为“CID1/SID2/Node3”。通过在节点标识中同时包含了节点23自身的节点ID和所属的区块链节点集合的标识,那么即便其他区块链节点集合中存在节点ID为“Node3”的另一区块链节点,也可以明确与节点23进行区分。当然,如果“Node3”可以唯一对应于节点23,那么也可以直接将“Node3”作为节点23对应的节点标识。
集合标识为目标区块链节点集合的标识。比如上述的标识“CID1/SID2”即为节点23所属的区块链节点集合SID2对应的标识。如前所述,区块链节点集合可能包含一个或多个已注册的区块链节点。通常,尤其是区块链节点的数量较多或者区块链节点集合内的成员容易发生变化时,通过区块链节点集合的方式来定义路由策略,并在区块链消息中添加相应的集合标识,可以降低区块链消息的复杂度。
除了将区块链节点划分至各个区块链节点集合之外,还可以进一步对区块链节点集合所含的区块链节点进行划分,以实现更细粒度的路由配置和消息传输。例如,可以将区块链节点集合所含的区块链节点划分为若干角色类型,比如根据区块链节点实现的不同功能进行划分为共识节点、记账节点等角色类型,再比如根据应用需求或其他维度划分为不同的角色类型,本说明书并不对此进行限制。那么,区块链节点发起的上述注册请求可以包含角色类型信息,而中继节点可以据此记录各个区块链节点在所属区块链节点集合中对应的角色类型,并将每个区块链节点在区块链节点集合中所属的角色类型记录至对应的路由策略中。相应地,第一中继节点在收到区块链消息后,可以读取区块链消息中包含的标识信息(如前所述,包括节点标识和/或集合标识)和目标角色类型,并根据树状路由表确定与标识信息和目标角色类型相匹配的路由策略,并将确定出的路由策略所含的中继节点作为目标中继节点。以上述的树状路由表为例,假定区块链节点集合SID2中划分出了角色1和角色2,那么图4所示的树状路由表可以更新为如图5所示:在区块链节点集合SID2对应的节点43下方可以添加一个新的层级,该层级包括对应于角色1的节点51、对应于角色2的节点52,如果区块链节点23属于角色1、区块链节点47-48属于角色2,则区块链节点23对应的节点46可以作为节点51的子节点、区块链节点24-25对应的节点47-48可以作为节点52的子节点,而区块链节点23对应的路由策略可以更新为CID1/SID2/Role1/Node3:tn3,其中Role1代表角色1、Node3为区块链节点23的节点ID、tn3为中继13的中继ID。类似地,区块链节点24对应的路由策略可以更新为CID1/SID2/Role2/Node4:tn4,其中Role2代表角色2、Node4为区块链节点24的节点ID、tn4为中继14的中继ID。
相应地,在考虑角色类型的情况下,除了需要在区块链消息中指示目标区块链节点集合之外,区块链节点还需要在区块链消息中指示目标角色类型,而第一中继节点在收到上述的区块链消息后,通过读取该区块链消息中指示的标识信息(如前所述,包括节点标识和/或集合标识)和目标角色类型,可以根据树状路由表确定与标识信息和目标角色类型相匹配的路由策略,并将确定出的路由策略所含的中继节点作为目标中继节点。那么,对于集合标识对应的区块链节点集合而言,已注册至该区块链节点集合且对应于该目标角色类型的区块链节点会被确定为目标区块链节点,而已注册至该区块链节点集合但未对应于该目标角色类型的区块链节点则无法收到上述的区块链消息。
第一中继节点在根据树状路由表确定区块链中继通信网络中与目标区块链节点相连的目标中继节点的过程中,若第一中继节点从相连的区块链节点处接收到上述的区块链消息,则第一中继节点可以查询与该第一中继节点相连的区块链节点的信息和上述的树状路由表,直至确定出所有的目标区块链节点分别连接的目标中继节点。以图2为例,假定第一中继节点为中继11,该中继11从节点21处接收到区块链消息后,可以读取该区块链消息所含的标识信息。中继11记录了与自身相连的区块链节点的信息,因而可以据此确定上述标识信息是否对应于与自身相连的区块链节点:如果上述标识信息所指示的区块链节点均与中继11相连,那么中继11可以确定自己是所有目标区块链节点对应的目标中继节点,而无需继续查询树状路由表,并且中继11可以将区块链消息转发至上述标识信息对应的目标区块链节点;如果上述标识信息所指示的区块链节点并未与中继11相连,或者仅部分区块链节点与中继11相连,就表明存在至少一个目标区块链节点未与中继11相连,因而中继11需要查询树状路由表以确定该至少一个目标区块链节点对应的目标中继节点,譬如根据树状路由表查询到的目标区块链节点为节点24、对应的目标中继节点为中继14时,中继11将区块链消息转发至中继14,以使得中继14进一步转发至节点24。
区块链中继通信网络中所含的中继节点,可以划分为多个中继节点集合,每个中继节点集合包含一个或多个中继节点,每个中继节点仅属于一个中继节点集合。比如在图6所示的实施例中,对于中继1~中继8共8个中继节点,可以将中继1~中继4划分至中继集合1、将中继5~中继8划分至中继集合2。当然,每个中继节点属于哪个中继节点集合、每个中继节点集合所含中继节点的数量等,均可以根据实际需求进行设定,譬如可以将部署在同一地点或者部署位置相近的中继节点划分至同一中继节点集合等,本说明书并不对此进行限制。
同一中继节点集合中的中继节点可以进一步划分为主节点和从节点。一个中继节点集合中通常存在一个主节点,剩余的中继节点为从节点。主节点用于实现跨中继节点集合的通讯交互,以及与该主节点所处的中继节点集合内的从节点进行通讯交互,而从节点通常仅与所处的中继节点集合内的主节点进行通讯交互。因此,当第一中继节点从其他中继节点收到区块链消息、而非从区块链节点处直接收到区块链消息时,可能存在多种情况:
若第一中继节点为所属中继节点集合内的主节点,且上述的其他中继节点为另一中继节点集合中的第二中继节点,则第一中继节点可以查询与该第一中继节点相连的区块链节点的信息和树状路由表,直至确定出第一中继节点所属中继节点集合中所有与目标区块链节点相连的目标中继节点。如图7所示,假定第一中继节点为中继1、第二中继节点为中继5,中继5可以在收到节点7发出的区块链消息后,通过如前所述的方式确定出目标区块链节点为节点1、目标中继节点为中继1,因而将该区块链消息转发至中继1。或者,中继5可以确定出目标区块链节点为节点3、目标中继节点为中继2,但是由于中继2处于中继集合1、中继1为中继集合1的主节点,因而中继5将区块链消息转发至中继1,使得中继1进一步确定出中继集合1内的目标中继节点(如中继2)。
若第一中继节点为所属中继节点集合内的从节点,且上述的其他中继节点为所属中继节点集合内的主节点,则第一中继节点查询与该第一中继节点相连的区块链节点的信息,以确定第一中继节点是否属于目标区块链节点。如图7所示,假定第一中继节点为中继2、第二中继节点为中继1,中继1为主节点、中继2为从节点,中继1在获得区块链消息后确定中继2属于相应的目标中继节点,那么中继1可以将该区块链消息转发至中继2,而中继2只需要关注于自身是否为目标中继节点,因而只需要查询与自身相连的区块链节点的信息,并在确定自身为目标中继节点且确定出与自身相连的目标区块链节点后,将区块链消息转发至确定出的该目标区块链节点。
在诸如图2所示的实施例中,无论是区块链节点还是中继节点的数量都很有限,中继节点11~14可以分别维护全量路由表,该全量路由表中包含各个区块链节点对应的所有路由策略,而中继节点11~14能够快速地通过全量路由表确定目标区块链节点和与其相连的目标中继节点。但是,如果路由策略的数量很大,仅通过全量路由表进行转发区块链消息时,中继节点就可能花费较长的时间,造成区块链消息的转发效率不高。
因此,本说明书提出了两个层级的路由表设计方案,该方案与上述的划分中继节点集合的方案相关。例如,可以针对每个中继节点集合分别创建相应的一级路由表,该一级路由表用于记录与该中继节点集合内的所有中继节点分别相连的区块链节点对应的路由策略,而不包含与其他中继节点集合内的中继节点相连的区块链节点对应的路由策略。以图7为例,由于节点1~节点6与中继集合1内的中继1~中继4相连、节点7~节点10与中继集合2内的中继5~中继8相连,因而在中继集合1对应的一级路由表中,仅包含节点1~节点6对应的路由策略、不包含节点7~节点10对应的路由策略,而在中继集合2对应的一级路由表中,仅包含节点7~节点10对应的路由策略、不包含节点1~节点6对应的路由策略。
各个中继节点除了根据自身所处的中继节点集合而维护相应的一级路由表之外,还可以维护二级路由表。二级路由表可以为上述的全量路由表,即用于记录与所有中继节点分别相连的区块链节点对应的路由策略,此时所有中继节点维护的二级路由表相同,比如在图7所示的实施例中,二级路由表可以包含节点1~节点10分别对应的路由策略;或者,二级路由表也可以是在上述的全量路由表的基础上排除一级路由表所含的路由策略,此时同一中继节点集合内的中继节点所维护的二级路由表相同、不同中继节点集合内的中继节点所维护的二级路由表不同,且每一中继节点维护的一级路由表与二级路由表能够组合成上述的全量路由表。以图7为例,中继1~中继4所维护的二级路由表可以包含节点7~节点10分别对应的路由策略,中继5~中继8所维护的二级路由表可以包含节点1~节点6分别对应的路由策略。
那么,结合上述的一级路由表和二级路由表,使得对于步骤304所述的第一中继节点而言,相应的一级路由表用于记录与第一中继节点所属的中继节点集合内的所有中继节点分别相连的区块链节点对应的路由策略,二级路由表用于记录与区块链中继通信网络中的所有中继节点分别相连的区块链节点对应的路由策略、或者与区块链中继通信网络中未加入上述中继节点集合(即第一中继节点所属的中继节点集合)的剩余中继节点分别相连的区块链节点对应的路由策略。
第一中继节点在从相连的区块链节点处接收到上述的区块链消息时,依次查询与第一中继节点相连的区块链节点的信息、一级路由表和二级路由表,直至确定出所有的目标区块链节点分别连接的目标中继节点。其中,与第一中继节点相连的区块链节点的信息可以为这些区块链节点对应的路由策略,或者第一中继节点也可以通过其他方式维护这些区块链节点的信息。
在查询过程中,如果第一中继节点无法确定是否已经查询出所有的目标中继节点,那么第一中继节点需要依次遍历与第一中继节点相连的区块链节点的信息、一级路由表和二级路由表,并将所有查询到的相匹配的中继节点作为上述的目标中继节点。以图7为例,假定第一中继节点为中继1,该中继1从节点1处接收到上述的第一区块链消息,且该第一区块链消息的目标区块链节点为节点2、节点3、节点7和节点8。第一区块链消息中可以包含目标区块链节点集合的集合标识,譬如该集合标识为SID1,而节点2、节点3、节点7和节点8预先注册至区块链节点集合SID1中;再譬如,集合标识可以为CID1/SID1,即目标区块链节点集合为区块链节点集合CID1所含的子集合SID1,而节点2、节点3、节点7和节点8预先注册至该子集合SID1中。第一区块链消息中也可以包含目标区块链节点的节点标识,比如上述的节点2、节点3、节点7和节点8对应的节点标识可以分别为Node2、Node3、Node7和Node8。可见,当目标区块链节点的数量较多时,相比于节点标识而言,集合标识可以通过相对更少的内容表达相同的信息(表明哪些区块链节点为目标区块链节点),从而减小第一区块链消息的数据量、提升第一区块链消息的传输效率。相应地,针对收到的第一区块链消息,中继1所实施的处理过程包括:
首先,中继1查询与自身相连的区块链节点的信息,可以查询出节点2为目标区块链节点,并确定自身属于目标中继节点,那么中继1可以直接将第一区块链消息转发至节点2。
然后,中继1继续查询一级路由表,该一级路由表记录了节点1~节点6的路由策略,使得中继1可以查询出节点3为目标区块链节点,并确定与节点3相连的中继2属于目标中继节点,那么中继1可以将第一区块链消息转发至中继2,以使得中继2将该第一区块链消息转发至节点3。
最后,中继1继续查询二级路由表,该二级路由表至少记录了节点7~节点10的路由策略,使得中继1可以查询出节点7和节点8为目标区块链节点,并确定与节点7、节点8分别相连的中继5、中继6属于目标中继节点,那么中继1可以将第一区块链消息转发至中继5、中继6,以使得中继5、中继6分别将第一区块链消息转发至节点7、节点8。
可见,对于任一中继节点而言,在从自身连接的区块链节点或者其他中继节点处收到任一区块链消息时,如果该中继节点自身为目标中继节点,该中继节点可以直接将收到的区块链消息传输至与自身相连的目标区块链节点,比如上述的中继1将第一区块链消息转发至节点2;而不论该中继节点自身是否为目标中继节点,如果该中继节点确定存在区别于自身的目标中继节点,该中继节点可以将收到的区块链消息传输至该目标中继节点,以由该目标中继节点转发至相连的目标区块链节点,比如上述的中继1将第一区块链消息转发至中继2、中继5和中继6。
以第一中继节点为例,当第一中继节点希望将第一区块链消息转发至区别于自身的某一目标中继节点时,第一中继节点可以直接将第一区块链消息转发至该目标中继节点,比如上述的中继1可以直接将第一区块链消息转发至中继2、中继5和中继6。
如前所述,第一中继节点是否为所属中继节点集合内的主节点,会影响该第一中继节点在收到区块链消息后的处理方式,那么在前述方案的基础上进一步结合两个层级的路由表设计方案时,第一中继节点的处理方式包括:
在第一中继节点为所属中继节点集合内的主节点,且第一中继节点从另一中继节点集合中的第二中继节点处接收到针对所述目标区块链节点集合中的目标区块链节点发送的第二区块链消息时,该第一中继节点需要查询与第一中继节点相连的区块链节点的信息和一级路由表,直至确定出自身所处的中继节点集合中所有与目标区块链节点相连的目标中继节点,以通过目标中继节点将第二区块链消息传输至目标区块链节点。仍以图7为例,假定中继5为第一中继节点,该中继5作为中继集合2的主节点且收到中继2转发的区块链消息后,中继5需要查询与自身相连的区块链节点的信息和一级路由表;如果节点7和节点8为目标区块链节点,那么中继5可以确定自身和中继6分别为目标中继节点,从而一方面中继5将区块链消息转发至节点7,另一方面中继5将区块链消息转发至中继6、以由中继6转发至节点8。在该场景下,由于中继5是从另一中继节点集合收到区块链消息,因此中继5只需要关注于自身所处的中继集合2中的目标中继节点即可,而无需关注其他中继节点集合中的目标中继节点,故而不需要查询二级路由表;而对于其他的中继节点集合,譬如当存在其他的中继集合3、中继集合4等中继节点集合时,如果这些中继节点集合中包含目标中继节点,那么会由中继2将区块链消息转发至这些中继节点集合中的主节点,与中继2将区块链消息转发至中继5的过程类似,此处不再赘述。
在第一中继节点为所属中继节点集合内的从节点,且第一中继节点从所属中继节点集合内的主节点处接收到针对目标区块链节点集合中的目标区块链节点发送的第三区块链消息时,该第一中继节点可以确定与自身相连的目标区块链节点,并将第三区块链消息转发至确定出的目标区块链节点。仍以图7为例,假定中继6为第一中继节点,该中继6为中继集合2内的从节点,当作为主节点的中继5确定中继6为目标中继节点时,该中继6从中继5处收到区块链消息,然后中继6在自身连接的区块链节点中确定是否存在目标区块链节点,比如中继6可以确定节点8为目标区块链节点,那么中继6可以将收到的区块链消息转发至该节点8。中继6不需要关注于中继集合2中的其他中继节点是否为目标中继节点,这由作为主节点的中继5通过查询一级路由表来确定,因此中继6并不需要查询一级路由表;当然,中继6同样不需要关注其他中继节点集合内的目标中继节点,因而同样不需要查询二级路由表。
在查询过程中,如果第一中继节点能够确定是否已经查询出所有的目标中继节点,比如第一区块链消息中标注了目标区块链节点的总数量,那么在已查询出的目标区块链节点的数量达到该总数量时,第一中继节点可以确定已查询出的区块链节点为所有的目标区块链节点、相应的中继节点为所有的目标中继节点,那么此时无论是否还存在尚未查询的路由策略,第一中继节点都无需继续查询;反之,如果已查询出的目标区块链节点的数量小于上述的总数量则需要继续查询。因此,第一中继节点可能仅需要查询与第一中继节点相连的区块链节点的信息(甚至仅需查询部分信息)而无需继续查询一级路由表和二级路由表,或者可能仅需要查询与第一中继节点相连的区块链节点的信息和一级路由表(可能只需要查询一级路由表的一部分)而无需继续查询二级路由表,或者可能需要查询与第一中继节点相连的区块链节点的信息、一级路由表和二级路由表(可能只需要查询二级路由表的一部分)。
第一中继节点还可以通过其他方式确定是否已经查询出所有的目标中继节点。例如,区块链节点在生成区块链消息时,可以对区块链消息中的类型字段进行配置:当类型字段为第一值时,表明该区块链消息所含的目标字段为目标区块链节点集合的集合标识,当类型字段为第二值时,表明该区块链消息所含的目标字段为目标区块链节点的节点标识。由于区块链节点可以随时注册至区块链节点集合或者从中退出,因而第一中继节点在读取类型字段的取值为第一值时,无法确定目标区块链节点的信息(节点标识、节点数量等),需要遍历所有的路由策略;而第一中继节点在读取类型字段的取值为第二值时,可以直接读取各个目标区块链节点的节点标识,因而可以确定目标区块链节点的信息(节点标识、节点数量等),并用于在查询过程中确定是否已经查询出所有的目标中继节点。
步骤306,通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。
第一中继节点在确定出目标中继节点后:如果该第一中继节点自身属于目标区块链节点,那么该第一中继节点根据与自身相连的目标区块链节点,将区块链消息传输至该目标区块链节点;如果该第一中继节点并非目标区块链节点,或者除了该第一中继节点之外还存在其他的目标中继节点,那么该第一中继节点将区块链消息传输至目标中继节点,以由该目标中继节点转发至相连的目标区块链节点。第一中继节点将区块链消息传输至目标中继节点时,如果该第一中继节点可以直接与目标中继节点相连,则可以直接将区块链消息传输至该目标中继节点,如果该第一中继节点并未直接与目标中继节点相连,则可以规划自身与该目标中继节点之间的传输路径,并将区块链消息发送至该传输路径中位于下一跳的中继节点,使得该区块链消息能沿该传输路径到达目标中继节点。
综上所述,本说明书的技术方案可以使得区块链中继通信网络内的中继节点在传输区块链消息的过程中,实现有目标性的消息传输,其目标在于将区块链消息传输至目标中继节点,并进而由目标中继节点传输至作为目标对象的区块链节点,而不会在中继节点之间或者中继节点与区块链节点之间产生不必要的数据交互,消除了相关技术中基于P2P技术进行消息传输时的盲目性,加快了区块链消息的传输速度,降低了区块链中继通信网络的资源消耗。
图8是一示例性实施例提供的一种设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行,在逻辑层面上形成消息传输装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图9,在软件实施方式中,该消息传输装置应用于区块链中继通信网络中的第一中继节点,可以包括:
注册单元91,根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,以分别生成对应于各个区块链节点的路由策略,所述路由策略中包含相应的区块链节点所属的区块链节点集合和所连接的中继节点;
确定单元92,在接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息时,根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点;其中,所述树状路由表为按照树状结构对所述路由策略进行组织得到,各个路由策略对应于所述树状结构中从根节点至叶子节点的各条路径,每条路径中的叶子节点表征相应路由策略对应的区块链节点且叶子节点的取值为相应区块链节点所连接的中继节点的信息、非叶子节点表征相应路由策略所含的区块链节点集合;
传输单元93,通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。
可选的,注册单元91具体用于:
在所述注册请求中包含集合标识的情况下,将发起所述注册请求的区块链节点注册至所述集合标识对应的区块链节点集合中;
在所述注册请求中未包含集合标识的情况下,将发起所述注册请求的区块链节点注册至默认区块链节点集合。
可选的,确定单元92接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息,包括:
从相连的区块链节点处接收到所述区块链消息;或者,
从所述区块链中继通信网络中的其他中继节点处接收到所述区块链消息。
可选的,确定单元92具体用于:
在从相连的区块链节点处接收到所述区块链消息时,依次查询与第一中继节点相连的区块链节点的信息和所述树状路由表,直至确定出所有的目标区块链节点分别连接的目标中继节点;
在第一中继节点为所属中继节点集合内的主节点,且所述其他中继节点为另一中继节点集合中的第二中继节点时,依次查询与第一中继节点相连的区块链节点的信息和所述树状路由表,直至确定出第一中继节点所属中继节点集合中所有与所述目标区块链节点相连的目标中继节点;
在第一中继节点为所属中继节点集合内的从节点,且所述其他中继节点为所属中继节点集合内的主节点时,查询与第一中继节点相连的区块链节点的信息,以确定第一中继节点是否属于目标区块链节点。
可选的,
所述树状路由表包括一级路由表和二级路由表,所述一级路由表用于记录与第一中继节点所属的中继节点集合内的所有中继节点分别相连的区块链节点对应的路由策略,所述二级路由表用于记录与所述区块链中继通信网络中的所有中继节点分别相连的区块链节点对应的路由策略、或者与所述区块链中继通信网络中未加入所述中继节点集合的剩余中继节点分别相连的区块链节点对应的路由策略;
确定单元92具体用于:
在从相连的区块链节点处接收到所述区块链消息时,依次查询与第一中继节点相连的区块链节点的信息、一级路由表和二级路由表,直至确定出所有的目标区块链节点分别连接的目标中继节点;
在第一中继节点为所属中继节点集合内的主节点,且所述其他中继节点为另一中继节点集合中的第二中继节点时,依次查询与第一中继节点相连的区块链节点的信息和所述一级路由表,直至确定出第一中继节点所属中继节点集合中所有与所述目标区块链节点相连的目标中继节点;
在第一中继节点为所属中继节点集合内的从节点,且所述其他中继节点为所属中继节点集合内的主节点时,查询与第一中继节点相连的区块链节点的信息,以确定第一中继节点是否属于目标区块链节点。
可选的,确定单元92具体用于:
读取所述区块链消息中包含的标识信息,所述标识信息为节点标识和/或集合标识;
根据树状路由表确定与所述标识信息相匹配的路由策略,并将确定出的路由策略所含的中继节点作为所述目标中继节点;
其中,所述节点标识包括所述目标区块链节点所属的区块链节点集合的标识和所述目标区块链节点的标识,所述集合标识为所述目标区块链节点集合的标识。
可选的,所述注册请求还包含角色类型信息,所述角色类型信息用于表征相应区块链节点在所属区块链节点集合中对应的角色类型,且所述角色类型信息被添加至相应区块链节点对应的路由策略中;
确定单元92具体用于:
读取所述区块链消息中包含的标识信息和目标角色类型,所述标识信息为节点标识和/或集合标识;
根据树状路由表确定与所述标识信息和所述目标角色类型相匹配的路由策略,并将确定出的路由策略所含的中继节点作为所述目标中继节点;
其中,所述节点标识包括所述目标区块链节点所属的区块链节点集合的标识和所述目标区块链节点的标识,所述集合标识为所述目标区块链节点集合的标识。
可选的,传输单元93具体用于:
当第一中继节点为目标中继节点时,将所述区块链消息传输至与第一中继节点相连的目标区块链节点;和/或,
当存在区别于第一中继节点的目标中继节点时,将所述区块链消息传输至所述目标中继节点,以由所述目标中继节点转发至相连的目标区块链节点。
注册单元91,根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中;
确定单元92,在接收到针对目标区块链节点集合发送的区块链消息时,确定已注册至所述目标区块链节点集合的目标区块链节点,以及所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点;
传输单元93,通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。
可选的,注册单元91具体用于:
在所述注册请求中包含集合标识的情况下,将发起所述注册请求的区块链节点注册至所述集合标识对应的区块链节点集合中;
在所述注册请求中未包含集合标识的情况下,将发起所述注册请求的区块链节点注册至默认区块链节点集合。
可选的,所述默认区块链节点集合包括发起所述注册请求的区块链节点所属区块链网络中的所有区块链节点。
可选的,确定单元92具体用于:
从相连的区块链节点处接收到针对目标区块链节点集合发送的区块链消息;或者,
从所述区块链中继通信网络中的其他中继节点处接收到针对目标区块链节点集合发送的区块链消息。
可选的,确定单元92具体用于:
在接收到区块链消息后,从所述区块链消息中读取集合标识;
将所述集合标识对应的区块链节点集合,确定为所述区块链消息对应的目标区块链节点集合。
可选的,
所述装置还包括:记录单元,根据所述注册请求包含的角色类型信息,记录各个区块链节点在所属区块链节点集合中对应的角色类型;
所述确定单元92具体用于:读取所述区块链消息中指示的目标角色类型,并将已注册至所述目标区块链节点集合且对应于所述目标角色类型的区块链节点作为所述目标区块链节点。
可选的,
所述装置还包括:生成单元,生成路由表,所述路由表用于记录各个区块链节点所属的区块链节点集合,以及各个区块链节点与中继节点之间的连接关系;
所述确定单元92具体用于:通过查询所述路由表,确定已注册至所述目标区块链节点集合的目标区块链节点,以及所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点。
可选的,传输单元93具体用于:
将所述区块链消息传输至相连的目标区块链节点;和/或,
将所述区块链消息传输至所述目标中继节点,以由所述目标中继节点转发至相连的目标区块链节点。
可选的,传输单元93还用于:
在接收到针对任意区块链节点发送的区块链消息时,确定所述区块链中继通信网络中与所述任意区块链节点相连的中继节点,并通过确定出的中继节点将所述区块链消息传输至所述任意区块链节点。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (11)

1.一种消息传输方法,应用于区块链中继通信网络中的第一中继节点,所述方法包括:
根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,以分别生成对应于各个区块链节点的路由策略,所述路由策略中包含相应的区块链节点所属的区块链节点集合和所连接的中继节点;
在接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息时,根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点;其中,所述树状路由表为按照树状结构对所述路由策略进行组织得到,各个路由策略对应于所述树状结构中从根节点至叶子节点的各条路径,每条路径中的叶子节点表征相应路由策略对应的区块链节点且叶子节点的取值为相应区块链节点所连接的中继节点的信息、非叶子节点表征相应路由策略所含的区块链节点集合;
通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。
2.根据权利要求1所述的方法,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,包括:
在所述注册请求中包含集合标识的情况下,将发起所述注册请求的区块链节点注册至所述集合标识对应的区块链节点集合中;
在所述注册请求中未包含集合标识的情况下,将发起所述注册请求的区块链节点注册至默认区块链节点集合。
3.根据权利要求1所述的方法,所述接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息,包括:
从相连的区块链节点处接收到所述区块链消息;或者,
从所述区块链中继通信网络中的其他中继节点处接收到所述区块链消息。
4.根据权利要求3所述的方法,所述根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点,包括:
在从相连的区块链节点处接收到所述区块链消息时,查询与第一中继节点相连的区块链节点的信息和所述树状路由表,直至确定出所有的目标区块链节点分别连接的目标中继节点;
在第一中继节点为所属中继节点集合内的主节点,且所述其他中继节点为另一中继节点集合中的第二中继节点时,查询与第一中继节点相连的区块链节点的信息和所述树状路由表,直至确定出第一中继节点所属中继节点集合中所有与所述目标区块链节点相连的目标中继节点;
在第一中继节点为所属中继节点集合内的从节点,且所述其他中继节点为所属中继节点集合内的主节点时,查询与第一中继节点相连的区块链节点的信息,以确定第一中继节点是否属于目标区块链节点。
5.根据权利要求4所述的方法,
所述树状路由表包括一级路由表和二级路由表,所述一级路由表用于记录与第一中继节点所属的中继节点集合内的所有中继节点分别相连的区块链节点对应的路由策略,所述二级路由表用于记录与所述区块链中继通信网络中的所有中继节点分别相连的区块链节点对应的路由策略、或者与所述区块链中继通信网络中未加入所述中继节点集合的剩余中继节点分别相连的区块链节点对应的路由策略;
所述根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点,包括:
在从相连的区块链节点处接收到所述区块链消息时,依次查询与第一中继节点相连的区块链节点的信息、一级路由表和二级路由表,直至确定出所有的目标区块链节点分别连接的目标中继节点;
在第一中继节点为所属中继节点集合内的主节点,且所述其他中继节点为另一中继节点集合中的第二中继节点时,依次查询与第一中继节点相连的区块链节点的信息和所述一级路由表,直至确定出第一中继节点所属中继节点集合中所有与所述目标区块链节点相连的目标中继节点;
在第一中继节点为所属中继节点集合内的从节点,且所述其他中继节点为所属中继节点集合内的主节点时,查询与第一中继节点相连的区块链节点的信息,以确定第一中继节点是否属于目标区块链节点。
6.根据权利要求1所述的方法,所述根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点,包括:
读取所述区块链消息中包含的标识信息,所述标识信息为节点标识和/或集合标识;
根据树状路由表确定与所述标识信息相匹配的路由策略,并将确定出的路由策略所含的中继节点作为所述目标中继节点;
其中,所述节点标识包括所述目标区块链节点所属的区块链节点集合的标识和所述目标区块链节点的标识,所述集合标识为所述目标区块链节点集合的标识。
7.根据权利要求1所述的方法,所述注册请求还包含角色类型信息,所述角色类型信息用于表征相应区块链节点在所属区块链节点集合中对应的角色类型,且所述角色类型信息被添加至相应区块链节点对应的路由策略中;
所述根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点,包括:
读取所述区块链消息中包含的标识信息和目标角色类型,所述标识信息为节点标识和/或集合标识;
根据树状路由表确定与所述标识信息和所述目标角色类型相匹配的路由策略,并将确定出的路由策略所含的中继节点作为所述目标中继节点;
其中,所述节点标识包括所述目标区块链节点所属的区块链节点集合的标识和所述目标区块链节点的标识,所述集合标识为所述目标区块链节点集合的标识。
8.根据权利要求1所述的方法,所述通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点,包括:
当第一中继节点为目标中继节点时,将所述区块链消息传输至与第一中继节点相连的目标区块链节点;和/或,
当存在区别于第一中继节点的目标中继节点时,将所述区块链消息传输至所述目标中继节点,以由所述目标中继节点转发至相连的目标区块链节点。
9.一种消息传输装置,应用于区块链中继通信网络中的第一中继节点,所述装置包括:
注册单元,根据各个区块链节点提交的注册请求,分别将各个区块链节点注册至所述注册请求所指示的区块链节点集合中,以分别生成对应于各个区块链节点的路由策略,所述路由策略中包含相应的区块链节点所属的区块链节点集合和所连接的中继节点;
确定单元,在接收到针对目标区块链节点集合中的目标区块链节点发送的区块链消息时,根据树状路由表确定所述区块链中继通信网络中与所述目标区块链节点相连的目标中继节点;其中,所述树状路由表为按照树状结构对所述路由策略进行组织得到,各个路由策略对应于所述树状结构中从根节点至叶子节点的各条路径,每条路径中的叶子节点表征相应路由策略对应的区块链节点且叶子节点的取值为相应区块链节点所连接的中继节点的信息、非叶子节点表征相应路由策略所含的区块链节点集合;
传输单元,通过所述目标中继节点将所述区块链消息传输至所述目标区块链节点。
10.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-8中任一项所述方法的步骤。
CN202011021693.4A 2020-09-25 2020-09-25 消息传输方法及装置 Active CN111935000B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011021693.4A CN111935000B (zh) 2020-09-25 2020-09-25 消息传输方法及装置
EP21179950.7A EP3975505B1 (en) 2020-09-25 2021-06-17 Message transmission methods and apparatuses
US17/362,940 US11233849B2 (en) 2020-09-25 2021-06-29 Message transmission methods and apparatuses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011021693.4A CN111935000B (zh) 2020-09-25 2020-09-25 消息传输方法及装置

Publications (2)

Publication Number Publication Date
CN111935000A CN111935000A (zh) 2020-11-13
CN111935000B true CN111935000B (zh) 2021-01-08

Family

ID=73335099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011021693.4A Active CN111935000B (zh) 2020-09-25 2020-09-25 消息传输方法及装置

Country Status (3)

Country Link
US (1) US11233849B2 (zh)
EP (1) EP3975505B1 (zh)
CN (1) CN111935000B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157809B (zh) * 2021-04-28 2021-12-31 广东省机场集团物流有限公司 基于区块链侧链的遍历方法、装置和计算机可读存储介质
CN113364693B (zh) * 2021-08-11 2021-10-29 国网电子商务有限公司 一种基于类型属性信息的区块链数据分发方法及系统
CN115022305B (zh) * 2022-05-30 2024-05-03 蚂蚁区块链科技(上海)有限公司 数据传输系统、方法、装置、设备及介质
CN116346711B (zh) * 2023-03-31 2024-04-05 西安电子科技大学 基于行为树的路由协议表征方法、介质及通信方法

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1475927A3 (en) 2003-05-09 2005-12-14 Samsung Electronics Co., Ltd. Apparatus and method for setting up of optimum route using tree-topology
CN102769889B (zh) 2011-05-06 2016-03-16 上海贝尔股份有限公司 确定中继节点的方法和相应的候选中继节点
KR101915473B1 (ko) 2012-06-29 2018-11-06 삼성전자주식회사 간섭 중화를 수행하는 멀티 홉 네트워크에서 대상 송신 노드 및 대상 수신 노드의 페어를 분산적으로 결정하는 방법 및 협력 헤더를 통하여 중앙 집중적으로 결정하는 방법
US8982901B2 (en) 2012-07-22 2015-03-17 Imagination Technologies, Limited Counter based fairness scheduling for QoS queues to prevent starvation
CN103916423A (zh) 2012-12-31 2014-07-09 华为技术有限公司 数据同步方法及设备
CN104753980B (zh) 2013-12-26 2018-04-27 腾讯科技(深圳)有限公司 数据传输方法及相关装置和通信系统
CN105306232A (zh) 2014-06-18 2016-02-03 中兴通讯股份有限公司 一种告警数据处理方法及网络管理设备
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
CN107846718B (zh) 2016-09-18 2021-07-09 华为技术有限公司 数据传输方法及中继节点
US10164983B2 (en) 2017-01-20 2018-12-25 Verizon Patent And Licensing Inc. Distributed authentication for internet-of-things resources
KR101974452B1 (ko) 2017-05-24 2019-05-03 라온시큐어(주) 프로그래밍이 가능한 블록체인과 통합 아이디 기반의 사용자정보 관리 방법 및 시스템
CN107231299A (zh) * 2017-06-07 2017-10-03 众安信息技术服务有限公司 一种链路由及实现区块链跨链通信的系统
EP3639229A4 (en) * 2017-06-16 2020-06-17 Visa International Service Association BLOCK CHAIN NETWORK INTERACTION CONTROL DEVICE
GB201709845D0 (en) * 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method
GB201710283D0 (en) * 2017-06-28 2017-08-09 Nchain Holdings Ltd Computer-implemented system and method
US20190080304A1 (en) 2017-09-12 2019-03-14 Northwestern University On-chain fees in a blockchain distribution network
US10361870B2 (en) * 2017-09-14 2019-07-23 The Toronto-Dominion Bank Management of cryptographically secure exchanges of data using permissioned distributed ledgers
CN107800795A (zh) 2017-10-30 2018-03-13 中国联合网络通信集团有限公司 区块信息的处理方法及装置
CN109996306B (zh) 2017-12-29 2022-02-25 华为技术有限公司 通信方法和通信设备
CN108829749A (zh) 2018-05-24 2018-11-16 深圳前海益链网络科技有限公司 一种基于区块链的对象关联封装存储方法
CN108876947B (zh) * 2018-05-31 2020-07-14 阿里巴巴集团控股有限公司 不停车收费方法及装置、电子设备
CN109039847A (zh) * 2018-08-07 2018-12-18 广州三牛信息科技有限公司 一种利用dmt解决区块链全网消息一致性问题的方法及装置
CN111277549B (zh) 2018-12-05 2022-05-03 杭州希戈科技有限公司 一种采用区块链的安全服务方法与系统
CN109639550B (zh) 2018-12-06 2022-02-18 北京磁云数字科技有限公司 一种多区块链网络组网方法、装置及系统
CN109635165A (zh) 2018-12-06 2019-04-16 北京磁云数字科技有限公司 基于树形区块链网络的数据汇总方法、装置、设备及介质
CN109784881A (zh) 2018-12-29 2019-05-21 广州蓝石信息技术有限公司 基于去中心化网关的通用跨链支付方案
CA3058236C (en) 2019-03-27 2020-08-25 Alibaba Group Holding Limited Retrieving public data for blockchain networks using highly available trusted execution environments
EP3910907B1 (en) 2019-03-29 2023-08-02 Advanced New Technologies Co., Ltd. Retrieving access data for blockchain networks using highly available trusted execution environments
CA3137242A1 (en) * 2019-04-24 2020-10-29 International Business Machines Corporation Extracting data from a blockchain network
US11356282B2 (en) 2019-06-28 2022-06-07 Advanced New Technologies Co., Ltd. Sending cross-chain authenticatable messages
CN110602201B (zh) 2019-09-10 2023-04-18 腾讯科技(深圳)有限公司 基于区块链的履历管理方法、装置及系统、存储介质
CN110474846B (zh) 2019-09-18 2022-04-08 中国银联股份有限公司 一种区块链中区块传播的方法及装置
CN110445882A (zh) 2019-09-19 2019-11-12 腾讯科技(深圳)有限公司 通信连接方法、装置、计算机设备及存储介质
CN110650189B (zh) 2019-09-20 2022-01-18 深圳供电局有限公司 一种基于中继的区块链的交互系统及方法
US11381557B2 (en) * 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
US11190494B2 (en) * 2019-09-24 2021-11-30 Pribit Technology, Inc. Application whitelist using a controlled node flow
JP7372527B2 (ja) * 2019-09-26 2023-11-01 富士通株式会社 通信中継プログラム、中継装置、及び通信中継方法
CN110737664B (zh) 2019-10-21 2022-11-25 深圳前海微众银行股份有限公司 一种区块链节点同步的方法及装置
CN110751475A (zh) 2019-10-24 2020-02-04 杭州趣链科技有限公司 一种区块链交易的跨链方法及系统、设备和存储介质
CN110855565B (zh) * 2019-11-22 2021-07-20 广州大学 一种基于区块链的可验证域间路由验证方法
CN111132258B (zh) 2019-12-30 2023-05-09 南京航空航天大学 一种基于虚拟势场法的无人机集群协同机会路由方法
CN111245745B (zh) 2020-01-07 2022-05-24 腾讯科技(深圳)有限公司 消息发送方法、装置、节点设备及存储介质
CN111277562B (zh) 2020-01-07 2022-02-01 广东通莞科技股份有限公司 一种区块链网络搭建方法
CN111353175B (zh) 2020-05-22 2021-01-22 腾讯科技(深圳)有限公司 数据处理方法、装置、设备、区块链系统及存储介质
CN112383473B (zh) 2020-06-12 2023-02-07 支付宝(杭州)信息技术有限公司 辅助区块链网络中的节点建立p2p直连的方法
CN111522833B (zh) * 2020-07-03 2020-10-09 支付宝(杭州)信息技术有限公司 一种区块链中的mpt树的更新方法、装置和电子设备

Also Published As

Publication number Publication date
US11233849B2 (en) 2022-01-25
US20210329066A1 (en) 2021-10-21
EP3975505A1 (en) 2022-03-30
CN111935000A (zh) 2020-11-13
EP3975505B1 (en) 2024-01-17

Similar Documents

Publication Publication Date Title
CN111934999B (zh) 消息传输方法及装置
CN111935000B (zh) 消息传输方法及装置
CN111934990B (zh) 消息传输方法及装置
CN111935315B (zh) 区块同步方法及装置
US11863624B2 (en) Fast propagation of recent transactions over a blockchain network
JP2009543447A (ja) ランデブーフェデレーション内の近傍域間通信
EP3975027B1 (en) Blockchain systems, and message transmission methods and apparatuses
CN111934997B (zh) 消息传输方法及装置
WO2023011241A1 (zh) 区块链节点注册至节点集合

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40041334

Country of ref document: HK

TR01 Transfer of patent right

Effective date of registration: 20240914

Address after: Room 803, floor 8, No. 618 Wai Road, Huangpu District, Shanghai 200010

Patentee after: Ant blockchain Technology (Shanghai) Co.,Ltd.

Country or region after: China

Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right