CN113518005B - 一种区块共识方法、装置、设备及存储介质 - Google Patents
一种区块共识方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113518005B CN113518005B CN202110689318.5A CN202110689318A CN113518005B CN 113518005 B CN113518005 B CN 113518005B CN 202110689318 A CN202110689318 A CN 202110689318A CN 113518005 B CN113518005 B CN 113518005B
- Authority
- CN
- China
- Prior art keywords
- block
- consensus
- node
- network
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- 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
-
- 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/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种区块共识方法、装置、设备及存储介质,包括:在获取到由共识主网络中的第二代表节点发送的第一目标区块时,对第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果;将携带第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将第一共识投票结果广播至第二代表节点,以使第二代表节点在成功将第一目标区块写入主网区块链时生成竞拍通知;获取第二代表节点返回的竞拍通知,若竞拍通知指示第一代表节点竞拍到独占区块,则基于第二初始区块生成用于广播至第二代表节点的第二目标区块,以使第二代表节点对第二目标区块进行区块共识。采用本申请实施例,可以提高数据存储的安全性以及明确共识职责。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块共识方法、装置、设备及存储介质。
背景技术
在传统区块链网络中,区块链网络中的每个共识节点在获取到业务节点执行各种子业务后所生成的业务交易时,均会将获取到的业务交易一并存储在自己的节点交易池中,以等待写入区块链。那么,共识节点在根据节点交易池中的业务交易打包生成新区块时,将会无差别的从该节点交易池中获取不同子业务所对应的业务交易,基于此,发明人认为一旦非法节点获取到该新区块时,会存在这些不同子业务所对应的业务交易被非法泄露的风险,进而降低了数据存储的安全性。
此外,共识节点在成功打包新区块之后,需要将新区块广播至该区块链网络中的其他共识节点,以使其他共识节点对该新区块进行区块共识。由于新区块中会存在不同子业务对应的业务交易,这样将导致区块链网络中的其他共识节点在对新区块进行区块共识时,需要无差别地对各种子业务对应的业务交易进行共识,进而导致共识节点的共识职责不够明确。
发明内容
本申请实施例提供一种区块共识方法、装置、设备及存储介质,可以提高数据存储的安全性以及明确共识职责。
本申请实施例一方面提供一种区块共识方法,该方法由共识主网络中的第一代表节点执行,包括:
在获取到由共识主网络中的第二代表节点发送的第一目标区块时,对第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果;第一目标区块为第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块所生成的;第一投票竞拍信息为第一代表节点在检测到第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且第一投票竞拍信息用于表征第一代表节点参与竞拍独占区块;第一代表节点和第二代表节点均属于共识主网络中的代表节点;第一代表节点属于共识主网络所在的核心共识网络中的第一共识子网络;第二代表节点属于核心共识网络中的第二共识子网络;第一共识子网络与第二共识子网络为不同子业务对应的共识子网络;
将携带第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将第一共识投票结果广播至第二代表节点,以使第二代表节点在基于第一共识投票结果成功将第一目标区块写入共识主网络中的主网区块链时,生成针对第一目标区块的下一目标区块的竞拍通知;
获取第二代表节点返回的竞拍通知,若竞拍通知指示第一代表节点竞拍到独占区块,则基于第二初始区块生成第二目标区块,将第二目标区块广播至第二代表节点,以使第二代表节点对第二目标区块进行区块共识。
本申请实施例一方面提供一种区块共识方法,该方法由共识主网络中的第二代表节点执行,包括:
接收共识主网络中的第一代表节点针对第一目标区块返回的第一共识投票结果;第一目标区块为第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块所生成的;第一共识投票结果为携带第一投票竞拍信息的第一区块共识结果;第一投票竞拍信息为第一代表节点在检测到第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且第一投票竞拍信息用于表征第一代表节点参与竞拍独占区块;第一代表节点和第二代表节点均属于共识主网络中的代表节点;第一代表节点属于共识主网络所在的核心共识网络中的第一共识子网络;第二代表节点属于核心共识网络中的第二共识子网络;第一共识子网络与第二共识子网络为不同子业务对应的共识子网络;
在基于第一区块共识结果将第一目标区块成功写入共识主网络中的主网区块链之后,基于第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知;
将竞拍通知发送至第一代表节点;竞拍通知用于指示第一代表节点在竞拍到独占区块时,将第二初始区块对应的第二目标区块写入主网区块链。
本申请实施例一方面提供一种区块共识装置,包括:
区块共识模块,用于在获取到由共识主网络中的第二代表节点发送的第一目标区块时,对第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果;第一目标区块为第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块所生成的;第一投票竞拍信息为第一代表节点在检测到第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且第一投票竞拍信息用于表征第一代表节点参与竞拍独占区块;第一代表节点和第二代表节点均属于共识主网络中的代表节点;第一代表节点属于共识主网络所在的核心共识网络中的第一共识子网络;第二代表节点属于核心共识网络中的第二共识子网络;第一共识子网络与第二共识子网络为不同子业务对应的共识子网络;
投票结果广播模块,用于将携带第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将第一共识投票结果广播至第二代表节点,以使第二代表节点在基于第一共识投票结果成功将第一目标区块写入共识主网络中的主网区块链时,生成针对第一目标区块的下一目标区块的竞拍通知;
竞拍通知获取模块,用于获取第二代表节点返回的竞拍通知,若竞拍通知指示第一代表节点竞拍到独占区块,则基于第二初始区块生成第二目标区块,将第二目标区块广播至第二代表节点,以使第二代表节点对第二目标区块进行区块共识。
其中,第二初始区块为第一代表节点在检测到第一代表节点的节点缓存具备存储资源时所确定的;第一代表节点的节点交易池中包括业务网络中的业务节点通过代理节点转发的业务交易;业务交易为业务节点在执行第一共识子网络对应的子业务时所生成的;代理节点用于对业务网络和核心共识网络进行网络隔离;
该装置还包括:
交易获取模块,用于从第一代表节点的节点交易池中获取用于待打包至第二初始区块的业务交易,将获取到的业务交易作为待处理交易;
初始区块生成模块,用于基于待处理交易生成第二初始区块,将第二初始区块广播至第一共识子网络,以使第一共识子网络中的共识节点对第二初始区块进行区块共识;
初始区块写入模块,用于接收第一共识子网络中的共识节点返回的初始区块共识结果,若初始区块共识结果指示共识成功,则将第二初始区块写入第一共识子网络中的子网区块链;
初始区块存储模块,用于在将第二初始区块成功写入第一共识子网络中的子网区块链时,将第二初始区块存储至第一代表节点的节点缓存中。
其中,该初始区块生成模块包括:
区块体确定单元,用于基于待处理交易确定待生成的第二初始区块的区块哈希值,且基于待处理交易,确定用于构成第二初始区块的区块体信息;
待处理初始区块确定单元,用于从第一共识子网络中的子网区块链上,获取具有最大生成时间戳的初始区块,将获取到的初始区块作为待处理初始区块;
锚定哈希值确定单元,用于获取待处理初始区块的区块哈希值,将获取到的区块哈希值作为第二初始区块的锚定哈希值;
区块头确定单元,用于基于锚定哈希值和第二初始区块的区块哈希值,确定用于构成第二初始区块的区块头信息;
初始区块确定单元,用于基于区块头信息和区块体信息得到第二初始区块,且将第二初始区块广播至第一共识子网络。
其中,该区块共识模块包括:
块签名获取单元,用于在获取到由共识主网络中的第二代表节点发送的第一目标区块时,获取第一目标区块对应的第一块签名信息以及第二代表节点的节点公钥;第一块签名信息为第二代表节点基于第二代表节点的节点私钥,对第一目标区块进行签名处理后所得到的;
签名验证单元,用于基于第二代表节点的节点公钥,对第一块签名信息进行签名验证,得到第一目标区块的签名验证结果,且基于签名验证结果,确定第一目标区块的第一区块共识结果;
检测单元,用于对第一代表节点的节点缓存中的初始区块进行检测,得到检测结果;
竞拍信息生成单元,用于若检测结果指示第一代表节点的节点缓存中存在待上链的第二初始区块,则针对第二初始区块生成用于表征第一代表节点参与竞拍独占区块的第一投票竞拍信息;
第一结果确定单元,用于基于第一投票竞拍信息和第一区块共识结果,得到携带第一投票竞拍信息的第一区块共识结果。
其中,第一共识子网络对应的共识集群为第一代表节点所在的第一共识集群;
该竞拍信息生成单元包括:
区块参数获取子单元,用于若检测结果指示第一代表节点的节点缓存中存在待上链的N个初始区块,则分别获取N个初始区块中的每个初始区块在第一共识子网络中的子网区块链的区块表征参数;N为大于1的正整数;
筛选子单元,用于基于获取到的区块表征参数,从N个初始区块中筛选具有最小区块表征参数的初始区块,将筛选出的初始区块确定为待上链至共识主网络中的主网区块链的第二初始区块;
竞拍信息生成子单元,用于获取与第二初始区块相关联的竞拍资产,且获取第一共识集群的集群标识,基于竞拍资产和第一共识集群的集群标识,生成用于表征第一代表节点参与竞拍独占区块的第一投票竞拍信息。
其中,该区块共识模块还包括:
第二结果确定单元,用于若检测结果指示第一代表节点的节点缓存中不存在待上链的初始区块,则得到未携带投票竞拍信息的第一区块共识结果;
投票结果广播单元,用于将未携带投票竞拍信息的第一区块共识结果作为第一共识投票结果,且将第一共识投票结果广播至第二代表节点,以使第二代表节点基于第一共识投票结果,将第一目标区块写入共识主网络中的主网区块链。
其中,竞拍通知获取模块包括:
竞拍通知分析单元,用于获取第二代表节点返回的竞拍通知,对竞拍通知进行分析;
待添加区块哈希值确定单元,用于若竞拍通知指示第一代表节点竞拍到独占区块,则获取第一目标区块的区块哈希值,且将第一目标区块的区块哈希值作为待添加区块哈希值;
添加单元,用于将待添加区块哈希值添加至第二初始区块的区块头,将添加后的第二初始区块作为第二目标区块,且将添加的待添加区块哈希值作为第二目标区块的父区块哈希值;
签名处理单元,用于通过第一代表节点的节点私钥,对第二目标区块进行签名处理,得到第二目标区块的第二块签名信息;
签名信息广播单元,用于将第二块签名信息和第二目标区块广播至第二代表节点;第二块签名信息用于指示第二代表节点对第二目标区块进行区块共识。
其中,该装置还包括:
投票结果获取模块,用于在接收到第二代表节点针对第二目标区块返回的第二共识投票结果时,获取第二共识投票结果中的第二区块共识结果;
目标区块写入模块,用于若第二区块共识结果指示共识成功,则将第二目标区块写入主网区块链;第二目标区块为第一目标区块的下一目标区块;
初始区块删除模块,用于在将第二目标区块成功写入主网区块链之后,在第一代表节点的节点缓存中删除第二初始区块。
本申请实施例一方面提供一种区块共识装置,包括:
投票结果接收模块,用于接收共识主网络中的第一代表节点针对第一目标区块返回的第一共识投票结果;第一目标区块为第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块所生成的;第一共识投票结果为携带第一投票竞拍信息的第一区块共识结果;第一投票竞拍信息为第一代表节点在检测到第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且第一投票竞拍信息用于表征第一代表节点参与竞拍独占区块;第一代表节点和第二代表节点均属于共识主网络中的代表节点;第一代表节点属于共识主网络所在的核心共识网络中的第一共识子网络;第二代表节点属于核心共识网络中的第二共识子网络;第一共识子网络与第二共识子网络为不同子业务对应的共识子网络;
竞拍通知生成模块,用于在基于第一区块共识结果将第一目标区块成功写入共识主网络中的主网区块链之后,基于第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知;
竞拍通知发送模块,用于将竞拍通知发送至第一代表节点;竞拍通知用于指示第一代表节点在竞拍到独占区块时,将第二初始区块对应的第二目标区块写入主网区块链。
其中,第一目标区块携带第二投票竞拍信息;第二投票竞拍信息为第二代表节点在检测到第二代表节点的节点缓存中存在除第一初始区块之外的待上链的初始区块时所生成的,且第二投票竞拍信息用于表征第二代表节点参与竞拍独占区块;第二投票竞拍信息是基于第二共识子网络对应的第二共识集群的集群标识以及第二代表节点的竞拍资产所确定的;核心共识网络包括第三代表节点所在的第三共识子网络;第三共识子网络对应的子业务均不同于第一共识子网络和第二共识子网络对应的子业务;
该竞拍通知生成模块包括:
投票结果接收单元,用于接收第三代表节点返回的第三共识投票结果;第三共识投票为携带第三投票竞拍信息的第三区块共识结果;第三区块共识结果为第三代表节点针对第一目标区块所生成的;第三投票竞拍信息为第三代表节点在检测到第三代表节点的节点缓存中存在待上链的初始区块时所生成的,且第三投票竞拍信息用于表征第三代表节点参与竞拍独占区块;第三投票竞拍信息是基于第三共识子网络对应的第三共识集群的集群标识以及第三代表节点的竞拍资产所确定的;
候选竞拍信息确定单元,用于在根据第一区块共识结果和第三区块共识结果,将第一目标区块成功写入共识主网络中的主网区块链之后,将第一投票竞拍信息、第二投票竞拍信息以及第三投票竞拍信息作为候选投票竞拍信息;
目标竞拍信息确定单元,用于基于候选投票竞拍信息的竞拍资产,筛选具有最大竞拍资产的候选投票竞拍信息,将筛选出的候选投票竞拍信息作为目标投票竞拍信息;
竞拍节点确定单元,用于若目标投票竞拍信息为第一投票竞拍信息,则基于第一投票竞拍信息中携带的集群标识,确定第一目标区块的下一目标区块被集群标识对应的第一共识子网络中的第一代表节点所竞拍到;
竞拍通知生成单元,用于基于第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知。
其中,第二代表节点为共识主网络中具有管理权限的代表节点;
该装置还包括:
区块配置模块,用于若第一共识投票结果和第三共识投票结果中均不存在用于竞拍独占区块的投票竞拍信息,且第一目标区块中未携带投票竞拍信息,则配置第一目标区块的下一目标区块。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,共识主网络中的第一代表节点所在的第一共识子网络与第二代表节点所在的第二共识子网络为不同子业务对应的共识子网络,因此,这两个共识子网络均可以各自共识与自己相关的子业务,而无需共识其他子业务,由于这两个共识子网络互不影响,进而实现了各共识子网络之间的隐私隔离,以至于明确了每个共识子网络的共识职责。此外,第一代表节点在接收到第二代表节点发送的第一目标区块时,可以对第一目标区块进行区块共识,以得到携带第一投票竞拍信息的第一区块共识结果。由于第一投票竞拍信息是第一代表节点在检测到自己的节点缓存中存在待上链的初始区块时所生成的,且该第一投票竞拍信息用于表征第一代表节点参与竞拍独占区块,这样将导致第一代表节点在竞拍到独占区块时,可以基于自己节点缓存中的第二初始区块生成第二目标区块。由于第一代表节点的节点缓存中的第二初始区块是第一代表节点所在第一共识子网络在对自己对应的子业务进行共识时所得到的,这样将导致生成的第二初始区块对应的第二目标区块中可以存在与第一共识子网络对应的这一种子业务相关联的数据,而不存在与其他子业务相关联的数据,从而提高了数据存储的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链网络分层结构的示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的一种区块共识方法的流程示意图;
图4是本申请实施例提供的一种将初始区块上链至子网区块链上的场景示意图;
图5是本申请实施例提供的一种代表节点对目标区块进行区块共识的场景示意图;
图6是本申请实施例提供的一种第二代表节点生成竞拍通知的场景示意图;
图7是本申请实施例提供的一种生成目标区块的场景示意图;
图8是本申请实施例提供的一种区块共识方法的流程示意图;
图9是本申请实施例提供的一种核心共识网络中的结构示意图;
图10是本申请实施例提供的一种区块链电子票据场景下的系统架构图;
图11是本申请实施例提供的一种区块共识装置的结构示意图;
图12是本申请实施例提供的一种区块共识装置的结构示意图;
图13是本申请实施例提供的一种计算机设备的示意图;
图14是本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种区块链网络分层结构的示意图。本申请实施例中的区块链网络分层结构可以为图1所示的区块链网络1W,该区块链网络1W对应的完整区块链业务体系可以由图1所示的业务网络、核心共识网络以及路由代理网络所组成。可以理解的是,图1所示的业务网络和核心共识网络可以处于不同的网络环境,例如,通常来说,业务节点部署在处于公网的业务网络中,而运行区块链共识协议的共识节点则部署在私有的核心共识网络中,二者可以通过路由边界进行交互。
应当理解,图1所示的业务网络(即见证网络)对应的区块链节点系统(即第一区块链节点系统)中可以包括一个或者多个区块链节点,这里将不对第一区块链节点系统中的节点数量进行限制。比如,第一区块链节点系统具体可以包括节点110a、节点110b、节点110c、…、节点110n。应当理解,本申请实施例可以将处于业务网络中的区块链节点称之为业务节点,该业务节点不需要参与记账共识,主要用于执行该第一区块链节点系统中的各种子业务,以得到对应的业务交易。其中,这里的业务节点可以为包含完整的区块链数据库的全量节点,也可以为存储区块链数据库中的部分数据的轻量节点,这里将不对其进行限定。为了减少业务节点的存储空间的浪费,本申请实施例中的业务节点可以以轻量节点(Simplified Payment Verification,简称SPV)为例,该业务节点不需要存储完整的交易数据,而是通过图1所示的路由代理网络中的代理节点120D,从图1所示的核心共识网络中,获得区块头数据和部分授权可见的区块数据(例如,与业务节点自身相关联的业务交易)。
如图1所示,路由代理网络中可以包括一个或者多个区块链节点,这里将不对路由代理网络中的节点数量进行限制。本申请实施例可以将处于该路由代理网络中的节点称之为代理节点。例如,本申请实施例可以以图1所示的代理节点120D为例,该代理节点120D可以用于对业务网络和核心共识网络进行网络隔离。应当理解,该代理节点120D可以将点对点(Peer To Peer,简称P2P)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构,进而能够提高区块链上数据的保密性和安全性。
其中,图1所示的核心共识网络对应的区块链节点系统(即第二区块链节点系统)中也可以包括一个或者多个区块链节点,这里将不对第二区块链节点系统中的节点数量进行限制。应当理解,本申请实施例可以将处于该核心共识网络中的节点称之为共识节点(即记账节点),该共识节点可以运行有区块链共识协议。如图1所示,该核心共识网络中可以包括由m个代表节点组成的共识主网络,这里的m为正整数。本申请实施例中的代表节点是指某一共识子网络对应的共识集群中的一个用于代表该共识子网络的共识节点,比如,该共识主网络中的代表节点具体可以包括节点130a、节点130b、节点130c、…、节点130m。
其中,本申请实施例可以将共识主网络中的区块链称之为主网区块链,该主网区块链中的目标区块可以用于存储整个业务生态的全部信息,以便于后续统一管理和审查。其中,主网区块链上的目标区块的区块头中不仅可以包括父区块哈希值(Prehash,即主网区块链上的上一目标区块的区块哈希值),还可以包括锚定哈希值(SubPrehash,即对应子网区块链上的上一初始区块的区块哈希值)。可以理解的是,图1所示的每个共识子网络均可以对业务网络中的不同子业务进行共识,以便明确每个共识子网络的共识职责。其中,本申请实施例可以将共识子网络中的区块链称之为子网区块链,该子网区块链中的初始区块(即包括锚定哈希值而不包括父区块哈希值的区块)可以用于存储与自身子业务相关联的业务交易,而不存在其他子业务对应的业务交易,从而可以提高数据存储的安全性。比如,节点130a所在的共识子网络W1可以用于对业务网络中的某一子业务(即第一子业务,例如,发票业务)对应的业务交易进行共识。节点130b所在的共识子网络W2可以用于对业务网络中的另一子业务(即第二子业务,例如,出口业务)对应的业务交易进行共识。节点130c所在的共识子网络W3可以用于对该业务网络中的另一子业务(即第三子业务,例如,法人业务)对应的业务交易进行共识。以此类推,节点130m所在的共识子网络Wm可以用于对业务网络中的另一子业务(例如,征信业务)对应的业务交易进行共识。
应当理解,本申请实施例可以将代理节点、业务节点以及共识节点统称为区块链网络1W中的区块链节点。其中,该区块链节点可以为接入至该区块链网络1W中的服务器,也可以为接入至该区块链网络1W中的用户终端,这里对区块链节点的具体形式不做限定。其中,接入至该区块链网络1W的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。此外,接入至该区块链网络1W中的用户终端可以包括:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等智能终端。
其中,本申请实施例可以将图1所示的共识主网络中的任意一个代表节点(例如,节点130a)称之为第一代表节点,且将该第一代表节点所在的共识子网络(例如,共识子网络W1)称之为第一共识子网络。此外,本申请实施例还可以将共识主网络中的另一代表节点(例如,节点130b)称之为第二代表节点,且将该第二代表节点所在的共识子网络(例如,共识子网络W2)称之为第二共识子网络。
应当理解,该节点130a在接收图1所示的节点130b发送的待上链至主网区块链上的目标区块(即第一目标区块)时,可以对接收到的第一目标区块进行区块共识,以得到针对第一目标区块的共识投票结果。其中,本申请实施例可以将第一代表节点对第一目标区块进行区块共识后所得到的共识投票结果称之为第一共识投票结果。应当理解,若第一共识投票结果中未携带投票竞拍信息,则意味着节点130a暂不参与独占区块的竞拍,即该节点130a的节点缓存中暂不存在待上链至主网区块链上的初始区块。
可选的,若第一共识投票结果中携带用于表征节点130a参与竞拍独占区块的投票竞拍信息(即第一投票竞拍信息),则意味着节点130a将参与竞拍第一目标区块的下一目标区块,也就是说该节点130a的节点缓存中存在待上链至主网区块链上的初始区块(即在对自身子业务对应的业务交易的进行打包后所生成的区块)。那么,共识主网络中的其他代表节点(例如,节点130b)在接收到节点130a广播的第一共识投票结果时,可以针对第一投票竞拍信息生成针对第一目标区块的下一目标区块的竞拍通知,以发送至该节点130a。若该竞拍通知指示节点130a竞拍到独占区块,则节点130a可以根据节点130a的节点缓存中的初始区块,确定待上链至主网区块链上的目标区块(即第二目标区块),由于第二目标区块为节点130a在竞拍到独占区块时所生成的,因此该第二目标区块存在有与自身对应的子业务相关联的业务交易,而并不存在与其他子业务相关联的业务交易,以至于提高了数据存储的安全性。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,该代表节点230A可以为本申请实施例中的第一共识子网络中的第一代表节点,例如,该代表节点230A可以为上述图1所示的共识子网络W1中的节点130a。该代表节点230B可以为本申请实施例中的第二共识子网络中的第二代表节点,例如,该代表节点230B可以为上述图1所示的共识子网络W2中的节点130b。
应当理解,图2所示的代表节点230A和代表节点230B所在的共识主网络可以包括其他个代表节点,例如,该共识主网络还可以包括代表节点230C和代表节点230D。可以理解的是,共识主网络中的每个代表节点所在的共识子网络均可以对应不同的子业务,且每个代表节点还可以共享一条相同的区块链(即主网区块链),每个代表节点均可以在该主网区块链中获取该区块链上存储的数据信息。其中,图2所示的主网区块链可以为代表节点230B在竞拍到独占区块后,成功将待上链的区块B1上传后所得到的,该主网区块链可以包括多个目标区块(以6个区块为例),具体可以包括区块A1、区块C1、区块A2、区块D1、区块D2以及区块B1。其中,区块A1和区块A2均可以为代表节点230A所上链的与同一子业务(例如,子业务1)相关联的目标区块,区块B1可以为代表节点230B所上链的与另一子业务(例如,子业务2)相关联的目标区块,区块C1可以为代表节点230C所上链的与另一子业务(例如,子业务3)相关联的目标区块,区块D1和区块D2可以为该代表节点230D所上链与同一子业务(例如,子业务4)相关联的目标区块。
其中,本申请实施例可以将代表节点230A的节点缓存(例如,图2所示的节点缓存2100)称之为第一节点缓存,且该第一节点缓存可以用于存储待上链至主网区块链的初始区块。例如,图2所示的节点缓存2100中可以存储有具有哈希值23m的区块a3,且区块a3为代表节点230A所在第一共识子网络中的子网区块链(即第一子网区块链)上的初始区块。其中,这里的哈希值23m是指区块a3的锚定哈希值,即区块a3在第一子网区块链上的上一初始区块的区块哈希值。此外,本申请实施例可以将代表节点230B的节点缓存(例如,图2所示的节点缓存2200)称之为第二节点缓存,且该第二节点缓存可以用于存储待上链至主网区块链的初始区块。例如,图2所示的节点缓存2200中可以存储有具有哈希值21m的区块b1,且区块b1可以为代表节点230B所在第二共识子网络中的子网区块链(即第二子网区块链)上的初始区块。其中,这里的哈希值21m是指区块b1的锚定哈希值,即区块b1在第二子网区块链上的上一初始区块的区块哈希值。
应当理解,共识主网络中的每个代表节点均可以具备在主网区块链上竞拍独占区块的竞拍资格,且在竞拍到独占区块时,可以将自己节点缓存中的初始区块对应的目标区块广播至共识主网络,以写入主网区块链。如图2所示,当代表节点230B竞拍到独占区块时,可以基于节点缓存2200中的区块b1(即第一初始区块),生成图2所示的具有哈希值21m和哈希值21f的区块B1(即第一目标区块),进而可以将该区块B1广播至代表节点230B所在的共识主网络,以使共识主网络中的代表节点对区块B1进行区块共识。其中,这里的哈希值21f可以为区块B1的父区块哈希值,即区块B1在主网区块链上的上一目标区块(例如,区块D2)的区块哈希值。
在代表节点230A获取到该代表节点230B发送的区块B1时,该代表节点230A可以先对该区块B1进行区块共识,以得到该区块B1对应的区块共识结果(例如,图2所示的区块共识结果2g)。然后,代表节点230A还需要检测节点缓存2100中是否存在有待上链的初始区块,以根据检测结果确定针对区块B1生成的区块共识结果是否携带有投票竞拍信息。应当理解,若代表节点230A检测到节点缓存2100中不存在待上链的初始区块,则该代表节点230A在对区块B1进行区块共识之后,可以得到未携带投票竞拍信息的区块共识结果,这意味着该代表节点230A暂不参与独占区块的竞拍。可选的,若代表节点230A检测到节点缓存2100中存在待上链的初始区块(即第二初始区块,例如,图2所示的区块a3),则代表节点230A在对区块B1进行区块共识之后,可以得到携带投票竞拍信息的区块共识结果,进而可以将携带投票竞拍信息的区块共识结果作为用于广播至共识主网络的共识投票结果(即第一共识投票结果,例如,图2所示的共识投票结果20p)。其中,该共识投票结果20p中的投票竞拍信息2j可以用于表征代表节点230A参与竞拍独占区块。该共识投票结果20p中的区块共识结果2g可以为代表节点230A在对区块B1进行区块共识的过程中所得到的区块共识结果。
进一步地,在代表节点230B接收到代表节点230A广播的共识投票结果20p时,该代表节点230B可以基于共识投票结果20p中的区块共识结果2g,确定是否能够将区块B1写入至主网区块链。若区块共识结果2g指示共识失败,则代表节点230B无法将区块B1写入至主网区块链,此时,该代表节点230B可以针对区块B1生成用于广播至共识主网络的上链失败通知,以告知所有代表节点区块B1上链失败。与此同时,该代表节点230B可以基于共识投票结果20p中的投票竞拍信息2j,生成用于广播至共识主网络的竞拍通知,以重新竞拍区块D2的下一目标区块。
可选的,若区块共识结果2g指示共识成功,则代表节点230B可以将区块B1成功写入至主网区块链,以得到图2所示的主网区块链。此后,该代表节点230B可以基于共识投票结果20p中的投票竞拍信息2j,生成针对区块B1的下一目标区块的竞拍通知(例如,图2所示的竞拍通知2x)。进一步地,该代表节点230B可以将竞拍通知2x发送至代表节点230A,以使代表节点230A对接收到的竞拍通知2x进行分析。若竞拍通知2x指示代表节点230A竞拍到独占区块,则代表节点230A可以基于节点缓存2100中的区块a3(即第二初始区块)生成图2所示的具有哈希值23m和哈希值23f的区块A3(即第二目标区块),进而可以将该区块A3广播至代表节点230B,以使共识主网络中的代表节点对区块A3进行区块共识。其中,这里的哈希值23f可以为区块A3的父区块哈希值,即区块A3在主网区块链上的上一目标区块(例如,区块B1)的区块哈希值。
由此可见,由于每个代表节点所在的共识子网络对应不同的子业务,因此,每个共识子网络能够对自己的子业务进行共识,而不需要对除自己子业务之外的其他子业务进行共识,进而实现了各共识子网络之间的隐私隔离,以至于明确了每个共识子网络的共识职责。此外,代表节点230A在对接收到的区块B1进行区块共识的过程中,将会检测自己的节点缓存2100中是否存在有待上链的区块a3,以确定代表节点230A是否需要参与竞拍独占区块。若检测到节点缓存2100中存在有待上链的初始区块,则代表节点230A在对区块B1进行区块共识之后,可以得到携带有投票竞拍信息2j的区块共识结果2g,进而在代表节点230A竞拍到独占区块时,可以将区块a3对应的区块A3广播至代表节点230B,以使代表节点230B对区块A3进行区块共识。由于代表节点230A的投票竞拍信息2j用于表征代表节点230A参与独占区块,因此代表节点230A生成的区块A3中可以存在与第一共识子网络对应的子业务相关联的业务交易,而并不存在其他子业务的业务交易,进而提高了数据存储的安全性。
其中,共识主网络中的第一代表节点通过竞拍独占区块的方式,将自己节点缓存中的初始区块对应的目标区块发送至共识主网络中的第二代表节点,以使第二代表节点进行区块共识的具体实现方式可以参见下述图3-图10所对应的实施例。
进一步地,请参见图3,图3是本申请实施例提供的一种区块共识方法的流程示意图。如图3所示,该方法可以由共识主网络中的第一代表节点执行,该第一代表节点所在的第一共识子网络可以为一种子业务对应的共识子网络,且第一代表节点可以为接入至共识主网络中的服务器,也可以为接入至共识主网络中的用户终端,这里对第一代表节点的具体形式不做限定。比如,该第一代表节点可以为上述图1所示的共识子网络W1中的任意一个共识节点,例如节点130a。该方法至少可以包括以下步骤S101-步骤S103:
步骤S101,在获取到由共识主网络中的第二代表节点发送的第一目标区块时,对第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果。
具体地,共识主网络中的第一代表节点在获取到由共识主网络中的第二代表节点发送的第一目标区块时,可以获取第一目标区块对应的第一块签名信息以及第二代表节点的节点公钥。其中,这里的第一块签名信息可以为第二代表节点基于第二代表节点的节点私钥,对第一目标区块进行签名处理后所得到的。这里的第一目标区块为第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块所生成的。进一步地,该第一代表节点可以基于第二代表节点的节点公钥,对第一块签名信息进行签名验证,得到第一目标区块的签名验证结果,且基于签名验证结果,确定第一目标区块的第一区块共识结果。进一步地,该第一代表节点可以将第一代表节点的节点缓存作为第一节点缓存,且对第一节点缓存中的初始区块进行检测,得到检测结果。若检测结果指示第一节点缓存中存在待上链的第二初始区块,则该第一代表节点可以针对第二初始区块生成用于表征第一代表节点参与竞拍独占区块的投票竞拍信息。其中,本申请实施例可以将用于表征第一代表节点参与竞拍独占区块的投票竞拍信息称之为第一投票竞拍信息。进一步地,该第一代表节点可以基于第一投票竞拍信息和第一区块共识结果,得到携带第一投票竞拍信息的第一区块共识结果。
其中,第一代表节点和第二代表节点均属于共识主网络中的代表节点,该第一代表节点(例如,共识子网络W1中的节点130a)属于共识主网络所在的核心共识网络中的第一共识子网络,且第一共识子网络中的子网区块链可以称之为第一子网区块链。该第二代表节点(例如,共识子网络W2中的节点130b)属于共识主网络所在核心共识网络中的第二共识子网络,且第二共识子网络中的子网区块链可以称之为第二子网区块链。本申请实施例中的核心共识网络中的每个共识子网络均可以对应不同的子业务,能够各自出块,用于参与各自业务的共识,且彼此之间互不影响。其中,本申请实施例可以将第一共识子网络对应的子业务称之为第一子业务,将第二共识子网络对应的子业务称之为第二子业务,且第一子业务与第二子业务不同。换言之,第一共识子网络与第二共识子网络为不同子业务对应的共识子网络。
应当理解,业务网络中的业务节点在执行某一子业务生成业务交易时,可以通过代理节点将生成的业务交易广播至这一子业务对应的共识子网络,以等待这一共识子网络中的共识节点将其打包至对应的子网区块链。其中,代理节点可以用于对业务网络和核心共识网络进行网络隔离。
比如,业务网络中的某一业务节点(第一业务节点,例如,图1所示的节点110a)在执行第一子业务(例如,发票业务)时,可以根据执行后得到的交易执行结果生成该第一子业务对应的业务交易(例如,业务交易1),为了有效提高业务交易1在数据传输时的真实性和安全性,该第一业务节点可以基于第一业务节点的节点私钥对业务交易1进行签名处理,以得到业务交易1的签名信息(例如,签名信息1)。此时,该第一业务节点可以将业务交易1以及签名信息1一并发送至代理节点(例如,图1所示的代理节点120D),以使代理节点可以对该第一业务节点进行权限验证(例如,签名信息1的验证、第一业务节点的合法性验证以及业务交易1的交易格式验证等),以得到权限验证结果。若权限验证结果为合法验证结果,则代理节点可以确定该第一业务节点为合法节点,此时,代理节点可以将业务交易1以及签名信息1一并广播至第一子业务对应的第一共识子网络,以使第一共识子网络中的共识节点将其添加至自己的节点交易池,进而等待写入至第一共识子网络中的第一子网区块链。
同理,业务网络中的某一业务节点(第二业务节点,例如,图1所示的节点110b)在执行第二子业务(例如,退税业务)时,可以根据执行后得到的交易执行结果生成该第二子业务对应的业务交易(例如,业务交易2)以及业务交易2对应的签名信息(例如,签名信息2),进一步地,该第二业务节点可以将业务交易2以及签名信息2一并发送至代理节点(例如,图1所示的代理节点120D),以使代理节点可以对该第二业务节点进行权限验证,以得到权限验证结果。若权限验证结果为合法验证结果,则代理节点可以确定第二业务节点为合法节点,此时,代理节点可以将业务交易2以及签名信息2一并广播至第二子业务对应的第二共识子网络,以使第二共识子网络中的共识节点将其添加至自己的节点交易池,进而等待写入至第二共识子网络中的第二子网区块链。
其中,本申请实施例中的第一代表节点的节点交易池中可以包括业务网络中的业务节点通过代理节点转发的业务交易,且这里的业务交易为业务节点在执行第一共识子网络对应的子业务时所生成的。本申请实施例中的第二初始区块为第一代表节点在检测到第一代表节点的节点缓存(例如,图2所示的节点缓存2100)具备存储资源时所确定的待上链至主网区块链的初始区块。
可以理解的是,该第一代表节点在将第二初始区块写入第一共识子网络的第一子网区块链之前,可以从第一代表节点的节点交易池中获取用于待打包至第二初始区块的业务交易,进而可以将获取到的业务交易作为待处理交易。进一步地,该第一代表节点可以基于待处理交易生成第二初始区块。比如,该第一代表节点可以基于待处理交易确定待生成的第二初始区块的区块哈希值,且基于该待处理交易确定用于构成第二初始区块的区块体信息。此外,该第一代表节点可以从第一共识子网络中的第一子网区块链上,获取具有最大生成时间戳的初始区块,进而可以将获取到的初始区块作为待处理初始区块。进一步地,该第一代表节点还可以获取待处理初始区块的区块哈希值,将获取到的区块哈希值作为第二初始区块的锚定哈希值,进而可以基于锚定哈希值和第二初始区块的区块哈希值,确定用于构成第二初始区块的区块头信息。此时,该第一代表节点可以基于区块头信息和区块体信息得到第二初始区块,且将第二初始区块广播至第一共识子网络,以使第一共识子网络中的共识节点对第二初始区块进行区块共识。第一代表节点可以接收第一共识子网络中的共识节点返回的初始区块共识结果,若初始区块共识结果指示共识成功,则第一代表节点可以将第二初始区块写入第一共识子网络中的第一子网区块链,且在将第二初始区块成功写入第一子网区块链时,将第二初始区块存储至第一代表节点的节点缓存中。
为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种将初始区块上链至子网区块链上的场景示意图。如图4所示,本申请实施例中的共识子网络4W可以为上述图1所示的核心共识网络中的任意一个共识子网络,例如,共识子网络W1。其中,该共识子网络4W中可以包括代表节点430A、以及多个用于对同一子业务进行共识的共识节点(例如,共识节点400A)。应当理解,共识子网络4W中的每个共识节点均可以将自己节点交易池中的业务交易写入图4所示的子网区块链4q。本申请实施例可以以代表节点430A为例,用以阐述将初始区块写入子网区块链4q中的具体实施方式。
其中,本申请实施例中的代表节点430A(即第一代表节点)的选定方式可以包括多种方式,比如,该代表节点430A可以为本申请实施例基于共识子网络4W中的每个共识节点的节点性能所选择的,又比如,该代表节点430A也可以为根据与共识子网络4W所在核心共识网络相关联的智能合约所定期更新的,可选的,该代表节点430A还可以为基于共识子网络4W中的每个共识节点随机生成的随机参数所筛选的,这里将不对其进行限定。
可以理解的是,图4所示的子网区块链4q可以为共识子网络4W中的每个共识节点(共识节点400A或代表节点430A)均共享的一条相同的区块链,且每个共识节点均可以获取该子网区块链4q所存储的信息。其中,该子网区块链4q中可以包括多个初始区块(以3个为例),具体可以包括区块a1、区块a2以及区块a3。其中,该区块a3可以为上述图2所示的节点缓存2100中存储的第二初始区块。
其中,代表节点430A的节点交易池4000中可以包括业务网络中的业务节点通过代理节点转发的多个业务交易,且这里的业务交易可以为业务节点在执行共识子网络4W对应的子业务时所生成的。应当理解,代表节点430A在生成新区块(例如,图4所示的区块a3)时,可以从图4所示的节点交易池4000中获取用于打包至区块a3的业务交易,进而可以将获取到的业务交易作为待处理交易。比如,该代表节点430A确定的待处理交易可以包括交易1、交易2、交易3以及交易4。进一步地,该代表节点430A可以对获取的待处理交易进行打包处理,以得到图4所示的区块a3。
其中,该代表节点430A在对待处理交易进行打包处理的过程中,可以基于待处理交易确定待生成的区块a3的区块哈希值,且基于该待处理交易确定用于构成区块a3的区块体信息。此外,该代表节点430A可以从图4所示的子网区块链4q中获取具有最大生成时间戳的初始区块,进而可以将获取到的初始区块作为待处理初始区块(例如,图4所示的区块a2)。进一步地,代表节点430A还可以获取区块a2的区块哈希值,并将该区块a2的区块哈希值作为区块a3中的锚定哈希值。此时,该代表节点430A可以基于锚定哈希值、区块a3的区块哈希值,确定用于构成区块a3的区块头信息,进而可以基于确定的区块头信息和区块体信息,得到用于广播至共识子网络4W的区块a3。
进一步地,该代表节点430A在生成区块a3之后,可以将该区块a3广播至图4所示的共识节点400A,以使共识节点400A对区块a3进行区块共识,以得到区块a3的区块共识结果(即初始区块共识结果)。该代表节点430A可以接收共识节点400A返回的初始区块共识结果,并对接收到的初始区块共识结果进行结果分析。若共识节点400A返回的初始区块共识结果中存在超过共识阈值(例如,1/2或者2/3)的初始区块共识结果指示共识成功,则代表节点430A可以确定共识子网络4W中的共识节点400A达成共识,进而可以将区块a3写入共识子网络4W的子网区块链中,以得到图4所示的子网区块链4q,也就是将区块a3作为区块a2的下一初始区块。进一步地,在代表节点430A将区块a3成功写入子网区块链4q之后,可以将区块a3存储至代表节点430A的节点缓存中,以在竞拍到独占区块时,将区块a3写入代表节点430A所在的共识主网络中的主网区块链。
其中,可以理解的是,包括多个共识子网络的核心共识网络在对不同子业务的数据(例如,业务交易或者初始区块)进行共识时具备并发优势,即在业务网络中的大量业务交易急需上链的情况下,核心共识网络中的每个共识子网络均可以各自共识,且各个共识子网络所共识的子业务之间各不相同,且互不影响,进而可以大大缩短业务交易的上链时间,以至于提高业务交易的上链效率。此外,共识子网络的共识性能也不会受到共识主网络的共识算法的限制,从而可以有效保证共识子网络的共识性能。
进一步地,共识主网络中的第一代表节点可以接收共识主网络中的任意一个代表节点广播的目标区块(例如,第二代表节点在竞拍到独占区块时发送的第一目标区块),且对接收到的目标区块进行区块共识。为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种代表节点对目标区块进行区块共识的场景示意图。如图5所示,该代表节点530A可以为本申请实施例中的第一共识子网络中的第一代表节点,例如,该代表节点530A可以为上述图1所示的共识子网络W1中的节点130a。该代表节点530B可以为本申请实施例中的第二共识子网络中的第二代表节点,例如,该代表节点530B可以为上述图1所示的共识子网络W2中的节点130b。
应当理解,代表节点530B在竞拍到独占区块时,可以基于代表节点530B的节点缓存(例如,图5所示的节点缓存5200)中的第一初始区块(例如,区块b1),生成如图5所示的区块B1(即第一目标区块)。应当理解,由于区块b1在上传至代表节点530B所在共识子网络(即第二共识子网络)的子网区块链的过程中,已经在第二共识子网络中进行广播,且第二共识子网络中的共识节点已经达成共识,因此,在代表节点530B在将区块B1广播至代表节点530B所在的共识主网络时,不需要共识主网络中的代表节点对区块B1中的每个业务交易进行交易验证,而是通过验证代表节点530B对区块B1的块签名信息,即可确定区块B1的区块共识结果。
基于此,代表节点530B在生成区块B1之后,需要基于该代表节点530B的节点私钥,对该区块B1进行签名处理,得到该区块B1对应的块签名信息(即第一块签名信息,例如,图5所示的块签名信息5k)。其中,可以理解的是,该代表节点530B可以获取针对待广播的目标区块的哈希计算规则,该哈希计算规则可以为该代表节点530B与共识主网络中的其他代表节点(例如,代表节点530A)提前约定好的摘要算法。因此,该代表节点530B可以基于该哈希计算规则对该区块B1进行哈希计算,以得到区块B1的摘要信息(例如,摘要信息h)。其中,本申请实施例可以将代表节点530B确定的区块B1的摘要信息称之为第一摘要信息。进一步地,该代表节点530B可以基于该代表节点530B的节点私钥,对该第一摘要信息进行签名处理,从而可以得到图5所示的块签名信息5k。
进一步地,该代表节点530B可以将区块B1和块签名信息5k一并发送至图5所示的代表节点530A,以使该代表节点530A基于代表节点530B的节点公钥,对块签名信息5k进行签名验证,从而得到签名验证结果。其中,可以理解的是,代表节点530A可以获取代表节点530B的节点公钥,进而可以基于该用户公钥对块签名信息5k进行签名验证,得到区块B1的第一摘要信息。与此同时,该代表节点530A还可以获取与代表节点530B相同的哈希计算规则,对区块B1进行哈希计算,从而可以得到该区块B1的摘要信息(例如,摘要信息H)。其中,本申请实施例可以将代表节点530A确定的区块B1的摘要信息称之为第二摘要信息。
此时,该代表节点530A可以将第一摘要信息与第二摘要信息进行比对,得到签名验证结果,以确定该区块B1是否被篡改。可以理解的是,若第一摘要信息与第二摘要信息不相同,则该代表节点530A可以确定签名验证结果指示验签失败,此时,该代表节点530A可以将区块B1的区块共识结果(即第一区块共识结果,例如,图5所示的区块共识结果5g)确定为共识失败结果。可选的,若第一摘要信息与第二摘要信息相同,则该代表节点530A可以确定签名验证结果指示验签成功,这意味着区块B1未发生篡改,且该区块B1确实是由代表节点530B发送的。此时,该代表节点530A可以将区块B1的区块共识结果5g确定为共识成功结果。
进一步地,该代表节点530A可以对代表节点530A的节点缓存(例如,图5所示的节点缓存5100)中的初始区块进行检测,得到检测结果。进一步地,代表节点530A可以基于检测结果,确定返回至代表节点530B的区块共识结果5g中是否携带用于竞拍区块B1的下一目标区块的投票竞拍信息。可以理解的是,若检测结果指示节点缓存5100中存在待上链的第二初始区块,则代表节点530A可以针对区块a3生成用于表征代表节点530A参与竞拍独占区块的投票竞拍信息,此时该代表节点530A在对区块B1进行区块共识之后,可以得到携带投票竞拍信息的区块共识结果5g。可选的,若检测结果指示节点缓存5100中不存在待上链的初始区块,则该代表节点530A在对区块B1进行区块共识之后,可以得到未携带投票竞拍信息的区块共识结果5g。
其中,本申请实施例可以将第一代表节点所在的第一共识子网络对应的共识集群称之为第一共识集群,将第二代表节点所在的第二共识子网络对应的共识集群称之为第二共识集群。应当理解,共识主网络中的第一代表节点在对第二代表节点发送的第一目标区块进行区块共识的过程中,需要对第一代表节点的节点缓存(即第一节点缓存)中的初始区块进行检测,以得到检测结果。
若检测结果指示第一节点缓存中存在待上链的N个初始区块,则第一代表节点可以分别获取N个初始区块中的每个初始区块在第一共识子网络中的第一子网区块链的区块表征参数;N为大于1的正整数。其中,这里的区块表征参数可以是指初始区块在第一子网区块链上的区块高度,也可以是指初始区块存储至第一节点缓存中的存储时间戳,还可以指示初始区块中的生成时间戳,这里将不对其进行限定。进一步地,该第一代表节点可以基于获取到的区块表征参数,从N个初始区块中筛选具有最小区块表征参数的初始区块,进而可以将筛选出的初始区块确定为待上链至主网区块链的第二初始区块。
如图5所示,代表节点530A的节点缓存5100中存储有待上链的N个初始区块(以3个为例),具体可以包括区块a3、区块a4以及区块a5。其中,代表节点530A可以获取这3个初始区块的区块表征参数,比如,区块a3的区块表征参数可以为区块高度3,区块a4的区块表征参数可以为区块高度4,区块a5的区块表征参数可以为区块高度5。此时,该代表节点530A可以基于这3个区块表征参数,从这3个初始区块中确定出具有最小区块表征参数的初始区块(例如,区块表征参数为区块高度3的区块a3),此时,代表节点530A可以将筛选出的区块a3确定为待上链至主网区块链的第二初始区块。
可选的,若检测结果指示第一节点缓存中存在一个初始区块,则该第一代表节点可以直接将第一节点缓存中的初始区块作为待上链至主网区块链的第二初始区块。如图5所示,代表节点530A的节点缓存5100中存储有待上链的一个初始区块,例如,区块a3。此时,代表节点530A可以直接将节点缓存5100中的区块a3确定为待上链至主网区块链的第二初始区块。
应当理解,当第一代表节点确定出待上链的第二初始区块时,第一代表节点可以获取与第二初始区块相关联的竞拍资产(例如,10个游戏币),其中,竞拍资产是由第二初始区块的待上链的等待时长所确定的,也就是说,第二初始区块的等待时长越长,该第一代表节点获取的竞拍资产越小,反之,第二初始区块的等待时长越短,该第一代表节点获取的竞拍资产越大。与此同时,第一代表节点还需要获取第一共识集群的集群标识。其中,这里的集群标识可以为第一代表节点的节点标识,也可以为第一共识集群中的所有共识节点以及第一代表节点所共同确定的节点标识集合,这里将不对其进行限定。进一步地,第一代表节点可以基于获取到的竞拍资产、第一共识集群的集群标识,生成用于表征第一代表节点竞拍独占区块的投票竞拍信息。此时,第一代表节点对第一目标区块进行区块共识之后,可以得到携带该投票竞拍信息的区块共识结果。
可选的,若检测结果指示第一代表节点的节点缓存中不存在待上链的初始区块,则该第一代表节点并不需要参与第一目标区块的下一目标区块的竞拍,即第一代表节点在对第一目标区块进行区块共识之后,可以得到未携带投票竞拍信息的第一区块共识结果。如图5所示,代表节点530A的节点缓存5100中不存在待上链的初始区块,则代表节点530A确定的区块共识结果5g将不会携带投票竞拍信息。
步骤S102,将携带第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将第一共识投票结果广播至第二代表节点,以使第二代表节点在基于第一共识投票结果成功将第一目标区块写入共识主网络中的主网区块链时,生成针对第一目标区块的下一目标区块的竞拍通知。
具体地,该第一代表节点可以将携带第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,进而可以将第一共识投票结果广播至第二代表节点。在第二代表节点基于第一共识投票结果将第一目标区块成功写入主网区块链时,该第二代表节点可以基于第一共识投票结果中的第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知。
应当理解,本申请实施例中的第二代表节点在竞拍到独占区块时,不仅可以基于第二代表节点的节点缓存(即第二节点缓存)中的第一初始区块生成待广播至共识主网络中的第一目标区块,还可以对第二节点缓存中除第一初始区块之外的初始区块进行检测。若第二节点缓存中还存在除第一初始区块之外的初始区块,则第二代表节点还可以参与竞拍第一目标区块的下一目标区块,以生成用于表征第二代表节点参与竞拍独占区块的投票竞拍信息。其中,本申请实施例可以将用于表征第二代表节点参与竞拍独占区块的投票竞拍信息称之为第二投票竞拍信息。其中,该第二投票竞拍信息是第二代表节点基于第二共识子网络对应的第二共识集群的集群标识以及第二代表节点的竞拍资产所确定的。其中,第二代表节点确定第二投票竞拍信息的具体实施方式可以参见第一代表节点确定第一投票竞拍信息的具体实施方式,这里将不再继续进行赘述。
应当理解,该第二代表节点在将携带第二投票竞拍信息的第一目标区块广播至共识主网络之后,可以接收共识主网络中的每个代表节点针对第一目标区块返回的共识投票结果。由于核心共识网络还可以包括第三代表节点所在的第三共识子网络,且第三共识子网络对应的子业务均不同于第一共识子网络和第二共识子网络对应的子业务。因此,该第二代表节点不仅可以接收到第一代表节点返回的第一共识投票结果,还可以接收到第三代表节点返回的第三共识投票结果。其中,第三代表节点确定第三共识投票结果的具体实施方式可以参见上述第一代表节点确定第一共识投票结果的具体实施方式,这里将不再继续进行赘述。
若第二代表节点接收到的第一代表节点返回的第一共识投票结果和第三代表节点返回的第三共识投票结果中均不存在用于竞拍独占区块的投票竞拍信息,且第二代表节点在生成第一目标区块时也未携带投票竞拍信息,则第二代表节点可以确定共识主网络中的代表节点均不参与竞拍第一目标区块的下一目标区块。此时,若第二代表节点为共识主网络中具有管理权限的代表节点,则第二代表节点可以直接配置第一目标区块的下一目标区块。比如,第二代表节点可以将第一目标区块的下一目标区块配置成一个空块,或者用于存储与共识主网络相关联的更新协议的主链配置区块。
可选的,第三代表节点的第三共识投票结果可以为携带第三投票竞拍信息的第三区块共识结果,该第三区块共识结果第三代表节点针对第一目标区块所生成的,第三投票竞拍信息为第三代表节点在检测到第三代表节点的节点缓存(即第三节点缓存)中存在待上链的初始区块时所生成的,且第三投票竞拍信息是基于第三共识子网络对应的第三共识集群的集群标识以及第三代表节点的竞拍资产所确定的,基于此,第二代表节点可以基于接收到的共识投票结果,获取每个共识投票结果中的区块共识结果,进而对获取到的区块共识结果进行分析。
比如,该第二代表节点可以获取第一共识投票结果中的第一区块共识结果和第三共识投票结果中的第三区块共识结果,在获取到的区块共识结果中存在超过共识阈值的区块共识结果指示共识成功时,该第二代表节点可以将第一目标区块写入主网区块链。进一步地,该第二代表节点可以将第一共识投票结果中的第一投票竞拍信息、第二代表节点在生成第一目标区块时所生成的第二投票竞拍信息、以及第三共识投票结果中的第三投票竞拍信息均作为候选投票竞拍信息,进而可以基于候选投票竞拍信息,筛选具有最大竞拍资产的候选投票竞拍信息,且将筛选出的候选投票竞拍信息作为目标投票竞拍信息。
若第二代表节点确定的目标投票竞拍信息为第一投票竞拍信息,则第二代表节点可以基于第一投票竞拍信息中携带的集群标识,确定第一目标区块的下一目标区块被该集群标识对应的第一共识子网络中的第一代表节点所竞拍到,此时,第二代表节点可以基于第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知。
可选的,若第二代表节点确定的目标投票竞拍信息为第三投票竞拍信息,则第二代表节点可以基于第三投票竞拍信息中携带的集群标识,确定第一目标区块的下一目标区块被该集群标识对应的第三共识子网络中的第三代表节点所竞拍到,此时,第二代表节点可以基于第三投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知。
可选的,若第二代表节点确定的目标投票竞拍信息为第二投票竞拍信息,则第二代表节点可以基于第二投票竞拍信息中携带的集群标识,确定第一目标区块的下一目标区块被该集群标识对应的第二共识子网络中的第二代表节点所竞拍到,此时,第二代表节点可以基于第二投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知。这意味着第二代表节点再次竞拍到第一目标区块的下一目标区块。换言之,若某一代表节点有大量上链需求时,该代表节点可以加大竞拍力度,即基于较大的竞拍资产生成投票竞拍信息,以有效确保该代表节点能够在主网区块链上连续写入与该代表节点相关联的初始区块对应的目标区块。
为便于理解,进一步地,请参见图6,图6是本申请实施例提供的一种第二代表节点生成竞拍通知的场景示意图。如图6所示,该代表节点630A可以为本申请实施例中的第一共识子网络中的第一代表节点,例如,该代表节点630A可以为上述图1所示的共识子网络W1中的节点130a。该代表节点630B可以为本申请实施例中的第二共识子网络中的第二代表节点,例如,该代表节点630B可以为上述图1所示的共识子网络W2中的节点130b。该代表节点630C可以为本申请实施例中的第三共识子网络中的第三代表节点,例如,该代表节点630C可以为上述图1所示的共识子网络W3中的节点130c。
如图6所示,代表节点630B在竞拍到独占区块时,可以基于代表节点630B的节点缓存(例如,图6所示的节点缓存6200)中的第一初始区块(例如,区块b1)生成区块B1,与此同时,该代表节点630B还可以基于节点缓存6200中的除第一初始区块之外的初始区块(例如,区块b2),生成用于竞拍区块B1的下一目标区块的投票竞拍信息62j,进而可以将携带投票竞拍信息62j的区块B1一并广播至图6所示的代表节点630A和图6所示的代表节点630C。
应当理解,若代表节点630A的节点缓存(例如,图6所示的节点缓存6100)中存在待上链的初始区块(即第二初始区块),则代表节点630A在接收到区块B1时,可以对区块B1进行区块共识,以得到图6所示的共识投票结果61p。其中,该共识投票结果61p可以为携带投票竞拍信息61j的区块共识结果61g。同理,若代表节点630C的节点缓存(例如,图6所示的节点缓存6300)中存在待上链的初始区块(即第三初始区块),则代表节点630C在接收到区块B1时,可以对区块B1进行区块共识,以得到图6所示的共识投票结果63p。其中,该共识投票结果63p可以为携带投票竞拍信息63j的区块共识结果63g。
进一步地,该代表节点630B在将区块B1广播至共识主网络之后,可以收集共识主网络中的代表节点针对区块B1返回的共识投票结果,具体可以包括代表节点630A返回的共识投票结果61p和代表节点630C返回的共识投票结果63p。当该代表节点630B可以基于获取到的共识投票结果中的区块共识结果,将区块B1成功写入共识主网络中的主网区块链之后,代表节点630B可以将收集到的共识投票结果中的投票竞拍信息均作为候选投票竞拍信息。如图6所示,代表节点630B可以将用于表征代表节点630A参与竞拍独占区块的投票竞拍信息61j、用于表征代表节点630B参与竞拍独占区块的投票竞拍信息62j、以及用于表征代表节点630C参与竞拍独占区块的投票竞拍信息63j均作为候选投票竞拍信息。其中,投票竞拍信息61j的竞拍资产可以为图6所示的竞拍资产1z(例如,20个游戏币),投票竞拍信息62j的竞拍资产可以为图6所示的竞拍资产2z(例如,10个游戏币),投票竞拍信息63j的竞拍资产可以为图6所示的竞拍资产3z(例如,15个游戏币)。
此时,代表节点630B可以基于这三个投票竞拍信息的竞拍资产,筛选出具有最大竞拍资产的投票竞拍信息,且将筛选出的投票竞拍信息作为目标投票竞拍信息。例如,若代表节点630B确定的目标投票竞拍信息为代表节点630A发送的投票竞拍信息61j,则代表节点630B可以基于投票竞拍信息61j中携带的集群标识,确定区块B1的下一目标区块被该集群标识对应的共识子网络中的代表节点630A所竞拍到,此时,代表节点630B可以基于投票竞拍信息61j,生成针对区块B1的下一目标区块的竞拍通知(例如,图6所示的竞拍通知6x)。
步骤S103,获取第二代表节点返回的竞拍通知,若竞拍通知指示第一代表节点竞拍到独占区块,则基于第二初始区块生成第二目标区块,将第二目标区块广播至第二代表节点,以使第二代表节点对第二目标区块进行区块共识。
具体地,第一代表节点可以获取第二代表节点返回的竞拍通知,对竞拍通知进行分析。若竞拍通知指示第一代表节点竞拍到独占区块,则该第一代表节点可以获取第一目标区块的区块哈希值,且将第一目标区块的区块哈希值作为待添加区块哈希值。进一步地,该第一代表节点可以将待添加区块哈希值添加至第二初始区块的区块头,将添加后的第二初始区块作为第二目标区块,且将添加的待添加区块哈希值作为第二目标区块的父区块哈希值。进一步地,该第一代表节点可以通过第一代表节点的节点私钥,对第二目标区块进行签名处理,得到第二目标区块的第二块签名信息,进而可以将第二块签名信息和第二目标区块一并广播至第二代表节点。其中,该第二块签名信息可以用于指示第二代表节点对第二目标区块进行区块共识。
为便于理解,进一步地,请参见图7,图7是本申请实施例提供的一种生成目标区块的场景示意图。如图7所示,本申请实施例中的主网区块链7Q可以为第二代表节点(例如,图6所示的代表节点630B)在将第一目标区块(例如,图7所示的区块B1)成功写入共识主网络之后所得到的。
应当理解,第一代表节点(例如,图6所示的代表节点630A)在获取到第二代表节点返回的竞拍通知(例如,图6所示的竞拍通知6x)时,可以对获取到竞拍通知6x进行分析,在竞拍通知指示第一代表节点竞拍到独占区块时,该第一代表节点可以从图7所示的主网区块链上获取具有最大生成时间戳的目标区块(即图7所示的区块B1),进而可以获取区块B1的区块哈希值,且将获取到的区块B1的区块哈希值作为待添加至区块a3中的待添加区块哈希值。其中,区块a3为第一代表节点的节点缓存中的待上链的初始区块。
进一步地,该第一代表节点可以将待添加区块哈希值添加至区块a3的区块头中,将添加后的区块a3作为待上链至主网区块链7Q的目标区块(例如,图7所示的区块A3)。其中,本申请实施例可以将添加的待添加区块哈希值作为该区块A3的父区块哈希值。其中,区块A3中的锚定哈希值可以指向主网区块链7Q中的区块A2,以在后续查询与第一代表节点所在第一共识子网络相关联的目标区块时,能够基于区块A3中的锚定哈希值快速查找到区块A2,进而可以大大缩短查找时间,进而提高查找效率。
此外,第一代表节点还可以对区块A3进行签名处理,以得到区块A3的块签名信息,其中,第一代表节点得到区块A3的块签名信息的具体实施方式可以参见上述图5所示节点530B对区块B1进行签名处理,以得到区块B1的块签名信息5k的具体实施方式,这里将不再继续进行赘述。
在本申请实施例中,共识主网络中的第一代表节点所在的第一共识子网络与第二代表节点所在的第二共识子网络为不同子业务对应的共识子网络,因此,这两个共识子网络均可以各自共识与自己相关的子业务,而无需共识其他子业务,这两个共识子网络互不影响,进而实现了各共识子网络之间的隐私隔离,以至于明确了每个共识子网络的共识职责。此外,第一代表节点在竞拍到独占区块时,可以基于自己节点缓存中的第二初始区块生成第二目标区块。由于第一代表节点的节点缓存中的第二初始区块是第一代表节点所在第一共识子网络在对自己的子业务进行共识时所得到的,这样将导致第二初始区块对应的第二目标区块中将存在与第一共识子网络对应的这一种子业务相关联的数据,而不存在与其他子业务相关联的数据,从而提高了数据存储的安全性。
进一步地,请参见图8,图8是本申请实施例提供的一种区块共识方法的流程示意图。如图8所示,该方法可以由共识主网络中的第一代表节点和第二代表节点共同执行,该第一代表节点(例如,共识子网络W1中的节点130a)属于共识主网络所在的核心共识网络中的第一共识子网络,该第二代表节点(例如,共识子网络W2中的节点130b)属于共识主网络所在核心共识网络中的第二共识子网络,且第一共识子网络与第二共识子网络对应不同的子业务。该方法至少可以包括以下步骤S201-步骤S210:
步骤S201,第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块生成第一目标区块,且将第一目标区块发送至第一代表节点;
步骤S202,第一代表节点在获取到由共识主网络中的第二代表节点发送的第一目标区块时,对第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果;
步骤S203,第一代表节点将携带第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将第一共识投票结果广播至第二代表节点;
步骤S204,第二代表节点在基于第一区块共识结果将第一目标区块成功写入主网区块链之后,基于第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知;
步骤S205,第二代表节点将竞拍通知发送至第一代表节点;
步骤S206,若竞拍通知指示第一代表节点竞拍到独占区块,则第一代表节点基于第二初始区块生成第二目标区块;
步骤S207,第一代表节点将第二目标区块广播至第二代表节点。
其中,该步骤S201-步骤S207的具体实施方式可参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再赘述。
步骤S208,第二代表节点对第二目标区块进行区块共识,得到第二共识投票结果,且将第二共识投票结果返回至第一代表节点。
具体地,第二代表节点在接收到第一代表节点返回的第二目标区块时,可以获取第二目标区块的第二块签名信息,进而可以基于第二块签名信息对第二目标区块进行区块共识,以得到针对第二目标区块的第二区块共识结果。进一步地,该第二代表节点可以继续在第二代表节点的节点缓存中检测是否存在待上链的初始区块,若第二代表节点的节点缓存中存在待上链的初始区块,则第二代表节点可以针对待上链的初始区块,生成新的投票竞拍信息,以用于参与竞拍第二目标区块的下一目标区块,进而可以将携带新的投票竞拍信息的第二区块共识结果作为第二共识投票结果,以返回至第一代表节点。可选的,若第二代表节点的节点缓存中不存在待上链的初始区块,则第二代表节点暂不参与竞拍第二目标区块的下一目标区块,此时,第二代表节点将不会生成新的投票竞拍信息,进而可以将未携带新的投票竞拍信息的第二区块共识结果作为第二共识投票结果,以返回至第一代表节点。
步骤S209,第一代表节点获取第二共识投票结果中的第二区块共识结果,若第二区块共识结果指示共识成功,则第一代表节点将第二目标区块写入主网区块链。
具体地,第一代表节点在接收到第二代表节点针对第二目标区块返回的第二共识投票结果时,可以获取第二共识投票结果中的第二区块共识结果。若第二区块共识结果指示共识成功,则第一代表节点可以将第二目标区块写入主网区块链。可选的,若第二区块共识结果指示共识失败,则第一代表节点可以针对第二目标区块生成上链失败通知,以广播至共识主网络。
步骤S210,第一代表节点在第一代表节点的节点缓存中删除第二初始区块。
具体地,第一代表节点在将第二目标区块成功写入主网区块链时,可以在第一代表节点的节点缓存中删除第二初始区块,以便于及时对第一代表节点的节点缓存进行清分,从而有效确保第一代表节点的节点缓存中具备存储资源。
应当理解,第一代表节点还可以在第二目标区块成功上链至主网区块链之后,生成与第二目标区块对应的第二初始区块相关联的上链成功通知,以告知第一代表节点所在的第一共识子网络中的共识节点该第二初始区块被最终确认,即整个核心共识网络中的共识节点均达成共识。
为便于理解,进一步地,请参见图9,图9是本申请实施例提供的一种核心共识网络中的结构示意图。如图9所示,本申请实施例中的核心共识网络可以包括多个共识子网络,这里以4个为例,具体可以包括共识子网络W91、共识子网络W92、共识子网络W93以及共识子网络W94。
其中,该共识子网络W91可以为核心共识网络中的第一共识子网络,例如,该共识子网络W91可以为上述图1所示的核心共识网络中的共识子网络W1,其中,该共识子网络W91中可以包括一个代表节点(例如,图9所示的代表节点930A)以及多个共识节点(例如,图9所示的共识节点900A)。如图9所示,该共识子网络W91中的子网区块链91q中可以包括多个初始区块,例如,具体可以包括区块a1、区块a2、区块a3以及区块a4。
其中,该共识子网络W92可以为核心共识网络中的第二共识子网络,例如,该共识子网络W92可以为上述图1所示的核心共识网络中的共识子网络W2,其中,该共识子网络W92中可以包括一个代表节点(例如,图9所示的代表节点930B)以及多个共识节点(例如,图9所示的共识节点900B)。如图9所示,该共识子网络W92中的子网区块链92q中可以包括多个初始区块,例如,具体可以包括区块b1以及区块b2。
其中,该共识子网络W93可以为核心共识网络中的第三共识子网络,例如,该共识子网络W93可以为上述图1所示的核心共识网络中的共识子网络W3,其中,该共识子网络W93中可以包括一个代表节点(例如,图9所示的代表节点930C)以及多个共识节点(例如,图9所示的共识节点900C)。如图9所示,该共识子网络W93中的子网区块链93q中可以包括多个初始区块,例如,具体可以包括区块c1、区块c2以及区块c3。
其中,该共识子网络W94可以为核心共识网络中的第四共识子网络,例如,该共识子网络W94可以为上述图1所示的核心共识网络中的一个共识子网络,其中,该共识子网络W94中可以包括一个代表节点(例如,图9所示的代表节点930D)以及多个共识节点(例如,图9所示的共识节点900D)。如图9所示,该共识子网络W94中的子网区块链94q中可以包括多个初始区块,例如,具体可以包括区块d1以及区块d2。
应当理解,图9所示的4个共识子网络均可以为不同子业务对应的共识子网络,且每个共识子网络均可以有自己的共识和校验逻辑,各自出块,互不影响,不仅可以明确共识职责,还可以提高出块效率。每个共识子网络中在将新的初始区块写入对应的子网区块链之后,该共识子网络中的代表节点均可以将新的初始区块存储在自己的节点缓存中,以在竞拍到独占区块时,可以将其写入共识主网络中的主网区块链(例如,图9所示的主网区块链9Q)。
可以理解的是,这4个共识子网络中的代表节点(例如,代表节点930A、代表节点930B、代表节点930C以及代表节点930D)可以用于构成共识主网络。每个代表节点在竞拍到独占区块时,均可以基于自己节点缓存中的初始区块生成目标区块,以写入图9所示的共识主网络中的主网区块链9Q。其中,主网区块链9Q中的区块A1、区块A2可以为代表节点930A在竞拍到独占区块时,基于自己节点缓存中的区块a1以及区块a2所生成的目标区块。主网区块链9Q中的区块B1可以为代表节点930B基于自己节点缓存中的区块b1所生成的目标区块。主网区块链9Q中的区块C1可以为代表节点930C基于自己节点缓存中的区块c1所生成的目标区块,主网区块链9Q中的区块D1、区块D2均可以为代表节点930D基于自己节点缓存中的区块d1以及区块d2所生成的目标区块。
由此可见,由于每个共识子网络对应的共识集群可以根据初始区块的锚定哈希值组织自己的业务子链(即子网区块链),该子网区块链中可以存储与自己共识子网络对应的子业务相关联的业务交易,而不存储其他子业务的业务交易,从而可以有效将不同子业务的业务交易进行数据隔离,以提高数据存储的安全性。此外,由于主网区块链9Q中可以存储有整个业务生态的全部信息,进而便于后续对同一子业务的管理和审查。
为便于理解,进一步地,请参见图10,图10是本申请实施例提供的一种区块链电子票据场景下的系统架构图。如图10所示,本申请实施例中的业务网络、路由代理网络以及核心共识网络组成了整个完整区块链业务体系。图10所示的多个核心链中可以包括核心共识网络中的共识主网络中的主网区块链(例如,核心链1),还可以包括核心共识网络中的多个代表节点所在的共识子网络中的子网区块链(例如,核心链2、…、核心链N)。其中,每个共识子网络对应的子业务均不同。例如,共识主网络中的第一代表节点所在的第一共识子网络与第二代表节点所在的第二共识子网络对应的子业务不同。
可以理解的是,当区块链被用于政府(例如,税务系统)或者商业机构的一些场景中,为了提高数据的保密性和安全性,在区块链体系中涉及个人隐私或者国家安全等相关数据时,可以采用本申请实施例中的“业务网络—核心共识网络”这一分层区块链结构。
其中,该系统架构图可以应用于多种与税务业务相关联的子业务,例如,发票业务、出口业务、法人业务、征信业务以及退税业务等。一个子业务对应核心共识网络中的一个共识子网络。由于整个税务业务将会涉及到监管机构、开票方、报销方和报税方等。因此,图10所示的业务网络中的业务节点可以包括电子税局对应的终端设备、企业用户对应的终端设备以及消费用户对应的终端设备。其中,电子税局可以是指监管专网中的监管机构(例如,省、市、区等税局对应的计算机设备),企业用户可以为公有云中的开票服务商、报销服务商或者零售企业(例如,KA企业,即大型零售客户和重点零售客户企业)等,消费用户可以为私有云中的支付服务商、流转服务商或者零售企业等。其中,业务网络中的业务节点可在执行税务业务对应的子业务时,可以生成用于广播至对应共识子网络的业务交易,以通过路由代理网络中的代理节点转发至子业务对应共识子网络中进行共识。
其中,路由代理网络中的代理节点可以用于对业务网络和核心共识网络进行网络隔离,代理节点可以具有点对点服务(即P2P服务)、路由服务、证书缓存、认证服务。可以理解的是,点对点服务是指在P2P网络中的服务,基于一类特定的网络协议,P2P网络中的网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻节点连接状态。路由服务是节点的基本功能,可以用于节点之间的通信,以对业务网络和核心共识网络进行网络隔离。证书缓存用于缓存各节点的身份证书,其中,这里的证书可以指公钥证书体系(Public Key Infrastructure,PKI),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构(CertificateAuthority,简称CA)进行颁发,基于公钥证书体系可以实现非对称加密和对于信息的数字签名。这里的公钥证书体系可以包括公私钥密码,x509证书,CA证书签发中心等等。认证服务可以用于对业务网络中的业务节点进行身份验证等。可以理解的是,在本申请实施例中,该代理节点可以将业务网络中的业务节点发送的业务交易转发至核心共识网络中的对应共识子网络,以使各共识子网络将接收到的业务交易分别写入至对应的子网区块链。
其中,核心共识网络中的共识节点(即记账节点)可以为税务专网中的可信节点,可以通过调用权限合约(例如,智能合约),以确定自己的共识职责,即需要共识与自己共识子网络对应的子业务,而无需参与其他子业务的共识。这里的权限合约还存储了关于电子票据的整个生命周期的流转逻辑,比如电子票据的票据状态、流转流程、数据的访问权限、电子票据申领条件、电子票据开具条件等等。比如,第一共识子网络中的用于代表第一共识子网络的共识节点(即第一代表节点)可以接收由代理节点转发的与第一子业务相关联的业务交易,且对该业务交易进行验证,在验证成功时,可以将业务交易存储至第一代表节点的节点交易池(即图10所示的缓存)中。在第一代表节点将接收到的业务交易打包至初始区块,以写入第一共识子网络的第一子网区块链时,可以将写入的初始区块存储至第一代表节点的节点缓存,进而在竞拍到独占区块时,可以基于第一代表节点的节点缓存中的初始区块生成对应的目标区块,以写入共识主网络中的主网区块链。由于各项业务数据都存在于独占区块中,因此存储在不同目标区块中的业务交易具有数据隔离优势,进而使得各个业务节点在需要读取与某一子业务相关联的业务交易时,可以直接获取与自己相关的完整区块,而无需对区块的内部数据进行拆分。可以理解的是,不同共识子网络中的共识节点均可以有自己的共识和校验逻辑,各自出块,且互不影响,不仅可以明确共识职责,还可以提高出块效率。
进一步地,请参见图11,图11是本申请实施例提供的一种区块共识装置的结构示意图。该区块共识装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该区块共识装置1为一个应用软件;该区块共识装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该区块共识装置1可以运行于共识主网络中的第一代表节点,该第一代表节点可以为上述图2所对应实施例中的代表节点230A。该区块共识装置1可以包括:区块共识模块11,投票结果广播模块12,竞拍通知获取模块13,交易获取模块14,初始区块生成模块15,初始区块写入模块16,初始区块存储模块17,投票结果获取模块18,目标区块写入模块110以及初始区块删除模块20。
该区块共识模块11,用于在获取到由共识主网络中的第二代表节点发送的第一目标区块时,对第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果;第一目标区块为第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块所生成的;第一投票竞拍信息为第一代表节点在检测到第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且第一投票竞拍信息用于表征第一代表节点参与竞拍独占区块;第一代表节点和第二代表节点均属于共识主网络中的代表节点;第一代表节点属于共识主网络所在的核心共识网络中的第一共识子网络;第二代表节点属于核心共识网络中的第二共识子网络;第一共识子网络与第二共识子网络为不同子业务对应的共识子网络。
其中,该区块共识模块11包括:块签名获取单元111,签名验证单元112,检测单元113,竞拍信息生成单元114,第一结果确定单元115,第二结果确定单元116以及投票结果广播单元117。
该块签名获取单元111,用于在获取到由共识主网络中的第二代表节点发送的第一目标区块时,获取第一目标区块对应的第一块签名信息以及第二代表节点的节点公钥;第一块签名信息为第二代表节点基于第二代表节点的节点私钥,对第一目标区块进行签名处理后所得到的。
该签名验证单元112,用于基于第二代表节点的节点公钥,对第一块签名信息进行签名验证,得到第一目标区块的签名验证结果,且基于签名验证结果,确定第一目标区块的第一区块共识结果。
该检测单元113,用于对第一代表节点的节点缓存中的初始区块进行检测,得到检测结果。
该竞拍信息生成单元114,用于若检测结果指示第一代表节点的节点缓存中存在待上链的第二初始区块,则针对第二初始区块生成用于表征第一代表节点参与竞拍独占区块的第一投票竞拍信息。
其中,第一共识子网络对应的共识集群为第一代表节点所在的第一共识集群;
该竞拍信息生成单元114包括:区块参数获取子单元1141,筛选子单元1142以及竞拍信息生成子单元1143。
该区块参数获取子单元1141,用于若检测结果指示第一代表节点的节点缓存中存在待上链的N个初始区块,则分别获取N个初始区块中的每个初始区块在第一共识子网络中的子网区块链的区块表征参数;N为大于1的正整数。
该筛选子单元1142,用于基于获取到的区块表征参数,从N个初始区块中筛选具有最小区块表征参数的初始区块,将筛选出的初始区块确定为待上链至共识主网络中的主网区块链的第二初始区块。
该竞拍信息生成子单元1143,用于获取与第二初始区块相关联的竞拍资产,且获取第一共识集群的集群标识,基于竞拍资产和第一共识集群的集群标识,生成用于表征第一代表节点参与竞拍独占区块的第一投票竞拍信息。
其中,该区块参数获取子单元1141,筛选子单元1142以及竞拍信息生成子单元1143的具体实现方式可以参见上述图3所对应实施例中对第一投票竞拍信息的描述,这里将不再继续进行赘述。
该第一结果确定单元115,用于基于第一投票竞拍信息和第一区块共识结果,得到携带第一投票竞拍信息的第一区块共识结果。
该第二结果确定单元116,用于若检测结果指示第一代表节点的节点缓存中不存在待上链的初始区块,则得到未携带投票竞拍信息的第一区块共识结果。
该投票结果广播单元117,用于将未携带投票竞拍信息的第一区块共识结果作为第一共识投票结果,且将第一共识投票结果广播至第二代表节点,以使第二代表节点基于第一共识投票结果,将第一目标区块写入共识主网络中的主网区块链。
其中,该块签名获取单元111,签名验证单元112,检测单元113,竞拍信息生成单元114,第一结果确定单元115,第二结果确定单元116以及投票结果广播单元117的具体实现方式可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
该投票结果广播模块12,用于将携带第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将第一共识投票结果广播至第二代表节点,以使第二代表节点在基于第一共识投票结果成功将第一目标区块写入共识主网络中的主网区块链时,生成针对第一目标区块的下一目标区块的竞拍通知。
该竞拍通知获取模块13,用于获取第二代表节点返回的竞拍通知,若竞拍通知指示第一代表节点竞拍到独占区块,则基于第二初始区块生成第二目标区块,将第二目标区块广播至第二代表节点,以使第二代表节点对第二目标区块进行区块共识。
其中,竞拍通知获取模块13包括:竞拍通知分析单元131,待添加区块哈希值确定单元132,添加单元133,签名处理单元134以及签名信息广播单元135。
该竞拍通知分析单元131,用于获取第二代表节点返回的竞拍通知,对竞拍通知进行分析。
该待添加区块哈希值确定单元132,用于若竞拍通知指示第一代表节点竞拍到独占区块,则获取第一目标区块的区块哈希值,且将第一目标区块的区块哈希值作为待添加区块哈希值。
该添加单元133,用于将待添加区块哈希值添加至第二初始区块的区块头,将添加后的第二初始区块作为第二目标区块,且将添加的待添加区块哈希值作为第二目标区块的父区块哈希值。
该签名处理单元134,用于通过第一代表节点的节点私钥,对第二目标区块进行签名处理,得到第二目标区块的第二块签名信息。
该签名信息广播单元135,用于将第二块签名信息和第二目标区块广播至第二代表节点;第二块签名信息用于指示第二代表节点对第二目标区块进行区块共识。
其中,该竞拍通知分析单元131,待添加区块哈希值确定单元132,添加单元133,签名处理单元134以及签名信息广播单元135的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,第二初始区块为第一代表节点在检测到第一代表节点的节点缓存具备存储资源时所确定的;第一代表节点的节点交易池中包括业务网络中的业务节点通过代理节点转发的业务交易;业务交易为业务节点在执行第一共识子网络对应的子业务时所生成的;代理节点用于对业务网络和核心共识网络进行网络隔离;
该交易获取模块14,用于从第一代表节点的节点交易池中获取用于待打包至第二初始区块的业务交易,将获取到的业务交易作为待处理交易。
该初始区块生成模块15,用于基于待处理交易生成第二初始区块,将第二初始区块广播至第一共识子网络,以使第一共识子网络中的共识节点对第二初始区块进行区块共识。
其中,该初始区块生成模块15包括:区块体确定单元151,待处理初始区块确定单元152,锚定哈希值确定单元153,区块头确定单元154以及初始区块确定单元155。
该区块体确定单元151,用于基于待处理交易确定待生成的第二初始区块的区块哈希值,且基于待处理交易,确定用于构成第二初始区块的区块体信息。
该待处理初始区块确定单元152,用于从第一共识子网络中的子网区块链上,获取具有最大生成时间戳的初始区块,将获取到的初始区块作为待处理初始区块。
该锚定哈希值确定单元153,用于获取待处理初始区块的区块哈希值,将获取到的区块哈希值作为第二初始区块的锚定哈希值。
该区块头确定单元154,用于基于锚定哈希值和第二初始区块的区块哈希值,确定用于构成第二初始区块的区块头信息。
该初始区块确定单元155,用于基于区块头信息和区块体信息得到第二初始区块,且将第二初始区块广播至第一共识子网络。
其中,该区块体确定单元151,待处理初始区块确定单元152,锚定哈希值确定单元153,区块头确定单元154以及初始区块确定单元155的具体实现方式可以参见上述图4所对应实施例中对初始区块的描述,这里将不再继续进行赘述。
该初始区块写入模块16,用于接收第一共识子网络中的共识节点返回的初始区块共识结果,若初始区块共识结果指示共识成功,则将第二初始区块写入第一共识子网络中的子网区块链。
该初始区块存储模块17,用于在将第二初始区块成功写入第一共识子网络中的子网区块链时,将第二初始区块存储至第一代表节点的节点缓存中。
该投票结果获取模块18,用于在接收到第二代表节点针对第二目标区块返回的第二共识投票结果时,获取第二共识投票结果中的第二区块共识结果。
该目标区块写入模块19,用于若第二区块共识结果指示共识成功,则将第二目标区块写入主网区块链;第二目标区块为第一目标区块的下一目标区块。
该初始区块删除模块20,用于在将第二目标区块成功写入主网区块链之后,在第一代表节点的节点缓存中删除第二初始区块。
其中,该区块共识模块11,投票结果广播模块12,竞拍通知获取模块13,交易获取模块14,初始区块生成模块15,初始区块写入模块16,初始区块存储模块17,投票结果获取模块18,目标区块写入模块19以及初始区块删除模块20的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图12,图12是本申请实施例提供的一种区块共识装置的结构示意图。该区块共识装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该区块共识装置2为一个应用软件;该区块共识装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图12所示,该区块共识装置2可以运行于共识主网络中的第二代表节点,该第二代表节点可以为上述图2所对应实施例中的代表节点230B。该区块共识装置2可以包括:投票结果接收模块100,竞拍通知生成模块200,竞拍通知发送模块300以及区块配置模块400。
该投票结果接收模块100,用于接收共识主网络中的第一代表节点针对第一目标区块返回的第一共识投票结果;第一目标区块为第二代表节点在竞拍到独占区块时,基于第二代表节点的节点缓存中的第一初始区块所生成的;第一共识投票结果为携带第一投票竞拍信息的第一区块共识结果;第一投票竞拍信息为第一代表节点在检测到第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且第一投票竞拍信息用于表征第一代表节点参与竞拍独占区块;第一代表节点和第二代表节点均属于共识主网络中的代表节点;第一代表节点属于共识主网络所在的核心共识网络中的第一共识子网络;第二代表节点属于核心共识网络中的第二共识子网络;第一共识子网络与第二共识子网络为不同子业务对应的共识子网络。
该竞拍通知生成模块200,用于在基于第一区块共识结果将第一目标区块成功写入共识主网络中的主网区块链之后,基于第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知。
其中,第一目标区块携带第二投票竞拍信息;第二投票竞拍信息为第二代表节点在检测到第二代表节点的节点缓存中存在除第一初始区块之外的待上链的初始区块时所生成的,且第二投票竞拍信息用于表征第二代表节点参与竞拍独占区块;第二投票竞拍信息是基于第二共识子网络对应的第二共识集群的集群标识以及第二代表节点的竞拍资产所确定的;核心共识网络包括第三代表节点所在的第三共识子网络;第三共识子网络对应的子业务均不同于第一共识子网络和第二共识子网络对应的子业务;
该竞拍通知生成模块200包括:投票结果接收单元2010,候选竞拍信息确定单元2020,目标竞拍信息确定单元2030,竞拍节点确定单元2040以及竞拍通知生成单元2050。
该投票结果接收单元2010,用于接收第三代表节点返回的第三共识投票结果;第三共识投票为携带第三投票竞拍信息的第三区块共识结果;第三区块共识结果为第三代表节点针对第一目标区块所生成的;第三投票竞拍信息为第三代表节点在检测到第三代表节点的节点缓存中存在待上链的初始区块时所生成的,且第三投票竞拍信息用于表征第三代表节点参与竞拍独占区块;第三投票竞拍信息是基于第三共识子网络对应的第三共识集群的集群标识以及第三代表节点的竞拍资产所确定的。
该候选竞拍信息确定单元2020,用于在根据第一区块共识结果和第三区块共识结果,将第一目标区块成功写入共识主网络中的主网区块链之后,将第一投票竞拍信息、第二投票竞拍信息以及第三投票竞拍信息作为候选投票竞拍信息。
该目标竞拍信息确定单元2030,用于基于候选投票竞拍信息的竞拍资产,筛选具有最大竞拍资产的候选投票竞拍信息,将筛选出的候选投票竞拍信息作为目标投票竞拍信息。
该竞拍节点确定单元2040,用于若目标投票竞拍信息为第一投票竞拍信息,则基于第一投票竞拍信息中携带的集群标识,确定第一目标区块的下一目标区块被集群标识对应的第一共识子网络中的第一代表节点所竞拍到。
该竞拍通知生成单元2050,用于基于第一投票竞拍信息,生成针对第一目标区块的下一目标区块的竞拍通知。
其中,该投票结果接收单元2010,候选竞拍信息确定单元2020,目标竞拍信息确定单元2030,竞拍节点确定单元2040以及竞拍通知生成单元2050的具体实现方式可以参见上述图6所对应实施例中对竞拍通知的描述,这里将不再继续进行赘述。
该竞拍通知发送模块300,用于将竞拍通知发送至第一代表节点;竞拍通知用于指示第一代表节点在竞拍到独占区块时,将第二初始区块对应的第二目标区块写入主网区块链。
其中,第二代表节点为共识主网络中具有管理权限的代表节点;
该区块配置模块400,用于若第一共识投票结果和第三共识投票结果中均不存在用于竞拍独占区块的投票竞拍信息,且第一目标区块中未携带投票竞拍信息,则配置第一目标区块的下一目标区块。
其中,该投票结果接收模块100,竞拍通知生成模块200,竞拍通知发送模块300以及区块配置模块400的具体实现方式可以参见上述图8所对应实施例中对步骤S201-步骤S210的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图13,图13是本申请实施例提供的一种计算机设备的示意图。如图13所示,该计算机设备3000可以为上述图2对应实施例中的共识主网络中的代表节点230A,该计算机设备3000可以包括:至少一个处理器3001,例如,CPU,至少一个网络接口3004,用户接口3003,存储器3005,至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,用户接口3003可以包括显示屏(Display)、键盘(Keyboard),网络接口3004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器3005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储3005可选地还可以是至少一个位于远离前述处理器3001的存储装置。如图13所示,作为一种计算机存储介质的存储器3005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图13所示的计算机设备3000中,网络接口3004主要用于进行网络通信;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序。
应当理解,本申请实施例中所描述的计算机设备3000可执行前文图3或者图8所对应实施例中对该区块共识方法的描述,也可执行前文图11所对应实施例中对该区块共识装置1或者图12所对应实施例中对该区块共识装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的区块共识装置1或者区块共识装置2所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3或者图8所对应实施例中对该区块共识方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图8所对应实施例中对区块共识方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图14,图14是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统3可以包含数据处理装置1a和数据处理装置2a。其中,数据处理装置1a可以为上述图11所对应实施例中的区块共识装置1,可以理解的是,该数据处理装置1a可以集成在上述图2所对应实施例中的代表节点230A,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图12所对应实施例中的区块共识装置2,可以理解的是,该数据处理装置2a可以集成在上述图2所对应实施例中的代表节点230B,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种区块共识方法,其特征在于,所述方法由共识主网络中的第一代表节点执行,包括:
在获取到由所述共识主网络中的第二代表节点发送的第一目标区块时,对所述第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果;所述第一目标区块为所述第二代表节点在竞拍到独占区块时,基于所述第二代表节点的节点缓存中的第一初始区块所生成的;所述第一投票竞拍信息为所述第一代表节点在检测到所述第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且所述第一投票竞拍信息用于表征所述第一代表节点参与竞拍所述独占区块;所述第一代表节点和所述第二代表节点均属于所述共识主网络中的代表节点;所述第一代表节点属于所述共识主网络所在的核心共识网络中的第一共识子网络;所述第二代表节点属于所述核心共识网络中的第二共识子网络;所述第一共识子网络与所述第二共识子网络为不同子业务对应的共识子网络;
将携带所述第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将所述第一共识投票结果广播至所述第二代表节点,以使所述第二代表节点在基于所述第一共识投票结果成功将所述第一目标区块写入所述共识主网络中的主网区块链时,生成针对所述第一目标区块的下一目标区块的竞拍通知;
获取所述第二代表节点返回的所述竞拍通知,若所述竞拍通知指示所述第一代表节点竞拍到所述独占区块,则基于所述第二初始区块生成第二目标区块,将所述第二目标区块广播至所述第二代表节点,以使所述第二代表节点对所述第二目标区块进行区块共识。
2.根据权利要求1所述的方法,其特征在于,所述第二初始区块为所述第一代表节点在检测到所述第一代表节点的节点缓存具备存储资源时所确定的;所述第一代表节点的节点交易池中包括业务网络中的业务节点通过代理节点转发的业务交易;所述业务交易为所述业务节点在执行所述第一共识子网络对应的子业务时所生成的;所述代理节点用于对所述业务网络和所述核心共识网络进行网络隔离;
所述方法还包括:
从所述第一代表节点的节点交易池中获取用于待打包至所述第二初始区块的业务交易,将获取到的业务交易作为待处理交易;
基于所述待处理交易生成所述第二初始区块,将所述第二初始区块广播至所述第一共识子网络,以使所述第一共识子网络中的共识节点对所述第二初始区块进行区块共识;
接收所述第一共识子网络中的共识节点返回的初始区块共识结果,若所述初始区块共识结果指示共识成功,则将所述第二初始区块写入所述第一共识子网络中的子网区块链;
在将所述第二初始区块成功写入所述第一共识子网络中的子网区块链时,将所述第二初始区块存储至所述第一代表节点的节点缓存中。
3.根据权利要求2所述的方法,其特征在于,所述基于所述待处理交易生成所述第二初始区块,将所述第二初始区块广播至所述第一共识子网络,包括:
基于所述待处理交易确定待生成的所述第二初始区块的区块哈希值,且基于所述待处理交易,确定用于构成所述第二初始区块的区块体信息;
从所述第一共识子网络中的子网区块链上,获取具有最大生成时间戳的初始区块,将获取到的初始区块作为待处理初始区块;
获取所述待处理初始区块的区块哈希值,将获取到的区块哈希值作为所述第二初始区块的锚定哈希值;
基于所述锚定哈希值和所述第二初始区块的区块哈希值,确定用于构成所述第二初始区块的区块头信息;
基于所述区块头信息和所述区块体信息得到所述第二初始区块,且将所述第二初始区块广播至所述第一共识子网络。
4.根据权利要求1所述的方法,其特征在于,所述在获取到由所述共识主网络中的第二代表节点发送的第一目标区块时,对所述第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果,包括:
在获取到由所述共识主网络中的第二代表节点发送的第一目标区块时,获取所述第一目标区块对应的第一块签名信息以及所述第二代表节点的节点公钥;所述第一块签名信息为所述第二代表节点基于所述第二代表节点的节点私钥,对所述第一目标区块进行签名处理后所得到的;
基于所述第二代表节点的节点公钥,对所述第一块签名信息进行签名验证,得到所述第一目标区块的签名验证结果,且基于所述签名验证结果,确定所述第一目标区块的第一区块共识结果;
对所述第一代表节点的节点缓存中的初始区块进行检测,得到检测结果;
若所述检测结果指示所述第一代表节点的节点缓存中存在待上链的第二初始区块,则针对所述第二初始区块生成用于表征所述第一代表节点参与竞拍独占区块的第一投票竞拍信息;
基于所述第一投票竞拍信息和所述第一区块共识结果,得到携带所述第一投票竞拍信息的第一区块共识结果。
5.根据权利要求4所述的方法,其特征在于,所述第一共识子网络对应的共识集群为所述第一代表节点所在的第一共识集群;
所述若所述检测结果指示所述第一代表节点的节点缓存中存在待上链的第二初始区块,则针对所述第二初始区块生成用于表征所述第一代表节点参与竞拍独占区块的第一投票竞拍信息,包括:
若所述检测结果指示所述第一代表节点的节点缓存中存在待上链的N个初始区块,则分别获取所述N个初始区块中的每个初始区块在所述第一共识子网络中的子网区块链的区块表征参数;所述N为大于1的正整数;
基于获取到的区块表征参数,从所述N个初始区块中筛选具有最小区块表征参数的初始区块,将筛选出的初始区块确定为待上链至所述共识主网络中的主网区块链的第二初始区块;
获取与所述第二初始区块相关联的竞拍资产,且获取所述第一共识集群的集群标识,基于所述竞拍资产和所述第一共识集群的集群标识,生成用于表征所述第一代表节点参与竞拍独占区块的第一投票竞拍信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述检测结果指示所述第一代表节点的节点缓存中不存在待上链的初始区块,则得到未携带投票竞拍信息的第一区块共识结果;
将所述未携带投票竞拍信息的第一区块共识结果作为第一共识投票结果,且将所述第一共识投票结果广播至所述第二代表节点,以使所述第二代表节点基于所述第一共识投票结果,将所述第一目标区块写入所述共识主网络中的主网区块链。
7.根据权利要求1所述的方法,其特征在于,所述获取所述第二代表节点返回的所述竞拍通知,若所述竞拍通知指示所述第一代表节点竞拍到所述独占区块,则基于所述第二初始区块生成第二目标区块,将所述第二目标区块广播至所述第二代表节点,包括:
获取所述第二代表节点返回的所述竞拍通知,对所述竞拍通知进行分析;
若所述竞拍通知指示所述第一代表节点竞拍到所述独占区块,则获取所述第一目标区块的区块哈希值,且将所述第一目标区块的区块哈希值作为待添加区块哈希值;
将所述待添加区块哈希值添加至所述第二初始区块的区块头,将添加后的第二初始区块作为第二目标区块,且将添加的待添加区块哈希值作为所述第二目标区块的父区块哈希值;
通过所述第一代表节点的节点私钥,对所述第二目标区块进行签名处理,得到所述第二目标区块的第二块签名信息;
将所述第二块签名信息和第二目标区块广播至所述第二代表节点;所述第二块签名信息用于指示所述第二代表节点对所述第二目标区块进行区块共识。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到所述第二代表节点针对所述第二目标区块返回的第二共识投票结果时,获取所述第二共识投票结果中的第二区块共识结果;
若所述第二区块共识结果指示共识成功,则将所述第二目标区块写入所述主网区块链;所述第二目标区块为所述第一目标区块的下一目标区块;
在将所述第二目标区块成功写入所述主网区块链之后,在所述第一代表节点的节点缓存中删除所述第二初始区块。
9.一种区块共识方法,其特征在于,所述方法由共识主网络中的第二代表节点执行,包括:
接收所述共识主网络中的第一代表节点针对第一目标区块返回的第一共识投票结果;所述第一目标区块为所述第二代表节点在竞拍到独占区块时,基于所述第二代表节点的节点缓存中的第一初始区块所生成的;所述第一共识投票结果为携带第一投票竞拍信息的第一区块共识结果;所述第一投票竞拍信息为所述第一代表节点在检测到所述第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且所述第一投票竞拍信息用于表征所述第一代表节点参与竞拍所述独占区块;所述第一代表节点和所述第二代表节点均属于所述共识主网络中的代表节点;所述第一代表节点属于所述共识主网络所在的核心共识网络中的第一共识子网络;所述第二代表节点属于所述核心共识网络中的第二共识子网络;所述第一共识子网络与所述第二共识子网络为不同子业务对应的共识子网络;
在基于所述第一区块共识结果将所述第一目标区块成功写入所述共识主网络中的主网区块链之后,基于所述第一投票竞拍信息,生成针对所述第一目标区块的下一目标区块的竞拍通知;
将所述竞拍通知发送至所述第一代表节点;所述竞拍通知用于指示所述第一代表节点在竞拍到所述独占区块时,将所述第二初始区块对应的第二目标区块写入所述主网区块链。
10.根据权利要求9所述的方法,其特征在于,所述第一目标区块携带第二投票竞拍信息;所述第二投票竞拍信息为所述第二代表节点在检测到所述第二代表节点的节点缓存中存在除所述第一初始区块之外的待上链的初始区块时所生成的,且所述第二投票竞拍信息用于表征所述第二代表节点参与竞拍所述独占区块;所述第二投票竞拍信息是基于所述第二共识子网络对应的第二共识集群的集群标识以及所述第二代表节点的竞拍资产所确定的;所述核心共识网络包括第三代表节点所在的第三共识子网络;所述第三共识子网络对应的子业务均不同于所述第一共识子网络和所述第二共识子网络对应的子业务;
所述在基于所述第一区块共识结果将所述第一目标区块成功写入所述共识主网络中的主网区块链之后,基于所述第一投票竞拍信息,生成针对所述第一目标区块的下一目标区块的竞拍通知,包括:
接收所述第三代表节点返回的第三共识投票结果;所述第三共识投票为携带第三投票竞拍信息的第三区块共识结果;所述第三区块共识结果为所述第三代表节点针对所述第一目标区块所生成的;所述第三投票竞拍信息为所述第三代表节点在检测到所述第三代表节点的节点缓存中存在待上链的初始区块时所生成的,且所述第三投票竞拍信息用于表征所述第三代表节点参与竞拍所述独占区块;所述第三投票竞拍信息是基于所述第三共识子网络对应的第三共识集群的集群标识以及所述第三代表节点的竞拍资产所确定的;
在根据所述第一区块共识结果和所述第三区块共识结果,将所述第一目标区块成功写入所述共识主网络中的主网区块链之后,将所述第一投票竞拍信息、所述第二投票竞拍信息以及所述第三投票竞拍信息作为候选投票竞拍信息;
基于所述候选投票竞拍信息的竞拍资产,筛选具有最大竞拍资产的候选投票竞拍信息,将筛选出的候选投票竞拍信息作为目标投票竞拍信息;
若所述目标投票竞拍信息为所述第一投票竞拍信息,则基于所述第一投票竞拍信息中携带的集群标识,确定所述第一目标区块的下一目标区块被所述集群标识对应的所述第一共识子网络中的所述第一代表节点所竞拍到;
基于所述第一投票竞拍信息,生成针对所述第一目标区块的下一目标区块的竞拍通知。
11.根据权利要求10所述的方法,其特征在于,所述第二代表节点为所述共识主网络中具有管理权限的代表节点;
所述方法还包括:
若所述第一共识投票结果和所述第三共识投票结果中均不存在用于竞拍所述独占区块的投票竞拍信息,且所述第一目标区块中未携带投票竞拍信息,则配置所述第一目标区块的下一目标区块。
12.一种区块共识装置,其特征在于,包括:
区块共识模块,用于在获取到由共识主网络中的第二代表节点发送的第一目标区块时,对所述第一目标区块进行区块共识,得到携带第一投票竞拍信息的第一区块共识结果;所述第一目标区块为所述第二代表节点在竞拍到独占区块时,基于所述第二代表节点的节点缓存中的第一初始区块所生成的;所述第一投票竞拍信息为第一代表节点在检测到所述第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且所述第一投票竞拍信息用于表征所述第一代表节点参与竞拍所述独占区块;所述第一代表节点和所述第二代表节点均属于所述共识主网络中的代表节点;所述第一代表节点属于所述共识主网络所在的核心共识网络中的第一共识子网络;所述第二代表节点属于所述核心共识网络中的第二共识子网络;所述第一共识子网络与所述第二共识子网络为不同子业务对应的共识子网络;
投票结果广播模块,用于将携带所述第一投票竞拍信息的第一区块共识结果作为第一共识投票结果,将所述第一共识投票结果广播至所述第二代表节点,以使所述第二代表节点在基于所述第一共识投票结果成功将所述第一目标区块写入所述共识主网络中的主网区块链时,生成针对所述第一目标区块的下一目标区块的竞拍通知;
竞拍通知获取模块,用于获取所述第二代表节点返回的所述竞拍通知,若所述竞拍通知指示所述第一代表节点竞拍到所述独占区块,则基于所述第二初始区块生成第二目标区块,将所述第二目标区块广播至所述第二代表节点,以使所述第二代表节点对所述第二目标区块进行区块共识。
13.一种区块共识装置,其特征在于,包括:
投票结果接收模块,用于接收共识主网络中的第一代表节点针对第一目标区块返回的第一共识投票结果;所述第一目标区块为第二代表节点在竞拍到独占区块时,基于所述第二代表节点的节点缓存中的第一初始区块所生成的;所述第一共识投票结果为携带第一投票竞拍信息的第一区块共识结果;所述第一投票竞拍信息为所述第一代表节点在检测到所述第一代表节点的节点缓存中存在待上链的第二初始区块时所生成的,且所述第一投票竞拍信息用于表征所述第一代表节点参与竞拍所述独占区块;所述第一代表节点和所述第二代表节点均属于所述共识主网络中的代表节点;所述第一代表节点属于所述共识主网络所在的核心共识网络中的第一共识子网络;所述第二代表节点属于所述核心共识网络中的第二共识子网络;所述第一共识子网络与所述第二共识子网络为不同子业务对应的共识子网络;
竞拍通知生成模块,用于在基于所述第一区块共识结果将所述第一目标区块成功写入所述共识主网络中的主网区块链之后,基于所述第一投票竞拍信息,生成用于广播至所述共识主网络的竞拍通知;
竞拍通知发送模块,用于将所述竞拍通知发送至所述第一代表节点;所述竞拍通知用于指示所述第一代表节点在竞拍到所述独占区块时,将所述第二初始区块对应的第二目标区块写入所述主网区块链。
14.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-11任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-11任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111456251.7A CN115514608B (zh) | 2021-06-22 | 2021-06-22 | 一种区块共识方法、装置、设备及存储介质 |
CN202110689318.5A CN113518005B (zh) | 2021-06-22 | 2021-06-22 | 一种区块共识方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110689318.5A CN113518005B (zh) | 2021-06-22 | 2021-06-22 | 一种区块共识方法、装置、设备及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111456251.7A Division CN115514608B (zh) | 2021-06-22 | 2021-06-22 | 一种区块共识方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113518005A CN113518005A (zh) | 2021-10-19 |
CN113518005B true CN113518005B (zh) | 2021-11-16 |
Family
ID=78065791
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111456251.7A Active CN115514608B (zh) | 2021-06-22 | 2021-06-22 | 一种区块共识方法、装置、设备及存储介质 |
CN202110689318.5A Active CN113518005B (zh) | 2021-06-22 | 2021-06-22 | 一种区块共识方法、装置、设备及存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111456251.7A Active CN115514608B (zh) | 2021-06-22 | 2021-06-22 | 一种区块共识方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN115514608B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522873B (zh) * | 2020-03-19 | 2023-09-05 | 金蝶软件(中国)有限公司 | 区块生成方法、装置、计算机设备和存储介质 |
US11902426B2 (en) * | 2021-06-26 | 2024-02-13 | Ceremorphic, Inc. | Efficient storage of blockchain in embedded device |
CN114219650B (zh) * | 2022-02-21 | 2022-05-20 | 浙江数秦科技有限公司 | 一种低交易延迟的区块链共识方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108564468A (zh) * | 2018-04-04 | 2018-09-21 | 上海金丘信息科技股份有限公司 | 一种基于信任成员的动态权益的共识方法 |
CN110472970B (zh) * | 2018-05-09 | 2022-05-10 | 本无链科技(深圳)有限公司 | 一种基于区块链的预先生成区块方法及系统 |
CN109165945B (zh) * | 2018-09-07 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 代表节点设备选举方法、装置、计算机设备及存储介质 |
SG11201906535WA (en) * | 2018-12-13 | 2019-08-27 | Alibaba Group Holding Ltd | Performing a recovery process for a network node in a distributed system |
WO2020133326A1 (zh) * | 2018-12-29 | 2020-07-02 | 北京建极练科技有限公司 | 区块链生成方法、系统、计算机存储介质和电子设备 |
CN109872152B (zh) * | 2019-01-11 | 2022-07-15 | 平安科技(深圳)有限公司 | 基于股份授权证明机制的区块链共识方法及相关设备 |
CN111427957B (zh) * | 2020-03-26 | 2021-05-11 | 财付通支付科技有限公司 | 区块链投票信息校验方法、装置、设备以及存储介质 |
CN111708840B (zh) * | 2020-06-05 | 2021-03-30 | 电子科技大学 | 一种基于主副双层的联盟链动态共识方法 |
CN112231741B (zh) * | 2020-12-14 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 基于区块链系统的数据处理方法、装置、介质及电子设备 |
CN112396423B (zh) * | 2021-01-20 | 2021-04-13 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置、设备及存储介质 |
CN112801791B (zh) * | 2021-01-29 | 2023-06-16 | 武汉大学 | 一种基于授权的区块链共识方法及系统 |
CN112532753B (zh) * | 2021-02-09 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 区块链系统的数据同步方法、装置、介质及电子设备 |
-
2021
- 2021-06-22 CN CN202111456251.7A patent/CN115514608B/zh active Active
- 2021-06-22 CN CN202110689318.5A patent/CN113518005B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115514608A (zh) | 2022-12-23 |
CN115514608B (zh) | 2023-06-06 |
CN113518005A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113518005B (zh) | 一种区块共识方法、装置、设备及存储介质 | |
CN109462587B (zh) | 区块链分层共识方法、区块链网络系统及区块链节点 | |
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
Baird et al. | Hedera: A public hashgraph network & governing council | |
KR101950912B1 (ko) | 블록체인 기반 트랜잭션 검증 시스템 및 그 방법 | |
CN111383021B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
US11461310B2 (en) | Distributed ledger technology | |
CN112685505B (zh) | 一种交易数据处理方法、装置、计算机设备及存储介质 | |
CN113395363B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN113256424B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约系统 | |
CN113256297B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
Zafar et al. | Integration of blockchain and Internet of Things: Challenges and solutions | |
CN113259130B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN111416709A (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
CN111680282B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
WO2023082883A1 (zh) | 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品 | |
CN110633326A (zh) | 物联网的天气数据在区块链上的上链方法及系统 | |
CN110535664B (zh) | 基于区块链的数据处理方法、装置、服务器及存储介质 | |
WO2024093593A1 (zh) | 基于多区块链的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN116708463B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
CN117455661A (zh) | 一种基于区块链的数据处理方法、装置、设备及介质 | |
CN116074311A (zh) | 一种基于信任度分级的联盟链共识方法、装置及终端设备 | |
Xu et al. | Relay network-based cross-chain data interaction protocol with integrity audit | |
CN116155501A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40053653 Country of ref document: HK |