广播数据块的方法、装置和电子设备与流程

文档序号:11931870阅读:267来源:国知局
广播数据块的方法、装置和电子设备与流程

本发明涉及数据通信技术,尤其是一种广播数据块的方法、装置和电子设备。



背景技术:

P2P电子货币系统为一种采用工作量证明机制的点对点网络来记录交易的公开信息,其数据保存的基本单位为块,每个块里存着很多交易,数据块通过链式结构连接在一起,每个块保存着上一个块的Hash,矿池在计算数据块的时候,当发现难度大于网络难度,需要将新的数据块快速的广播到P2P网络中,使整个网络能够在你的新块的基础上计算下一个,如果两个人同时发现了新块,需要看下一个数据块是在谁的基础上计算的,没有被确认的就成为了孤块,孤块将不能得到数字货币奖励,因此,对于数据块的广播速度要求越快越好。

然而,在实现本发明的过程中,发明人发现,现有技术至少存在以下问题:现有技术对于数据块的广播通常采用TCP传输控制协议连接的方式,TCP是一种可靠的传输协议,但是其传输效率不是很高,每次传输都需要多次握手,并不适用所有广播情况。



技术实现要素:

本发明实施例所要解决的一个技术问题是:提供多种连接方式进行广播数据块,以即可数据块的广播。

本发明实施例提供的一种广播数据块的方法,包括:

当所述当前节点需要将所述一个数据块进行广播时,通过至少一种连接方式与其他节点建立连接,所述其他节点为与当前节点通过一次连接即可实现通信的所有节点;

通过所述与其他节点建立的连接,将所述一个数据块发送给所有其他节点。

基于上述方法的另一实施例中,所述连接方式包括TCP传输控制协议连接、UDP用户数据报协议和RPC远程过程调用协议连接。

基于上述方法的另一实施例中,所述通过至少一种连接方式与其他节点建立连接包括:

通过TCP传输控制协议连接与一个其他节点建立连接。

基于上述方法的另一实施例中,所述通过至少一种连接方式与其他节点建立连接包括:

通过UDP用户数据报协议与一个其他节点建立连接。

基于上述方法的另一实施例中,所述通过UDP用户数据报协议将一个数据块发送给一个其他节点,包括:

将所述一个数据块分割为至少两个数据子块,将所述分割得到的所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

基于上述方法的另一实施例中,将所述一个数据块分割为至少两个数据子块之后,还包括:

对所述所有数据子块进行编号得到对应每个数据子块的数据编号,将每个数据编号添加到对应的数据子块中,所述每个数据编号对应唯一的一个数据子块,并且所述数据编号的顺序与其对应的数据子块在所述数据块中的顺序相对应。

基于上述方法的另一实施例中,所述一个数据块分割得到的所有数据子块大小相同。

基于上述方法的另一实施例中,所述将所述分割得到的所有数据子块通过UDP用户数据报协议发送给所述一个其他节点,包括:

通过数据冗余算法将所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

基于上述方法的另一实施例中,所述通过至少一种连接方式与其他节点建立连接的同时,还包括:

所述当前节点将约定密钥发送给所有其他节点。

基于上述方法的另一实施例中,所述将所述一个数据块发送给所有其他节点之前,还包括:

通过约定密钥对所述一个数据块进行加密;

本方法在将所述一个数据块发送给所有其他节点之后,还包括:

所述其他节点接收到所述一个数据块,并基于所述约定密钥对所述一个数据块进行解密,获得数据块并处理。

基于上述方法的另一实施例中,所述当前节点需要将所述一个数据块进行广播,包括:

响应于当前节点接收到的一个数据块,所述当前节点正在对上一个接收到的数据块进行处理的过程中,接收到一个数据块,所述当前节点将所述接收到的一个数据块进行广播。

基于上述方法的另一实施例中,所述当前节点需要将所述一个数据块进行广播,包括:

所述当前节点对上一个接收到的数据块处理得到一个数据块,将所述处理得到的一个数据块进行广播。

基于上述方法的另一实施例中,所述一个数据块包括块头和至少一个交易数据块;其中,一个交易数据块是所述数据块经过一个节点的传输产生的;

所述块头包括头数据和一个HASH散列值,其中所述HASH散列值用于标记所述一个数据块;

