基于区块链节点网络的出块方法及装置转让专利

申请号 : CN201910519296.0

文献号 : CN110247753B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吉建勋杨慧沈书航

申请人 : 北京瑞策科技有限公司

摘要 :

本发明实施例涉及一种基于区块链节点网络的出块方法及装置。包括:生成第一区块,根据第一区块进行第一哈希运算得到第一哈希值;对第一哈希值进行签名得到第一数字签名;对第二区块进行第二哈希运算得到第二哈希值,第二区块为第一区块的下一个区块;对第一数字签名和第二哈希值进行第三哈希运算,得到第三哈希值;根据第三哈希值以及预设的随机规则,在多个出块节点中选择第二出块节点作为第二区块的出块节点。以此,出块节点可以指定下一出块节点,该指定过程具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的出块效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。

权利要求 :

1.一种基于区块链节点网络的出块方法,其特征在于,所述区块链节点网络包括多个出块节点,所述方法适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述方法包括:生成第一区块,根据所述第一区块进行第一哈希运算得到第一哈希值;

对所述第一哈希值进行签名得到第一数字签名;

对第二区块进行第二哈希运算得到第二哈希值,所述第二区块为所述第一区块的下一个区块;

对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值;

根据所述第三哈希值以及预设的随机规则,在所述多个出块节点中选择第二出块节点作为所述第二区块的出块节点。

2.根据权利要求1所述的方法,其特征在于,所述第一哈希运算、所述第二哈希运算和所述第三哈希运算中的任意两个运算为相同或不同的哈希运算。

3.根据权利要求1所述的方法,其特征在于,所述对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值,包括:将所述第一数字签名、所述第二哈希值和第一数值进行第二哈希运算得到第三哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。

4.根据权利要求1所述的方法,其特征在于,所述预设的随机规则包括:将所述第三哈希值转换为10进制,并取所述多个出块节点的数量的余数;

确定所述余数对应的出块节点为所述第二出块节点。

5.根据权利要求1所述的方法,其特征在于,还包括:向所述多个出块节点发送所述第一数字签名。

6.根据权利要求5所述的方法,其特征在于,还包括:接收第三出块节点发送的第二数字签名,所述第二数字签名针对第三区块;

对第四区块进行第二哈希运算得到第四哈希值,所述第四区块为所述第三区块的下一个区块;

对所述第二数字签名和第四哈希值进行第三哈希运算,得到第五哈希值;

根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点;

如果是,对所述第四区块进行打包。

7.根据权利要求6所述的方法,其特征在于,所述根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点包括:根据所述第五哈希值以及预设的随机规则,确定第四区块的出块节点的序号;

判断所述第四区块的出块节点的序号是否为所述第一出块节点的序号。

8.一种基于区块链节点网络的出块装置,其特征在于,所述区块链节点网络包括多个出块节点,所述装置适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述装置包括:第一哈希单元,生成第一区块,根据所述第一区块进行第一哈希运算得到第一哈希值;

签名单元,用于对所述第一哈希值进行签名得到第一数字签名;

第二哈希单元,用于对第二区块进行第二哈希运算得到第二哈希值,所述第二区块为所述第一区块的下一个区块;

第三哈希单元,用于对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值;

选择单元,用于根据所述第三哈希值以及预设的随机规则,在所述多个出块节点中选择第二出块节点作为所述第二区块的出块节点。

9.根据权利要求8所述的装置,其特征在于,还包括:发送单元,用于向所述多个出块节点发送所述第一数字签名。

10.根据权利要求9所述的装置,其特征在于,还包括:接收单元,用于接收第三出块节点发送的第二数字签名,所述第二数字签名针对第三区块;

第二哈希单元还用于,对第四区块进行第二哈希运算得到第四哈希值,所述第四区块为所述第三区块的下一个区块;

第三哈希单元还用于,对所述第二数字签名和第四哈希值进行第三哈希运算,得到第五哈希值;

判断单元,用于根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点;

