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

消息传输方法及装置 Download PDF

Info

Publication number
CN114157670A
CN114157670A CN202111308005.7A CN202111308005A CN114157670A CN 114157670 A CN114157670 A CN 114157670A CN 202111308005 A CN202111308005 A CN 202111308005A CN 114157670 A CN114157670 A CN 114157670A
Authority
CN
China
Prior art keywords
block chain
data
block
blockchain
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.)
Pending
Application number
CN202111308005.7A
Other languages
English (en)
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
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai 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, Ant Blockchain Technology Shanghai Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202111308005.7A priority Critical patent/CN114157670A/zh
Publication of CN114157670A publication Critical patent/CN114157670A/zh
Pending legal-status Critical Current

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/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/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms

Abstract

本说明书提供一种消息传输方法及装置,应用于区块链网络中作为数据传输方的第一区块链节点;所述方法包括:获取待传输给第二区块链节点的区块链数据;将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。

Description

消息传输方法及装置
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种消息传输方法及装置。
背景技术
区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
发明内容
本说明书提出一种区块链数据传输方法,应用于区块链网络中作为数据传输方的第一区块链节点;所述方法包括:
获取待传输给所述第二区块链节点的区块链数据;
将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
本说明书还提出一种区块链数据传输方法,应用于区块链网络中作为数据接收方的第二区块链节点;所述方法包括:
接收所述区块链网络中作为数据传输方的第一区块链节点通过接入的区块链中继通信网络,分别传输的多个区块链数据块;其中,所述多个区块链数据块为所述第一区块链节点针对待传输给所述第二区块链节点的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
本说明书还提出一种区块链数据传输装置,应用于区块链网络中作为数据传输方的第一区块链节点;所述装置包括:
获取模块,获取待传输给所述第二区块链节点的区块链数据;
拆分模块,将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
传输模块,将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
本说明书还提出一种区块链数据传输装置,应用于区块链网络中作为数据接收方的第二区块链节点;所述装置包括:
接收模块,接收所述区块链网络中作为数据传输方的第一区块链节点通过接入的区块链中继通信网络,分别传输的多个区块链数据块;其中,所述多个区块链数据块为所述第一区块链节点针对待传输给所述第二区块链节点的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
拼接模块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
本说明书还提出一种区块链网络,包括:
作为数据传输方的第一区块链节点,用于获取待传输给所述第二区块链节点的区块链数据;将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点;
作为数据接收方的第二区块链节点,用于接收所述第一区块链节点通过接入的区块链中继通信网络,分别传输的所述多个区块链数据块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
本说明书还提出一种区块链中继通信网络,包括:
第一中继节点,与区块链网络中作为数据传输方的第一区块链节点相连,用于接收所述第一区块链节点分别传输的多个区块链数据块;其中,所述多个区块链数据块为所述第一区块链节点针对待传输给所述区块链网络中作为数据接收方的第二区块链节点的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
第二中继节点,与所述第二区块链节点相连,用于接收所述第一中继节点通过所述区块链中继通信网络的传输通道分别传输的所述多个区块链数据块,并将所述多个区块链数据块分别传输给所述第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
本说明书还提出一种区块链数据传输系统,包括区块链网络和区块链中继通信网络;所述区块链网络中作为数据传输方的第一区块链节点与所述区块链中继通信网络中的第一中继节点相连;以及所述区块链网络中作为数据接收方的第二区块链节点与所述区块链中继通信网络中的第二中继节点相连;其中:
所述第一区块链节点,用于获取待传输给所述第二区块链节点的区块链数据;将所述区块链数据拆分为多个区块链数据块,并将所述多个区块链数据块分别传输至所述第一中继节点;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
第一中继节点,用于接收所述第一区块链节点分别传输的所述多个区块链数据块,并通过所述区块链中继通信网络的传输通道,将所述多个区块链数据块分别传输给所述第二中继节点;
第二中继节点,用于接收所述第一中继节点通过所述区块链中继通信网络的传输通道传输的所述多个区块链数据块,并将所述多个区块链数据块分别传输给所述第二区块链节点;
第二区块链节点,用于接收所述第二中继节点分别传输的所述多个区块链数据块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
在以上技术方案中,由于作为数据传输方的第一区块链节点在向作为数据接收方的第二区块链节点传输区块链数据时,可以将该区块链数据拆分成多个区块链数据块来进行传输,因此可以提升数据量比较大的区块链数据的传输成功率,进而避免在遇到网络比较差的情况时,数据量比较大的区块链数据发送失败或者发送超时,而对整个区块链平台提供的服务的稳定性造成影响。
而且,由于拆分出的区块链数据块包含该区块链数据块在区块链数据中的位置信息,使得第二区块链节点在收到第一区块链节点传输的拆分出的多个区块链数据块时,可以基于该位置信息对各个区块链数据块重新进行拼接,进而还原出上述区块链数据,从而可以在对上述区块链数据进行拆分传输的场景下,最大程度的保障上述区块链数据的完整性。
附图说明
图1是一示例性实施例提供的一种区块链节点与区块链中继通信网络的交互示意图。
图2是一示例性实施例提供的另一种区块链节点与区块链中继通信网络的交互示意图。
图3是一示例性实施例提供的一种区块链数据传输方法的流程图。
图4是一示例性实施例提供的一种区块链中继通信网络所支持的数据包的数据结构示意图。
图5是一示例性实施例提供的一种电子设备的结构示意图。
图6是一示例性实施例提供的一种区块链数据传输装置的框图。
图7是一示例性实施例提供的另一种区块链数据传输装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链中继通信网络,是一种采用中继技术创建的骨干中继通信网络。该骨干中继通信网络,可以提升区块链网络中的区块链节点之间的数据传输的稳定性和实时性,实现区块链网络中的区块链节点之间的高速、安全互连。
其中,在实际应用中,区块链中继通信网络,具体可以适用于各种类型的区块链网络,包括公有链、私有链和联盟链等。
譬如,应用于公有链的区块链中继通信网络主要包括Falcon、Fast BitcoinRelay Network(FBRN)、Fast Internet Bitcoin Relay Engine(FIBRE)等,而应用于联盟链的区块链中继通信网络主要包括BloXRoute、Blockchain Transmission Network(BTN)等。
区块链网络中的区块链节点之间,可以分别与区块链中继通信网络中的中继节点建立连接来实现互联,并通过区块链中继通信网络中的中继节点提供的专用的数据传输通道来传输区块链数据。
请参见图1,图1是一示例性实施例提供的一种区块链节点与区块链中继通信网络的交互示意图。
如图1所示,区块链中继通信网络可以包含中继节点11、中继节点12、中继节点13和中继节点14等若干中继节点。区块链网络中的区块链节点,可以通过区块链网络所支持的通信协议,与区块链中继通信网络中的中继节点建立连接,并基于该连接与该中继节点进行数据通信。
需要说明的是,区块链中继通信网络中的中继节点,具体可以是一台物理设备以外,也可以是一台逻辑设备。例如,在一个例子中,上述区块链中继通信网络具体可以是一个基于云处理平台搭建的骨干通信网络,而在这种情况下,上述中继节点具体可以是针对云处理平台上的云处理资源进行虚拟化,创建的虚拟设备。
其中,在实际应用中,区块链节点具体可以通过一个网关与区块链中继通信网络中的中继节点相连,并通过该网关与该中继节点进行通信。
以图1示出的中继节点11为例,该中继节点11可以通过网关101与区块链网络中的区块链节点21相连。类似地,图1示出的其他中继节点,也可以与区块链网络中的其他区块链节点相连。
网关101具体用于协助节点区块链21接入区块链中继通信网络,该网关101在逻辑上相当于区块链网络中的一个区块链节点,但该网关101本身并不会参与区块链共识,也不会对区块链网络中的共识等过程产生影响。
在实际应用中,网关101本质上可以是一个区块链节点21接入区块链中继通信网络的适配程序,该适配程序可以部署在区块链节点21上,也可以部署在中继节点11上,当然也可以部署在独立于中继节点11和区块链节点21的另一设备中,本说明书并不对此进行限制。
在区块链网络中,具体可以包含若干区块链节点、区块链节点之间需要实现诸如共识、交易传输、区块同步等通信操作。在相关技术中,各个区块链节点之间直接采用P2P(Peer to Peer,点对点)技术进行通信,以传输诸如交易数据、区块数据,共识数据等,但由于各种网络因素导致通信时延高、稳定性差,无法满足应用需求。
因此,类似于上述的区块链节点21,每个区块链节点都可以分别接入区块链中继通信网络中的中继节点,这样区块链节点之间就可以利用区块链中继通信网络提供的专用的数据传输通道来传输诸如交易数据、区块数据,共识数据等。
由于区块链中继通信网络,是面向区块链网络中的各个区块链节点提供实时传输的骨干中继通信网络,各个中继节点之间能够提供高QoS保障、优质带宽的专用数据传输通道,因而由区块链中继通信网络接管区块链节点之间通信的中间链路,能够降低通信时延、提高稳定性,从而显著提升区块链节点之间的通信质量。
在实际应用中,区块链网络中的节点设备之间需要传输的区块链数据,通常包括三部分数据:
一部分是交易数据,另一部分是共识数据。这两部分是保证区块链平台能够正常运行的基础数据。例如,交易数据和共识数据如果无法在区块链节点之间进行正常传输,将直接影响到区块链网络中针对交易数据的正常的共识过程。
第三部分是区块数据,这一部分数据主要是用于在区块链节点之间进行数据同步。例如,当区块链网络新加入了一个区块链节点,则该新加入的区块链节点需要从已经加入区块链网络的区块链节点处,同步最新的区块数据。
请继续参见图1,区块链网络中的节点设备之间,在通过区块链中继通信网络提供的专用的数据传输通道,来传输这三部分数据时,如果遇到网络比较差的情况,比如丢包率较高或者延迟较大的情况,数据量比较大的区块链数据在传输过程中可能会存在发送失败或者发送超时的问题,进而可能导致后续的区块链数据无法按时发送到目标区块链节点,最终导致区块链平台无法提供持续稳定的服务。
例如,对于以上描述的三部分数据中的区块数据,相较于交易数据和共识数据,通常具有比较大的数据量。在这种情况下,如果在传输区块数据的过程中,一旦遇到网络比较差的情况,造成区块数据发送失败或者发送超时,就会由于区块数据长时间“占据”数据传输通道造成整条数据传输通道出现“堵塞”,进而影响后续的交易数据和共识数据的传输。而交易数据和共识数据是保证区块链平台能够正常运行的基础数据,这两部分数据的传输受到影响,将直接影响到区块链平台的正常运行。
由此可见,在通过区块链中继通信网络传输数据量比较大的区块链数据时,如果遇到网络比较差的情况,可能会直接导致整个区块链平台无法提供持续稳定的服务。
有鉴于此,本说明书提出一种在区块链节点之间通过区块链中继通信网络进行数据传输的场景下,对待传输的区块链数据进行拆分传输的技术方案。
以区块链网络中的第一区块链节点需要向第二区块链节点传输区块链数据为例,在这种情况下,第一区块链节点可以获取待传输给第二区块链节点的区块链数据,并将该区块链数据拆分为多个区块链数据块;其中,该区块链数据块中包含上述区块链数据块在上述区块链数据中的位置信息。然后,再将上述多个区块链数据块通过接入的区块链中继通信网络,分别传输至区块链网络中作为数据接收方的第二区块链节点。
而第二区块链节点在收到第一区块链节点通过接入的区块链中继通信网络,分别传输的多个区块链数据块后,可以基于这些区块链数据块中包含的上述位置信息,对上述多个区块链数据块进行拼接处理得到上述区块链数据,以完成上述区块链数据的数据传输。
在以上技术方案中,由于作为数据传输方的第一区块链节点在向作为数据接收方的第二区块链节点传输区块链数据时,可以将该区块链数据拆分成多个区块链数据块来进行传输,因此可以提升数据量比较大的区块链数据的传输成功率,进而避免在遇到网络比较差的情况时,数据量比较大的区块链数据发送失败或者发送超时,而对整个区块链平台提供的服务的稳定性造成影响。
而且,由于拆分出的区块链数据块包含该区块链数据块在区块链数据中的位置信息,使得第二区块链节点在收到第一区块链节点传输的拆分出的多个区块链数据块时,可以基于该位置信息对各个区块链数据块重新进行拼接,进而还原出上述区块链数据,从而可以在对上述区块链数据进行拆分传输的场景下,最大程度的保障上述区块链数据的完整性。
以下将结合具体的实施例对本说明书的技术方案进行详细的描述。
请参见图2,图2是一示例性实施例提供的另一种区块链节点与区块链中继通信网络的交互示意图。
如图2所示,区块链中继通信网络可以包含中继节点11、中继节点12、中继节点13等若干中继节点。区块链节点21也可以通过一个网关(图2中未示出)与区块链中继通信网络中的中继节点11相连。相应的,区块链节点22也可以通过一个网关与区块链中继通信网络中的中继节点13相连。
区块链节点21和区块链节点22之间,可以通过区块链中继通信网络提供的专用的数据传输通道来传输诸如交易数据、区块数据,共识数据等。
其中,区块链节点21与中继节点11之间,可以建立多个数据传输通道。相应的,区块链节点22与中继节点11之间,也可以建立多个数据传输通道。
如图2所示,在示出的一种实施方式中,区块链节点21与中继节点11之间,以及区块链节点22与中继节点11之间,可以建立用于传输区块数据的数据传输通道31和用于传输交易数据和共识数据的数据传输通道32。也即,将数据量较大的区块链数据通过一条与交易数据和共识数据完全不同的数据传输通道进行数据传输。
需要说明的是,在图2中仅以区块链节点与中继节点之间保持用于传输区块数据的数据传输通道31和用于传输交易数据和共识数据的数据传输通道32等两条数据传输通道为例,在实际应用中,对于区块数据、交易数据和共识数据三种区块链数据,具体也可以通过三条不同的数据通道来进行传输,在本说明书中不进行特别限定。
对于区块链中继通信网络中的中继节点之间的数据传输通道,通常为区块链中继通信网络提供的内部传输通道。
其中,区块链中继通信网络提供的内部传输通道,通常为高QoS保障、优质带宽的专用数据传输通道,在实际应用中,区块链中继通信网络提供的内部传输通道的数量,通过可以根据区块链中继通信网络所能提供的网络传输资源来确定,可以为一条,也可以为多条。
在示出的一种实施方式中,为了使区块链中继通信网络提供的内部传输通道的数量,能够与区块链节点和中继节点之间的数据传输通道的数量相适配,对于区块链中继通信网络中的中继节点之间,具体也可以创建并保持多条内部传输通道。
例如,如图2所示,对于区块链中继通信网络中的节点设备之间,具体也可以创建并保持一条用于传输区块数据的第一数据传输通道,和一条用于传输交易数据和共识数据的第二数据传输通道。
图3是一示例性实施例提供的一种区块链数据传输方法的流程图。如图3所示,该方法应用于区块链网络中作为数据传输方的第一区块链节点和作为数据接收方的第二区块链节点。其中,为了便于描述,以下实施例中将以上述第一区块链节点为图2中示出的区块链节点21,上述第二区块链节点为图2中示出的区块链节点22为例来进行说明。上述第一区块链节点和上述第二区块链节点互相配合,执行以下步骤:
步骤302,第一区块链节点获取待传输给所述第二区块链节点的区块链数据;
在实际应用中,第一区块链节点与第二区块链节点之间通过区块链中继通信网络传输的区块链数据,通常可以包括对实时性、传输质量要求比较高的区块链数据。
例如,在示出的一种实施方式中,第一区块链节点与第二区块链节点之间通过区块链中继通信网络传输的区块链数据,通常可以包括区块(block)数据、交易(transaction)数据、和共识数据三类。
其中,交易数据通常是指区块链客户端发起的需要在区块链网络中的节点设备之间进行传输,由区块链网络中的区块链节点进行共识处理的交易。共识数据通常是指区块链网络中的区块链节点在对交易进行共识处理的过程中,各个区块链节点之间交互的与共识相关的数据;例如,上述共识数据可以包括共识过程中对交易的共识验证的结果、各个区块链节点对交易的共识结果,各个区块链节点之间交互的与共识相关的共识消息,等等。上述区块数据,通常持久化存储在区块链节点共同维护的区块链账本中,用于在区块链节点之间进行数据同步。例如,当区块链网络新加入了一个区块链节点,则该新加入的区块链节点需要从已经加入区块链网络的区块链节点处,同步最新的区块数据。
需要说明的是,对于一些对实时性、传输质量要求并不高的区块链数据,可以不通过上述区块链中继通信网络来进行传输,而是通过其它方式来进行传输;比如,可以采用区块链之间的通信连接来进行传输。
在实际应用中,第一区块链节点在需要向第二区块链节点传输区块链数据时,可以先获取待传输给第二区块链节点的区块链数据,再将获取到的区块链数据发送至上述区块链中继通信网络,由上述区块链中继通信网络将这些区块链数据发送至第二区块链节点。
在一个例子中,第一区块链节点待传输给第二区块链节点的区块链数据,具体可以是接入第一区块链节点的区块链客户端提交的区块链数据。在这种情况下,第一区块链节点可以从上述区块链客户端处获取待传输给上述第二区块链节点的区块链数据。
例如,区块链客户端提交的区块链数据通常可以是交易数据。第一区块链节点在获取到上述区块链客户端提交的交易数据后,可以将该交易数据通过上述区块链中继通信网络,传输给区块链网络中其它参与共识的区块链节点,对该交易数据进行共识处理。
在另一个例子中,第一区块链节点待传输给第二区块链节点的区块链数据,具体也可以是由其它区块链节点传输给第一区块链节点的区块链数据。在这种情况下,第一区块链节点可以从其它区块链节点处获取待传输给上述第二区块链节点的区块链数据。
例如,由其它区块链节点传输给第一区块链节点的区块链数据,通常可以是在共识过程中由其它区块链节点通过上述区块链中继通信网络传输给该第一区块链节点的共识数据。第一区块链节点在获取到由其它区块链节点传输的共识数据后,可以将该共识数据通过上述区块链中继通信网络继续传输给区块链网络中其它参与共识的区块链节点,以将该共识数据在整个区块链网络中的各个区块链节点之间的传播扩散。
在第三个例子中,第一区块链节点待传输给第二区块链节点的区块链数据,具体也可以是持久化存储在本地维护的区块链账本中的区块链数据。在这种情况下,第一区块链节点可以从本地维护的区块链账本中来获取待传输给上述第二区块链节点的区块链数据。
例如,持久化存储在本地维护的区块链账本中的区块链数据,通常可以是区块数据。当第一区块链节点在收到其它新加入的区块链节点发送的区块同步请求,可以从本地维护的区块链账本中读取待同步的区块数据,再将该区块数据通过上述区块链中继通信网络传输给上述新加入的区块链节点,以完成区块数据的同步。
步骤304,第一区块链节点将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
第一区块链节点在获取到待传输给第二区块链节点的区块链数据之后,可以对该区块链数据进行拆分处理,将该区块链数据拆分成多个区块链数据块。
其中,需要说明的是,第一区块链节点待传输给第二区块链节点的区块链数据,通常可以包含不同类型的区块链数据,而不同类型的区块链数据的数据量通常存在较大的差异。甚至,即便是同一类型的区块链数据之间,其数据量也可能存在较大的差异。基于此,第一区块链节点在向第二区块链节点传输区块链数据时,可以有选择的对其中数据量较大的区块链数据进行拆分处理,而对于数据量并不大的区块链数据,则可以不对其进行数据拆分处理。
在示出的一种实施方式中,上述第一区块链节点可以预先配置一个用于对待传输的区块链数据进行拆分处理的预设阈值。其中,该预设阈值具体用于描述需要进行数据拆分处理的区块链数据的数据量。
在实际应用中,该预设阈值的取值大小,具体可以基于实际的需求进行灵活的配置,在本说明书中不进行特别限定。例如,在一个例子中,可以基于上述区块链中继通信网络的网络状况,来评估该网络能够传输的单个区块链数据的最大容量,然后根据该最大容量来确定上述预设阈值。
在这种情况下,第一区块链节点在获取到待传输给第二区块链节点的区块链数据之后,可以确定该区块链数据的数据大小,并确定该数据大小是否大于上述预设阈值;如果是,则可以对该区块链数据进行拆分处理。反之,可以不对该区块链数据进行拆分处理。
其中,需要说明的是,对上述区块链数据进行拆分处理之后,得到的多个区块链数据块的大小,以及拆分出的多个区块链数据块的数量,在本说明书中都不进行特别限定,在实际应用中,可以基于具体的需求进行灵活的配置。
例如,在一个例子中,也可以基于上述区块链中继通信网络的网络状况,来评估该网络能够传输的单个数据包的最佳容量,然后可以将该最佳容量确定为拆分出的各个区块链数据块的大小,进而再根据待传输的上述区块链数据实际的数据大小,来确定最终需要将该区块链数据拆分出的区块链数据块的数量。
在实际应用中,为了保证第二区块链节点具有足够的信息,将拆分出的多个区块链数据块拼接成原始的区块链数据,在上述区块链数据块中还可以包含该区块链数据块在上述区块链数据中的位置信息。
其中,上述位置信息,具体可以包括能够描述各个区块链数据块在上述区块链数据中的位置的任意形式的信息。
例如,在示出的一种实施方式中,上述位置信息,具体可以是各个区块链数据块在原始的区块链数据中的偏移量。比如,在一个例子中,假设区块链数据被拆分成A、B、C三个连续的区块链数据块,则该这些区块链数据块中的区块链数据块B的偏移量为2,表示该区块链数据块为原始的区块链数据被拆分成的第2个区块链数据块。
需要说明的是,在上述区块链数据块中,除了可以包含该区块链数据块在上述区块链数据中的位置信息以外,还可以包含用于辅助第二区块链节点对接收到的各个区块链数据块进行拼接的其它形式的辅助信息。
在示出的一种实施方式中,在上述区块链数据块中,还可以包括上述区块链数据的数据标识(即进行数据拆分之前的原始的区块链数据的数据标识)。该数据标识具体用于辅助第二区块链节点收集具有同一数据标识的区块链数据块。
例如,在一个例子中,上述数据标识具体可以是上述区块链数据的数据序号。
在示出的另一种实施方式中,在上述区块链数据块中,还可以包括上述区块链数据的数据长度。该数据长度用于辅助第二区块链节点对拼接出的区块链数据进行完整性校验。
除此之外,在上述区块链数据块中,还可以包括诸如用于标识该区块链数据块是否为从原始的区块链数据中拆分出的数据块的标记,等等。
在实际应用中,第一区块链节点通过上述区块链中继通信网络将上述区块链数据传输给第二区块链节点时,通常需要将该区块链数据按照上述区块链中继通信网络所支持的数据传输格式,打包成适宜在上述区块链中继通信网络中进行传输的数据包,再将该数据包通过上述区块链中继通信网络传输给第二区块链节点。而该数据包的具体形式,在本说明书中不进行特别限定。
例如,在一个例子中,上述数据包具体可以是消息(message)。第一区块链节点具体可以将该区块链数据按照上述区块链中继通信网络所支持的数据传输格式,打包成适宜在上述区块链中继通信网络中进行传输的消息,再将该数据包通过上述区块链中继通信网络传输给第二区块链节点。
请参见图4,图4为是一示例性实施例提供的一种区块链中继通信网络所支持的数据包的数据结构示意图。
如图4所示,上述数据包可以包含一个data字段,用于填充区块链数据块。除此之外,该数据包的数据结构中还可以包括一个数据头。在该数据头中,具体可以包括图4示出的Seq字段、Flag字段、Total_len字段、以及Offset字段。
其中,Seq字段,用于填充上述区块链数据块所在的原始的区块链数据的数据序号。该数据序号即为以上描述的拆分之前的上述区块链数据的数据标识。
Flag字段,用于填充拆分标记。该拆分标记用于标识data字段中填充的数据,是否为从原始的区块链数据中拆分出的区块链数据块。如果该Flag字段填充了该拆分标记,表明该数据包的data字段中填充的数据,为从原始的区块链数据中拆分出的数据块。
Total_len字段,用于填充上述区块链数据块所在的原始的区块链数据的数据长度。该数据长度具体用于校验拼接出的上述区块链数据的完整性。
Offset字段,用于填充上述区块链数据块在原始的区块链数据中的偏移量,该偏移量标记的是data字段中填充的区块链数据块,在原始的区块链数据中的位置信息。
步骤306,将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点。
第一区块链节点在按照上述区块链中继通信网络所支持的数据传输格式,将拆分出的多个区块链数据包,分别打包成适宜在上述区块链中继通信网络中进行传输的数据包之后,可以将这些数据包通过上述区块链中继通信网络分别传输给第二区块链节点。
例如,请参见图2,第一区块链节点,具体可以与区块链中继通信网络中的第一中继节点11相连。第二区块链节点,具体可以与区块链中继通信网络中的第二中继节点13相连。
而第一区块链节点在将上述数据包通过区块链中继通信网络分别传输给第二区块链节点时,具体可以先将这些数据包分别传输至第一中继节点11,再由第一中继节点11通过区块链中继通信网络的传输通道,将这些数据包分别传输给第二中继节点13。
例如,图2中示出的中继节点11和中继节点13之间的传输通道,是中继节点11通过另一中继节点12作为中间节点,与中继节点13形成的非直连的传输通道。在这种情况下,中继节点11可以先把上述区块链数据传输给中继节点12,再由上述中继节点12继续将该区块链数据传输给中继节点13。然后,再由第二中继节点13继续将这些数据包分别传输给第二区块链节点。
在实际应用中,上述第一区块链节点与上述第一中继节点11之间,上述第二区块链节点与上述第二中继节点13之间,以及上述区块链中继通信网络中的各个中继节点之间,都可以保持多个数据传输通道。
例如,图2示出的上述多个数据传输通道,具体包括一条用于传输区块数据的数据传输通道31和用于传输交易数据和共识数据的数据传输通道32。
在这种情况下,第一区块链节点在将上述数据包通过上述区块链中继通信网络分别传输给第二区块链节点的过程中,可以先从与上述中继节点11之间的多条数据传输通道中,确定出定一条用于传输各个数据包的数据传输通道,再通过确定出的数据传输通道将上述数据包分别传输给上述中继节点11。而中继节点12在收到第一区块链节点分别传输的数据包后,可以再从与上述中继节点12之间的多条数据传输通道中,确定出定一条用于传输各个数据包的数据传输通道,再通过确定出的数据传输通道将上述数据包分别传输给上述中继节点12。而中继节点12可以执行相同的动作,继续将上述数据包分别传输给中继节点13,中继节点13再执行相同的动作,最终将上述数据包分别传输给第二区块链节点。
其中,上述数据传输通道具体可以是基于区块链节点所支持的通信协议,与中继节点之间建立的,或者基于中继节点所支持的通信协议在中继节点之间建立的,用于传输区块链数据的专用数据连接。例如,在一个例子中,上述通信协议具体可以是SSL协议,该数据连接具体可以是SSL连接。上述多个数据传输通道具体可以是预先建立的数据传输通道,也可以是在需要传输区块链数据时,实时创建的数据传输通道,在本说明书中不进行特别限定。
需要说明的是,在实际应用中,在从上述多条数据传输通道中,确定出定一条用于传输各个数据包的数据传输通道的具体方式,在本说明书中不进行特别限定,可以基于数据类型、数据大小来确定,也可以通过其它方式来确定。
例如,在示出的一种实施方式中,上述多个数据传输通道可以分别对应不同的数据类型。在这种情况下,第一区块链节点可以先确定上述数据包承载的区块链数据块对应的数据类型;再将上述多个数据传输通道中与该数据类型对应的数据传输通道,确定为用于传输上述数据包的数据传输通道。
例如,如图2所示,可以按照数据类型,将上述多条数据传输通道,划分为用于传输区块数据的数据传输通道31和用于传输交易数据和共识数据的数据传输通道32。也即,数据传输通道31对应的数据类型为区块数据,数据传输通道32对应的数据类型为交易数据和共识数据。
其中,需要说明的是,由于交易数据和共识数据通常都是和区块链网络中的共识处理过程相关的数据,并且交易数据和共识数据也都是数据量较小的数据,因此将交易数据和共识数据通过同一条数据传输通道传输,能够最大程度的节约传输资源。当然,在实际应用中,也可以按照数据类型,将上述多条数据传输通道,划分为分别用于传输区块数据、交易数据以及共识数据的三条不同的数据传输通道,在本说明书中不进行特别的限定。
在示出的另一种实施方式中,上述多个数据传输通道也可以分别对应不同的阈值区间。其中,该阈值区间具体用于表征数据传输通道能够传输的区块链数据的数据大小范围。也即,该阈值区间具体描述的是数据传输通道能够传输的数据量。
在这种情况下,第一区块链节点可以先确定上述数据包的数据大小,再将上述数据包的数据大小和与上述多个数据传输通道对应的阈值区间分别进行匹配;如果该数据包的数据大小命中任一数据传输通道对应的阈值区间,则将该数据传输通道确定为用于传输该数据包的数据传输通道。
需要说明的是,与上述多个数据传输通道分别对应的阈值区间的具体数值大小,在实际应用中,可以基于实际传输的区块链数据的数据量来灵活的配置。
例如,在实现时,可以对需要传输的区块数据、交易数据和共识数据的数据大小进行分析,得到能够表征区块数据、交易数据和共识数据的数据大小范围的数值区间,然后再根据该数值区间来为各条数据传输通道配置对应的阈值区间。
当然,在实际应用中,上述第一区块链节点与上述第一中继节点11之间,上述第二区块链节点与上述第二中继节点13之间,以及上述区块链中继通信网络中的各个中继节点之间,也可以仅保持一个数据传输通道。也即,通过同一数据传输通道,来传输多种类型的区块链数据,在本说明书中不进行特别限定。
步骤308,第二区块链节点接收所述第一区块链节点通过接入的区块链中继通信网络,分别传输的所述多个区块链数据块,并基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
第一区块链节点在通过以上描述的方式,将待传输的区块链数据拆分出的多个区块链数据块通过接入的上述区块链中继通信网络,分别传输给第二区块链节点之后,可以基于这些区块链数据块中包含的上述位置信息,对上述多个区块链数据块进行拼接处理得到上述区块链数据。
假设第一区块链节点将拆分出的多个区块链数据块,以图4描述的数据包的形式,传输至上述第二区块链节点。第二区块链节点收到第一区块链节点传输的数据包后,首先可以检查上述数据包中的Flag字段是否填充了上述拆分标记,来区分接收到的数据包承载的数据是否为从上述区块链数据中拆分出的区块链数据块。对于上述Flag字段填充了上述拆分标记的数据包,则是需要进一步进行拼接处理的数据包,第二区块链节点可以在本地保存这些待拼接的数据包。
对于本地保存的待拼接的数据包,上述第二区块链节点可以进一步读取这些数据包中的Seq字段填充的上述区块链数据的数据序号,再从本地保存的这些数据包中,查询包含该数据序号的多个区块链数据块,以将从该区块链数据中拆分出的所有的区块链数据块收集起来。
当第二区块链节点从本地保存的这些数据包中,查询到包含上述区块链数据的数据序号的多个数据包之后,可以进一步读取上述多个数据包中的各个数据包中的Offset字段填充的偏移量,再基于读取到的偏移量,对上述多个数据包的data字段里填充的区块链数据块进行拼接处理,以还原出拆分以前的上述区块链数据。
当完成拼接之后,上述第二区块链节点可以进一步读取上述数据包中的Total_len字段填充的上述区块链数据的数据长度,并校验拼接得到的上述区块链数据的数据长度,与上述数据包中的Total_len字段填充的上述区块链数据的数据长度是否相同。
如果相同,针对拼接出的上述区块链数据的完整性校验通过,此时针对上述区块链数据的拼接完成,第一区块链节点成功的通过数据拆分的方式,将待传输的区块链数据传输至第二区块链节点。
如果不相同,针对拼接出的上述区块链数据的完整性校验未通过,此时表明第二区块链节点收到的从上述区块链数据中拆分出的区块链数据块的数量不足,其中可能漏掉了部分区块链数据块,在这种情况下,第二区块链节点可以请求上述第一区块链节点对其中至少部分未成功传输的区块链数据块进行重传处理。
在示出的一种实施方式中,如果针对拼接出的上述区块链数据的完整性校验未通过,第二区块链节点首先可以确定未成功传输至第二区块链节点的区块链数据块在上述区块链数据中的位置信息;
例如,第二区块链节点通过遍历本地保存的这些数据包中的Offset字段填充的偏移量,就可以确定出其中缺失的偏移量,进而确定出未成功传输至第二区块链的数据包。
在确定出未成功传输至第二区块链节点的区块链数据块在上述区块链数据中的位置信息之后,第二区块链节点可以通过接入的区块链中继通信网络,向第一区块链节点传输数据块重传请求;其中,该数据块重传请求中可以包含确定出的未成功传输至第二区块链节点的区块链数据块在上述区块链数据中的位置信息。
其中,通过接入的区块链中继通信网络,向第一区块链节点传输数据块重传请求的具体传输过程,与以上描述的第一区块链节点通过上述区块链中继通信网络,向第二区块链节点传输数据包的过程类似,不再赘述。
而第一区块链节点在收到第一区块链节点传输的数据块重传请求之后,可以响应于该数据块重传请求,获取上述数据块重传请求中包含的上述位置信息,并将从上述区块链数据中拆分出的多个区块链数据块中与上述位置信息对应的区块链数据块,通过接入的区块链中继通信网络,重新传输至第二区块链节点。
例如,在示出的一种实施方式中,当第一区块链节点将上述区块链数据拆分成多个区块链数据块之后,可以在本地缓存该多个区块链数据块,以用于进行数据重传。当收到上述第二区块链节点传输的数据块重传请求之后,可以从本地缓存中读取与该数据块重传请求中包含的上述位置信息对应的区块链数据块,再将读取到的这些区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
其中,需要说明的是,在一个例子中,为了最大程度的利用第一区块链节点本地的缓存空间,第一区块链节点本地缓存的上述多个区块链数据块,具体还可以设置一个缓存时长。当上述缓存时长超时时,第一区块链节点可以将本地缓存的上述多个区块链数据块删除。
请继续参见图2,在一示例性实施例中本说明书还提供一种区块链网络,包括作为数据传输方的区块链节点21和作为数据接收方的区块链节点22。
其中,区块链节点21,用于获取待传输给区块链节点22的区块链数据;将该区块链数据拆分为多个区块链数据块;其中,该区块链数据块中包含该区块链数据块在该区块链数据中的位置信息;将上述多个区块链数据块通过接入的区块链中继通信网络,分别传输至区块链节点22;
区块链节点22,用于接收区块链节点21通过接入的区块链中继通信网络,分别传输的多个区块链数据块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
以上描述的区块链节点21和区块链节点22的具体功能,与之前实施例描述的第一区块链节点和第二区块链节点分别对应,在实施例中不再进行赘述。
请继续参见图2,在一示例性实施例中本说明书还提供一种区块链中继通信网络,包括中继节点11和中继节点13。
其中,中继节点11,与区块链网络中作为数据传输方的区块链节点21相连,用于接收区块链节点21分别传输的多个区块链数据块;其中,所述多个区块链数据块为区块链节点21针对待传输给所述区块链网络中作为数据接收方的区块链节点22的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
中继节点13,与区块链节点22相连,用于接收中继节点11通过区块链中继通信网络的内部传输通道分别传输的所述多个区块链数据块,并将所述多个区块链数据块分别传输给区块链节点22,以使区块链节点22基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
以上描述的中继节点11和中继节点13的具体功能,与之前实施例描述的第一中继节点和第二中继节点分别对应,在实施例中不再进行赘述。
请继续参见图2,在一示例性实施例中本说明书还提供一种区块链数据传输系统,包括区块链网络和区块链中继通信网络;所述区块链网络包括区块链节点21和区块链节点22;所述区块链中继通信网络包括中继节点11和中继节点13。所述区块链节点21与中继节点11相连;以及区块链节点22与中继节点13相连;当然,图2中示出的所述区块链中继通信网络还包括中继节点12,在本实施例中不再详述。
其中,区块链节点21,用于获取待传输给区块链节点22的区块链数据;将所述区块链数据拆分为多个区块链数据块,并将所述多个区块链数据块分别传输至中继节点11;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
中继节点11,用于接收区块链节点21分别传输的所述多个区块链数据块,并通过所述区块链中继通信网络的内部传输通道,将所述多个区块链数据块分别传输给中继节点13。例如,图2中示出的为中继节点11通过中继节点12作为中转,将上述多个区块链数据块分别传输给中继节点13。
中继节点13,用于接收中继节点11通过所述区块链中继通信网络的内部传输通道传输的所述多个区块链数据块,并将所述多个区块链数据块分别传输给所述区块链节点22;
区块链节点22,用于接收中继节点13分别传输的所述多个区块链数据块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
以上描述的区块链节点21和区块链节点22的具体功能,与之前实施例描述的第一区块链节点和第二区块链节点分别对应,在实施例中不再进行赘述。
以上描述的中继节点11和中继节点13的具体功能,与之前实施例描述的第一中继节点和第二中继节点分别对应,在实施例中也不再进行赘述。
与上述方法实施例相对应,本说明书还提供了一种消息传输装置的实施例。
图5是一示例性实施例提供的一种电子设备的示意结构图。请参考图5,在硬件层面,该电子设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成区块链数据传输装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图6,在一软件实施方式中,该区块链数据传输装置可以应用于区块链网络中作为数据传输方的第一区块链节点;所述可以包括:
获取模块61,获取待传输给所述第二区块链节点的区块链数据;
拆分模块62,将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
传输模块63,将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
可选的,所述拆分模块62:
确定所述区块链数据的数据大小;
确定所述数据大小是否大于预设阈值;如果是,将所述区块链数据拆分为多个区块链数据块。
可选的,所述第一区块链节点,与区块链中继通信网络中的第一中继节点相连;所述第二区块链节点,与所述区块链中继通信网络中的第二中继节点相连;
所述传输模块63:
将所述多个区块链数据块分别传输至所述第一中继节点,由所述第一中继节点通过所述区块链中继通信网络的传输通道,将所述多个区块链数据块分别传输给所述第二中继节点,再由所述第二中继节点继续将所述多个区块链数据块分别传输给所述第二区块链节点。
可选的,所述区块链数据块中还包含所述区块链数据的数据标识。
可选的,所述区块链数据块中还包含所述区块链数据的数据长度。
可选的,所述传输模块63进一步:
接收所述第二区块链节点通过接入的区块链中继通信网络,传输的所述数据块重传请求;响应于所述数据块重传请求,将所述多个区块链数据块中的至少部分区块链数据块通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
可选的,所述数据块重传请求包含所述多个区块链数据包中未成功传输至所述第二区块链节点的区块链数据块在所述区块链数据中的位置信息;
所述传输模块63进一步:
响应于所述数据块重传请求,获取所述数据块重传请求中包含的所述位置信息,并将所述多个区块链数据块中与所述位置信息对应的区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
可选的,所述装置还包括:
缓存模块64(图6中未示出),在本地缓存所述多个区块链数据块;
所述传输模块63进一步:
从所述缓存模块64在本地缓存的所述多个区块链数据块中查询与所述位置信息对应的区块链数据块,并将查询到的区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
可选的,在本地缓存的多个区块链数据块被配置了缓存时长;所述缓存模块54进一步:当所述缓存时长超时时,将本地缓存的多个区块链数据块删除。
可选的,所述区块链数据包括:区块数据、交易数据和共识数据。
请参考图7,在另一软件实施方式中,该区块链数据传输装置可以用于区块链网络中作为数据接收方的第二区块链节点;可以包括:
接收模块71,接收所述区块链网络中作为数据传输方的第一区块链节点通过接入的区块链中继通信网络,分别传输的多个区块链数据块;其中,所述多个区块链数据块为所述第一区块链节点针对待传输给所述第二区块链节点的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
拼接模块72,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
可选的,所述第一区块链节点,与区块链中继通信网络中的第一中继节点相连;所述第二区块链节点,与所述区块链中继通信网络中的第二中继节点相连;所述多个区块链数据块由所述第一区块链节点分别传输至所述第一中继节点,所述第一中继节点通过所述区块链中继通信网络的传输通道继续将所述多个区块链数据块传输至所述第二中继节点,再由所述第二中继节点继续将所述多个区块链数据块分别传输给所述第二区块链节点。
可选的,所述区块链数据块中还包含所述区块链数据的数据标识;
所述拼接模块72:
从所述第一区块链节点分别传输的区块链数据块中,查询包含所述数据标识的多个区块链数据块,并基于所述多个区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
可选的,所述区块链数据块中还包含所述区块链数据的数据长度;
所述装置还包括:
校验模块73(图7中未示出),基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据之后,校验拼接得到的所述区块链数据的数据长度,与所述区块链数据块中包含的所述区块链数据的数据长度是否相同;
如果不相同,通过接入的区块链中继通信网络,向所述第一区块链节点传输数据块重传请求,以使所述第一区块链节点响应于所述数据块重传请求,将所述多个区块链数据块中的至少部分区块链数据块通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
可选的,所述校验模块73进一步:
确定未成功传输至所述第二区块链节点的区块链数据块在所述区块链数据中的位置信息;
通过接入的区块链中继通信网络,向所述第一区块链节点传输数据块重传请求;其中,所述数据块重传请求包含未成功传输至所述第二区块链节点的区块链数据块在所述区块链数据中的位置信息,以使所述第一区块链节点响应于所述数据块重传请求,获取所述数据块重传请求中包含的所述位置信息,并将所述多个区块链数据块中与所述位置信息对应的区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
可选的,所述区块链数据包括:区块数据、交易数据和共识数据。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (23)