所述每个交易数据块包括交易数据和一个HASH散列值;其中,一个HASH散列值对应产生所述交易数据块的节点。

基于上述方法的另一实施例中,所述将所述一个数据块发送给一个其他节点之后,还包括:

判断所述其他节点中是否包括所述一个数据块中的任意一个HASH散列值;

如果所述其他节点中包含所述一个数据块中的任意一个HASH散列值,所述其他节点不对所述一个数据块进行处理,将所述一个数据块进行广播;

如果所述其他节点中不包含所述一个数据块中的任意一个HASH散列值,所述其他节点接收所述一个数据块并进行处理。

根据本发明实施例的另一个方面,提供的一种广播数据块的装置,包括:

连接建立单元,用于当所述当前节点需要将所述一个数据块进行广播时,通过至少一种连接方式与其他节点建立连接,所述其他节点为与当前节点通过一次连接即可实现通信的所有节点;

数据发送单元,用于通过所述与其他节点建立的连接,将所述一个数据块发送给所有其他节点。

根据本发明实施例的另一个方面,提供的一种电子设备,包括处理器,所述处理器包括如上所述的广播数据块的装置。

基于本发明上述实施例提供的一种广播数据块的方法、装置和电子设备,通过至少一种连接方式将数据块广播到所有其他节点中,克服了现有技术通过TCP广播数据块传输效率低的弊端,对于不同情况采用不同的连接方式,实现了高速、快捷、有效的广播数据块。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1为本发明方法一个实施例的流程图。

图2为本发明方法另一个实施例的流程图。

图3为本发明装置一个实施例的结构示意图。

图4为本发明装置另一个实施例的结构示意图。

图5为本发明装置又一个实施例的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络连接接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

图1为本发明广播数据块的方法一个实施例的流程图。如图1所示,该实施例方法包括:

步骤10,当前节点需要将一个数据块进行广播时,通过至少一种连接方式与其他节点建立连接。

其中,其他节点为与当前节点通过一次连接即可实现通信的所有节点,其他需要二次连接的节点则属于该其他节点的其他节点,此方式保证了连接能够快速建立,并且加速数据块的广播。

步骤20,通过所述与其他节点建立的连接,将所述一个数据块发送给所有其他节点。

基于本发明上述实施例提供的一种广播数据块的方法,通过至少一种连接方式将数据块广播到所有其他节点中,克服了现有技术通过TCP广播数据块传输效率低的弊端,对于不同情况采用不同的连接方式,实现了高速、快捷、有效的广播数据块。

在本发明上述实施例的一个具体示例中,上述连接方式包括TCP传输控制协议连接、UDP用户数据报协议和RPC远程过程调用协议连接。

TCP是一种可靠传输协议,但是其传输效率不是很高,每次传输都需要经过多次握手;UDP是一种不可靠传输协议,其传输速度快,但是不能保证其数据的准确。在本实施例中,当发现一个新的数据块时,会通过多种传播途径并发进行数据广播,保证在第一时间将数据广播出去。

在本发明上述实施例的一个具体示例中,通过至少一种连接方式与其他节点建立连接包括:

通过TCP传输控制协议连接与一个其他节点建立连接。

通过UDP用户数据报协议与一个其他节点建立连接。

在本实施例中,通过TCP或UDP与一个其他节点建立连接,是可选的,对于适用TCP传输控制协议的其他节点就采用TCP传输控制协议与该其他节点建立连接,对于适用于UDP用户数据报协议的其他节点就采用UDP用户数据报协议与该其他节点建立连接;当前节点与一个其他节点只采用一种连接方式连接,这种方式可以保证将数据块快速的广播出去,而对于一些能保证连接安全的其他节点,通常采用UDP用户数据报协议与其建立连接。

在本发明上述实施例的一个具体示例中,通过UDP用户数据报协议将一个数据块发送给一个其他节点,包括:

将一个数据块分割为至少两个数据子块,将分割得到的所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

通过一个数据块的大小是比较大的,这就会对UDP用户数据报协议造成压力,进而影响传播速度,因此,为了加快数据块的传播速度,将一个数据块分割为多个数据子块。

在本发明上述实施例的一个具体示例中,将一个数据块分割为至少两个数据子块之后,还包括:

对所有数据子块进行编号得到对应每个数据子块的数据编号,将每个数据编号添加到对应的数据子块中,每个数据编号对应唯一的一个数据子块,并且数据编号的顺序与其对应的数据子块在数据块中的顺序相对应。

