CN111510309B - 区块链数据传输方法、装置、设备及计算机可读存储介质 - Google Patents
区块链数据传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111510309B CN111510309B CN202010273017.XA CN202010273017A CN111510309B CN 111510309 B CN111510309 B CN 111510309B CN 202010273017 A CN202010273017 A CN 202010273017A CN 111510309 B CN111510309 B CN 111510309B
- Authority
- CN
- China
- Prior art keywords
- node
- representative
- block chain
- target
- representative 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- 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
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区块链数据传输方法、装置、设备及计算机可读存储介质,该区块链数据传输方法包括以下步骤:划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。本发明通过有规律地转发区块链数据,提高数据传输效率,避免重复发送传输数据。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链数据传输方法、装置、设备及计算机可读存储介质。
背景技术
区块链集成分布式数据存储、点对点传输、共识机制、非对称加密算法等多种计算机技术,提出了一种创新的应用***。区块链能够在分布式网络***中,迅速建立起陌生节点间的信任关系。总的运作过程如下:在区块链***将一定时间内的事务提交请求或者一定数量的事物提交请求,交付给当前具有区块生成权的节点。具有区块记账权的节点对事物提交请求进行处理,从而形成区块;具有区块生成权的节点将区块数据发送给区块链***中的其他节点,其他节点进行同样的处理过程,以验证处理结果是否与区块数据一致,若一致则认可该区块并将该区块添加到区块链中,否则不认可该区块并丢弃。
目前,区块链网络的节点通过维护一张DHT(Distributed Hash Table,分布式哈希表),缓存整个区块链网络在线节点的网络信息。刚加入区块链网络,新节点向区块链网络在线节点发起DHT节点查询。在查找网络节点的过程中,新节点逐步填充自身的DHT。同时,节点根据DHT随机选择节点建立TCP数据传输通道,以传输区块数据。这种随机选取DHT其中的节点传输区块数据的传输方式,由于DHT中的节点多而无规律,因此容易导致区块数据传输效率低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种区块链数据传输方法、装置、设备及计算机可读存储介质,旨在解决区块数据传输效率低的技术问题。
为实现上述目的,本发明提供一种区块链数据传输方法,所述区块链数据传输方法应用于区块链网络中的各个节点,所述区块链网络包括多个通信节点,所述区块链数据传输方法包括以下步骤:
划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;
当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;
将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。
可选地,所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点的步骤包括:
划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表;
选择所述节点表各个区域中的任一通信节点作为代表节点。
可选地,所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表的步骤包括:
获取所述当前节点的第一节点编号以及所述区块链网络中除当前节点之外的通信节点的第二节点编号;
基于所述第一节点编号以及所述第二节点编号,通过预设计算规则,将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
可选地,所述预设计算规则包括异或计算规则,所述基于所述第一节点编号以及所述第二节点编号,通过预设计算规则,将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表的步骤包括:
将所述第一节点编号以及所述第二节点编号进行异或计算,确定多个类别的第二节点编号;
将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
可选地,所述遍历所述代表节点,确定目标代表节点的步骤包括:
遍历所述代表节点,确定属于当前节点转发任务的目标区域;
将属于所述目标区域的代表节点作为目标代表节点。
可选地,所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点步骤之后,还包括:
与所述代表节点建立数据传输通道;
所述将所述区块链数据发送至所述目标代表节点的步骤包括:
基于所述数据传输通道,将所述区块链数据发送至所述目标代表节点。
可选地,所述当发起消息广播事件时,遍历所述代表节点,确定目标代表节点的步骤包括:
监听是否发起消息广播事件;
若监听到发起消息广播事件,则遍历所述代表节点,确定目标代表节点。
此外,为实现上述目的,本发明还提供一种区块链数据传输装置,所述区块链数据传输装置包括:
划分模块,用于划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;
监听模块,用于当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;
转发模块,用于将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。
此外,为实现上述目的,本发明还提供一种区块链数据传输设备,所述区块链数据传输设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链数据传输程序,所述区块链数据传输程序被所述处理器执行时实现如上述的区块链数据传输方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链数据传输程序,所述区块链数据传输程序被处理器执行时实现如上述的区块链数据传输方法的步骤。
本发明通过划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。在本实施例中,划分区块链网络中的通信节点为多个区域,并在各个区域中选取代表节点,以供当前节点将区块链数据传输至目标代表节点,这种有规律地转发区块链数据的方式,可以提高数据传输效率,避免重复发送传输数据,并且提高区块链的网络吞吐量,降低区块链网络的全网消息时延,提升数据传输效率,使得区块链可以满足大规模用户的实时交互需求,更加适应频繁的高并发业务场景,从而加速区块链产业的应用落地。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的区块链数据传输设备结构示意图;
图2为本发明区块链数据传输方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的区块链数据传输设备结构示意图。
本发明实施例区块链数据传输设备可以是PC,也可以是智能手机、平板电脑、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该区块链数据传输设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,区块链数据传输设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图1中示出的区块链数据传输设备结构并不构成对区块链数据传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及区块链数据传输程序。
在图1所示的区块链数据传输设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的区块链数据传输程序。
在本实施例中,区块链数据传输装置包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的区块链数据传输程序,其中,处理器1001调用存储器1005中存储的区块链数据传输程序时,并执行以下操作:
划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;
当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;
将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。
进一步地,处理器1001可以调用存储器1005中存储的区块链数据传输程序,还执行以下操作:
划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表;
选择所述节点表各个区域中的任一通信节点作为代表节点。
进一步地,处理器1001可以调用存储器1005中存储的区块链数据传输程序,还执行以下操作:
获取所述当前节点的第一节点编号以及所述区块链网络中除当前节点之外的通信节点的第二节点编号;
基于所述第一节点编号以及所述第二节点编号,通过预设计算规则,将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
进一步地,处理器1001可以调用存储器1005中存储的区块链数据传输程序,还执行以下操作:
将所述第一节点编号以及所述第二节点编号进行异或计算,确定多个类别的第二节点编号;
将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
进一步地,处理器1001可以调用存储器1005中存储的区块链数据传输程序,还执行以下操作:
遍历所述代表节点,确定属于当前节点转发任务的目标区域;
将属于所述目标区域的代表节点作为目标代表节点。
进一步地,处理器1001可以调用存储器1005中存储的区块链数据传输程序,还执行以下操作:
与所述代表节点建立数据传输通道;
所述将所述区块链数据发送至所述目标代表节点的步骤包括:
基于所述数据传输通道,将所述区块链数据发送至所述目标代表节点。
进一步地,处理器1001可以调用存储器1005中存储的区块链数据传输程序,还执行以下操作:
监听是否发起消息广播事件;
若监听到发起消息广播事件,则遍历所述代表节点,确定目标代表节点。
本发明还提供一种区块链数据传输方法,参照图2,图2为本发明区块链数据传输方法第一实施例的流程示意图。
在本实施例中,该区块链数据传输方法包括以下步骤:
步骤S10,划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;
一实施例中,区块链网络中包含多个通信节点,任意两个节点之间可以通过数据传输通道进行区块链数据的传输,区块链网络中的节点存储有区块链网络中所有节点的节点信息,其中,节点信息包括但不限于节点标识、节点编号或者节点地址等,节点信息在本实施例中不做限定。在传输区块链数据之前,在各个通信节点中,按照预设的节点划分规则,预先将区块链网络中除自身节点之外的所有通信节点划分成多个区域,每个区域中包括若干个通信节点,并以节点表的方式记录划分通信节点的划分结果,从而确定划分通信节点后的节点表,并存储划分通信节点后的节点表。划分区域后,当前节点遍历预先存储的节点表,以遍历节点表中所存储的各个通信节点,并在节点表中的每个区域中随机选取一个通信节点为代表节点。其中,代表节点为用于向除代表节点本身以及当前节点之外的节点转发区块链数据的节点,也即用于转发区块链数据的节点。
进一步地,按照预设的节点划分规则,预先将区块链网络中除自身节点之外的所有通信节点划分成多个区域的步骤包括:将区块链网络中的其他通信节点的二进制节点编号的第一位与当前节点不同的通信节点分配至第一区域;然后,将区块链网络中的其他通信节点的二进制节点编号的第一位和第二位与当前节点不同的通信节点分配至第二区域;...;直至将区块链网络中的其他通信节点的二进制节点编号与当前节点的每一位都不同的通信节点划分为同一个区域。
进一步地,将当前节点的二进制节点编号分别与区块链网络其他的通信节点的二进制节点编号进行异或,得到当前节点与区块链网络其他的通信节点的异或结果,将第一位的异或结果属于预设属性的通信节点分配至第一区域;将第一位和第二位的异或结果都属于预设属性的通信节点分配至第二区域;...;直至将从第一位至最后一位的异或结果都属于预设属性的通信节点分配至相同的区域。其中,预设属性可以是正值或者零值。
为了便于理解,以当前节点进行举例说明,若区块链网络中包含8个通信节点,当前节点标记为111,其余的通信节点则分别标为000、001、010、011、100、101以及110,划分区域后的节点表如表1所示,分别从各个区域中随机选取一个通信节点为代表节点,如选取了节点编号为000、100、110的通信节点为代表节点。
K0 | 000、001、010、011 |
K1 | 100、101 |
K2 | 110 |
表1
步骤S20,当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;
一实施例中,消息广播事件为向其他节点广播消息的事件,消息广播事件可以是区块链数据传输事件或者区块链数据转发时间,即广播区块链数据,消息广播事件在本实施例中不作具体限定。在当前节点发起消息广播事件时,遍历在节点表中选取的代表节点,筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。具体地,若当前节点为发起消息广播任务的第一梯队节点,或者当前节点不属于转发节点,则将所选择的代表节点均作为目标代表节点;若当前节点为发起消息广播任务的转发梯队节点,或者当前节点属于转发节点,则确定传输区块链数据至当前节点的目标通信节点,并基于目标通信节点,排除属于目标通信节点传输数据的区域,节点表中剩余的区域则为目标区域,从而可以筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。
为了便于理解,以当前节点进行举例说明,若区块链网络中包含8个通信节点,当前节点标记为111,已划分区域如表1所示,且选择的代表节点为000、100和110,若当前节点为发起消息广播任务的第一梯队节点,或者当前节点不属于转发节点,则将所选择的代表节点000、100和110均作为目标代表节点;若由节点000转发数据至当前节点111,则根据节点000,可以排除K0区域,确定属于当前节点111转发任务的目标区域为K1和K2,从而确定属于目标区域为K1和K2的代表节点为目标节点为100和110。
步骤S30,将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。
一实施例中,选择属于转发任务中的目标代表节点后,将发起广播的区块链数据发送至目标代表节点,或者将接收到的区块链数据转发至目标代表节点,以供目标代表节点在目标代表节点所在区域包含的通信节点中选择下级代表节点,并将区块链数据转发至下级代表节点,直至区块链网络中所有的通信节点接收到区块链数据。具体地,在当前节点将接收到的区块链数据转发至目标代表节点,目标代表节点接收到区块链数据后,目标代表节点作为当前节点,执行所述步骤:发起消息广播事件,在当前节点发起消息广播事件时,遍历在节点表中选取的代表节点,筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。若当前节点为发起消息广播任务的第一梯队节点,或者当前节点不属于转发节点,则将所选择的代表节点均作为目标代表节点;若当前节点为发起消息广播任务的转发梯队节点,或者当前节点属于转发节点,则确定传输区块链数据至当前节点的目标通信节点,并基于目标通信节点,排除属于目标通信节点传输数据的区域,节点表中剩余的区域则为目标区域,从而可以筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。
本实施例提出的区块链数据传输方法,通过划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;之后,当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;最后,将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。在本实施例中,划分区块链网络中的通信节点为多个区域,并在各个区域中选取代表节点,以供当前节点将区块链数据传输至目标代表节点,这种有规律地转发区块链数据的方式,可以提高数据传输效率,避免重复发送传输数据,并且提高区块链的网络吞吐量,降低区块链网络的全网消息时延,提升数据传输效率,使得区块链可以满足大规模用户的实时交互需求,更加适应频繁的高并发业务场景,从而加速区块链产业的应用落地。
基于第一实施例,提出本发明区块链数据传输方法的第二实施例,在本实施例中,步骤S10包括:
步骤a,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表;
步骤b,选择所述节点表各个区域中的任一通信节点作为代表节点。
一实施例中,在传输区块链数据之前,在各个通信节点中,按照预设的节点划分规则,预先将区块链网络中除自身节点之外的所有通信节点划分成多个区域,每个区域中包括若干个通信节点,并以节点表的方式记录划分通信节点的划分结果,从而确定划分通信节点后的节点表,并存储划分通信节点后的节点表。划分区域后,当前节点遍历预先存储的节点表,以遍历节点表中所存储的各个通信节点,并在节点表中的每个区域中随机选取一个通信节点为代表节点。其中,代表节点为用于向除代表节点本身以及当前节点之外的节点转发区块链数据的节点,也即用于转发区块链数据的节点。
进一步地,一实施例中,所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表的步骤包括:
步骤c,获取所述当前节点的第一节点编号以及所述区块链网络中除当前节点之外的通信节点的第二节点编号;
步骤d,基于所述第一节点编号以及所述第二节点编号,通过预设计算规则,将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
一实施例中,第一节点编号和第二节点编号可以是二进制节点编号,将区块链网络中的其他通信节点的第二节点编号的第一位与当前节点的第一节点编号不同的通信节点分配至第一区域;然后,将区块链网络中的其他通信节点的第二节点编号的第一位和第二位与当前节点的第一节点编号不同的通信节点分配至第二区域;...;直至将区块链网络中的其他通信节点的第一节点编号与当前节点的第一节点编号都不同的通信节点划分为同一个区域。
进一步地,一实施例中,所述预设计算规则包括异或计算规则,所述基于所述第一节点编号以及所述第二节点编号,通过预设计算规则,将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表的步骤包括:
步骤e,将所述第一节点编号以及所述第二节点编号进行异或计算,确定多个类别的第二节点编号;
步骤f,将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
进一步地,将当前节点的第一节点编号分别与区块链网络其他的通信节点的第二节点编号进行异或计算,得到当前节点与区块链网络其他的通信节点的异或结果,将第一位的异或结果属于预设属性的通信节点分配至第一区域;将第一位和第二位的异或结果都属于预设属性的通信节点分配至第二区域;...;直至将从第一位至最后一位的异或结果都属于预设属性的通信节点分配至相同的区域,从而可以将相同类别的第二节点编号对应的通信节点分配至同一区域,以划分区块链网络中除当前节点之外的通信节点至多个区域,得到包含多个区域的节点表。
进一步地,一实施例中,所述遍历所述代表节点,确定目标代表节点的步骤包括:
步骤g,遍历所述代表节点,确定属于当前节点转发任务的目标区域;
步骤h,将属于所述目标区域的代表节点作为目标代表节点。
一实施例中,遍历在节点表中选取的代表节点,筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。具体地,若当前节点为发起消息广播任务的第一梯队节点,或者当前节点不属于转发节点,则将所选择的代表节点均作为目标代表节点;若当前节点为发起消息广播任务的转发梯队节点,或者当前节点属于转发节点,则确定传输区块链数据至当前节点的目标通信节点,并基于目标通信节点,排除属于目标通信节点传输数据的区域,节点表中剩余的区域则为目标区域,从而可以筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。
进一步地,一实施例中,所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点步骤之后,还包括:
步骤i,与所述代表节点建立数据传输通道;
步骤j,所述将所述区块链数据发送至所述目标代表节点的步骤包括:
基于所述数据传输通道,将所述区块链数据发送至所述目标代表节点。
一实施例中,在传输区块链数据之前,在各个通信节点中,按照预设的节点划分规则,预先将区块链网络中除自身节点之外的所有通信节点划分成多个区域,每个区域中包括若干个通信节点,并以节点表的方式记录划分通信节点的划分结果,从而确定划分通信节点后的节点表,并存储划分通信节点后的节点表。划分区域后,遍历节点表中所存储的各个通信节点,并在节点表中的每个区域中随机选取一个通信节点为代表节点。之后,分别建立当前节点和代表节点之间的数据传输通道,以供后续通过数据传输通道将区块链数据发送至代表节点中的目标代表节点。
进一步地,一实施例中,所述当发起消息广播事件时,遍历所述代表节点,确定目标代表节点的步骤包括:
步骤k,监听是否发起消息广播事件;
步骤l,若监听到发起消息广播事件,则遍历所述代表节点,确定目标代表节点。
一实施例中,区块链网络中的所有通信节点均在时刻监听是否发起消息广播事件,以检测是否发起发送区块链数据任务或者转发区块链数据任务,若当前节点监听到发起消息广播事件,说明当前节点需要向其他节点传输区块链数据,那么遍历在节点表中选取的代表节点,筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。具体地,若当前节点为发起消息广播任务的第一梯队节点,或者当前节点不属于转发节点,则将所选择的代表节点均作为目标代表节点;若当前节点为发起消息广播任务的转发梯队节点,或者当前节点属于转发节点,则确定传输区块链数据至当前节点的目标通信节点,并基于目标通信节点,排除属于目标通信节点传输数据的区域,节点表中剩余的区域则为目标区域,从而可以筛选属于当前节点转发任务的目标区域,将属于目标区域的代表节点作为目标代表节点。
本实施例提出的区块链数据传输方法,通过划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表;选择所述节点表各个区域中的任一通信节点作为代表节点,以供当前节点将区块链数据传输至目标代表节点,这种有规律地转发区块链数据的方式,可以提高数据传输效率,避免重复发送传输数据,并且提高区块链的网络吞吐量,降低区块链网络的全网消息时延,提升数据传输效率,使得区块链可以满足大规模用户的实时交互需求,更加适应频繁的高并发业务场景,从而加速区块链产业的应用落地。
此外,本发明实施例还提出一种区块链数据传输装置,所述区块链数据传输装置包括:
划分模块,用于划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;
监听模块,用于当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;
转发模块,用于将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据。
可选地,所述划分模块,还用于:
划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表;
选择所述节点表各个区域中的任一通信节点作为代表节点。
可选地,所述划分模块,还用于:
获取所述当前节点的第一节点编号以及所述区块链网络中除当前节点之外的通信节点的第二节点编号;
基于所述第一节点编号以及所述第二节点编号,通过预设计算规则,将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
可选地,所述划分模块,还用于:
将所述第一节点编号以及所述第二节点编号进行异或计算,确定多个类别的第二节点编号;
将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表。
可选地,所述监听模块,还用于:
遍历所述代表节点,确定属于当前节点转发任务的目标区域;
将属于所述目标区域的代表节点作为目标代表节点。
可选地,所述划分模块,还用于:
与所述代表节点建立数据传输通道;
所述将所述区块链数据发送至所述目标代表节点的步骤包括:
基于所述数据传输通道,将所述区块链数据发送至所述目标代表节点。
可选地,所述监听模块,还用于:
监听是否发起消息广播事件;
若监听到发起消息广播事件,则遍历所述代表节点,确定目标代表节点。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链数据传输程序,所述区块链数据传输程序被处理器执行时实现如上述中任一项所述的区块链数据传输方法的步骤。
本发明计算机可读存储介质具体实施例与上述区块链数据传输方法的各实施例基本相同,在此不再详细赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种区块链数据传输方法,其特征在于,所述区块链数据传输方法应用于区块链网络中的各个节点,所述区块链网络包括多个通信节点,所述区块链数据传输方法包括以下步骤:
划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;
当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;
将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据;
所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点的步骤包括:
获取所述当前节点的第一节点编号以及所述区块链网络中除当前节点之外的通信节点的第二节点编号;
将所述第一节点编号以及所述第二节点编号进行异或计算,确定多个类别的第二节点编号;
将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表;
选择所述节点表各个区域中的任一通信节点作为代表节点。
2.如权利要求1所述的区块链数据传输方法,其特征在于,所述遍历所述代表节点,确定目标代表节点的步骤包括:
遍历所述代表节点,确定属于当前节点转发任务的目标区域;
将属于所述目标区域的代表节点作为目标代表节点。
3.如权利要求1所述的区块链数据传输方法,其特征在于,所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点步骤之后,还包括:
与所述代表节点建立数据传输通道;
所述将所述区块链数据发送至所述目标代表节点的步骤包括:
基于所述数据传输通道,将所述区块链数据发送至所述目标代表节点。
4.如权利要求1至3任一项所述的区块链数据传输方法,其特征在于,所述当发起消息广播事件时,遍历所述代表节点,确定目标代表节点的步骤包括:
监听是否发起消息广播事件;
若监听到发起消息广播事件,则遍历所述代表节点,确定目标代表节点。
5.一种区块链数据传输装置,其特征在于,所述区块链数据传输装置包括:
划分模块,用于划分区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点;
监听模块,用于当发起消息广播事件时,遍历所述代表节点,确定目标代表节点;
转发模块,用于将所述区块链数据发送至所述目标代表节点,以供所述目标代表节点在所述目标代表节点所在区域包含的通信节点中选择下级代表节点,并将所述区块链数据转发至所述下级代表节点,直至所述区块链网络中所有的通信节点接收到所述区块链数据;
所述划分所述区块链网络中除当前节点之外的通信节点至多个区域,选择各个区域中的任一通信节点作为代表节点的步骤包括:
获取所述当前节点的第一节点编号以及所述区块链网络中除当前节点之外的通信节点的第二节点编号;
将所述第一节点编号以及所述第二节点编号进行异或计算,确定多个类别的第二节点编号;
将相同类别的第二节点编号分配至同一区域,划分所述区块链网络中除当前节点之外的通信节点至多个区域,得到包含所述多个区域的节点表;
选择所述节点表各个区域中的任一通信节点作为代表节点。
6.一种区块链数据传输设备,其特征在于,所述区块链数据传输设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链数据传输程序,所述区块链数据传输程序被所述处理器执行时实现如权利要求1至4中任一项所述的区块链数据传输方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链数据传输程序,所述区块链数据传输程序被处理器执行时实现如权利要求1至4中任一项所述的区块链数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010273017.XA CN111510309B (zh) | 2020-04-08 | 2020-04-08 | 区块链数据传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010273017.XA CN111510309B (zh) | 2020-04-08 | 2020-04-08 | 区块链数据传输方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510309A CN111510309A (zh) | 2020-08-07 |
CN111510309B true CN111510309B (zh) | 2022-05-10 |
Family
ID=71875948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010273017.XA Active CN111510309B (zh) | 2020-04-08 | 2020-04-08 | 区块链数据传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510309B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113225254B (zh) * | 2021-02-10 | 2022-04-22 | 中国科学院计算技术研究所 | 一种链下支付通道路由均衡方法 |
CN117135107B (zh) * | 2023-10-25 | 2024-02-13 | 苏州元脑智能科技有限公司 | 一种网络通信拓扑***、路由方法、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108696589A (zh) * | 2018-05-14 | 2018-10-23 | 百度在线网络技术(北京)有限公司 | 区块链数据传输方法、装置、设备和存储介质 |
CN108769264A (zh) * | 2018-07-09 | 2018-11-06 | 中国联合网络通信集团有限公司 | 一种区块链分域方法 |
CN109218037A (zh) * | 2018-07-10 | 2019-01-15 | 矩阵元技术(深圳)有限公司 | P2p网络中的消息广播方法及装置 |
WO2019021106A1 (en) * | 2017-07-24 | 2019-01-31 | nChain Holdings Limited | COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR SECURE STORAGE OF A LARGE BLOCK CHAIN ON A PLURALITY OF STORAGE NODES |
CN109309708A (zh) * | 2018-08-16 | 2019-02-05 | 泰链(厦门)科技有限公司 | 区块链***中区块生产速度的加快方法、介质、装置及区块链*** |
CN109949160A (zh) * | 2019-03-27 | 2019-06-28 | 上海优扬新媒信息技术有限公司 | 一种区块链的分片方法及装置 |
CN110493020A (zh) * | 2019-07-05 | 2019-11-22 | 深圳壹账通智能科技有限公司 | 基于区块链技术的广播消息传输方法、装置和*** |
CN110753026A (zh) * | 2019-02-27 | 2020-02-04 | 北京嘀嘀无限科技发展有限公司 | 一种基于区块链的分片方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109478280B (zh) * | 2016-07-29 | 2023-08-22 | 区块链控股有限公司 | 区块链实现的方法和*** |
US10812270B2 (en) * | 2017-04-07 | 2020-10-20 | Citizen Hex Inc. | Techniques for increasing the probability that a transaction will be included in a target block of a blockchain |
CN108323200B (zh) * | 2018-01-25 | 2022-12-20 | 达闼机器人股份有限公司 | 基于区块链的数据训练方法、装置、存储介质及区块链节点 |
-
2020
- 2020-04-08 CN CN202010273017.XA patent/CN111510309B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019021106A1 (en) * | 2017-07-24 | 2019-01-31 | nChain Holdings Limited | COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR SECURE STORAGE OF A LARGE BLOCK CHAIN ON A PLURALITY OF STORAGE NODES |
CN108696589A (zh) * | 2018-05-14 | 2018-10-23 | 百度在线网络技术(北京)有限公司 | 区块链数据传输方法、装置、设备和存储介质 |
CN108769264A (zh) * | 2018-07-09 | 2018-11-06 | 中国联合网络通信集团有限公司 | 一种区块链分域方法 |
CN109218037A (zh) * | 2018-07-10 | 2019-01-15 | 矩阵元技术(深圳)有限公司 | P2p网络中的消息广播方法及装置 |
CN109309708A (zh) * | 2018-08-16 | 2019-02-05 | 泰链(厦门)科技有限公司 | 区块链***中区块生产速度的加快方法、介质、装置及区块链*** |
CN110753026A (zh) * | 2019-02-27 | 2020-02-04 | 北京嘀嘀无限科技发展有限公司 | 一种基于区块链的分片方法及装置 |
CN109949160A (zh) * | 2019-03-27 | 2019-06-28 | 上海优扬新媒信息技术有限公司 | 一种区块链的分片方法及装置 |
CN110493020A (zh) * | 2019-07-05 | 2019-11-22 | 深圳壹账通智能科技有限公司 | 基于区块链技术的广播消息传输方法、装置和*** |
Non-Patent Citations (1)
Title |
---|
区块链全局账本数据的拆分技术研究;于雷等;《高技术通讯》;20171215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111510309A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6290439B2 (ja) | アクセスポイント開始型ネイバー報告要求 | |
TWI572204B (zh) | 內容分配之方法及裝置 | |
WO2017206572A1 (zh) | 一种多dhcp服务器网络环境下的ip地址管理方法和dhcp客户机 | |
JP2019522428A (ja) | サイバーセキュリティ管理システム、方法、および装置 | |
CN111510309B (zh) | 区块链数据传输方法、装置、设备及计算机可读存储介质 | |
JP2006229938A (ja) | 分散型ネットワーク発見 | |
US10554350B2 (en) | Sub-partitioning of wireless wideband channel and usage | |
WO2022148254A1 (zh) | 一种用户信息分析结果反馈方法及其装置 | |
CN105391622A (zh) | 即时通信或社交网络应用中分享资源的方法和*** | |
US20190166001A1 (en) | Network function nf management method and nf management device | |
US20190238352A1 (en) | Communication Method and Apparatus | |
CN110022329B (zh) | 文件传输方法、装置、计算机可读存储介质及计算机设备 | |
CN112134730B (zh) | 网络数据采集方法及装置 | |
US20240015069A1 (en) | Network function registration method, discovery method, apparatus, device and medium | |
CN110096381B (zh) | 远程过程调用的实现方法、装置、设备和介质 | |
CN113542420A (zh) | 热点文件的处理方法、装置、电子设备和介质 | |
US20220166842A1 (en) | Data distribution method and electronic device | |
CN111275495A (zh) | 基于区块链的广告投放监测方法、装置及*** | |
EP3808132B1 (en) | Cellular telecommunications network comprising a plurality of network slices | |
CN111008209A (zh) | 数据的对账方法、装置及***、存储介质、电子装置 | |
CN113595894B (zh) | 服务节点间、客户端节点间通信方法、装置、设备及介质 | |
CN112995095B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
WO2016074455A1 (zh) | 组资源更新处理方法、装置、***及cse | |
CN115699823A (zh) | 支持无线通信网络中收集和分析网络数据的移动性的方法和设备 | |
KR101823040B1 (ko) | 이기종 네트워크 기반 데이터 동시 전송 서비스 방법 |
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 |