1.一种区块链数据传输方法,应用于区块链网络中作为数据传输方的第一区块链节点;所述方法包括:
获取待传输给第二区块链节点的区块链数据;
将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
2.根据权利要求1所述的方法,将所述区块链数据拆分为多个区块链数据块,包括:
确定所述区块链数据的数据大小;
确定所述数据大小是否大于预设阈值;如果是,将所述区块链数据拆分为多个区块链数据块。
3.根据权利要求1所述的方法,其中,所述第一区块链节点,与区块链中继通信网络中的第一中继节点相连;所述第二区块链节点,与所述区块链中继通信网络中的第二中继节点相连;
将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点,包括:
将所述多个区块链数据块分别传输至所述第一中继节点,由所述第一中继节点通过所述区块链中继通信网络的传输通道,将所述多个区块链数据块分别传输给所述第二中继节点,再由所述第二中继节点继续将所述多个区块链数据块分别传输给所述第二区块链节点。
4.根据权利要求1所述的方法,所述区块链数据块中还包含所述区块链数据的数据标识,以使所述第二区块链节点从所述第一区块链节点分别传输的区块链数据块中,查询包含所述数据标识的多个区块链数据块,并基于所述多个区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
5.根据权利要求1所述的方法,所述区块链数据块中还包含所述区块链数据的数据长度,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据之后,校验拼接得到的所述区块链数据的数据长度,与所述区块链数据块中包含的所述区块链数据的数据长度是否相同,并在不相同时,通过接入的区块链中继通信网络,向所述第一区块链节点传输数据块重传请求。
6.根据权利要求5所述的方法,所述方法还包括:
接收所述第二区块链节点通过接入的区块链中继通信网络,传输的所述数据块重传请求;响应于所述数据块重传请求,将所述多个区块链数据块中的至少部分区块链数据块通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
7.根据权利要求6所述的方法,所述数据块重传请求包含所述多个区块链数据包中未成功传输至所述第二区块链节点的区块链数据块在所述区块链数据中的位置信息;
所述响应于所述数据块重传请求,将所述多个区块链数据块中的至少部分区块链数据块通过接入的区块链中继通信网络,重新传输至所述第二区块链节点,包括:
响应于所述数据块重传请求,获取所述数据块重传请求中包含的所述位置信息,并将所述多个区块链数据块中与所述位置信息对应的区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
8.根据权利要求7所述的方法,所述方法还包括:
在本地缓存所述多个区块链数据块;
将所述多个区块链数据块中与所述位置信息对应的区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点,包括:
从本地缓存的所述多个区块链数据块中查询与所述位置信息对应的区块链数据块,并将查询到的区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
9.根据权利要求8所述的方法,在本地缓存的多个区块链数据块被配置了缓存时长;所述方法还包括:当所述缓存时长超时时,将本地缓存的多个区块链数据块删除。
10.根据权利要求1所述的方法,所述区块链数据包括:区块数据、交易数据和共识数据。
11.一种区块链数据传输方法,应用于区块链网络中作为数据接收方的第二区块链节点;所述方法包括:
接收所述区块链网络中作为数据传输方的第一区块链节点通过接入的区块链中继通信网络,分别传输的多个区块链数据块;其中,所述多个区块链数据块为所述第一区块链节点针对待传输给所述第二区块链节点的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
12.根据权利要求11所述的方法,其中,所述第一区块链节点,与区块链中继通信网络中的第一中继节点相连;所述第二区块链节点,与所述区块链中继通信网络中的第二中继节点相连;所述多个区块链数据块由所述第一区块链节点分别传输至所述第一中继节点,所述第一中继节点通过所述区块链中继通信网络的传输通道继续将所述多个区块链数据块传输至所述第二中继节点,再由所述第二中继节点继续将所述多个区块链数据块分别传输给所述第二区块链节点。
13.根据权利要求11所述的方法,所述区块链数据块中还包含所述区块链数据的数据标识;
所述基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据,包括:
从所述第一区块链节点分别传输的区块链数据块中,查询包含所述数据标识的多个区块链数据块,并基于所述多个区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
14.根据权利要求11所述的方法,所述区块链数据块中还包含所述区块链数据的数据长度;
所述方法还包括:
基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据之后,校验拼接得到的所述区块链数据的数据长度,与所述区块链数据块中包含的所述区块链数据的数据长度是否相同;
如果不相同,通过接入的区块链中继通信网络,向所述第一区块链节点传输数据块重传请求,以使所述第一区块链节点响应于所述数据块重传请求,将所述多个区块链数据块中的至少部分区块链数据块通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
15.根据权利要求14所述的方法,通过接入的区块链中继通信网络,向所述第一区块链节点传输数据块重传请求,包括:
确定未成功传输至所述第二区块链节点的区块链数据块在所述区块链数据中的位置信息;
通过接入的区块链中继通信网络,向所述第一区块链节点传输数据块重传请求;其中,所述数据块重传请求包含未成功传输至所述第二区块链节点的区块链数据块在所述区块链数据中的位置信息,以使所述第一区块链节点响应于所述数据块重传请求,获取所述数据块重传请求中包含的所述位置信息,并将所述多个区块链数据块中与所述位置信息对应的区块链数据块,通过接入的区块链中继通信网络,重新传输至所述第二区块链节点。
16.根据权利要求11所述的方法,所述区块链数据包括:区块数据、交易数据和共识数据。
17.一种区块链数据传输装置,应用于区块链网络中作为数据传输方的第一区块链节点;所述装置包括:
获取模块,获取待传输给第二区块链节点的区块链数据;
拆分模块,将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
传输模块,将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
18.一种区块链数据传输装置,应用于区块链网络中作为数据接收方的第二区块链节点;所述装置包括:
接收模块,接收所述区块链网络中作为数据传输方的第一区块链节点通过接入的区块链中继通信网络,分别传输的多个区块链数据块;其中,所述多个区块链数据块为所述第一区块链节点针对待传输给所述第二区块链节点的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
拼接模块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
19.一种区块链网络,包括:
作为数据传输方的第一区块链节点,用于获取待传输给第二区块链节点的区块链数据;将所述区块链数据拆分为多个区块链数据块;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;将所述多个区块链数据块通过接入的区块链中继通信网络,分别传输至所述区块链网络中作为数据接收方的第二区块链节点;
作为数据接收方的第二区块链节点,用于接收所述第一区块链节点通过接入的区块链中继通信网络,分别传输的所述多个区块链数据块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
20.一种区块链中继通信网络,包括:
第一中继节点,与区块链网络中作为数据传输方的第一区块链节点相连,用于接收所述第一区块链节点分别传输的多个区块链数据块;其中,所述多个区块链数据块为所述第一区块链节点针对待传输给所述区块链网络中作为数据接收方的第二区块链节点的区块链数据进行拆分得到;所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
第二中继节点,与所述第二区块链节点相连,用于接收所述第一中继节点通过所述区块链中继通信网络的传输通道分别传输的所述多个区块链数据块,并将所述多个区块链数据块分别传输给所述第二区块链节点,以使所述第二区块链节点基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
21.一种区块链数据传输系统,包括区块链网络和区块链中继通信网络;所述区块链网络中作为数据传输方的第一区块链节点与所述区块链中继通信网络中的第一中继节点相连;以及所述区块链网络中作为数据接收方的第二区块链节点与所述区块链中继通信网络中的第二中继节点相连;其中:
所述第一区块链节点,用于获取待传输给所述第二区块链节点的区块链数据;将所述区块链数据拆分为多个区块链数据块,并将所述多个区块链数据块分别传输至所述第一中继节点;其中,所述区块链数据块中包含所述区块链数据块在所述区块链数据中的位置信息;
第一中继节点,用于接收所述第一区块链节点分别传输的所述多个区块链数据块,并通过所述区块链中继通信网络的传输通道,将所述多个区块链数据块分别传输给所述第二中继节点;
第二中继节点,用于接收所述第一中继节点通过所述区块链中继通信网络的传输通道传输的所述多个区块链数据块,并将所述多个区块链数据块分别传输给所述第二区块链节点;
第二区块链节点,用于接收所述第二中继节点分别传输的所述多个区块链数据块,基于所述区块链数据块中包含的所述位置信息,对所述多个区块链数据块进行拼接处理得到所述区块链数据。
22.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-10或者11-16中任一项所述的方法。
23.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-10或者11-16中任一项所述方法的步骤。
CN202111308005.7A 2021-11-05 2021-11-05 消息传输方法及装置 Pending CN114157670A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111308005.7A CN114157670A (zh) 2021-11-05 2021-11-05 消息传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111308005.7A CN114157670A (zh) 2021-11-05 2021-11-05 消息传输方法及装置

