CN110995589B - 一种区块链网络出块时的区块传递方法、装置及设备 - Google Patents
一种区块链网络出块时的区块传递方法、装置及设备 Download PDFInfo
- Publication number
- CN110995589B CN110995589B CN201910973723.2A CN201910973723A CN110995589B CN 110995589 B CN110995589 B CN 110995589B CN 201910973723 A CN201910973723 A CN 201910973723A CN 110995589 B CN110995589 B CN 110995589B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- determining
- transfer
- path
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开一种区块链网络出块时的区块传递方法、装置及设备,所述方法包括:分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径;基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径;根据所述区块传递路径,将所述区块传递至所述区块链网络的各个节点。基于该区块传递路径,出块节点将区块传递至各个节点所用的时间最短,区块传递效率较高。
Description
技术领域
本申请涉及数据处理领域,具体涉及一种区块链网络出块时的区块传递方法、装置及设备。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,它通过链式结构存储,有去中心化、不可篡改、可追溯等优良的技术特性。在区块链网络中,出块是指预先确定的出块节点把一段时间内的交易信息打包成可以落链的区块,并传递至区块链网络的各个节点的过程。
目前,出块节点利用全网广播的方式将区块传递至区块链网路的各个节点,但是,全网广播的方式对应的区块传递路径使得区块传递的时间较长,区块传递效率较低。
发明内容
有鉴于此,本申请提供了一种区块链网络出块时的区块传递方法、装置及设备,能够通过确定出块节点将区块传递至各个节点的用时最短路径的方式,提高区块的传递效率。
第一方面,为实现上述发明目的,本申请提供了一种区块链网络出块时的区块传递方法,所述方法包括:
分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径;
基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径;
根据所述区块传递路径,将所述区块传递至所述区块链网络的各个节点。
一种可选的实施方式中,所述分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径,包括:
将节点集合中的任一节点确定为目标节点;其中,所述节点集合包括区块链网络中的预设节点;
确定出块节点将区块传递至所述目标节点的用时最短路径;
将所述用时最短路径中包含的节点从所述节点集合中剔除后,继续执行所述将节点集合中的任一节点确定为目标节点的步骤,直到所述节点集合为空。
一种可选的实施方式中,所述确定出块节点将区块传递至所述目标节点的用时最短路径,包括:
确定出块节点经过m个节点将区块传递至所述目标节点所用的最短时间T;其中,m的初始取值为0;
确定所述区块链网络的节点中是否存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
如果存在,则将m的取值加1后,继续执行所述确定出块节点经过m个节点将区块传递至所述目标节点所用的最短时间T的步骤,直到确定所述区块链网络的节点中不存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
将所述出块节点经过所述m个节点将所述区块传递至所述目标节点的路径确定为所述出块节点将所述区块传递至所述目标节点的用时最短路径。
一种可选的实施方式中,所述将节点集合中的任一节点确定为目标节点,包括:
分别确定出块节点将区块直接传递至节点集合中的各个节点所用的时间;
将所用的时间最长的节点确定为目标节点。
一种可选的实施方式中,所述分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径,包括:
基于区块链网络中各个节点的硬件性能和节点之间的网络性能,分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径。
一种可选的实施方式中,所述基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径,包括:
对各个节点对应的用时最短路径中包含的相同的节点进行合并且去重处理,得到所述区块链网络的区块传递路径。
第二方面,本申请还提供了一种区块链网络出块时的区块传递装置,所述装置包括:
第一确定模块,用于分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径;
第二确定模块,用于基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径;
传递模块,用于根据所述区块传递路径,将所述区块传递至所述区块链网络的各个节点。
一种可选的实施方式中,所述第一确定模块,包括:
第一确定子模块,用于将节点集合中的任一节点确定为目标节点;其中,所述节点集合包括区块链网络中的预设节点;
第二确定子模块,用于确定出块节点将区块传递至所述目标节点的用时最短路径;
剔除子模块,用于将所述用时最短路径中包含的节点从所述节点集合中剔除;
第一触发子模块,用于在所述剔除子模块后,触发所述第一确定子模块,直到所述节点集合为空。
一种可选的实施方式中,所述第二确定子模块,包括:
第三确定子模块,用于确定出块节点经过m个节点将区块传递至所述目标节点所用的最短时间T;其中,m的初始取值为0;
第四确定子模块,用于确定所述区块链网络的节点中是否存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
第二触发子模块,用于在所述第四确定子模块的结果为是时,将m的取值加1,触发所述第三确定子模块,直到确定所述区块链网络的节点中不存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
第五确定子模块,用于将所述出块节点经过所述m个节点将所述区块传递至所述目标节点的路径确定为所述出块节点将所述区块传递至所述目标节点的用时最短路径。
一种可选的实施方式中,所述第一确定子模块,包括:
第六确定子模块,用于分别确定出块节点将区块直接传递至节点集合中的各个节点所用的时间;
第七确定子模块,用于将所用的时间最长的节点确定为目标节点。
一种可选的实施方式中,所述第一确定模块,具体用于:
基于区块链网络中各个节点的硬件性能和节点之间的网络性能,分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径。
一种可选的实施方式中,所述第二确定模块,具体用于:
对各个节点对应的用时最短路径中包含的相同的节点进行合并且去重处理,得到所述区块链网络的区块传递路径。
第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述任一项所述的方法。
第四方面,本申请还提供了一种区块链网络出块时的区块传递设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述任一项所述的方法。
本申请提供的区块链网络出块时的区块传递方法,通过确定的出块节点将区块分别传递至区块链网络的各个节点的用时最短路径,确定出该区块链网络的区块传递路径。基于该区块传递路径,出块节点将区块传递至各个节点所用的时间最短,区块传递效率较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种区块链网络出块时的区块传递方法的流程图;
图2为本申请实施例提供的一种确定出块节点将区块传递至目标节点的用时最短路径的方法流程图;
图3为本申请实施例提供的另一种区块链网络出块时的区块传递方法流程图;
图4为本申请实施例提供的一种矢量图;
图5为本申请实施例提供的一种区块链网络出块时的区块传递装置的结构示意图;
图6为本申请实施例提供的一种区块链网络出块时的区块传递设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链网络中,出块是指出块节点将一段时间内的交易信息打包成可以落链的区块,并将区块传递至该区块链网络的各个节点的过程。其中,出块节点可能是区块链网络中的任一节点,具体的,区块节点的确定方式在本申请中不作限制。
实际应用中,在区块链网络中的所有节点都有可能作为出块节点,在出块节点将一段时间内的交易信息打包成可以落链的区块之后,首先要做的工作是将该区块迅速传递至该区块链网络中的其他各个节点。所以,怎样在消耗最少资源的情况下,以较快速度完成区块的传递成为了一个问题。
显然,现有技术中利用全网广播的方式将区块传递至各个节点的方式耗时较长,效率较低,不能解决上述问题。同时,基于全网广播的特点,区块链网络中的各个节点可能多次接收区块,造成节点负担,导致资源浪费。
为此,本申请提供了一种区块链网络出块时的区块传递方法,通过确定的出块节点将区块分别传递至区块链网络的各个节点的用时最短路径,确定出该区块链网络的区块传递路径。基于该区块传递路径,出块节点将区块传递至各个节点所用的时间最短,区块传递效率较高。
本申请实施例提供了一种区块链网络出块时的区块传递方法,参考图1,为本申请实施例提供的一种区块链网络出块时的区块传递方法的流程图,该方法包括:
S101:确定出块节点将区块分别传递至区块链网络的各个节点的用时最短路径。
S102:基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径。
S103:根据所述区块传递路径,将所述区块传递至所述区块链网络的各个节点。
本申请实施例中,在区块链网络出块之前,首先需要确定出块节点,用于对一段时间内的交易信息打包,以形成可以落链的区块,并将其传递至区块链网络的各个节点。
一种可选的实施方式中,可以利用Proof Of Work(又称工作量证明)方法确定出块节点,具体的,通过一种预设算法,由区块链网络的各个节点之间比拼算力确定出块节点。值得注意的是,本申请对于出块节点的确定方式不作限制。
实际应用中,为了提高区块链网络出块时的区块传递效率,需要尽量保证出块节点将区块传递至各个节点的用时最短,即出块节点将区块传递至各个节点的传递效率最高。为此,本申请实施例在将区块传递至各个节点之前,首先确定出块节点将区块分别传递至区块链网络的各个节点的用时最短路径。
一种具体的实现方式中,将区块链网络的预设节点组成节点集合,并从节点集合中确定出任一节点作为目标节点,值得注意的是,预设节点不包括该区块链网络的出块节点。然后,确定出块节点将区块传递至该目标节点的用时最短路径。其中,用时最短路径是指出块节点将区块传递至目标节点所消耗时间最短的路径,即传递效率最高的路径。具体的,用时最短路径可以是出块节点将区块直接传递至目标节点的路径,也可以是出块节点经过任意一个或多个该区块链网络中的其他节点将区块传递至目标节点的路径。
本申请对于确定出块节点将区块传递至目标节点的用时最短路径的方式不作限制。以下为本申请实施例提供的一种确定出块节点将区块传递至目标节点的用时最短路径的方法,参考图2,为本申请实施例提供的一种确定出块节点将区块传递至目标节点的用时最短路径的方法流程图,该方法包括:
S201:确定出块节点经过m个节点将区块传递至目标节点所用的最短时间T;其中,m的初始取值为0。
其中,目标节点可以是由区块链网络的各个节点组成的节点集合中的任一节点,也可以通过其他方式确定目标节点,本申请实施例对于目标节点的确定方式不作限制。
可以理解的时,m的取值为0的情况是指,出块节点直接将区块传递至目标节点的情况。
S202:确定节点集合中是否存在m+1个节点,使得出块节点经过所述m+1个节点将区块传递至所述目标节点所用的时间少于所述最短时间T;如果存在,则执行S203;否则执行S204。
S203:将m的取值加1后,继续执行S201。
S204:将出块节点经过所述m个节点将所述区块传递至所述目标节点的路径确定为所述出块节点将所述区块传递至所述目标节点的用时最短路径。
以确定出块节点j将区块传递至目标节点k的用时最短路径为例,对上述实施方式进行具体介绍。可以理解的是,从出块节点j到目标节点k传递区块的用时最短路径,可能是直接从出块节点j到目标节点k的路径,也可能是出块节点经过其他任意节点再将区块传递至目标节点k的路径,其中的其他任意节点可以是一个或多个。因此,本申请实施例需要不断的循环计算,最终确定出块节点j到目标节点k传递区块的用时最短路径。
具体的,首先将m的取值确定为0,确定区块节点j将区块直接传递至目标节点k所用的时间T0,然后,确定节点集合中是否存在一个节点i,使得出块节点j基于路径j-i-k将区块传递至目标节点k所用的时间T1少于T0,如果不存在,则可以确定用时最短路径为j-k;如果存在,则将m的取值加1,继续确定节点集合中是否存在一个节点l,使得出块节点j经过节点i、l将区块传递至目标节点k所用的最短时间T2少于T1,依照上述方式循环执行,直到确定节点集合中不存在m+1个节点,使得出块节点j经过该m+1个节点将区块传递至目标节点k所用的时间少于经过上一个循环的m个节点所用的时间。此时可以将出块节点j经过这m个节点将区块传递至目标节点k的路径确定为用时最短路径。
本申请实施例中,发明人发现区块在区块链网络中从一个节点传递到另一个节点的速度与三个变量有关,本次出块的区块大小,传输节点的硬件性能以及传输节点到接收节点的网络速度。具体的,区块越小,传输节点的硬件性能越高,传输节点到接收节点的网络速度越快,则区块的传递时间越少,即区块从一个节点传递至另一个节点的速度越快。
由于本申请实施例中出块节点是对同一个区块进行传递,因此,在确定用时最短路径时可以不考虑区块大小这一变量。为此,本申请实施例可以基于传输节点的硬件性能和传输节点到接收节点的网络速度,确定出块节点将区块传递至目标节点所用的最短时间。具体的实施方式在本申请实施例的后续内容进行介绍。
本申请实施例中,在确定出块节点将区块传递至目标节点的用时最短路径后,将该用时最短路径中包含的节点从节点集合中剔除,然后重新从剔除节点后的节点集合中确定出任一节点作为下一个目标节点。依照上述确定出块节点将区块传递至目标节点的用时最短路径的方法循环执行,直到节点集合为空,此时出块节点将区块传递至各个节点的用时最短路径均已确定。
以节点集合C={C1,C2,…,Ci,…,Cn}为例,在确定出块节点Cj将区块传递至目标节点Ck的用时最短路径Cj-Ci-Ck后,将用时最短路径Cj-Ci-Ck中包含的节点Ci和Ck从节点集合C中剔除,然后重新从剔除节点Ck和Ci的C中重新确定节点Cl作为下一个目标节点。继续依照上述方式确定出块节点Cj将区块传递至目标节点Cl的用时最短路径,直到节点集合C为空,得到出块节点将区块传递至各个节点的用时最短路径。
S102中,在确定出块节点将区块传递至区块链网络中各个节点的用时最短路径后,将各个节点对应的用时最短路径进行合并,并去除重复的节点,得到出块节点将区块传递至区块链网络各个节点的区块传递路径。例如,确定出块节点1将区块传递至区块链网络中节点3的用时最短路径为1-2-3,以及确定出块节点1将区块传递至区块链网络中节点4的用时最短路径为1-2-3-4,则经过合并且去重处理后,得到路径1-2-3-4。本申请实施例通过对各个节点对应的用时最短路径中包含的相同的节点进行合并去重等处理,使得各个节点只接收一次区块,避免增加节点的负担以及造成资源的浪费。
S103中,在确定区块链网络的区块传递路径后,根据该区块传递路径将区块传递至该区块链网络的各个节点,完成该区块链网络的本次出块。
本申请提供的一种区块链网络出块时的区块传递方法中,通过确定的出块节点将区块分别传递至区块链网络的各个节点的用时最短路径,确定出该区块链网络的区块传递路径。基于该区块传递路径,出块节点将区块传递至各个节点所用的时间最短,区块传递效率较高。
为了便于对本申请的技术方案的理解,本申请实施例提供了一种区块链网络出块时的区块传递方法的具体实现方式。
其中,假设节点集合C={C1,C2,…,Ci,…,Cn},区块链网络中共n个节点,Cj为出块节点,各个节点的硬件性能利用向量B表示,B={B1,B2,…,Bi,…,Bn},其中,Bi表示节点Ci的硬件性能,例如为节点Ci的CPU、内存的速度;节点之间的网络性能利用矩阵A表示;
其中,Ajk表示节点Cj到节点Ck的网络性能,例如为节点Cj到节点Ck的网络传输时间。
由于节点Cj将区块直接传递至节点Ck所用的时间与本次出块的区块大小g成正比,与节点Cj的硬件性能Bj成反比,与节点Cj到节点Ck的网络性能成反比,因此,利用Ejk表示节点Cj将区块传递至节点Ck所用的时间;
其中,a为预设区块体积系数,b为预设硬件性能系数,c为预设网络性能系数,a、b、c均为预设常数。
参考图3,为本申请实施例提供的另一种区块链网络出块时的区块传递方法流程图。该方法具体包括:
S301:计算出块节点Cj将区块直接传递至节点集合C中各个节点的所用时间,并将所用时间最长的节点确定为目标节点,假设为Ck。
本申请实施例中,为了提高区块链网络的区块传递路径的确定效率,可以优先对耗时最长的路径进行优化,以便最大可能性的确定出包含较多节点的用时最短路径。因此,本申请实施例首先将所用时间最长的节点Ck确定为目标节点,以便优先确定出块节点Cj将区块传递至目标节点Ck的用时最短路径。
一种可选的实施方式中,可以预先计算出区块链网络中每两个节点之间的直接进行区块传递所用的时间,利用矩阵E表示;
实际应用中,可以从上述矩阵E中获取第j行的元素,并将其中的最大值对应的节点确定为目标节点。其中,第j行的元素依次分别表示出块节点Cj将区块直接传递至C1,C2,…,Ci,…,Cn所用的时间。假设出块节点Cj将区块直接传递至节点Ck所用的时间利用Ejk表示,Ejk为第j行元素中的最大值,则说明出块节点Cj将区块直接传递至节点Ck所用的时间最长,确定节点Ck为目标节点。
S302:确定节点集合C中是否存在一个节点,使得出块节点Cj经过该节点(假设为节点Ci)将区块传递至目标节点Ck所用的时间Eji+Eik小于Ejk,如果存在,则执行S303。
由于出块节点Cj到目标节点Ck的用时最短路径可能是出块节点Cj直接将区块传递至目标节点Ck的路径,也可能是出块节点Cj经过一个或多个节点将区块传递至目标节点Ck的路径,因此,本申请实施例需要通过逐渐向出块节点Cj到目标节点Ck路径之间插入节点,寻找用时最短路径。
实际应用中,可以从矩阵E中确定Eji+Eik的取值,也可以实时计算Eji+Eik的取值,在此不做限定。如果不存在节点Ci,使得Eji+Eik小于Ejk,则说明出块节点Cj将区块直接传递至Ck的路径为用时最短路径,不需要经过其他节点。此时,可以直接记录Cj-Ck为用时最短路径,也可以如后续S305利用向量D记录用时最短路径。
S303:确定C1,C2,…,Ci,…,Cn中是否存在一个节点,使得出块节点Cj经过该节点(假设为节点Cl)和节点Ci将区块传递至目标节点Ck所用的时间小于Eji+Eik,如果不存在,则执行S304。
实际应用中,如果Eji+Eik小于Ejk,则说明出块节点Cj经过节点Ci将区块传递至目标节点Ck所用的时间小于出块节点Cj将区块直接传递至目标节点Ck所用的时间。对于这种情况,本申请实施例需要继续向出块节点Cj到目标节点Ck路径之间插入节点,寻找用时最短路径。
具体的,确定是否存在节点Cl,使得出块节点Cj经过节点Cl和节点Ci将区块传递至目标节点Ck所用的时间小于Eji+Eik。值得注意的是,节点Cl可以插入到出块节点Cj与节点Ci之间,对于这一情况,可以确定Ejl+Eli+Eik是否小于Eji+Eik;节点Cl也可以插入到节点Ci与目标节点Ck之间,对于这一情况,可以确定Eji+Eil+Elk是否小于Eji+Eik。如果确定Ejl+Eli+Eik或Eji+Eil+Elk小于Eji+Eik,则继续向出块节点Cj到目标节点Ck路径之间插入其他节点,直到确定基于插入m+1个节点后的路径进行区块传递所用的时间不小于基于插入m个节点后的路径进行区块传递所用的时间。
S304:将出块节点Cj经过节点Ci将区块传递至目标节点Ck的路径确定为用时最短路径。
实际应用中,如果确定Ejl+Eli+Eik或Eji+Eil+Elk均不小于Eji+Eik,则说明出块节点Cj经过节点Ci将区块传递至目标节点Ck所用的时间最短,为节点Ci将区块传递至目标节点Ck的用时最短路径。
S305:利用向量D记录用时最短路径,并将用时最短路径中包含的节点Cl、节点Ci和节点Ck从节点集合C中剔除,并重新执行S301,直到节点集合C为空。
本申请实施例中,向量D={D1,D2,…,Di,…,Dn}的各个维度依次用于记录用时最短路径中向对应位置节点传递区块的节点,例如,对于用时最短路径Cj-Ci-Ck,则向节点Ci传递区块的节点为节点Cj,则将向量D的Di更新为Cj;向节点Ck传递区块的节点为节点Ci,则将向量D的Dk更新为Ci。
实际应用中,为了保证各个节点只接收一次区块,则在确定出任一用时最短路径后,将该用时最短路径中包含的节点(除出块节点Cj)从节点集合C中剔除,然后重新执行S301,从剔除节点后的节点集合C中重新确定目标节点,,直到节点集合C为空。
本申请实施例中,在确定出出块节点到各个节点的用时最短路径后,向量D中的各个维度记录有对应的节点,形成区块链网络的区块传递路径。利用向量D记录用时最短路径的方式不需要进行路径的合并与去重,提高了区块传递路径的确定效率。
实际应用中,为了对区块传递路径更形象的进行展示,本申请实施例可以将向量D转化成矢量图。假如区块链网络包括{C1,C2,C3,C4,C5,C6}6个节点,出块节点为C1,得到的向量D为{0,C1,C4,C1,C2,C3},则可以将向量D转化成如图4所示的矢量图。
本申请提供的区块链网络出块时的区块传递方法中,通过确定的出块节点将区块分别传递至区块链网络的各个节点的用时最短路径,确定出该区块链网络的区块传递路径。基于该区块传递路径,出块节点将区块传递至各个节点所用的时间最短,区块传递效率较高。另外,本申请能够保证各个节点只接收一次区块,避免造成节点负担以及资源浪费。
基于上述方法实施方式,本申请还提供了一种区块链网络出块时的区块传递装置,参考图5,为本申请实施例提供的一种区块链网络出块时的区块传递装置的结构示意图,所述装置包括:
第一确定模块501,用于分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径;
第二确定模块502,用于基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径;
传递模块503,用于根据所述区块传递路径,将所述区块传递至所述区块链网络的各个节点。
具体的,所述第一确定模块501,包括:
第一确定子模块,用于将节点集合中的任一节点确定为目标节点;其中,所述节点集合包括区块链网络中的预设节点;
第二确定子模块,用于确定出块节点将区块传递至所述目标节点的用时最短路径;
剔除子模块,用于将所述用时最短路径中包含的节点从所述节点集合中剔除;
第一触发子模块,用于在所述剔除子模块后,触发所述第一确定子模块,直到所述节点集合为空。
一种可选的实施方式中,所述第二确定子模块,包括:
第三确定子模块,用于确定出块节点经过m个节点将区块传递至所述目标节点所用的最短时间T;其中,m的初始取值为0;
第四确定子模块,用于确定所述节点集合中是否存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
第二触发子模块,用于在所述第四确定子模块的结果为是时,将m的取值加1,触发所述第三确定子模块,直到确定所述节点集合中不存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
第五确定子模块,用于将所述出块节点经过所述m个节点将所述区块传递至所述目标节点的路径确定为所述出块节点将所述区块传递至所述目标节点的用时最短路径。
具体的,所述第一确定子模块,包括:
第六确定子模块,用于分别确定出块节点将区块直接传递至节点集合中的各个节点所用的时间;
第七确定子模块,用于将所用的时间最长的节点确定为目标节点。
另外,所述第一确定模块,具体用于:
基于区块链网络中各个节点的硬件性能和节点之间的网络性能,分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径。
一种实施方式中,所述第二确定模块,具体用于:
对各个节点对应的用时最短路径中包含的相同的节点进行合并且去重处理,得到所述区块链网络的区块传递路径。
本申请提供的区块链网络出块时的区块传递装置中,通过确定的出块节点将区块分别传递至区块链网络的各个节点的用时最短路径,确定出该区块链网络的区块传递路径。基于该区块传递路径,出块节点将区块传递至各个节点所用的时间最短,区块传递效率较高。另外,本申请能够保证各个节点只接收一次区块,避免造成节点负担以及资源浪费。
另外,本申请实施例还提供了一种区块链网络出块时的区块传递设备,参见图6所示,可以包括:
处理器601、存储器602、输入装置603和输出装置604。区块链网络出块时的区块传递设备中的处理器601的数量可以一个或多个,图6中以一个处理器为例。在本发明的一些实施例中,处理器601、存储器602、输入装置603和输出装置604可通过总线或其它方式连接,其中,图6中以通过总线连接为例。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行区块链网络出块时的区块传递设备的各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置603可用于接收输入的数字或字符信息,以及产生与区块链网络出块时的区块传递设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现上述区块链网络出块时的区块传递方法中的各种功能。
另外,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的区块链网络出块时的区块传递方法。
可以理解的是,对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请实施例所提供的一种区块链网络出块时的区块传递方法、装置及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种区块链网络出块时的区块传递方法,其特征在于,所述方法包括:
分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径;
基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径;
根据所述区块传递路径,将所述区块传递至所述区块链网络的各个节点;
其中所述分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径,包括:
将节点集合中的任一节点确定为目标节点;其中,所述节点集合包括区块链网络中的预设节点;
确定出块节点将区块传递至所述目标节点的用时最短路径;
将所述用时最短路径中包含的节点从所述节点集合中剔除后,继续执行所述将节点集合中的任一节点确定为目标节点的步骤,直到所述节点集合为空;
其中用时最短路径是出块节点将区块直接传递至目标节点的路径,或者是出块节点经过任意一个或多个该区块链网络中的其他节点将区块传递至目标节点的路径。
2.根据权利要求1所述的方法,其特征在于,所述确定出块节点将区块传递至所述目标节点的用时最短路径,包括:
确定出块节点经过m个节点将区块传递至所述目标节点所用的最短时间T;其中,m的初始取值为0;
确定所述区块链网络的节点中是否存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
如果存在,则将m的取值加1后,继续执行所述确定出块节点经过m个节点将区块传递至所述目标节点所用的最短时间T的步骤,直到确定所述区块链网络的节点中不存在m+1个节点,使得所述出块节点经过所述m+1个节点将所述区块传递至所述目标节点所用的时间少于所述最短时间T;
将所述出块节点经过所述m个节点将所述区块传递至所述目标节点的路径确定为所述出块节点将所述区块传递至所述目标节点的用时最短路径。
3.根据权利要求1或2所述的方法,其特征在于,所述将节点集合中的任一节点确定为目标节点,包括:
分别确定出块节点将区块直接传递至节点集合中的各个节点所用的时间;
将所用的时间最长的节点确定为目标节点。
4.根据权利要求1所述的方法,其特征在于,所述分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径,包括:
基于区块链网络中各个节点的硬件性能和节点之间的网络性能,分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径。
5.根据权利要求1所述的方法,其特征在于,所述基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径,包括:
对各个节点对应的用时最短路径中包含的相同的节点进行合并且去重处理,得到所述区块链网络的区块传递路径。
6.一种区块链网络出块时的区块传递装置,其特征在于,所述装置包括:
第一确定模块,用于分别确定出块节点将区块传递至区块链网络的各个节点的用时最短路径;
第二确定模块,用于基于各个节点对应的所述用时最短路径,确定所述区块链网络的区块传递路径;
传递模块,用于根据所述区块传递路径,将所述区块传递至所述区块链网络的各个节点;
所述第一确定模块,包括:
第一确定子模块,用于将节点集合中的任一节点确定为目标节点;其中,所述节点集合包括区块链网络中的预设节点;
第二确定子模块,用于确定出块节点将区块传递至所述目标节点的用时最短路径;
剔除子模块,用于将所述用时最短路径中包含的节点从所述节点集合中剔除;
第一触发子模块,用于在所述剔除子模块后,触发所述第一确定子模块,直到所述节点集合为空。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-5任一项所述的方法。
8.一种区块链网络出块时的区块传递设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910973723.2A CN110995589B (zh) | 2019-10-14 | 2019-10-14 | 一种区块链网络出块时的区块传递方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910973723.2A CN110995589B (zh) | 2019-10-14 | 2019-10-14 | 一种区块链网络出块时的区块传递方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110995589A CN110995589A (zh) | 2020-04-10 |
CN110995589B true CN110995589B (zh) | 2022-03-04 |
Family
ID=70082019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910973723.2A Active CN110995589B (zh) | 2019-10-14 | 2019-10-14 | 一种区块链网络出块时的区块传递方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110995589B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7366791B2 (ja) * | 2020-02-14 | 2023-10-23 | 株式会社東海理化電機製作所 | 通信装置、情報処理方法、及びプログラム |
CN111711567B (zh) * | 2020-06-12 | 2022-01-07 | 杭州溪塔科技有限公司 | 一种基于区块链的网络消息传输方法装置及电子设备 |
CN112702174B (zh) * | 2020-12-25 | 2022-11-04 | 深圳市星际大陆科技有限公司 | 基于区块链的交易出块方法、系统、设备及存储介质 |
CN114363359A (zh) * | 2021-12-31 | 2022-04-15 | 支付宝(杭州)信息技术有限公司 | 一种区块同步方法、装置、电子设备和存储介质 |
CN114338723B (zh) * | 2021-12-31 | 2024-08-16 | 支付宝(杭州)信息技术有限公司 | 一种区块同步方法、装置、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108550038A (zh) * | 2018-04-18 | 2018-09-18 | 杭州秘猿科技有限公司 | 一种应用于区块链的数据传播系统及方法 |
CN108810119A (zh) * | 2018-05-31 | 2018-11-13 | 中国联合网络通信集团有限公司 | 区块链处理方法、装置及区块链节点 |
CN109446383A (zh) * | 2018-10-18 | 2019-03-08 | 尚维斯 | 一种区块链上多路递归寻块的方法 |
CN109617994A (zh) * | 2018-12-30 | 2019-04-12 | 于涛 | 一种定位区块链中节点位置的方法及系统 |
CN109698792A (zh) * | 2018-12-27 | 2019-04-30 | 四川灵通电讯有限公司 | 路由器节点之间的通信方法及其切换方法 |
CN109767166A (zh) * | 2019-01-08 | 2019-05-17 | 广东邮政邮件快件服务有限公司 | 一种基于区块链的共享物流配送系统 |
CN109885264A (zh) * | 2019-04-16 | 2019-06-14 | 北京艾摩瑞策科技有限公司 | 一种区块链节点的逻辑分片方法及其系统 |
US10325042B1 (en) * | 2016-08-25 | 2019-06-18 | Cadence Design Systems, Inc. | Debugging failures in X-propagation logic circuit simulation |
-
2019
- 2019-10-14 CN CN201910973723.2A patent/CN110995589B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10325042B1 (en) * | 2016-08-25 | 2019-06-18 | Cadence Design Systems, Inc. | Debugging failures in X-propagation logic circuit simulation |
CN108550038A (zh) * | 2018-04-18 | 2018-09-18 | 杭州秘猿科技有限公司 | 一种应用于区块链的数据传播系统及方法 |
CN108810119A (zh) * | 2018-05-31 | 2018-11-13 | 中国联合网络通信集团有限公司 | 区块链处理方法、装置及区块链节点 |
CN109446383A (zh) * | 2018-10-18 | 2019-03-08 | 尚维斯 | 一种区块链上多路递归寻块的方法 |
CN109698792A (zh) * | 2018-12-27 | 2019-04-30 | 四川灵通电讯有限公司 | 路由器节点之间的通信方法及其切换方法 |
CN109617994A (zh) * | 2018-12-30 | 2019-04-12 | 于涛 | 一种定位区块链中节点位置的方法及系统 |
CN109767166A (zh) * | 2019-01-08 | 2019-05-17 | 广东邮政邮件快件服务有限公司 | 一种基于区块链的共享物流配送系统 |
CN109885264A (zh) * | 2019-04-16 | 2019-06-14 | 北京艾摩瑞策科技有限公司 | 一种区块链节点的逻辑分片方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110995589A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995589B (zh) | 一种区块链网络出块时的区块传递方法、装置及设备 | |
US10657526B2 (en) | System and method to dynamically setup a private sub-blockchain based on agility of transaction processing | |
CN111768006B (zh) | 一种人工智能模型的训练方法、装置、设备及存储介质 | |
Zaharia et al. | Job scheduling for multi-user mapreduce clusters | |
US20190394132A1 (en) | System and Method for Network Slicing for Service-Oriented Networks | |
CN103347055B (zh) | 云计算平台中的任务处理系统、设备及方法 | |
CN112907369B (zh) | 基于区块链的数据共识方法及装置、电子设备、存储介质 | |
US20080148013A1 (en) | RDMA Method for MPI_REDUCE/MPI_ALLREDUCE on Large Vectors | |
CN109191287B (zh) | 一种区块链智能合约的分片方法、装置及电子设备 | |
US10169085B2 (en) | Distributed computing of a task utilizing a copy of an original file stored on a recovery site and based on file modification times | |
CN111061735B (zh) | 一种基于单链区块链的扩容方法及装置 | |
CN111541756B (zh) | 区块生成方法、装置、节点设备及存储介质 | |
CN109584071B (zh) | 区块链处理方法和电子设备 | |
Liu et al. | An improved hadoop data load balancing algorithm | |
US11023825B2 (en) | Platform as a service cloud server and machine learning data processing method thereof | |
KR102153814B1 (ko) | 로드 균형을 위한 확률 기반 적응형 라우팅 알고리즘 | |
CN114386349A (zh) | 系统级数字电路的布线方法及装置、设备、存储介质 | |
CN113568877B (zh) | 一种文件合并方法、装置、电子设备及存储介质 | |
US20150254102A1 (en) | Computer-readable recording medium, task assignment device, task execution device, and task assignment method | |
CN103136043B (zh) | 一种异步io的迁移方法、系统和网络节点 | |
US20130325917A1 (en) | Maintaining dependencies among supernodes during repeated matrix factorizations | |
CN113222136A (zh) | 卷积运算方法及芯片 | |
CN113222099A (zh) | 卷积运算方法及芯片 | |
Huang et al. | Adaptive Combiner for MapReduce on cloud computing | |
US9871698B2 (en) | Information processing device |
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 |