在本实施例中,通过对数据子块进行编号,可以便于接收这些数据子块的其他节点对数据子块进行重新组合构成原来的数据块,如果没有编号,那么接收的数据子块有可能会发生乱序现象,此时,接收端的其他节点将无法获得正确的数据块,有违广播数据块的目的。

在本发明上述实施例的一个具体示例中,一个数据块分割得到的所有数据子块大小相同。

在本示例中将一个数据块分割为大小相同的多个数据子块,可以使发送更具规律性,进而提高发送和接收的效率。

在本发明上述实施例的一个具体示例中,将分割得到的所有数据子块通过UDP用户数据报协议发送给一个其他节点,包括:

通过数据冗余算法将所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

由于UDP传输不能保证其数据的准确性,因此采用数据冗余算法对UDP传输进行补偿,可以在传输丢包时,通过其他数据包恢复丢失的数据包,以保证传输数据的准确性。例如采用FEC等算法,其中FEC是一种前向性纠错技术,发送方将要发送的数据加上一定的冗余纠错码一起发送,接收方则根据纠错码对接收到的数据进行差错检测,如发现差错,则由接收方进行纠错。特点:使用纠错码,单信道通信,发送方无需设置缓存。

图2为本发明方法另一个实施例的流程图,如图2所示,本实施例方法包括:

步骤10,当前节点需要将一个数据块进行广播时,通过至少一种连接方式与其他节点建立连接。

步骤30,通过约定密钥对一个数据块进行加密。

步骤20,通过与其他节点建立的连接,将一个数据块发送给所有其他节点。

步骤40,其他节点接收到一个数据块,并基于约定密钥对一个数据块进行解密,获得数据块并处理。

在本实施例中,为了保证传输的数据块的安全性,在传输之前对数据块进行加密,其他节点接收后,对数据块进行解密获取数据并处理,在本实施例中加密方法不做限制,对于现有技术中可以用于数据加密的加密方法都适用于本实施例。

在本发明上述实施例的一个具体示例中,步骤10通过至少一种连接方式与其他节点建立连接的同时,还包括:当前节点将约定密钥发送给所有其他节点。

对于数据加密和解密是需要密钥的,为了保证数据的安全性,这个密钥不是固定的,而是在每次建立连接的过程中发送的,这样可以保证,只有与当前节点建立连接的节点接收到加密的数据块后才能解密获得数据内容,进一步保证了数据的安全性。

在本发明上述实施例的一个具体示例中,当前节点需要将一个数据块进行广播的情况包括:

响应于当前节点接收到的一个数据块,当前节点正在对上一个接收到的数据块进行处理的过程中,接收到一个数据块,当前节点将所述接收到的一个数据块进行广播。

或者,

当前节点对上一个接收到的数据块处理得到一个数据块,将处理得到的一个数据块进行广播。

在本实施例中,对于当前节点,一种是接收到了无法处理的数据块,需要将该数据块广播出去,请其他节点进行处理,另一种是经过当前节点的计算得到一个新的数据块,此时,需要将得到的新的数据块广播出去以获得更多认可。

本发明方法的又一个实施例中,在上述各实施例的基础上,一个数据块包括块头和至少一个交易数据块;其中,一个交易数据块是数据块经过一个节点的传输产生的;

块头包括头数据和一个HASH散列值,其中HASH散列值用于标记所述一个数据块;

每个交易数据块包括交易数据和一个HASH散列值;其中,一个HASH散列值对应产生交易数据块的节点。

本实施例中指出了数据块的具体结构,该结构是由比特币的特殊性决定的,在比特币交易过程中比特币的交易数据被打包到一个“数据块”或“区块”(block)中后,交易就算初步确认了。当区块链接到前一个区块之后,交易会得到进一步的确认。块链是所有比特币节点共享的交易数据库,这些节点基于比特币协议参与到比特币网络中来。块链包含每一个曾在比特币系统执行过的交易。根据这个信息,人们可以找到任何时候任一个地址中的币数量,每个区块包含前一个区块的HASH值,这就使得从创世块到当前块形成了一条块链,每个区块必定按时间顺序跟随在前一个区块之后,因为如果不知道前一块区块的HASH值就没法生成当前区块。