Publications (1)

Publication Number Publication Date
CN114157670A true CN114157670A (zh) 2022-03-08

Family

ID=80459017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111308005.7A Pending CN114157670A (zh) 2021-11-05 2021-11-05 消息传输方法及装置

Country Status (1)

Country Link
CN (1) CN114157670A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023185042A1 (zh) * 2022-03-31 2023-10-05 蚂蚁区块链科技(上海)有限公司 直连通道的建立方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809517A (zh) * 2018-05-22 2018-11-13 泰康保险集团股份有限公司 一种区块链网络中的信息获取方法及装置
CN110071876A (zh) * 2019-04-28 2019-07-30 阿里巴巴集团控股有限公司 一种基于区块链的数据传输方法、装置及电子设备
CN110720204A (zh) * 2018-12-19 2020-01-21 阿里巴巴集团控股有限公司 基于共享秘密的区块链存储
CN110968899A (zh) * 2019-11-27 2020-04-07 杭州趣链科技有限公司 一种基于区块链的数据分块确认方法、装置、设备和介质
KR102164156B1 (ko) * 2020-02-14 2020-10-13 주식회사 마이지놈박스 블록체인 네트워크를 이용한 의료 혹은 유전체 데이터 관리를 위한 시스템 및 이를 위한 방법
CN111934999A (zh) * 2020-09-25 2020-11-13 支付宝(杭州)信息技术有限公司 消息传输方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809517A (zh) * 2018-05-22 2018-11-13 泰康保险集团股份有限公司 一种区块链网络中的信息获取方法及装置
CN110720204A (zh) * 2018-12-19 2020-01-21 阿里巴巴集团控股有限公司 基于共享秘密的区块链存储
CN110071876A (zh) * 2019-04-28 2019-07-30 阿里巴巴集团控股有限公司 一种基于区块链的数据传输方法、装置及电子设备
CN110968899A (zh) * 2019-11-27 2020-04-07 杭州趣链科技有限公司 一种基于区块链的数据分块确认方法、装置、设备和介质
KR102164156B1 (ko) * 2020-02-14 2020-10-13 주식회사 마이지놈박스 블록체인 네트워크를 이용한 의료 혹은 유전체 데이터 관리를 위한 시스템 및 이를 위한 방법
CN111934999A (zh) * 2020-09-25 2020-11-13 支付宝(杭州)信息技术有限公司 消息传输方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023185042A1 (zh) * 2022-03-31 2023-10-05 蚂蚁区块链科技(上海)有限公司 直连通道的建立方法及装置