打包单元,如果是,用于对所述第四区块进行打包。

说明书 :

基于区块链节点网络的出块方法及装置

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种基于区块链节点网络的出块方法及装置。

背景技术

[0002] 区块链网络中的每一个节点,就相当于存储所有区块数据的每一台电脑或者服务器终端。所有新区块的生产,以及交易的验证与记帐,并将其广播给全网同步,都由节点来完成。
[0003] 节点,就是我们俗称的矿工。每个矿工的不同算力,决定了它能分配到多少记帐权,收获多少奖励。
[0004] 区块链第一代共识机制叫POW,就是工作量证明共识机制,俗称挖矿。要想生产新的区块,就必须进行成千上万次哈希碰撞的运算。而这些运算,会消耗很多电力,造成能源浪费,因此也倍受垢病。更让大家担心的是,一旦大部分算力被垄断,去中心化就受到威胁。
[0005] 第二代共识机制叫POS,就是权益证明共识机制,它是根据持币数量与时间来决定谁拥有更多的记帐权。这种共识机制的优点是可以避免能源消耗,但缺点是话语权都被持币大户所掌控,形成中央集权的特征,也与区块链去中心化的初衷背道而驰。
[0006] 第三代共识机制就是DPOS,其最大的特征,就是在POS权益证明的基础之上,加入了选举制度。经过所有持币用户投票选举诞生的最终获得记帐权的超级节点进行记账,可以极大地降低了能源的浪费,但是,由于运算都集中的超级节点上,对超级节点的算力要求较高,且超级节点的效率直接影响记账的效率,这就导致,该种方式应对大规模数据的能力不强,发展受到制约。

发明内容