在本发明上述实施例的一个具体示例中,将一个数据块发送给一个其他节点之后,还包括:

判断其他节点中是否包括一个数据块中的任意一个HASH散列值;

如果其他节点中包含一个数据块中的任意一个HASH散列值,其他节点不对一个数据块进行处理,将一个数据块进行广播;

如果其他节点中不包含一个数据块中的任意一个HASH散列值,其他节点接收一个数据块并进行处理。

由于数据块包含块头和多个交易数据块,每个节点都会通过P2P的方式同步交易数据块,在进行数据块广播的时候,可以通过块头的HASH和交易的HASH,判断本地是否存在交易数据块,如果没有才会向其他节点获取交易数据块,然后,在本地组合数据块,有效减少对已有交易数据块的传输。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

图3为本发明广播数据块的装置一个实施例的结构示意图。该实施例的装置可用于实现本发明上述各方法实施例。如图3所示,该实施例的装置包括:

连接建立单元1,用于当前节点需要将一个数据块进行广播时,通过至少一种连接方式与其他节点建立连接,其他节点为与当前节点通过一次连接即可实现通信的所有节点。

数据发送单元2,用于通过与其他节点建立的连接,将一个数据块发送给所有其他节点。

基于本发明上述实施例提供的一种广播数据块的方法,通过至少一种连接方式将数据块广播到所有其他节点中,克服了现有技术通过TCP广播数据块传输效率低的弊端,对于不同情况采用不同的连接方式,实现了高速、快捷、有效的广播数据块。

在本发明上述实施例的一个具体示例中,上述连接方式包括TCP传输控制协议连接、UDP用户数据报协议和RPC远程过程调用协议连接。

在本发明上述实施例的一个具体示例中,连接建立单元1通过TCP传输控制协议连接与一个其他节点建立连接。

或者,连接建立单元1通过UDP用户数据报协议与一个其他节点建立连接。

在本发明上述实施例的一个具体示例中,数据发送单元2通过UDP用户数据报协议将一个数据块发送给一个其他节点时,具体用于将一个数据块分割为至少两个数据子块,将分割得到的所有数据子块通过UDP用户数据报协议发送给一个其他节点。

在本发明上述实施例的一个具体示例中,数据发送单元2将一个数据块分割为至少两个数据子块之后,还用于对所有数据子块进行编号得到对应每个数据子块的数据编号,将每个数据编号添加到对应的数据子块中,每个数据编号对应唯一的一个数据子块,并且数据编号的顺序与其对应的数据子块在所述数据块中的顺序相对应。

在本发明上述实施例的一个具体示例中,一个数据块分割得到的所有数据子块大小相同。

在本发明上述实施例的一个具体示例中,数据发送单元2通过数据冗余算法将所有数据子块通过UDP发送给所述一个其他节点。

图4为本发明装置另一个实施例的结构示意图。在上述实施例的基础上,如图2所示,还包括加密单元3,用于通过约定密钥对一个数据块进行加密;

解密单元4,用于在其他节点接收到所述一个数据块后,基于约定密钥对接收到的一个数据块进行解密。

在本实施例中,为了保证传输的数据块的安全性,在传输之前对数据块进行加密,其他节点接收后,对数据块进行解密获取数据并处理,在本实施例中加密方法不做限制,对于现有技术中可以用于数据加密的加密方法都适用于本实施例。

在本发明上述实施例的一个具体示例中,连接建立单元1在通过至少一种连接方式与其他节点建立连接的同时,还用于将约定密钥发送给所有其他节点。

在本发明上述实施例的一个具体示例中,连接建立单元1具体用于响应于当前节点接收到的一个数据块,当前节点正在对上一个接收到的数据块进行处理的过程中,接收到一个数据块,当前节点将所述接收到的一个数据块进行广播。

在本发明上述实施例的一个具体示例中,连接建立单元1具体用于当前节点对上一个接收到的数据块处理得到一个数据块,将处理得到的一个数据块进行广播。

本发明装置的又一个实施例中,在上述各实施例的基础上,一个数据块包括块头和至少一个交易数据块;其中,一个交易数据块是数据块经过一个节点的传输产生的;

块头包括头数据和一个HASH散列值,其中HASH散列值用于标记所述一个数据块;

每个交易数据块包括交易数据和一个HASH散列值;其中,一个HASH散列值对应产生交易数据块的节点。