Similar Documents

Publication Publication Date Title
CN112968967B (zh) 区块同步方法及装置
CN111600965B (zh) 区块链中的共识方法和系统
CN109412946B (zh) 一种确定回源路径的方法、装置、服务器及可读存储介质
US7461128B2 (en) Method, apparatus and system for processing message bundles on a network
EP4123961A1 (en) Orangised storage of transactions in a blockchain network
HU227369B1 (en) A method, apparatus and computer program for reducing data transmitted over an external communication link from a first application resident in a first computer to a second application resident in a second computer
US11463278B2 (en) Message transmission methods and apparatuses
CN101567769A (zh) 数据重传方法、系统及对等节点
CN107995233B (zh) 建立连接的方法及相应的设备
WO2022105730A1 (zh) 一种保障sctp协议多归属报文同源同宿的方法和装置
FR3072237B1 (fr) Procede et dispositif pour la gestion dynamique du delai de retransmission de message sur un reseau d'interconnexion
CN114157670A (zh) 消息传输方法及装置
CN114157669B (zh) 消息传输方法及装置
CN110909030A (zh) 一种信息处理方法及服务器集群
CN117082054A (zh) 一种数据传输方法、装置、系统和介质
CN109067503B (zh) 一种数据重传方法和装置
CN112132583A (zh) 区块链的交易处理方法、装置、电子设备及可读存储介质
CN110784518A (zh) 一种静态资源获取方法与装置
CN106998361B (zh) 数据传输方法和系统
CN110995413A (zh) 一种防止伪节点攻击的联盟链共识节点管理方法
CN109995724B (zh) 一种通信方法、客户端及通信系统
CN110213362B (zh) 一种旁路环境下的长信息推送的方法和装置
CN113347050B (zh) 区块链节点退出节点集合的方法及装置
CN113592485B (zh) 钱包找回方法、计算机设备和存储介质
JP5681297B2 (ja) 中継バックアップ装置及び中継制御方法

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