[0007] 基于上述问题,本发明实施例提供了一种基于区块链节点网络的出块方法及装置。
[0008] 第一方面,本发明实施例提供了一种基于区块链节点网络的出块方法。所述区块链节点网络包括多个出块节点,所述方法适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述方法包括:
[0009] 生成第一区块,根据所述第一区块进行第一哈希运算得到第一哈希值;
[0010] 对所述第一哈希值进行签名得到第一数字签名;
[0011] 对第二区块进行第二哈希运算得到第二哈希值,所述第二区块为所述第一区块的下一个区块;
[0012] 对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值;
[0013] 根据所述第三哈希值以及预设的随机规则,在所述多个出块节点中选择第二出块节点作为所述第二区块的出块节点。
[0014] 在一些实施例中,所述第一哈希运算、所述第二哈希运算和所述第三哈希运算中的任意两个运算为相同或不同的哈希运算。
[0015] 在一些实施例中,所述对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值,包括:
[0016] 将所述第一数字签名、所述第二哈希值和第一数值进行第二哈希运算得到第二哈希值第三哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
[0017] 在一些实施例中,所述预设的随机规则包括:
[0018] 将所述第二哈希值转换为10进制,并取所述多个出块节点的数量的余数;
[0019] 确定所述余数对应的验证节点为所述第二出块节点。
[0020] 在一些实施例中,还包括:
[0021] 向所述多个出块节点发送所述第一数字签名。
[0022] 在一些实施例中,还包括:
[0023] 接收第三出块节点发送的第二数字签名,所述第二数字签名针对第三区块;
[0024] 对第四区块进行第二哈希运算得到第四哈希值,所述第四区块为所述第三区块的下一个区块;
[0025] 对所述第二数字签名和第四哈希值进行第二哈希运算,得到第五哈希值;
[0026] 根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点;
[0027] 如果是,对所述第四区块进行打包。
[0028] 在一些实施例中,所述根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点包括:
[0029] 根据所述第五哈希值以及预设的随机规则,确定第四区块的出块节点的序号;
[0030] 判断所述第四区块的出块节点的序号是否为所述第一出块节点的序号。
[0031] 第二方面,提供了一种基于区块链节点网络的出块装置。所述区块链节点网络包括多个出块节点,所述装置适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述装置包括:
[0032] 第一哈希单元,生成第一区块,根据所述第一区块进行第一哈希运算得到第一哈希值;
[0033] 签名单元,用于对所述第一哈希值进行签名得到第一数字签名;
[0034] 第二哈希单元,用于对第二区块进行第二哈希运算得到第二哈希值,所述第二区块为所述第一区块的下一个区块;
[0035] 第三哈希单元,用于对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值;
[0036] 选择单元,用于根据所述第三哈希值以及预设的随机规则,在所述多个出块节点中选择第二出块节点作为所述第二区块的出块节点。
[0037] 在一些实施例中,所述第一哈希运算、所述第二哈希运算和所述第三哈希运算中的任意两个运算为相同或不同的哈希运算。
[0038] 在一些实施例中,所述第三哈希单元具体用于:
[0039] 将所述第一数字签名、所述第二哈希值和第一数值进行第二哈希运算得到第二哈希值第三哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
[0040] 在一些实施例中,所述预设的随机规则包括:
[0041] 将所述第二哈希值转换为10进制,并取所述多个出块节点的数量的余数;
[0042] 确定所述余数对应的验证节点为所述第二出块节点。
[0043] 在一些实施例中,还包括:
[0044] 发送单元,用于向所述多个出块节点发送所述第一数字签名。
[0045] 在一些实施例中,还包括:
[0046] 接收单元,用于接收第三出块节点发送的第二数字签名,所述第二数字签名针对第三区块;
[0047] 第二哈希单元还用于,对第四区块进行第二哈希运算得到第四哈希值,所述第四区块为所述第三区块的下一个区块;
[0048] 第三哈希单元还用于,对所述第二数字签名和第四哈希值进行第三哈希运算,得到第五哈希值;
[0049] 判断单元,用于根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点;
[0050] 打包单元,如果是,用于对所述第四区块进行打包。
[0051] 在一些实施例中,判断单元具体用于:
[0052] 根据所述第五哈希值以及预设的随机规则,确定第四区块的出块节点的序号;
[0053] 判断所述第四区块的出块节点的序号是否为所述第一出块节点的序号。
[0054] 第三方面,本说明书实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述第一方面或第二方面中任意一方面或多方面的方法步骤。
[0055] 第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第二方面中任意一方面或多方面所述的方法。
[0056] 第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面或第二方面中任意一方面或多方面所述的方法。
[0057] 通过本发明实施例,出块节点可以指定下一出块节点,该指定过程具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的出块效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。

附图说明

[0058] 图1应用本申请提供的实施例的示例性架构;
[0059] 图2为本发明实施例提供的一种基于区块链节点网络的出块方法的流程图;
[0060] 图3为本发明实施例提供的一种基于区块链的发布信息的装置的结构示意图;
[0061] 图4示出了本说明书实施例所提供的一种计算机设备结构示意图。

具体实施方式

