CN114638452A - 区块组头的获取方法及装置,存储介质及电子装置 - Google Patents
区块组头的获取方法及装置,存储介质及电子装置 Download PDFInfo
- Publication number
- CN114638452A CN114638452A CN202011488871.4A CN202011488871A CN114638452A CN 114638452 A CN114638452 A CN 114638452A CN 202011488871 A CN202011488871 A CN 202011488871A CN 114638452 A CN114638452 A CN 114638452A
- Authority
- CN
- China
- Prior art keywords
- node
- block group
- voting
- block
- received
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 11
- 241001522296 Erithacus rubecula Species 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 28
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Educational Administration (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Technology Law (AREA)
- Game Theory and Decision Science (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种区块组头的获取方法及装置,存储介质及电子装置,其中,上述方法包括:确定区块链系统中的目标节点是否满足预设条件,其中,预设条件用于指示至少以下之一:目标节点已接收到区块组头且没有接收到预设数量的合法区块,目标节点没有收到区块组头;在确定目标节点没有收到区块组头的情况下,确定目标节点没有收到区块组头的事件原因,其中,事件原因包括以下至少之一:目标节点未成功收到区块组头,区块链系统未产生区块组头;根据事件原因确定目标节点对没有收到的区块组头的获取方式。采用上述技术方案,解决了传统并行投票证明PPoV共识算法在获取区块组头的过程中获取率不高等问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种区块组头的获取方法及装置、存储介质及电子装置。
背景技术
区块链系统是一个历史可追溯,不可篡改,解决多方互信问题的分布式系统。而分布式系统必然为面临着一致性问题,即需要达成共识,分布式系统的共识达成需要依靠可靠的共识算法,而常见的共识算法有工作证明共识算法,实用拜占庭容错算法,并行投票证明算法等。
并行投票证明(Parallel Proof of Vote,简称为PPoV)共识算法中,将区块链节点分为:记账节点、投票节点和领导节点。每个记账节点都产生区块发布到网络中,投票节点收集记账节点产生的区块后进行投票,随后将投票信息汇总发给领导节点,领导节点收集汇总后的投票信息进行统计,将统计结果写入到区块组头中,最后将区块组头发布到网络中。
但PPoV共识算法在产生区块组头的过程中,如果存在少量记账节点故障,那么投票节点就会因为收集不到足够的区块无法进行投票操作,从而领导节点收集不到从投票节点发送过来的投票信息而无法产生区块组头。
针对相关技术,并行投票证明PPoV共识算法在获取区块组头的过程中获取率不高等问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种区块组头的获取方法及装置、存储介质及电子装置,以至少解决并行投票证明PPoV共识算法在获取区块组头的过程中获取率不高等问题。
根据本发明实施例的一个方面,提供了一种区块组头的获取方法,包括:确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
在一个示例性实施例中,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式,包括:在所述事件原因指示为所述目标节点未成功收到所述区块组头的情况下,向所述区块链系统的投票节点同步获取未成功接收到的所述区块组头。
在一个示例性实施例中,向所述区块链系统的投票节点同步获取未成功接收到的所述区块组头,包括:从所述区块链系统中确认投票节点,其中,所述投票节点区块链高度比所述目标节点区块链高度高,所述区块链高度用于指示区块高度;从所述投票节点同步获取比所述目标节点区块链高度高的所述区块组头。
在一个示例性实施例中,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式,包括:在所述事件原因指示为所述区块链系统未产生区块组头的情况下,指示投票节点对于已接收到的区块进行投票,以及将未收到的合法区块的处理结果设置为目标值,以指示所述投票节点对所述未收到的合法区块无意见,得到所述投票节点的投票结果;将所述投票结果发送至轮值记账节点,以指示所述轮值记账节点产生所述未产生的合法区块组头。
在一个示例性实施例中,将所述投票结果发送至轮值记账节点,以指示所述轮值记账节点产生所述未产生的合法区块组头,包括:对于所述未产生的合法区块组头对应的任一合法区块,如果所述轮值记账节点统计到所述任一合法区块的同意意见的投票节点超过1Nv/3,确定所述轮值记账节点同意产生所述任一合法区块,所述Nv为所述区块链系统中所述投票节点的数量。
在一个示例性实施例中,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式之后,所述方法还包括:在所述没有收到的所述区块组头已被成功产生的情况下,指示轮值结账节点向所述区块链系统的所有节点广播成功产生到的区块组头,以指示所述所有节点对所述成功获取到的区块组头进行验证,并在验证通过的情况下,接收所述成功产生到的区块组头。
在一个示例性实施例中,确定区块链系统中的目标节点是否满足预设条件之后,所述方法还包括:在确定所述目标节点已接收到区块组头且没有接收到预设数量的合法区块的情况下,向所述区块链系统中的其他节点发送获取请求,其中,所述获取请求用于从所述其他节点获取所述合法区块,所述其他节点为所述区块链系统中除所述目标节点之外的节点,且所述其他节点保存有所述合法区块。
根据本发明实施例的另一个方面,还提供了一种区块组头的获取装置,包括:第一确定模块,用于确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;第二确定模块,用于在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;第三确定模块,用于根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述区块组头的获取方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述区块组头的获取方法。
通过本发明,确定区块链系统的目标节点是否满足预设条件,其预设条件有两种情况,一种情况是目标节点已接收到区块组头而没有接收到预设数量的合法区块,另一种情况是目标节点没有接收到区块组头。根据这两种情况分别制定两种不同的策略,在没有接收到区块组头的情况下,确定没有接收到区块组头的事件原因,然后根据所述事件原因确定目标节点对没有收到的区块组头的获取方式。采用上述技术方案,解决了并行投票证明PPoV共识算法在获取区块组头的过程中获取率不高等问题,进而在获取区块组头的时候,根据不同事件原因采用不同获取方式,提高了区块组头的获取率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的区块组头的获取方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的PoV共识过程消息传递示意图;
图3是根据本发明实施例的PPoV共识过程示意图;
图4是根据本发明实施例的区块组头的获取方法的流程图;
图5是根据本发明实施例的区块链节点超时触发条件示意图;
图6根据本发明实施例的区块链节点的超时处理模块结构图;
图7根据本发明实施例的区块链节点的超时处理流程图;
图8是根据本发明实施例的区块组头的获取装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种区块组头的获取方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器 102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1 中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的区块组头的获取方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器 (Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为 RF)模块,其用于通过无线方式与互联网进行通讯。
传统的投票证明(Proof of Vote,简称为PoV)共识算法设计了特定的角色模型,将区块链网络内的节点分类为委员(Commissioner)、管家(Butler)、候选管家(ButlerCandidate) 和普通用户(Ordinary User)四种角色。所述候选管家可由普通用户申请加入后转变而成,管家由委员投票选举产生,在投票阶段,每个委员需要对各个候选管家进行投票,获票数较多的Nb个节点将成为管家节点,管家节点主要负责收集事务和产生区块。
在PoV共识算法中,区块产生的共识过程由一个管家和所有委员共同进行,该管家被称为值班管家,值班管家通过值班管家编号确定。假设委员共有Nc个,分别为C1,C2,…,CNc,管家有Nb个,分别为B1,B2,…,BNb,图2是根据本发明实施例的PoV共识过程消息传递示意图,图2中的round(r)为第r回合,round(r+1)为第r+1回合,PREPARE为预备,READY 为准备,COMMIT为提交,Pre-Block为预区块,Final-Block为最终区块。PoV共识算法把一轮共识划分为Prepare、Ready、Commit和Confirm(确认)四个阶段,其中Confirm阶段为区块提交阶段,不需要传递消息。每个区块包含一个区块头和数量不定的事务,在Prepare 阶段,值班管家从事务池中取出一定数量的事务并打包产生预区块并将预区块发送给所有委员。预区块和正式区块的区别在于预区块没有时间戳、委员签名和下一个值班管家编号。委员节点需要对接收到的预区块的区块头和事务所包含的信息进行验证,若验证通过则对预区块头进行签名并将签名发送给值班管家。值班管家在收集到超过Nc/2的委员签名后即可将预区块补充完整并发布正式区块。接收到该新发布区块的节点将区块存储在本地区块链中,并对包括值班管家编号在内的相关变量进行更新,从而更换负责进行下一轮共识的值班管家。
和大多数共识算法一样,PoV共识算法每个共识周期从多个候选节点中选择一个节点作为记账节点并产生区块,因此产生区块的过程是串行进行的,难以支持在大规模集群环境下的高吞吐性能。
为了提高PoV的性能,PPoV共识算法基于并行化思想提出了区块组的概念。区块组由区块组头和区块组体组成,每个区块组头中包含当前区块组的高度和投票结果,区块组体则包含所有通过投票的区块集合。其中,每个区块包含前一区块组的hash值、默克尔根、生成者的公钥、时间戳等信息和事务集合。为了便于理解,PPoV共识一般将区块链节点的身份分别表述为投票节点、记账节点和领导节点。图3是根据本发明实施例的PPoV共识过程示意图,每一轮PPoV共识由以下步骤组成:
S1:每一个记账节点均生成一个区块并发布到网络中。每一个区块链节点收集所有记账节点产生的区块;
S2:当投票节点收集完毕S1中记账节点产生的区块后,对每一个区块的分别投票并生成一个总的投票消息发送给领导节点。投票消息中包含每一个区块的hash值、以及是否同意的意见和签名等信息;
S3:领导节点收集投票节点发送来的投票消息并统计投票结果。当满足每一个区块的赞同意见或者反对意见均超过投票节点数量的一半时,将统计结果以及所有的投票消息存放进区块组头。然后领导节点生成一个随机数,即为下一轮共识周期的领导节点编号,并将其写入区块组头。随后将区块组头发布到网络中;
S4:当区块链节点收到所有记账节点产生的区块以及领导节点产生的区块组头后,将其作为一个区块组存储到数据库当中。
然而,目前PPoV共识算法的设计并不完善。考虑到现实环境下服务器可能因为各种原因发生故障导致无法正常工作,因此在多节点并行记账的情况下,传统的PPoV共识算法可能因为其中的少量记账节点故障导致其他正常节点产生的区块也无法被通过验证和产生,即传统 PPoV共识算法会因为一些原因无法产生出区块组头,无法满足可终止性。
为了解决上述技术问题,在本实施例中提供了一种区块组头的获取方法,图4是根据本发明实施例的区块组头的获取方法的流程图,该流程包括如下步骤:
步骤S402,确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;
步骤S404,在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;
步骤S406,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
通过上述步骤,确定区块链系统的目标节点是否满足预设条件,其预设条件有两种情况,一种情况是目标节点已接收到区块组头而没有接收到预设数量的合法区块,另一种情况是目标节点没有接收到区块组头。根据这两种情况分别制定两种不同的策略,在没有接收到区块组头的情况下,确定没有接收到区块组头的事件原因,然后根据所述事件原因确定目标节点对没有收到的区块组头的获取方式。采用上述技术方案,解决了并行投票证明PPoV共识算法在获取区块组头的过程中获取率不高等问题,进而在获取区块组头的时候,根据不同事件原因采用不同获取方式,提高了区块组头的获取率。
可以理解的是,PPoV共识算法的共识结束条件是要满足两点,条件一:目标节点已接收到区块组头且没有接收到预设数量的合法区块;条件二:目标节点没有收到区块组头。区块链系统中的目标节点要判断是否满足预设条件,若没有满足,则会触发超时,所述目标节点就要进行相关的超时操作,在所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到区块组头,所述区块链系统未产生区块组头,随后区块链系统会根据所述事件原因确定目标节点对没有收到的区块组头的获取方式。例如,区块链系统某记账节点A没有收到区块组头,所以记账节点A会触发超时操作,向所有投票节点请求其区块链高度,并在本地维护各个投票节点的在线状态,若存在投票节点区块链高度比记账节点A的本地区块链高度高,则说明记账节点A未成功收到区块组头,若没有寻找到,则表明区块链系统未产生区块组头。随后记账节点A会根据所述事件原因确定获取方式。
同时,上述步骤S406有多种实现方式,在一个可选的实施例中,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式,包括:在所述事件原因指示为所述目标节点未成功收到所述区块组头的情况下,向所述区块链系统的投票节点同步获取未成功接收到的所述区块组头。在本实施例中,目标节点没有接收到区块组头,则目标节点会去向投票节点去请求获得所述区块组头,因为投票节点是区块链网络核心共识点,因此被认为拥有最新的区块链状态,若系统产生了区块组头,在产生的区块组头广播到区块链网络的过程中,投票节点必然会接收。例如,记账节点A没有接收到区块组头,则记账节点A会去向投票节点B去进行数据同步,获取区块组头,其中,投票节点B的区块链高度比记账节点A高。
可选的,向区块链系统的投票节点同步获取未成功接收到的所述区块组头的过程中,需要从比本地记账节点的区块链高度高的投票节点中获取区块组,所述区块链高度用于指示区块高度。在本实施例中,所述区块链高度可以理解成一个数据库,由于区块链系统是一个分布式系统,没有一个统一的数据库,因此可以理解成每个区块链节点都拥有一个数据库,投票节点区块链高度比本地区块链高度高即表示投票节点的数据库更新程度比记账节点数据库的更新程度要好,所以为了获取区块组头,需要从更新程度差的数据库从一个更新程度好的数据库中进行数据同步。
上述步骤S406还有另一种执行方式,在一个可选的实施例中,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式,包括:在所述事件原因指示为所述区块链系统未产生区块组头的情况下,指示投票节点对于已接收到的区块进行投票,以及将未收到的合法区块的处理结果设置为目标值,以指示所述投票节点对所述未收到的合法区块无意见,得到所述投票节点的投票结果;将所述投票结果发送至轮值记账节点,以指示所述轮值记账节点产生所述未收到的合法区块组头。在本实施例中,可以理解的是,记账节点在向所有投票节点请求其区块链高度的时候,没有找到所述投票节点区块链高度比记账节点的本地区块链高度高,从而可以理解成区块链系统没有产生出区块组头,此时就指示所有的投票节点对于已接收到的来自记账节点的区块进行投票,同时将未收到的合法区块的处理结果设置为目标值,以表明所述投票节点对所述未收到的区块无意见,投票节点将所有的投票结果发送给轮值记账节点进行统计,从而使轮值记账节点产生出区块组头。例如,现有记账节点A,记账节点B,记账节点C,投票节点X,投票节点Y,投票节点Z,轮值记账节点M。当记账节点A没有从投票节点X,投票节点Y,投票节点Z同步到所需区块组头时,投票节点X,投票节点Y,投票节点Z会对已经接收到的来自记账节点的区块进行正常投票,假设已经接收到来自记账节点A的区块a和来自记账节点B的区块b,则投票节点X,投票节点Y,投票节点 Z会对区块a和区块b进行正常的投票,同时将没有接收到的本应由记账C产生的区块c的投票结果设置为0(无意见)。最后投票节点X,投票节点Y,投票节点Z分别产生一张投票信息表给轮值记账节点M,轮值记账节点M进行收集统计,从而产生出区块组头。
在所述轮值记账节点产生所述未收到的合法区块组头的过程中,轮值记账节点只有在接收到超过来自投票节点的2Nv/3投票信息后,才能对区块组中的每一个区块进行统计并生成统计结果,若统计到对于任一合法区块的同意意见的投票节点超过1Nv/3,则所述轮值记账节点同意产生所述任一合法区块,将其投票结果设置为1,否则轮值记账节点不同意产生所述任一合法区块,将其投票结果设置为-1。所述Nv为所述区块链系统中所述投票节点的数量。例如,现有投票节点X,投票节点Y,投票节点Z,投票节点W,轮值记账节点M只有收到这四个投票节点中至少三个投票节点的投票信息以后才可以进行统计生成统计结果,并且任何一个区块只有这四个投票节点中的至少两个投票同意,所述区块才被允许产生。
所述轮值记账节点产生合法区块组头以后,轮值结账节点向所述区块链系统的所有节点广播产生的区块组头,以指示所述所有节点对产生的区块组头进行验证,所有的节点在进行验证的时候,只有包含了超过2Nv/3投票的区块组头才可通过验证,并在验证通过的情况下,接收所述成功产生的区块组头。
可以理解的是,若所述目标节点成功的接收到了目标组头,却没有接收到预设数量的合法区块的情况下,向所述区块链系统中的其他节点发送获取请求,其中,所述获取请求用于从所述其他节点获取所述合法区块,所述其他节点为所述区块链系统中除所述目标节点之外的节点,且所述其他节点保存有所述合法区块。例如,记账节点A在PPoV共识结束以后成功的接收到了区块组头,却因为网络故障没有接收到足够多的区块,如没有接收到区块b和区块c,此时记账节点A会向区块链网络中的其他节点去广播获取没有接收到的区块b和区块c。
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。为了更好的理解上述区块组头的获取方法,以下结合实施例对上述过程进行说明,但不用于限定本发明实施例的技术方案,具体地:
PPoV共识算法把产生一个区块组所需执行的所有操作称为一轮共识。在多节点并行记账的情况下,可能因为其中的少量记账节点故障导致其他正常节点产生的区块也无法被通过验证和产生。通过分析,可能对共识过程直接造成影响的只有记账节点、轮值记账节点和投票节点三类节点。假设在一轮共识的开始时间为t0,epoch为一个共识回合,每个共识回合的时长为Tcut,Nepoch为从时刻t0开始直到当前时刻t共经过的共识回合数:
Nepoch=(t-t0)%Tcut;
图5是根据本发明实施例的区块链节点超时触发条件示意图,如果在一轮共识中,区块链系统中的目标节点区块链系统在一个共识回合epoch的截止时间Tcut后仍无法满足提交条件,即无法产生合格区块组,则触发超时,即没有同时接收到该轮共识的区块组的区块组头和所有投票通过的合法区块。
图6根据本发明实施例的区块链节点的超时处理模块结构图;包括计时子模块、投票统计子模块、视图变换子模块和激励子模块。
计时子模块提供当前轮共识的开始时间t0、结束时间t和一轮共识的时长Tcut。
投票统计子模块包括投票节点的投票操作和轮值记账节点的统计操作。具体地,所有投票节点在收到超时消息后执行投票操作并发送给下一个epoch的轮值记账节点。若已经接收到的区块则按照正常方式投票,还没有接收到的区块则把结果设置为0(无意见),并设其hash 值为空。轮值记账节点在接收到来自投票节点超过2Nv/3的投票后,对区块组中的每一个区块进行统计并生成统计结果,此时统计规则为:若任意一个编号的区块对于任意一个hash值获得的赞同票超过Nv/3,即可视为同意产生区块,其将其投票结果置为1,否则被视为反对产生出区块,将其投票结果设置为-1。其中,Nv为投票节点的数量。
视图变换子模块包括节点的数据同步操作和区块组头验证操作。具体地,由于投票节点是网络核心共识节点,因此被认为拥有最新的区块链状态。所有节点需要向所有投票节点请求其区块链高度,并在本地维护各个投票节点的在线状态。若存在投票节点区块链高度比本地区块链高度高,则向该节点请求比本地高度高的区块组以同步数据。当节点接收到新的区块组头时,需要对超时后接收到的区块组头中所包含的投票列表进行验证,只有包含了超过 2Nv/3投票的区块组头才可通过验证,其中获得超过Nv/3赞同票的区块可通过投票,否则均被视为投票不通过。
激励子模块实现了评分机制和奖励机制。具体地,每个投票节点都会维护一张记账节点列表并为其评分,对每一位记账节点的评分代表了对此记账节点的信任程度,也成为投票节点投票的依据之一。每轮任期结束后,记账节点会根据已产生的合法区块及区块组头的数量收到联盟给予的酬劳。
为了更好的解释PPoV共识算法在超时以后如何处理,即如何获取缺失的区块组头和区块,以下结合图7来进行说明,图7根据本发明实施例的区块链节点的超时处理流程图。以记账节点超时处理为例,针对一般无激励场景,具体超时处理可以分为两种情况:
一种情况是记账节点已经接收到合法区块组头,但没有接收到足够的合法区块。这种情况下,已经产生区块组头表明共识已经完成,没有接收到足够的合法区块可能是因为网络故障等原因造成,因此只需向其他节点请求缺少的合法区块即可。
另一种情况是记账节点没有接收到合法区块组头,原因可能是因为轮值记账节点发生故障,也可能是因为其他部分的记账节点故障,所以无法产生出足够多的区块。此时需要执行以下步骤:
步骤一:记账节点需要向所有投票节点请求其区块链高度,并在本地维护各个投票节点的在线状态。若存在投票节点区块链高度比本地区块链高度高,则向该节点请求比本地高度高的区块组以同步数据,然后结束超时处理。否则继续执行下列超时操作;
步骤一:所有投票节点立刻执行投票操作,若已经接收到的区块则按照正常方式投票,还没有接收到的区块则把结果设置为0(无意见),并设其hash值为空。产生的投票需要发送给下一个epoch的轮值记账节点;
步骤三:轮值记账节点在接收到超过2Nv/3的投票后,对区块组中的每一个区块进行统计并生成统计结果,此时统计规则为:若任意一个编号的区块对于任意一个hash值获得的赞同票超过Nv/3,即可视为同意产生区块,其将其投票结果置为1,否则被视为反对产生出区块,将其投票结果设置为-1。其中,Nv为投票节点的数量;
步骤四:若Nepoch>1,即超时两次以上,则需更换轮值记账节点,若超时前记账节点的编号为R0,则当前轮值记账节点的编号R为(R0+Nepoch-1)%NW。其中,NW为记账节点的数量;
步骤五:所有节点需要对超时后接收到的区块组头中所包含的投票列表进行验证,只有包含了超过2Nv/3投票的区块组头才可通过验证,获得超过Nv/3赞同票的区块可通过投票,否则均被视为投票不通过。
针对一般有激励场景,在上述基础上,超时的触发还伴随着记账节点收益的降低。详述如下:
投票证明共识设计了评分机制与奖励机制。在有激励场景中,记账节点参与竞选并生成合法区块的目的主要是为了获取记账手续费。联盟链系统可以通过引入代币解决记账手续费问题,代币的金额单位以及换算与现实货币金额单位以及换算一一对应。联盟成立后将设立一个联盟基金账户地址,对应现实中在银行存放基金的一个现实账户。
评分越高的记账节点有更大的概率获得选票当选领导节点。成功封装合法区块组的领导节点将会按照数量获得对应的金额奖励,从而吸引更多的人加入到记账节点行列中,奖励诚实工作的行为,惩罚作恶的行为,使得系统往越来越安全可靠的方向发展。
每个投票节点都会维护一张记账节点列表并为其评分,评分规则为:
规则一:该投票节点每次验证通过一个区块就会给对应的记账节点加分,如果没有验证通过就会给记账节点扣分甚至清零;
规则二:每次验证通过一个区块组头就会给对应的领导节点加分,如果没有验证通过就会给领导节点扣分甚至清零;
规则三:该记账节点不在线而错过生产区块时,会导致触发超时,则其分数会被所有投票节点减分甚至清零,若联盟协议中对离线行为惩罚比较严重而统一设置为清零,则意味着当此记账节点重新上线的时候,需要重新头开始积分。
记账节点在每一个投票节点那里的分数可能不同,对每一位记账节点的评分代表了对此记账节点的信任程度,也成为投票节点投票的依据之一。每轮任期结束后,记账节点会根据已产生的合法区块及区块组头的数量收到联盟给予的酬劳,让他们有动力取应聘竞选,诚实工作,保持长时间在线。
为了更好的理解其超时处理过程,以下结合两个可选的实施例进行具体说明:
可选实施例一:在基于并行投票证明共识的无激励转账场景中,假设用户A请求从自己的账户转出一笔资金到用户B的账户。若用户A在Tcut前始终未接收到包含转账是否成功的区块组,则触发超时。具体处理流程为:
S1:用户A首先向所有投票节点请求最新区块链高度,若存在投票节点区块链高度比本地区块链高度高,则向该节点请求比本地高度高的区块组并结束超时处理。否则,用户A向所有投票节点和轮值记账节点发起超时请求;
S2:投票节点在收到超时请求后,立刻执行投票操作,若已经接收到的区块则按照正常方式投票,还没有接收到的区块则把结果设置为0(无意见),并设其hash值为空。轮值记账节点在接收到超过2Nv/3的投票后,对区块组中的每一个区块进行统计并生成统计结果;
S3:用户接收到新的区块组头后,验证用户A到用户B的转账事务获得的赞同票数,若超过Nv/3则执行转账操作,否则拒绝执行转账操作。
可选实施例二:在基于并行投票证明共识的无激励标识注册场景中,假设用户X请求在网络中注册一个新的标识。若用户X在Tcut前始终未接收到包含标识是否注册成功的区块组,则触发超时。具体处理流程为:
S1:用户X首先向所有投票节点请求最新区块链高度,若存在投票节点区块链高度比本地区块链高度高,则向该节点请求比本地高度高的区块组并结束超时处理。否则,用户X向所有投票节点和轮值记账节点发起超时请求;
S2:投票节点在收到超时请求后,立刻执行投票操作,若已经接收到的区块则按照正常方式投票,还没有接收到的区块则把结果设置为0(无意见),并设其hash值为空。轮值记账节点在接收到超过2Nv/3的投票后,对区块组中的每一个区块进行统计并生成统计结果;
S3:用户接收到新的区块组头后,验证用户X的标识注册事务获得的赞同票数,若超过 Nv/3则将新的标识信息添加到数据库中。
在上述有激励场景和无激励场景的情况下,针对上述记账节点没有满足预设条件,该处理规则保证了在一个共识轮中必然能够产生出一个合法的区块组,即记账节点接收到合法的区块组头和足够多的区块。而传统的PPoV共识算法在产生区块组头的时候,投票节点会因为记账节点没有产生出足够多是区块而无法进行投票操作,从而使领导节点接收不到投票结果而无法产生区块组头,上述超时处理的过程中获取区块组头的方法是对传统PPoV共识过程的补充和完善,增加了区块链的鲁棒性,使区块链网络在遇到异常情况时也能正常运行并产生区块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如 ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种区块组头的获取装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的设备较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明实施例的一种区块组头的获取装置的结构框图,该装置包括:
第一确定模块82,用于确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;
第二确定模块84,用于在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;
第三确定模块86,用于根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
通过本发明,确定区块链系统的目标节点是否满足预设条件,其预设条件有两种情况,一种情况是目标节点已接收到区块组头而没有接收到预设数量的合法区块,另一种情况是目标节点没有接收到区块组头。根据这两种情况分别制定两种不同的策略,在没有接收到区块组头的情况下,确定没有接收到区块组头的事件原因,然后根据所述事件原因确定目标节点对没有收到的区块组头的获取方式。采用上述技术方案,解决了并行投票证明PPoV共识算法在获取区块组头的过程中获取率不高等问题,进而在获取区块组头的时候,根据不同事件原因采用不同获取方式,提高了区块组头的获取率。
可以理解的是,PPoV共识算法的共识结束条件是要满足两点,所述第一确定模块82中,条件一:目标节点已接收到区块组头且没有接收到预设数量的合法区块;条件二:目标节点没有收到区块组头。区块链系统中的目标节点要判断是否满足预设条件,若没有满足,则会触发超时,所述目标节点就要进行相关的超时操作,在所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到区块组头,所述区块链系统未产生区块组头,随后区块链系统会根据所述事件原因确定目标节点对没有收到的区块组头的获取方式。例如,区块链系统某记账节点A没有收到区块组头,所以记账节点A会触发超时操作,向所有投票节点请求其区块链高度,并在本地维护各个投票节点的在线状态,若存在投票节点区块链高度比记账节点A的本地区块链高度高,则说明记账节点A未成功收到区块组头,若没有寻找到,则表明区块链系统未产生区块组头。随后记账节点A会根据所述事件原因确定获取方式。
同时,所述第三确定模块86,还用于在所述事件原因指示为所述目标节点未成功收到所述区块组头的情况下,向所述区块链系统的投票节点同步获取未成功接收到的所述区块组头。在本实施例中,目标节点没有接收到区块组头,则目标节点会去向投票节点去请求获得所述区块组头,因为投票节点是区块链网络核心共识点,因此被认为拥有最新的区块链状态,若系统产生了区块组头,在产生的区块组头广播到区块链网络的过程中,投票节点必然会接收。例如,记账节点A没有接收到区块组头,则记账节点A会去向投票节点B去进行数据同步,获取区块组头,其中,投票节点B的区块链高度比记账节点A高。
可选的,向区块链系统的投票节点同步获取未成功接收到的所述区块组头的过程中,需要从比本地记账节点的区块链高度高的投票节点中获取区块组,所述区块链高度用于指示区块高度。在本实施例中,所述区块链高度可以理解成一个数据库,由于区块链系统是一个分布式系统,没有一个统一的数据库,因此可以理解成每个区块链节点都拥有一个数据库,投票节点区块链高度比本地区块链高度高即表示投票节点的数据库更新程度比记账节点数据库的更新程度要好,所以为了获取区块组头,需要从更新程度差的数据库从一个更新程度好的数据库中进行数据同步。
所述第三确认模块86,还用于在所述事件原因指示为所述区块链系统未产生区块组头的情况下,指示投票节点对于已接收到的区块进行投票,以及将未收到的合法区块的处理结果设置为目标值,以指示所述投票节点对所述未收到的合法区块无意见,得到所述投票节点的投票结果;将所述投票结果发送至轮值记账节点,以指示所述轮值记账节点产生所述未收到的合法区块组头。在本实施例中,可以理解的是,记账节点在向所有投票节点请求其区块链高度的时候,没有找到所述投票节点区块链高度比记账节点的本地区块链高度高,从而可以理解成区块链系统没有产生出区块组头,此时就指示所有的投票节点对于已接收到的来自记账节点的区块进行投票,同时将未收到的合法区块的处理结果设置为目标值,以表明所述投票节点对所述未收到的区块无意见,投票节点将所有的投票结果发送给轮值记账节点进行统计,从而使轮值记账节点产生出区块组头。例如,现有记账节点A,记账节点B,记账节点C,投票节点X,投票节点Y,投票节点Z,轮值记账节点M。当记账节点A没有从投票节点X,投票节点Y,投票节点Z同步到所需区块组头时,投票节点X,投票节点Y,投票节点Z会对已经接收到的来自记账节点的区块进行正常投票,假设已经接收到来自记账节点A的区块a 和来自记账节点B的区块b,则投票节点X,投票节点Y,投票节点Z会对区块a和区块b进行正常的投票,同时将没有接收到的本应由记账C产生的区块c的投票结果设置为0(无意见)。最后投票节点X,投票节点Y,投票节点Z分别产生一张投票信息表给轮值记账节点M,轮值记账节点M进行收集统计,从而产生出区块组头。
在所述轮值记账节点产生所述未收到的合法区块组头的过程中,轮值记账节点只有在接收到超过来自投票节点的2Nv/3投票信息后,才能对区块组中的每一个区块进行统计并生成统计结果,若统计到对于任一合法区块的同意意见的投票节点超过1Nv/3,则所述轮值记账节点同意产生所述任一合法区块,将其投票结果设置为1,否则轮值记账节点不同意产生所述任一合法区块,将其投票结果设置为-1。所述Nv为所述区块链系统中所述投票节点的数量。例如,现有投票节点X,投票节点Y,投票节点Z,投票节点W,轮值记账节点M只有收到这四个投票节点中至少三个投票节点的投票信息以后才可以进行统计生成统计结果,并且任何一个区块只有这四个投票节点中的至少两个投票同意,所述区块才被允许产生。
所述轮值记账节点产生合法区块组头以后,轮值结账节点向所述区块链系统的所有节点广播产生的区块组头,以指示所述所有节点对产生的区块组头进行验证,所有的节点在进行验证的时候,只有包含了超过2Nv/3投票的区块组头才可通过验证,并在验证通过的情况下,接收所述成功产生的区块组头。
可以理解的是,若所述目标节点成功的接收到了目标组头,却没有接收到预设数量的合法区块的情况下,向所述区块链系统中的其他节点发送获取请求,其中,所述获取请求用于从所述其他节点获取所述合法区块,所述其他节点为所述区块链系统中除所述目标节点之外的节点,且所述其他节点保存有所述合法区块。例如,记账节点A在PPoV共识结束以后成功的接收到了区块组头,却因为网络故障没有接收到足够多的区块,如没有接收到区块b和区块c,此时记账节点A会向区块链网络中的其他节点去广播获取没有接收到的区块b和区块c。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;
S2,在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;
S3,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;
S2,在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;
S3,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种区块组头的获取方法,其特征在于,包括:
确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;
在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;
根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
2.根据权利要求1所述的方法,其特征在于,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式,包括:
在所述事件原因指示为所述目标节点未成功收到所述区块组头的情况下,向所述区块链系统的投票节点同步获取未成功接收到的所述区块组头。
3.根据权利要求2所述的方法,其特征在于,向所述区块链系统的投票节点同步获取未成功接收到的所述区块组头,包括:
从所述区块链系统中确认投票节点,其中,所述投票节点区块链高度比所述目标节点区块链高度高,所述区块链高度用于指示区块高度;
从所述投票节点同步获取比所述目标节点区块链高度高的所述区块组头。
4.根据权利要求1所述的方法,其特征在于,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式,包括:
在所述事件原因指示为所述区块链系统未产生区块组头的情况下,指示投票节点对于已接收到的区块进行投票,以及将未收到的合法区块的处理结果设置为目标值,以指示所述投票节点对所述未收到的合法区块无意见,得到所述投票节点的投票结果;
将所述投票结果发送至轮值记账节点,以指示所述轮值记账节点产生所述未产生的合法区块组头。
5.根据权利要求4所述的方法,其特征在于,将所述投票结果发送至轮值记账节点,以指示所述轮值记账节点产生所述未产生的合法区块组头,包括:
对于所述未产生的合法区块组头对应的任一合法区块,如果所述轮值记账节点统计到所述任一合法区块的同意意见的投票节点超过1Nv/3,确定所述轮值记账节点同意产生所述任一合法区块,所述Nv为所述区块链系统中所述投票节点的数量。
6.根据权利要求1所述的方法,其特征在于,根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式之后,所述方法还包括:
在所述没有收到的所述区块组头已被成功产生的情况下,指示轮值结账节点向所述区块链系统的所有节点广播成功产生到的区块组头,以指示所述所有节点对所述成功获取到的区块组头进行验证,并在验证通过的情况下,接收所述成功产生到的区块组头。
7.根据权利要求1所述的方法,其特征在于,确定区块链系统中的目标节点是否满足预设条件之后,所述方法还包括:
在确定所述目标节点已接收到区块组头且没有接收到预设数量的合法区块的情况下,向所述区块链系统中的其他节点发送获取请求,其中,所述获取请求用于从所述其他节点获取所述合法区块,所述其他节点为所述区块链系统中除所述目标节点之外的节点,且所述其他节点保存有所述合法区块。
8.一种区块组头的获取装置,其特征在于,包括:
第一确定模块,用于确定区块链系统中的目标节点是否满足预设条件,其中,所述预设条件用于指示至少以下之一:所述目标节点已接收到区块组头且没有接收到预设数量的合法区块,所述目标节点没有收到区块组头;
第二确定模块,用于在确定所述目标节点没有收到区块组头的情况下,确定所述目标节点没有收到区块组头的事件原因,其中,所述事件原因包括以下至少之一:所述目标节点未成功收到所述区块组头,所述区块链系统未产生区块组头;
第三确定模块,用于根据所述事件原因确定所述目标节点对没有收到的所述区块组头的获取方式。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011488871.4A CN114638452A (zh) | 2020-12-16 | 2020-12-16 | 区块组头的获取方法及装置,存储介质及电子装置 |
KR1020237022466A KR20230112718A (ko) | 2020-12-16 | 2021-11-04 | 블록 그룹 헤더의 획득 방법 및 장치, 저장 매체 및전자 장치 |
JP2023537119A JP2023554090A (ja) | 2020-12-16 | 2021-11-04 | ブロックグループヘッダの取得方法及び装置、記憶媒体、並びに電子装置 |
PCT/CN2021/128716 WO2022127424A1 (zh) | 2020-12-16 | 2021-11-04 | 区块组头的获取方法及装置,存储介质及电子装置 |
US18/257,667 US20240031151A1 (en) | 2020-12-16 | 2021-11-04 | Obtaining method and apparatus for block group header, storage medium, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011488871.4A CN114638452A (zh) | 2020-12-16 | 2020-12-16 | 区块组头的获取方法及装置,存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114638452A true CN114638452A (zh) | 2022-06-17 |
Family
ID=81945086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011488871.4A Pending CN114638452A (zh) | 2020-12-16 | 2020-12-16 | 区块组头的获取方法及装置,存储介质及电子装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240031151A1 (zh) |
JP (1) | JP2023554090A (zh) |
KR (1) | KR20230112718A (zh) |
CN (1) | CN114638452A (zh) |
WO (1) | WO2022127424A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109964446B (zh) * | 2018-06-08 | 2022-03-25 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110868434B (zh) * | 2018-08-27 | 2022-07-01 | 深圳物缘科技有限公司 | 一种多层分片架构的区块链共识方法及系统 |
KR102130062B1 (ko) * | 2018-09-18 | 2020-07-03 | 엔에이치엔 주식회사 | 블록체인 네트워크의 노드들 간의 합의를 이루는 방법 및 블록체인 시스템 |
KR20200081533A (ko) * | 2018-12-27 | 2020-07-08 | 서강대학교산학협력단 | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 |
CN111368008B (zh) * | 2020-05-27 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN111382456B (zh) * | 2020-06-01 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 提案消息处理方法、装置、设备以及存储介质 |
CN112104482B (zh) * | 2020-08-11 | 2021-06-29 | 佛山赛思禅科技有限公司 | 一种基于并行投票的共识方法 |
-
2020
- 2020-12-16 CN CN202011488871.4A patent/CN114638452A/zh active Pending
-
2021
- 2021-11-04 US US18/257,667 patent/US20240031151A1/en active Pending
- 2021-11-04 KR KR1020237022466A patent/KR20230112718A/ko unknown
- 2021-11-04 WO PCT/CN2021/128716 patent/WO2022127424A1/zh active Application Filing
- 2021-11-04 JP JP2023537119A patent/JP2023554090A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240031151A1 (en) | 2024-01-25 |
WO2022127424A1 (zh) | 2022-06-23 |
KR20230112718A (ko) | 2023-07-27 |
JP2023554090A (ja) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382456B (zh) | 提案消息处理方法、装置、设备以及存储介质 | |
CN112039964B (zh) | 一种基于区块链的节点信誉共识方法 | |
JP3861559B2 (ja) | 移動エージェント制御方法 | |
CN109255713A (zh) | 一种区块链网络中某一时间段内记账权的获取方法 | |
CN112104482B (zh) | 一种基于并行投票的共识方法 | |
CN109214795A (zh) | 一种基于dag算法的区块链混合共识方法 | |
CN111010278B (zh) | 一种基于DPoS高容错分层共识方法 | |
WO2021233049A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111314067B (zh) | 区块存储方法、装置、计算机设备及存储介质 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN110602217B (zh) | 基于区块链的联盟管理方法、装置、设备及存储介质 | |
CN111654395B (zh) | 投票信息处理方法、装置、设备以及存储介质 | |
CN111106942A (zh) | 一种基于ap-pbft算法的区块链信用机制 | |
CN108961055B (zh) | 一种区块共识的奖惩方法、装置、设备和存储介质 | |
CN112818414B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111683121B (zh) | 基于DPoS的云端数据溯源区块链共识机制改进方法 | |
CN113014635A (zh) | 区块链系统的节点类型划分方法、装置及区块链系统 | |
CN113422805A (zh) | 一种基于可验证随机函数的分片共识方法 | |
CN109978528B (zh) | 一种可插拔共识协议框架模型、共识协议及其实现方法 | |
CN113282418A (zh) | 一种模型聚合处理方法及装置 | |
US20230360046A1 (en) | Blockchain-based block processing method and apparatus, device, storage medium, and program product | |
CN114638452A (zh) | 区块组头的获取方法及装置,存储介质及电子装置 | |
CN112069259A (zh) | 一种基于区块链的多云环境数据存储系统及方法 | |
CN114584326B (zh) | 区块链数据处理方法、装置、电子设备及存储介质 | |
CN113435949B (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 |