CN111212126B - 一种区块链网络的数据传输方法、装置、设备和介质 - Google Patents
一种区块链网络的数据传输方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111212126B CN111212126B CN201911382967.XA CN201911382967A CN111212126B CN 111212126 B CN111212126 B CN 111212126B CN 201911382967 A CN201911382967 A CN 201911382967A CN 111212126 B CN111212126 B CN 111212126B
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- transmission
- node
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 276
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000002452 interceptive effect Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 17
- 239000002699 waste material Substances 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种区块链网络的数据传输方法、装置、设备和介质,涉及区块链技术领域。具体实现方案为:获取待传输数据;将所述待传输数据的数据标识,向相邻节点进行传输;在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输。本申请实施例通过预先向相邻节点传输待传输数据的数据标识,并在相邻节点需要该待传输数据时,由相邻节点发送数据拉取请求以主动进行待传输数据的拉取,从而避免了在区块链网络中的相邻节点之间广播待传输数据,导致的节点重复接收待传输数据的情况,减少了数据传输过程中的消息冗余和传输资源的浪费,从而提高了区块链网络中的数据传输效率。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及区块链技术。
背景技术
区块链技术的特点是去中心化的数据处理和存储,各个区块链节点都需要获得在区块链网络中广播的事务请求或区块,以便执行验证后进行上链存储。因此,区块链网络中存在着大量的数据传输。
现有区块链网络中数据传播,主要是通过全量广播的形式来实现的。由节点广播给相邻节点,相邻节点也进行类似广播,从而实现数据在全网的广播传输。
但是,全量广播存在的显著缺陷问题就是消息冗余,全网中大量数据被重复传输,带来严重的资源浪费。
发明内容
本申请实施例提供一种区块链网络的数据传输方法、装置、设备和介质,以提高区块链网络中的数据传输效率,减少传输资源浪费。
第一方面,本申请实施例提供了一种区块链网络的数据传输方法,由区块链节点执行,所述方法包括:
获取待传输数据;
将所述待传输数据的数据标识,向相邻节点进行传输;
在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输。
本申请实施例通过获取待传输数据,将待传输数据的数据标识向相邻节点进行传输;在接收到相邻节点的数据拉取请求时,将待传输数据向发送数据拉取请求的相邻节点进行传输。上述技术方案通过预先向相邻节点传输待传输数据的数据标识,并在相邻节点需要该待传输数据时,由相邻节点发送数据拉取请求以主动进行待传输数据的拉取,从而避免了在区块链网络中的相邻节点之间广播待传输数据,导致的节点重复接收待传输数据的情况,减少了数据传输过程中的消息冗余和传输资源的浪费,从而提高了区块链网络中的数据传输效率。
可选的,所述待传输数据为事务数据或区块数据,所述数据标识为事务标识或区块标识。
上述申请中的一种可选实施方式,通过将待传输数据细化为事务数据,相应的,将数据标识细化为事务标识,从而将本申请中的区块链网络的数据传输方法应用于在区块链网络进行事务数据传输的应用场景中。
上述申请中的另一可选实施方式,通过将待传输数据细化为区块数据,相应的,将数据标识细化为区块标识,从而将本申请中的区块链网络的数据传输方法应用于在区块链网络进行区块数据同步的应用场景中。
可选的,获取待传输数据之后,还包括:
选择确定所述待传输数据的传输策略,所述传输策略包括全量广播模式和交互广播模式;
如果确定所述传输策略为全量广播模式,则将所述待传输数据,向相邻节点进行广播传输;
如果确定所述传输策略为交互广播模式,则触发执行向所述相邻节点传输所述数据标识的操作。
上述申请中的一个可选实施方式,在获取待传输数据之后,追加传输策略的选择机制,并通过不同的传输策略在区块链网络中的相邻节点之间进行不同的数据传输操作,从而丰富了区块链网络中相邻节点之间进行数据传输的传输方式。
可选的,选择确定所述待传输数据的传输策略包括:
根据所述待传输数据的类型或网络传输性能,选择确定所述传输数据的传输策略。
上述申请中的一个可选实施方式,通过将传输策略的选择操作细化为根据待传输数据的类型或网络传输性能,进行传输策略的选择确定,以针对不同场景进行不同传输策略的选取,完善了传输策略的确定机制。
可选的,根据所述待传输数据的类型,选择确定所述传输数据的传输策略包括:
如果所述待传输数据的类型为本机节点自行产生的区块或自行预执行提交的事务数据,则选择确定所述传输数据的传输策略为全量广播模式。
上述申请中的一个可选实施方式,在本机节点自行产生区块链或预执行提交事务数据时,采用全量广播模式在区块链网络中进行数据传输,从而在数据生成节点向所有相邻节点进行最大限度的数据传输,减少了带宽浪费,提高了数传输效率。
可选的,根据网络传输性能,选择确定所述传输数据的传输策略包括:
如果预测所述待传输数据在节点之间的预测传输时延大于历史传输时延,则选择确定所述传输数据的传输策略为交互广播模式,否则确定为全量广播模式。
上述申请中的一个可选实施方式,在本机节点与相邻节点之间的预测传输时延大于历史传输时延时,采用交互广播模式,在预测传输时延不大于历史传输时延时,采用全量广播模式,保证了能够快速发送完的待传输数据在区块链网络的全量广播,从而为待传输数据快速覆盖全网提供了保障。
可选的,预测所述待传输数据在节点之间的预测传输时延是否大于历史传输时延包括:
获取本机节点与任一目标相邻节点之间,最近n次进行数据传输的平均传输时延和平均带宽;其中,n为自然数,所述平均传输时延作为所述历史传输时延;
按照如下公式计算所述预测传输时延:
其中,Size_Data为待传输数据的大小;AvgBandwidth为平均带宽;T为预测传输时延;
比较所述预测传输时延与所述平均传输时延的大小关系。
上述申请中的一个可选实施方式,通过待传输数据大小以及平均带宽进行预测传输时延的确定,并通过预测传输时延与平均传输时延进行比较,从而进行传输策略的确定,进一步完善了传输策略的确定机制,从而为小数据量的待传输数据更快的广播至全网提供了保障。
可选的,根据网络传输性能,选择确定所述传输数据的传输策略包括:
如果当前网络传输性能的参数低于设定阈值,则选择确定所述传输数据的传输策略为交互广播模式。
上述申请中的一个可选实施方式,通过在区块链网络的网络传输性能较差时采用交互广播模式进行数据传输,减少了区块链网络中待传输数据重复传播的情况,从而提高了数据传输效率。
可选的,在本机节点获取到相邻节点传输的数据标识时,根据所述数据标识,在本机节点存储的区块中或待处理数据队列中查询是否存在所述数据标识;
如果不存在,则向该相邻节点发起数据拉取请求。
上述申请中的一个可选实施方式,当本机节点作为其他节点的相邻节点接收到数据标识时,通过在本机节点存储的区块链或待处理数据队列中进行数据标识的查询,从而确定是否进行待传输数据的拉取,避免了待传输数据的重复获取带来的数据冗余和传输资源的浪费。
可选的,所述区块链节点和相邻节点之间基于点对点通信协议进行传输。
上述申请中的一个可选实施方式,通过将区块链节点与相邻节点之间传输时的传输协议细化为点对点通信协议,从而将本申请所涉及的数据传输机制应用于点对点传输的区块链网络,进一步完善了区块链网络的数据传输方法的应用场景。
第二方面,本申请实施例还提供了一种区块链网络的数据传输装置,配置于区块链节点,所述装置包括:
待传输数据获取模块,用于获取待传输数据;
数据标识传输模块,用于将所述待传输数据的数据标识,向相邻节点进行传输;
待传输数据传输模块,用于在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输。
第三方面,本申请实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面实施例所提供的一种区块链网络的数据传输方法。
第四方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如第一方面实施例所提供的一种区块链网络的数据传输方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例一中的区块链网络的数据传输方法的流程图;
图2A是本申请实施例二中的区块链网络的数据传输方法的流程图;
图2B是本申请实施例二中的一种全量广播模式的示意图;
图2C是本申请实施例二中的一种交互广播模式的示意图;
图2D是本申请实施例二中的一种混合广播模式的示意图;
图3是本申请实施例三中的区块链网络的数据传输装置的结构图;
图4是用来实现本申请实施例的区块链网络的数据传输方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
实施例一
图1是本申请实施例一中的一种区块链网络的数据传输方法的流程图,本申请实施例适用于在区块链网络全网传输数据的情况,该方法由区块链网络的数据传输装置执行,该装置通过软件和/或硬件实现,并具体配置于部署有区块链节点的电子设备中。
如图1所示的一种区块链网络的数据传输方法,包括:
S101、获取待传输数据。
其中,待传输数据可以理解为需要在区块链网络全网传输的数据。示例性地,待传输数据可以是事务数据和/或区块数据。
示例性地,获取待传输数据,可以是从本机节点中的相邻节点获取的待传输数据;或者可选的,还可以是由本机节点通过处理事务请求产生待传输数据。
S102、将所述待传输数据的数据标识,向相邻节点进行传输。
其中,数据标识可以理解为待传输数据在区块链中的唯一身份标识。
示例性地,当待传输数据为事务数据时,相应的,数据标识可以是事务标识;当待传输数据为区块数据时,相应的,数据标识可以是区块标识。
其中,根据区块链节点所采用的通信协议,可以确定与本机节点能够建立通信联系的相邻节点。例如,对于点对点(P2P)通信协议,可建立相邻节点列表,存储能够建立通信联系的节点的信息。
示例性地,本机节点将待传输数据的数据标识向相邻节点进行传输;相邻节点接收到该本机节点发送的数据标识之后,根据数据标识在节点本地存储的区块中或待处理数据队列中查找是否包含有该数据标识;若不包含有该数据标识,则表明该相邻节点中尚未存储有待传输数据,因此向该本机节点发送数据拉取请求,用于指示获取该待传输数据;若包含有该数据标识,则表明该相邻节点已从区块链网络中其他节点接收到该待传输数据,或该传输数据由该相邻节点自身产生,因此不会向该本机节点发送数据拉取请求。或者,相邻节点也可以通过其他方式判断是否存在获取待传输数据的需求。
示例性地,区块链节点和相邻节点之间可以基于点对点通信协议进行数据标识的传输。
S103、在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输。
相应的,当本机节点接收到数据拉取请求后,将待传输数据向发送数据拉取请求的相邻节点进行传输;若未接收到相邻节点的数据拉取请求,则表明本机节点、区块链网络中的其他节点已经向该相邻节点传输过待传输数据,或待传输数据由该相邻节点产生,或基于其他原因相邻节点不需要获取此数据,所以不会向该相邻节点传输待传输数据。
本申请实施例通过获取待传输数据,将待传输数据的数据标识向相邻节点进行传输;在接收到相邻节点的数据拉取请求时,将待传输数据向发送数据拉取请求的相邻节点进行传输。上述技术方案通过预先向相邻节点传输待传输数据的数据标识,并在相邻节点需要该待传输数据时,由相邻节点发送数据拉取请求以主动进行待传输数据的拉取,从而避免了在区块链网络中的相邻节点之间广播待传输数据,导致的节点重复接收待传输数据的情况,减少了数据传输过程中的消息冗余和传输资源的浪费,从而提高了区块链网络中的数据传输效率。
在本申请实施例的另一可选实施方式中,若本机节点作为区块链网络中其他节点的相邻节点获取到数据标识时,根据所述数据标识,在本机节点存储的区块中或待处理数据队列中查询是否存在所述数据标识;如果不存在,则向该相邻节点发起数据拉取请求。
具体的,本机节点根据数据标识在本地存储的区块中或待处理数据队列中查询是否存在数据标识,若是,则表明本机节点中已存储与获取到的数据标识相对应的数据,因此无需向数据标识的发起节点发送数据拉取请求;若否,则表明本机节点中尚未存储与获取到的数据标识相对应的数据,因此需要向数据标识的发起节点发送数据拉取请求,用于指示获取到的数据标识相对应的数据的传输操作。
实施例二
图2A是本申请实施例二中的一种区块链网络的数据传输方法的流程图,本申请实施例在上述各实施例的技术方案的基础上,进行了优化改进。
进一步地,在获取“获取待传输数据”之后,追加“选择确定所述待传输数据的传输策略,所述传输策略包括全量广播模式和交互广播模式;如果确定所述传输策略为全量广播模式,则将所述待传输数据,向相邻节点进行广播传输;如果确定所述传输策略为交互广播模式,则触发执行向所述相邻节点传输所述数据标识的操作”操作,以在区块链网络中实现混合广播模式。
如图2A所示的一种区块链网络的数据传输方法,包括:
S201、获取待传输数据。
S202、选择确定所述待传输数据的传输策略,所述传输策略包括全量广播模式和交互广播模式。
S203A、如果确定所述传输策略为全量广播模式,则将所述待传输数据,向相邻节点进行广播传输。
S203B、如果确定所述传输策略为交互广播模式,则将所述待传输数据的数据标识,向相邻节点进行传输。
S204B、在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输。
示例性地,选择确定所述待传输数据的传输策略,可以是根据所述待传输数据的类型或网络传输性能,选择确定所述传输数据的传输策略。
在本申请实施例的一种可选实施方式中,根据所述待传输数据的类型,选择确定所述传输数据的传输策略,可以是如果所述待传输数据的类型为本机节点自行产生的区块或自行预执行提交的事务数据,则选择确定所述传输数据的传输策略为全量广播模式。
可以理解的是,当本机节点自行产生的区块或自行预执行提交事务数据时,表明本机节点为待传输数据的数据生成节点,因此本机节点的各相邻节点均未存储有该待传输数据,所以选择全量广播模式向相邻节点进行待传输数据的广播传输,从而能够向数据生成节点进行最大限度的数据传输,减少了带宽资源的浪费,提高了数据传输效率。
在本申请实施例的另一可选实施方式中,根据网络传输性能,选择确定所述传输数据的传输策略,可以是如果预测所述待传输数据在节点之间的预测传输时延大于历史传输时延,则选择确定所述传输数据的传输策略为交互广播模式,否则确定为全量广播模式。
示例性地,预测所述待传输数据在节点之间的预测传输时延是否大于历史传输时延,可以是:
获取本机节点与任一目标相邻节点之间,最近n次进行数据传输的平均传输时延和平均带宽;其中,n为自然数,所述平均传输时延作为所述历史传输时延;
按照如下公式计算所述预测传输时延:
其中,Size_Data为待传输数据的大小;AvgBandwidth为平均带宽;T为预测传输时延;
比较所述预测传输时延与所述平均传输时延的大小关系。
具体的,平均带宽采用如下公式计算:
其中,AvgBandwidth为n次历史传输待传输数据的平均带宽;Bandwidthi为第i次历史传输带传输数据的带宽。
具体的,平均传输时延可以采用如下公式计算:
其中,AvgRTT为n次历史传输待传输数据的平均传输时延;RTTi为第i次历史传输待传输数据的传输时延。
按照如下公式选择确定传输数据的传输策略:
其中,Mode为0表示采用全量广播模式;Mode为1表示采用交互广播模式。
可以理解的是,当本机节点和相邻节点之间的预测传输时延大于历史传输时延时,表明待传输数据的数据量较大或网络性能较差,如果采用全量广播模式必然会存在大量的冗余数据的传输,必将增加大量的通信开销,影响传输效率,因此需要采用交互广播模式,首先向相邻节点发送数据量很小的数据标识,并在相邻节点未接收到待传输数据时,主动进行待传输数据的拉取,从而避免了相邻节点重复接收待传输数据,造成数据传输冗余的情况。一般的,待传输数据通常在1MB以上,而数据标识仅在1KB以内,因此增加数据标识在相邻节点之间的交互操作,避免待传输数据的不必要传输,能够显著减少带宽浪费,提高传输效率。
当本机节点和相邻节点之间的预测传输时延不大于历史传输时延时,表明待传输数据的数据量很小,此时增加数据标识在相邻节点之间的交互操作,将会带来额外的通信开销和数据延迟。此时,选择采用全量广播模式,将待传输数据向相邻节点进行广播传输,将会使待传输数据的全网覆盖更加高效。对于本机节点自行产生的区块或事务数据,直接进行全量广播也可以快速将新产生数据在全网进行传播。
在本申请实施例的再一可选实施方式中,根据网络传输性能,选择确定所述传输数据的传输策略,可以是如果当前网络传输性能的参数低于设定阈值,则选择确定所述传输数据的传输策略为交互广播模式。
可以理解的是,当相邻节点之间的网络传输性能的参数低于设定阈值时,表明相邻节点之间的网络性能较差,此时若采用全量广播模式,将会时区块链网络中进行大量待传输数据的传输,那么无论是待传输数据的发送节点的重复发送,还是待传输数据的接收节点的重复接收,都会使区块链网络的网络性能整体下降,从而大幅度降低数据传输效率。因此,此时需要采用交互广播模式,在相邻节点之间传输待传输数据之前,增加待传输数据的数据标识的交互操作,用以在数据标识的接收节点在需要接收待传输数据时,从数据标识的发起节点主动拉取,从而避免了待传输数据的重复发送的情况,进而在网络传输性能较差的情况下,提高待传输数据全网覆盖的效率。
可以理解的是,在一条待传输数据在区块链网络的全网覆盖过程中,可能会仅采用交互广播模式或全量广播模式,还可以采用交互广播模式和全量广播模式组合形成的混合广播模式。
参见图2B所示的一种全量广播模式的示意图,节点A直接向节点B发送待传输数据和待传输数据的数据标识。此时,存在不同节点向同一节点重复发送数据的情况。但是,当待传输数据为小数据量数据,如事务数据时,可以采用此种方式避免交互广播模式带来额外的通信开销和延迟。
参见图2C所示的一种交互广播模式的示意图。节点A向节点B发送待传输数据的数据标识;节点B在本机存储的区块中或待处理数据队列中查询是否存在数据标识,并在不存在时向节点A发送数据拉取请求;节点A接收到数据拉取请求后向节点B发送待传输数据。此时,节点B能够在接收到节点A发送的待传输数据之后,当再次接收到其他节点发送的该待传输数据的数据标识时,不再发送数据拉取请求,从而避免了其他节点重复进行待传输数据的发送,避免了区块链网络中带宽资源的浪费。
参见图2D所示的一种混合广播模式的示意图。节点A为待传输数据的数据生成节点,也即矿工节点,采用全量广播模式,直接将待传输数据和待传输数据的数据标识发送至节点B,无需进行数据标识交互操作,减少了节点A和节点B之间的通信开销,同时保证了待传输数据首次传输的覆盖范围。此后,节点B采用交互广播模式进行待传输数据的传输:节点B将接收的数据存储在本机区块链中;节点B向节点C发送所接收的待传输数据的数据标识;节点C在本机存储的区块中或待处理数据队列中查询是否存在数据标识,并在不存在时向节点B发送数据拉取请求;节点B接收到数据拉取请求后向节点C发送待传输数据。此时,节点C能够在接收到节点A发送的待传输数据之后,当再次接收到其他节点发送的该待传输数据的数据标识时,不再发送数据拉取请求,从而避免了其他节点重复进行待传输数据的发送,避免了区块链网络中带宽资源的浪费。
本申请实施例通过在获取待传输数据之后,追加待传输数据的传输策略的选择操作,并在确定选择全量广播模式时,将待传输数据向相邻节点进行广播传输;在确定交互广播模式时,向相邻节点发送待传输数据的数据标识,并在接收到相邻节点的数据拉取请求后,进行待传输数据的传输。采用上述技术方案能够在不同场景下进行传输策略的合理选择,从而丰富了区块链网络中的数据传输方式,并通过不同传输策略的合理选择,提高了区块链网络的数据传输效率。
实施例三
图3是本申请实施例三中的一种区块链网络的数据传输装置的结构图,本申请实施例适用于在区块链网络全网传输数据的情况,该装置通过软件和/或硬件实现,并具体配置于部署有区块链节点的电子设备中。
如图3所示的一种区块链网络的数据传输装置300,包括:待传输数据获取模块301、数据标识传输模块302和待传输数据传输模块303。其中,
待传输数据获取模块301,用于获取待传输数据;
数据标识传输模块302,用于将所述待传输数据的数据标识,向相邻节点进行传输;
待传输数据传输模块303,用于在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输。
本申请实施例通过待传输数据获取模块获取待传输数据,通过数据标识传输模块将待传输数据的数据标识向相邻节点进行传输;通过待传输数据传输模块在接收到相邻节点的数据拉取请求时,将待传输数据向发送数据拉取请求的相邻节点进行传输。上述技术方案通过预先向相邻节点传输待传输数据的数据标识,并在相邻节点需要该待传输数据时,由相邻节点发送数据拉取请求以主动进行待传输数据的拉取,从而避免了在区块链网络中的相邻节点之间广播待传输数据,导致的节点重复接收待传输数据的情况,减少了数据传输过程中的消息冗余和传输资源的浪费,从而提高了区块链网络中的数据传输效率。
进一步地,所述待传输数据为事务数据或区块数据,所述数据标识为事务标识或区块标识。
进一步地,该装置还包括,传输策略选择模块,用于:
在获取待传输数据之后,选择确定所述待传输数据的传输策略,所述传输策略包括全量广播模式和交互广播模式;
如果确定所述传输策略为全量广播模式,则将所述待传输数据,向相邻节点进行广播传输;
如果确定所述传输策略为交互广播模式,则触发数据标识传输模块执行向所述相邻节点传输所述数据标识的操作。
进一步地,传输策略选择模块,在执行选择确定所述待传输数据的传输策略时,具体用于:
根据所述待传输数据的类型或网络传输性能,选择确定所述传输数据的传输策略。
进一步地,传输策略选择模块,在执行根据所述待传输数据的类型,选择确定所述传输数据的传输策略时,具体用于:
如果所述待传输数据的类型为本机节点自行产生的区块或自行预执行提交的事务数据,则选择确定所述传输数据的传输策略为全量广播模式。
进一步地,传输策略选择模块,在执行根据网络传输性能,选择确定所述传输数据的传输策略时,具体用于:
如果预测所述待传输数据在节点之间的预测传输时延大于历史传输时延,则选择确定所述传输数据的传输策略为交互广播模式,否则确定为全量广播模式。
进一步地,传输策略选择模块,在执行预测所述待传输数据在节点之间的预测传输时延是否大于历史传输时延时,具体用于:
获取本机节点与任一目标相邻节点之间,最近n次进行数据传输的平均传输时延和平均带宽;其中,n为自然数,所述平均传输时延作为所述历史传输时延;
按照如下公式计算所述预测传输时延:
其中,Size_Data为待传输数据的大小;AvgBandwidth为平均带宽;T为预测传输时延;
比较所述预测传输时延与所述平均传输时延的大小关系。
进一步地,传输策略选择模块,在执行根据网络传输性能,选择确定所述传输数据的传输策略时,具体用于:
如果当前网络传输性能的参数低于设定阈值,则选择确定所述传输数据的传输策略为交互广播模式。
进一步地,该装置还包括,数据标识获取模块,用于:
获取到相邻节点传输的数据标识时,根据所述数据标识,在本机节点存储的区块中或待处理数据队列中查询是否存在所述数据标识;
如果不存在,则向该相邻节点发起数据拉取请求。
进一步地,所述区块链节点和相邻节点之间基于点对点通信协议进行传输。
上述区块链网络的数据传输装置可执行本申请任意实施例所提供的区块链网络的数据传输方法,具备执行区块链网络的数据传输方法相应的功能模块和有益效果。
实施例四
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图4所示,是实现本申请实施例的区块链网络的数据传输方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的区块链网络的数据传输方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的区块链网络的数据传输方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的区块链网络的数据传输方法对应的程序指令/模块(例如,附图3所示的待传输数据获取模块301、数据标识传输模块302和待传输数据传输模块303)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的区块链网络的数据传输方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行区块链网络的数据传输方法的电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至执行区块链网络的数据传输方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
执行区块链网络的数据传输方法的电子设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与执行区块链网络的数据传输方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请实施例通过获取待传输数据,将待传输数据的数据标识向相邻节点进行传输;在接收到相邻节点的数据拉取请求时,将待传输数据向发送数据拉取请求的相邻节点进行传输。上述技术方案通过预先向相邻节点传输待传输数据的数据标识,并在相邻节点需要该待传输数据时,由相邻节点发送数据拉取请求以主动进行待传输数据的拉取,从而避免了在区块链网络中的相邻节点之间广播待传输数据,导致的节点重复接收待传输数据的情况,减少了数据传输过程中的消息冗余和传输资源的浪费,从而提高了区块链网络中的数据传输效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种区块链网络的数据传输方法,其特征在于,由区块链节点执行,所述方法包括:
获取待传输数据;
将所述待传输数据的数据标识,向所述区块链节点的相邻节点列表中的相邻节点进行传输;
在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输;
其中,所述获取待传输数据之后,还包括:
根据所述待传输数据的类型或网络传输性能,选择确定所述待传输数据的传输策略;
如果所述待传输数据的类型为本机节点自行产生的区块或自行预执行提交的事务数据,表明所述本机节点为所述待传输数据的数据生成节点,则选择确定所述待传输数据的传输策略为全量广播模式;
如果预测所述待传输数据在节点之间的预测传输时延大于历史传输时延,则选择确定所述待传输数据的传输策略为交互广播模式,否则确定为全量广播模式,以在所述区块链网络中实现混合广播模式。
2.根据权利要求1所述的方法,其特征在于,所述待传输数据为事务数据或区块数据,所述数据标识为事务标识或区块标识。
3.根据权利要求1所述的方法,其特征在于,获取待传输数据之后,还包括:
如果确定所述传输策略为全量广播模式,则将所述待传输数据,向相邻节点进行广播传输;
如果确定所述传输策略为交互广播模式,则触发执行向所述相邻节点传输所述数据标识的操作。
5.根据权利要求1所述的方法,其特征在于,根据网络传输性能,选择确定所述待传输数据的传输策略包括:
如果当前网络传输性能的参数低于设定阈值,则选择确定所述待传输数据的传输策略为交互广播模式。
6.根据权利要求1所述的方法,其特征在于,还包括:
获取到相邻节点传输的数据标识时,根据所述数据标识,在本机节点存储的区块中或待处理数据队列中查询是否存在所述数据标识;
如果不存在,则向该相邻节点发起数据拉取请求。
7.根据权利要求1所述的方法,其特征在于,所述区块链节点和相邻节点之间基于点对点通信协议进行传输。
8.一种区块链网络的数据传输装置,其特征在于,配置于区块链节点,所述装置包括:
待传输数据获取模块,用于获取待传输数据;
数据标识传输模块,用于将所述待传输数据的数据标识,向所述区块链节点的相邻节点列表中的相邻节点进行传输;
待传输数据传输模块,用于在接收到相邻节点的数据拉取请求时,将所述待传输数据向发送所述数据拉取请求的相邻节点进行传输;
传输策略选择模块,用于:在获取待传输数据之后,根据所述待传输数据的类型或网络传输性能,选择确定所述待传输数据的传输策略,所述传输策略包括全量广播模式和交互广播模式,以在所述区块链网络中实现混合广播模式;
其中,所述传输策略选择模块,具体用于:
如果所述待传输数据的类型为本机节点自行产生的区块或自行预执行提交的事务数据,表明所述本机节点为所述待传输数据的数据生成节点,则选择确定所述待传输数据的传输策略为全量广播模式;
如果预测所述待传输数据在节点之间的预测传输时延大于历史传输时延,则选择确定所述待传输数据的传输策略为交互广播模式,否则确定为全量广播模式。
9. 一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的一种区块链网络的数据传输方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的一种区块链网络的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911382967.XA CN111212126B (zh) | 2019-12-27 | 2019-12-27 | 一种区块链网络的数据传输方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911382967.XA CN111212126B (zh) | 2019-12-27 | 2019-12-27 | 一种区块链网络的数据传输方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111212126A CN111212126A (zh) | 2020-05-29 |
CN111212126B true CN111212126B (zh) | 2023-05-26 |
Family
ID=70788362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911382967.XA Active CN111212126B (zh) | 2019-12-27 | 2019-12-27 | 一种区块链网络的数据传输方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111212126B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111600965B (zh) * | 2020-06-05 | 2023-10-27 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN113703364A (zh) * | 2021-08-25 | 2021-11-26 | 京东方科技集团股份有限公司 | 数据传输方法、设备及介质 |
CN115277697B (zh) * | 2022-07-18 | 2023-06-23 | 华南师范大学 | 大数据区块链的可信安全方法和医康养数据共享系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018126344A1 (zh) * | 2017-01-03 | 2018-07-12 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
CN108305056A (zh) * | 2018-03-27 | 2018-07-20 | 搜游网络科技(北京)有限公司 | 基于区块链的数据处理方法、装置及区块链节点网络 |
CN108696589A (zh) * | 2018-05-14 | 2018-10-23 | 百度在线网络技术(北京)有限公司 | 区块链数据传输方法、装置、设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158518B (zh) * | 2010-12-03 | 2014-04-30 | 华为技术有限公司 | 一种cdn网络中的数据传输方法、网络节点及系统 |
CN104754618B (zh) * | 2013-12-31 | 2019-12-06 | 索尼公司 | 无线数据传输方法和装置 |
CN108322401B (zh) * | 2017-01-17 | 2022-01-25 | 网宿科技股份有限公司 | 网络传输拥塞的控制方法及装置 |
CN108961052B (zh) * | 2018-06-25 | 2022-02-22 | 百度在线网络技术(北京)有限公司 | 区块链数据的验证方法、存储方法、装置、设备和介质 |
CN109669943A (zh) * | 2018-11-30 | 2019-04-23 | 深圳灵图慧视科技有限公司 | 数据存储方法、数据查询方法及装置 |
CN109784928B (zh) * | 2019-01-23 | 2024-04-12 | 众安信息技术服务有限公司 | 基于区块链的信息处理方法及信息处理装置 |
-
2019
- 2019-12-27 CN CN201911382967.XA patent/CN111212126B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018126344A1 (zh) * | 2017-01-03 | 2018-07-12 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
CN108305056A (zh) * | 2018-03-27 | 2018-07-20 | 搜游网络科技(北京)有限公司 | 基于区块链的数据处理方法、装置及区块链节点网络 |
CN108696589A (zh) * | 2018-05-14 | 2018-10-23 | 百度在线网络技术(北京)有限公司 | 区块链数据传输方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
翟社平 ; 段宏宇 ; 李兆兆 ; 高山 ; 李婧 ; .区块链技术:应用及问题.西安邮电大学学报.2018,(01),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111212126A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111212126B (zh) | 一种区块链网络的数据传输方法、装置、设备和介质 | |
US8726280B2 (en) | Method and system for autonomic application program spawning in a computing environment | |
Chiu et al. | Ultra-low latency service provision in 5G fog-radio access networks | |
CN110545541B (zh) | 防御攻击行为的方法、装置、设备、终端和介质 | |
US10986537B2 (en) | Method of selecting user plane gateway and device of selecting user plane gateway | |
CN115211225B (zh) | 一种卫星链路信息确定方法及装置 | |
US20210218824A1 (en) | Method and device for processing mini program data | |
CN109951311B (zh) | 网络切片实例化的方法、装置、设备及存储介质 | |
CN111966502B (zh) | 用于调整实例数的方法、装置、电子设备及可读存储介质 | |
CN112771928A (zh) | 一种卫星回传信息的确定方法及装置 | |
CN112069137B (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
CN115189819B (zh) | 确定pucch资源的方法、装置及终端 | |
US20230275807A1 (en) | Data processing method and device | |
CN109863791B (zh) | 用于在无线通信系统中选择接入网络的方法和装置 | |
CN111090783B (zh) | 推荐方法、装置和系统、图嵌入的游走方法、电子设备 | |
EP4277136A1 (en) | Method and apparatus for determining uplink antenna panel, and communication device | |
CN112770358A (zh) | 基于业务数据的多速率模式数据发送控制方法及装置 | |
CN113595894B (zh) | 服务节点间、客户端节点间通信方法、装置、设备及介质 | |
CN110493095A (zh) | 一种vpn业务的处理方法、装置、服务器和存储介质 | |
CN108617032B (zh) | 一种ue空闲态处理方法、mm功能实体及sm功能实体 | |
CN111432011B (zh) | 区块链的网络通信方法和设备 | |
CN112153754B (zh) | 点对点连接方法、装置、电子设备及存储介质 | |
CN111479319B (zh) | 一种通信方法以及装置 | |
CN111901254A (zh) | 全节点的带宽分配方法、装置、电子设备以及存储介质 | |
CN101355512A (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 |