[0062] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0063] 本发明实施例提供了一种基于区块链节点网络的出块方法及装置。图1示出了应用本申请提供的实施例的示例性架构。
[0064] 如图1所示,该示例性架构可以包括多个区块链节点,该多个区块链节点可以包括多个出块节点101和多个验证节点102。在一个示例中,该出块节点可以为通过选举机制选择的多个超级节点,该超级节点的数量可以根据实际需要确定,该超级节点的数量可以为奇数个,例如21个。在另一个示例中,该多个出块节点可以为备选节点,其中,该超级节点可以为从备选节点中选取,该备选节点的数量也可以根据实际需要确定,例如,可以为100个,其中,备选节点可以根据预设的随机规则进行选择,例如,算力最高的指定数量个节点可以作为备选节点。在另一个示例中,验证节点还可以为除出块节点以外的全部或部分节点。其中,区块链节点可以以软件形式实现,也可以以硬件形式实现。当实现为硬件时,其可以是笔记本电脑,台式电脑以及移动终端等等。
[0065] 出块节点主要用于基于共识机制,将系统中指定时间段内的数据生产区块,也就是主要用于记账。验证节点主要用于基于共识机制,对出块节点产生的区块进行验证,通过验证的区块会被记录在区块链中。节点之间可以进行通信以便同步区块链等数据。例如,节点之间可以基于D2D协议进行通信。
[0066] 为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。
[0067] 图2为本发明提供的一种基于区块链节点网络的出块方法的流程图。该区块链节点网络包括多个出块节点,例如图1所示的示例性架构中的区块链节点网络,该方法适用于第一出块节点,该第一出块节点为多个出块节点中的任意一个。如图2所示,该方法具体包括:
[0068] S210,生成第一区块,根据所述第一区块进行第一哈希运算得到第一哈希值。
[0069] 其中,区块链节点网络中的各个节点基于共识机制运行。该共识机制被预先定义,该共识机制可以包括出块共识机制、验证共识机制等等。
[0070] 区块链节点网络中的出块节点可以根据出块共识机制确定第一出块节点,该第一出块节点可以将系统中指定时间段内的数据生成区块。该指定时间段可以根据实际需要确定,例如可以为1秒、10秒、3分钟或10分钟等等。该系统可以为该区块链节点网络对应的整个区块链系统。其中,区块链是有多个区块构成的,每个区块可以携带有上一个区块的标识已形成链式的存储结构。
[0071] 当前区块链节点在生成区块需要确定下一个需要生成区块的节点,该当前区块链节点可以称为第一出块节点,该下一个需要生成区块的节点可以称为第二出块节点,该当前区块链节点生成的区块可以称为第一区块,该下一个需要生成区块的节点生成的区块可以称为第二区块。
[0072] 为了增加节点的出块节点选择的效率、降低系统的负担,在选择下一个出块节点时,可以对第一区块进行第一哈希运算,得到第一哈希值。其中,验证共识机制可以包括预定义的第一哈希运算,该第一哈希运算可以根据实际需要确定,例如,第一哈希运算可以为SHA-256等。
[0073] S220,对所述第一哈希值进行签名得到第一数字签名。
[0074] 每个区块链节点可以包括至少一个秘钥对,每个秘钥对包括一个公钥和一个私钥,该私钥存储在本地,该公钥可以发送给其他区块链节点。
[0075] 当前区块链节点在确定第一哈希值后,可以对该哈希值进行签名,得到第一数字签名。该签名可以使用私钥进行签名,使用该私钥对应的公钥可以验证该签名。
[0076] S230,对第二区块进行第二哈希运算得到第二哈希值,所述第二区块为所述第一区块的下一个区块。
[0077] 其中,验证共识机制可以包括预定义的第二哈希运算,该第二哈希运算可以根据实际需要确定,例如,第二哈希运算可以为SHA-256等。
[0078] 由于下一个区块是没有办法预测的,以此可以让整个过程更加随机。
[0079] S240,对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值。
[0080] 在确定下一个出块节点时,可以对第一数字签名和第二哈希值进行第三哈希运算,得到第三哈希值。其中,出块共识机制可以包括预定义的第三哈希运算,该第三哈希运算可以根据实际需要确定,例如,第三哈希运算可以为SHA-256等。
[0081] 在本发明实施例中,第一哈希运算、第二哈希运算和第三哈希运算中的任意两个运算可以为相同或不同的哈希运算。在一个实例中,第一哈希运算、第二哈希运算和第三哈希运算可以为相同的哈希运算,在另一个示例中,第一哈希运算、第二哈希运算和第三哈希运算可以为不同的哈希运算。
[0082] S250,根据所述第三哈希值以及预设的随机规则,在所述多个出块节点中选择第二出块节点作为所述第二区块的出块节点。
[0083] 在确定下一个出块节点时,可以根据第三哈希值进行选择。其中,出块共识机制可以包括选择依据的预设的随机规则,该预设的随机规则具有一定的随机性和可验证性。
[0084] 在一个示例中,该预设的随机规则可以包括:
[0085] 将第三哈希值转换为10进制,并取第二数值的余数;
[0086] 确定该余数对应的验证节点为第二出块节点。
[0087] 其中,该第三数值可以根据验证节点的数量确定。例如,出块节点的数量可以为100,该第三数值可以为100。
[0088] 其中,第三哈希值保证了随机性,第三哈希值的确定以及预设的随机规则,保证了该第二出块节点的可验证性。
[0089] 第一出块节点可以将第一数字签名发送至第二出块节点,以便第二出块节点继续出块。例如,可以通过广播的方式,向多个出块节点发送第一数字签名。
[0090] 还可以向第二出块节点发送第一区块和第一出块节点的公钥。其中,发送该公钥的形式可以包括多种。在一个示例中,可以根据该公钥生成该出块节点的地址,该地址可以作为交易的转出或转入地址,该第二出块节点可以根据该出块节点的地址确定该出块节点的公钥。在另一个示例中,该公钥可以携带在第一区块中进行发送。
[0091] 第二出块节点在接收到第一数字签名后,首先可以验证第一出块节点的身份,该出块节点的身份可以通过出块节点的公钥对第一数字签名进行验证实现。在验证通过后,第二出块节点可以对自身的验证身份进行验证,该验证验证过程可以基于预设的随机规则进行验证,以验证第二区块的出块节点是否包括其自身。在上述两个验证过程都通过后,第二出块节点再对第二区块进行打包,并将打包的第二区块进行全网同步。
[0092] 在一些实施例中,上述步骤S240具体可以通过如下步骤实现:
[0093] 将所述第一数字签名、第二哈希值和第一数值进行第二哈希运算得到第二哈希值第三哈希值。
[0094] 其中,第一数值为1-n等预定义的固定值,该n为任意值。
[0095] 该第一数值还可以为第一出块节点的序列号,或者根据第一出块节点的序列号确定的数值。通过该第一数值,可以进一步实现出块节点选择的随机性。
[0096] 在一些实施例中,还可以包括如下步骤:
[0097] 1)接收第三出块节点发送的第二数字签名,所述第二数字签名针对第三区块;
[0098] 2)对第四区块进行第二哈希运算得到第四哈希值,所述第四区块为所述第三区块的下一个区块;
[0099] 3)对所述第二数字签名和第四哈希值进行第二哈希运算,得到第五哈希值;
[0100] 4)根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点;
[0101] 5)如果是,对所述第四区块进行打包。
[0102] 6)如果不是,则结束。
[0103] 在步骤1)中,可以接收第三出块节点发送的第三区块、公钥和第二数字签名。
[0104] 其中,第三区块可以为第三出块节点新生成的区块。该第二数字签名可以根据该第三区块确定。具体可以参见前述第一数字签名的获取过程,此处不再赘述。
[0105] 第一出块节点还可以确定第三出块节点的公钥,该公钥可以根据该第三出块节点的地址确定,也可以获取携带在带第三区块中的公钥。
[0106] 在步骤4)中,可以根据第五哈希值以及预设的随机规则,确定第四区块的出块节点的序号;判断第四区块的出块节点的序号是否为第一出块节点的序号。
[0107] 另外,第一出块节点在接收到第三区块后,首先可以验证第三出块节点的身份,该出块节点的身份可以通过下述步骤来实现。
[0108] 步骤A,使用第三出块节点的秘钥对中的公钥,对所述第二数字签名进行验证,得到第六哈希值。
[0109] 步骤B,对所述第三区块进行第一哈希运算得到第七哈希值;
[0110] 第一出块节点可以比对第六哈希值和第七哈希值是否相同,如果相同,则说明该第二数字签名为该第三出块节点的数字签名,也即验证通过。如果不同,则验证未通过。
[0111] 另外,该第二区块还可以为第一区块之前的区块。具体可以通过如下步骤实现:A:确定当前区块指定间隔前的至少一个已验证区块。该指定间隔可以根据多个出块节点的数量确定;
[0112] B:分别对至少一个已验证区块中的每个进行第二哈希运算,得到第二哈希值。
[0113] 在一个示例中,可以确定一个第二哈希值,该第二哈希值可以根据该第一区块之前第n个区块确定,该n可以为大于0的整数,该n个区块可以为前述步骤A中的指定间隔。例如,该n的取值可以为多个出块节点的数量,例如,出块节点的数量为21,该n可以为21。
[0114] 在另一个示例中,可以确定多个第二哈希值,该多个哈希值可以根据该第一区块之前的第n个区块起连续的多个区块确定.该n的取值可以为多个出块节点的数量,该连续的多个区块的数量可以为预设值,该预设值可以根据实际需要确定,例如5。
[0115] 在另一个示例中,可以确定多个第二哈希值,该多个哈希值可以根据该第一区块之前的每间隔n个区块的多个区块确定,该间隔n的取值可以根据多个出块节点的数量确定,例如,出块节点的数量为21,该n可以为20。
[0116] 通过本发明实施例,出块节点可以指定下一出块节点,该指定过程具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的出块效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。
[0117] 图3为本发明实施例提供的一种基于区块链节点网络的出块装置结构示意图。该区块链节点网络包括多个出块节点,例如图1所示的示例性架构中的区块链节点网络,所述装置适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述装置包括:
[0118] 第一哈希单元301,生成第一区块,根据所述第一区块进行第一哈希运算得到第一哈希值;
[0119] 签名单元302,用于对所述第一哈希值进行签名得到第一数字签名;
[0120] 第二哈希单元303,用于对第二区块进行第二哈希运算得到第二哈希值,所述第二区块为所述第一区块的下一个区块;
[0121] 第三哈希单元304,用于对所述第一数字签名和所述第二哈希值进行第三哈希运算,得到第三哈希值;
[0122] 选择单元305,用于根据所述第三哈希值以及预设的随机规则,在所述多个出块节点中选择第二出块节点作为所述第二区块的出块节点。
[0123] 在一些实施例中,所述第一哈希运算、所述第二哈希运算和所述第三哈希运算中的任意两个运算为相同或不同的哈希运算。
[0124] 在一些实施例中,所述第三哈希单元具体用于:
[0125] 将所述第一数字签名、所述第二哈希值和第一数值进行第二哈希运算得到第二哈希值第三哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
[0126] 在一些实施例中,所述预设的随机规则包括:
[0127] 将所述第二哈希值转换为10进制,并取所述多个出块节点的数量的余数;
[0128] 确定所述余数对应的验证节点为所述第二出块节点。
[0129] 在一些实施例中,还包括:
[0130] 发送单元,用于向所述多个出块节点发送所述第一数字签名。
[0131] 在一些实施例中,还包括:
[0132] 接收单元,用于接收第三出块节点发送的第二数字签名,所述第二数字签名针对第三区块;
[0133] 第二哈希单元还用于,对第四区块进行第二哈希运算得到第四哈希值,所述第四区块为所述第三区块的下一个区块;
[0134] 第三哈希单元还用于,对所述第二数字签名和第四哈希值进行第三哈希运算,得到第五哈希值;
[0135] 判断单元,用于根据所述第五哈希值以及预设的随机规则,判断所述第一出块节点是否为所述第四区块的出块节点;
[0136] 打包单元,如果是,用于对所述第四区块进行打包。
[0137] 在一些实施例中,判断单元具体用于:
[0138] 根据所述第五哈希值以及预设的随机规则,确定第四区块的出块节点的序号;
[0139] 判断所述第四区块的出块节点的序号是否为所述第一出块节点的序号。
[0140] 可以理解,本实施例的基于区块链节点网络的出块装置与图2所示的方法实施例相对应,因此,以上关于图2所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。
[0141] 图4示出了本说明书实施例所提供的一种计算机设备结构示意图,该计算机设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器440、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
[0142] 处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0143] 存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
[0144] 输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0145] 通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
[0146] 总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
[0147] 需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0148] 专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0149] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0150] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。