本实施例中指出了数据块的具体结构,该结构是由比特币的特殊性决定的,在比特币交易过程中比特币的交易数据被打包到一个“数据块”或“区块”(block)中后,交易就算初步确认了。当区块链接到前一个区块之后,交易会得到进一步的确认。块链是所有比特币节点共享的交易数据库,这些节点基于比特币协议参与到比特币网络中来。块链包含每一个曾在比特币系统执行过的交易。根据这个信息,人们可以找到任何时候任一个地址中的币数量,每个区块包含前一个区块的HASH值,这就使得从创世块到当前块形成了一条块链,每个区块必定按时间顺序跟随在前一个区块之后,因为如果不知道前一块区块的HASH值就没法生成当前区块。

图5为本发明装置又一个实施例的结构示意图。在上述各实施例的基础上,如图5所示,本实施例装置还包括判断单元5,用于判断其他节点中是否包括一个数据块中的任意一个HASH散列值;如果该其他节点中包含一个数据块中的任意一个HASH散列值,该其他节点不对一个数据块进行处理,将一个数据块进行广播;如果该其他节点中不包含一个数据块中的任意一个HASH散列值,该其他节点接收一个数据块并进行处理。

由于数据块包含块头和多个交易数据块,每个节点都会通过P2P的方式同步交易数据块,在进行数据块广播的时候,可以通过块头的HASH和交易的HASH,判断本地是否存在交易数据块,如果没有才会向其他节点获取交易数据块,然后,在本地组合数据块,有效减少对已有交易数据块的传输。

根据本发明实施例的另一个方面,提供一种电子设备,包括处理器,所述处理器包括上述任意一个实施例的广播数据块的装置。

1、一种广播数据块的方法,包括:

当前节点需要将一个数据块进行广播时,通过至少一种连接方式与其他节点建立连接,所述其他节点为与当前节点通过一次连接即可实现通信的所有节点;

通过所述与其他节点建立的连接,将所述一个数据块发送给所有其他节点。

2、根据1所述的方法,所述连接方式包括TCP传输控制协议连接、UDP用户数据报协议和RPC远程过程调用协议连接。

3、根据2所述的方法,所述通过至少一种连接方式与其他节点建立连接包括:

通过TCP传输控制协议连接与一个其他节点建立连接。

4、根据2或3所述的方法,所述通过至少一种连接方式与其他节点建立连接包括:

通过UDP用户数据报协议与一个其他节点建立连接。

5、根据4所述的方法,所述通过UDP用户数据报协议将一个数据块发送给一个其他节点,包括:

将所述一个数据块分割为至少两个数据子块,将所述分割得到的所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

6、根据5所述的方法,将所述一个数据块分割为至少两个数据子块之后,还包括:

对所述所有数据子块进行编号得到对应每个数据子块的数据编号,将每个数据编号添加到对应的数据子块中,所述每个数据编号对应唯一的一个数据子块,并且所述数据编号的顺序与其对应的数据子块在所述数据块中的顺序相对应。

7、根据5或6所述的方法,所述一个数据块分割得到的所有数据子块大小相同。

8、根据5至7任意一项所述的方法,所述将所述分割得到的所有数据子块通过UDP用户数据报协议发送给所述一个其他节点,包括:

通过数据冗余算法将所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

9、根据1至8任意一项所述的方法,所述将所述一个数据块发送给所有其他节点之前,还包括:

通过约定密钥对所述一个数据块进行加密;

本方法在将所述一个数据块发送给所有其他节点之后,还包括:

所述其他节点接收到所述一个数据块,并基于所述约定密钥对所述一个数据块进行解密,获得数据块并处理。

10、根据9所述的方法,所述通过至少一种连接方式与其他节点建立连接的同时,还包括:

所述当前节点将约定密钥发送给所有其他节点。

11、根据1至10任意一项所述的方法,所述当前节点需要将所述一个数据块进行广播,包括:

响应于当前节点接收到的一个数据块,所述当前节点正在对上一个接收到的数据块进行处理的过程中,接收到一个数据块,所述当前节点将所述接收到的一个数据块进行广播。

12、根据1至10任意一项所述的方法,所述当前节点需要将所述一个数据块进行广播,包括:

所述当前节点对上一个接收到的数据块处理得到一个数据块,将所述处理得到的一个数据块进行广播。

13、根据1至12所述的方法,所述一个数据块包括块头和至少一个交易数据块;其中,一个交易数据块是所述数据块经过一个节点的传输产生的;

所述块头包括头数据和一个HASH散列值,其中所述HASH散列值用于标记所述一个数据块;

所述每个交易数据块包括交易数据和一个HASH散列值;其中,一个HASH散列值对应产生所述交易数据块的节点。

14、根据13所述的方法,所述将所述一个数据块发送给一个其他节点之后,还包括:

判断所述其他节点中是否包括所述一个数据块中的任意一个HASH散列值;

如果所述其他节点中包含所述一个数据块中的任意一个HASH散列值,所述其他节点不对所述一个数据块进行处理,将所述一个数据块进行广播;

如果所述其他节点中不包含所述一个数据块中的任意一个HASH散列值,所述其他节点接收所述一个数据块并进行处理。

15、一种广播数据块的装置,包括:

连接建立单元,用于当前节点需要将一个数据块进行广播时,通过至少一种连接方式与其他节点建立连接,所述其他节点为与当前节点通过一次连接即可实现通信的所有节点;

数据发送单元,用于通过所述与其他节点建立的连接,将所述一个数据块发送给所有其他节点。

16、根据15所述的装置,所述连接方式包括TCP传输控制协议连接、UDP用户数据报协议和RPC远程过程调用协议连接。

17、根据16所述的装置,所述连接建立单元通过TCP传输控制协议连接与一个其他节点建立连接。

18、根据16或17所述的装置,所述连接建立单元通过UDP用户数据报协议与一个其他节点建立连接。

19、根据18所述的装置,所述数据发送单元通过UDP用户数据报协议将一个数据块发送给一个其他节点时,具体用于将所述一个数据块分割为至少两个数据子块,将所述分割得到的所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

20、根据19所述的装置,所述数据发送单元将所述一个数据块分割为至少两个数据子块之后,还用于对所述所有数据子块进行编号得到对应每个数据子块的数据编号,将每个数据编号添加到对应的数据子块中,所述每个数据编号对应唯一的一个数据子块,并且所述数据编号的顺序与其对应的数据子块在所述数据块中的顺序相对应。

21、根据19或20所述的装置,所述一个数据块分割得到的所有数据子块大小相同。

22、根据19至21任意一项所述的装置,所述数据发送单元通过数据冗余算法将所有数据子块通过UDP用户数据报协议发送给所述一个其他节点。

23、根据15至22任意一项所述的装置,还包括加密单元,用于通过约定密钥对所述一个数据块进行加密;

解密单元,用于在所述其他节点接收到所述一个数据块后,基于所述约定密钥对所述接收到的一个数据块进行解密。

24、根据23所述的装置,所述连接建立单元在通过至少一种连接方式与其他节点建立连接的同时,还用于将约定密钥发送给所有其他节点。

25、根据15至24任意一项所述的装置,所述连接建立单元具体用于响应于当前节点接收到的一个数据块,所述当前节点正在对上一个接收到的数据块进行处理的过程中,接收到一个数据块,所述当前节点将所述接收到的一个数据块进行广播。

26、根据15至24任意一项所述的装置,所述连接建立单元具体用于所述当前节点对上一个接收到的数据块处理得到一个数据块,将所述处理得到的一个数据块进行广播。

27、根据15至26所述的装置,所述一个数据块包括块头和至少一个交易数据块;其中,一个交易数据块是所述数据块经过一个节点的传输产生的;

所述块头包括头数据和一个HASH散列值,其中所述HASH散列值用于标记所述一个数据块;

所述每个交易数据块包括交易数据和一个HASH散列值;其中,一个HASH散列值对应产生所述交易数据块的节点。

28、根据27所述的装置,还包括判断单元,用于判断所述其他节点中是否包括所述一个数据块中的任意一个HASH散列值;如果所述其他节点中包含所述一个数据块中的任意一个HASH散列值,所述其他节点不对所述一个数据块进行处理,将所述一个数据块进行广播;如果所述其他节点中不包含所述一个数据块中的任意一个HASH散列值,所述其他节点接收所述一个数据块并进行处理。

25、一种电子设备,包括处理器,所述处理器包括15至28任意一项所述的广播数据块的装置。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变换对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1