CN115001809A - 区块链网络共识方法、装置、设备及介质 - Google Patents
区块链网络共识方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115001809A CN115001809A CN202210608434.4A CN202210608434A CN115001809A CN 115001809 A CN115001809 A CN 115001809A CN 202210608434 A CN202210608434 A CN 202210608434A CN 115001809 A CN115001809 A CN 115001809A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- blocking
- new block
- block
- 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 45
- 230000000903 blocking effect Effects 0.000 claims abstract description 158
- 238000012795 verification Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及区块链技术领域,尤其涉及一种区块链网络共识方法及区块链网络共识装置、计算机设备及计算机可读存储介质。其中,一种区块链网络共识方法包括:当第K个节点集接收到交易消息时,通过第K个节点集内的打块节点根据交易消息产生新区块,通过打块节点向第K个节点集内的N个节点广播新区块的信息,令N个节点按照一定的校验规则对新区块的信息进行校验,得到校验结果,当校验结果为校验成功时,得到第K个节点集的共识块,通过第K个节点集内的连接节点,向M个节点集中的其他节点集广播共识块的信息,当其他节点集中超过X个节点集对共识块的信息确认成功时,将共识块链接上主链。应用本申请的技术方案,提高了区块链网络共识的效率。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链网络共识方法及区块链网络共识装置、计算机设备及计算机可读存储介质。
背景技术
区块链网络共识是在去中心化的环境中让所有节点达成共识,对需要区块链网络处理的数据达成一致认同。但是现有的方案因为需要保持节点一致性,交易冗余,运算量较大,在交易达成共识时间长,从而造成区块链网络共识的效率不高的问题。
发明内容
本发明的目的在于提供一种区块链网络共识方法及区块链网络共识装置、计算机设备及计算机可读存储介质,以解决现有技术中存在的区块链网络共识的效率不高的问题。
本申请实施例的第一方面提供了一种区块链网络共识方法,所述区块链网络包括M个节点集,所述M为等于或大于1的整数,包括:
当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块;K为小于或等于M的整数;
通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点按照一定的校验规则对所述新区块的信息进行校验,得到校验结果;其中,N为等于或大于3的整数;
当所述校验结果为校验成功时,得到所述第K个节点集的共识块;
通过所述第K个节点集内的连接节点,向所述M个节点集中的其他节点集广播所述共识块的信息;
当所述其他节点集中超过X个节点集对所述共识块的信息确认成功时,将所述共识块链接上主链;所述X为等于或大于1的整数。
本申请实施例的第二方面提供了一种区块链网络共识装置,所述区块链网络共识装置包括M个节点集,所述M为等于或大于1的整数,包括:
接收模块,用于当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块;K为小于或等于M的整数;
校验模块,用于通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点按照一定的校验规则对所述新区块的信息进行校验,得到校验结果;其中,N为等于或大于3的整数;
成功模块,用于当所述校验结果为校验成功时,得到所述第K个节点集的共识块;
广播模块,用于通过所述第K个节点集内的连接节点,向所述M个节点集中的其他节点集广播所述共识块的信息;
链接模块,用于当所述其他节点集中超过X个节点集对所述共识块的信息确认成功时,将所述共识块链接上主链;所述X为等于或大于1的整数。
本申请实施例的第三方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在计算机设备上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方案提供的实现区块链网络共识的方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方案提供的实现区块链网络共识的方法的各步骤。
实施本申请实施例提供的一种实现区块链网络共识的方法、实现区块链网络共识的装置、计算机设备及计算机可读存储介质具有以下有益效果:
当第K个节点集接收到交易消息时,通过第K个节点集内的打块节点根据交易消息产生新区块,因为区块链网络包括M个节点集,而且第K个节点集包括N个节点,所以通过打块节点向第K个节点集内的N个节点广播新区块的信息,能够令N个节点按照一定的校验规则对新区块的信息进行校验,得到校验结果,而当校验结果为校验成功时,得到第K个节点集的共识块,又因为通过第K个节点集内的连接节点,M个节点集中的其他节点集广播能够接收到共识块的信息并进行校验,所以当其他节点集中超过X个节点集对共识块的信息确认成功时,将共识块链接上主链,新区块经过节点集内的N个节点的校验,与区块链网络中除产生新区块的节点集的其他节点集的校验,完成共识,减少区块链的运算力,提高了区块链网络共识的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链网络共识方法的实现流程图;
图2为本发明实施例提供的一种节点集内部结构示意图;
图3为本发明实施例提供的一种区块链网络共识装置结构框图;
图4为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本实施例提供的一种区块链网络共识方法,该方法可以由本发明实施例提供的区块链网络共识装置来执行,该装置可采用硬件和/或软件的方式实现,并可集成于用户设备中,进一步为用户设备中的区块链节点中,或者与节点交互的应用程序中等。其中,用户设备例如可以是移动设备(如智能手表、手机等)、个人计算机等。也可以被服务器集群中用于区块链网络共识的目标服务器来执行。这里,服务器集群可以是由多个服务器组成的服务器集群,基于该服务器集群构建分布式系统,令构建分布式系统所需的各组件能够被配置到服务器集群中的各服务器中,被配置有分布式系统组件的服务器,也可以被称为组件服务器。服务器集群中的各服务器之间能够进行数据共享或数据同步。在此基础上,向该服务器集群中的任一服务器配置目标脚本文件,由该目标脚本文件描述本实施例提供区块链网络共识方法,使得该配置有目标脚本文件的服务器能够通过执行该目标脚本文件,进而执行种区块链网络共识方法的各个步骤。或者,通过对服务器集群配置新的服务器,向该新的服务器配置目标脚本文件,由该目标脚本文件描述本实施例提供的实现区块链网络共识方法,使得该新的服务器能够通过执行该目标脚本文件,进而执行实现区块链网络共识方法中的各个步骤。
参阅图1,图1示出了本申请实施例提供的一种区块链网络共识方法的实现流程图。区块链网络包括M个节点集,M为等于或大于1的整数,一种区块链网络共识方法包括:
S11:当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块;K为小于或等于M的整数。
在步骤S11中,区块链网络是去中心化的网络,按照时间顺序将数据区块组合成一种链式结构。区块链网络中的每个节点都是对等的,各个节点共同提供网络服务,节点同时是客户端和服务器。区块链网络中的区块是一个存储单元,记录了一定时间内各个区块节点全部的交流信息。区块链网络包括两种链,一种是主链,用于存储区块链业务数据,整个区块链网络只有一条主链。另一种是节点集内的内链,用于存储节点集内部的成员信息,每个节点集包括一条内链。
区块链网络上的主链是用于维护区块信息和世界状态,和其它普通区块链的链一样,全网只有一个,所有节点集的主链是一样的。区块链网络中存在至少一个节点集,节点集是在区块链网络中各个节点相互连接的集合。节点集并不在主链上。因为当第K个节点集接收到交易消息时,第K个节点集会根据交易消息产生新区块,并将新区块的信息广播给第K个节点集内的所有节点,得到共识块,然后将共识块广播给区块链网络的其他节点集,共识完成时第K个节点集将共识块链接上区块链网络的主链,所以共识块是写入主链的。
在区块链网络中,为了保证交易执行的准确性,通常需要使用多个节点或者所有节点对区块进行共识,若对区块达成共识的节点数量超过预设数量,则说明区块链网络中大多数的节点处理交易所得到的区块是一致,那么共识后的区块可以成功出块,且节点也可以根据区块更新内部的交易数据库。本实施例通过预先将区块链网络形成M个节点集,每个节点只能归属一个节点集。将每个节点集按照加入区块链网络的时间排序,依次以节点集为单位进行打块。节点集内的打块节点来打块,并在节点集内共识,然后将新区块广播给其他节点集,再在其他节点集进行共识。通过预先形成M个节点集,先在节点集内达成共识,再在每个节点集之间达成共识,可以提高共识效率,减少共识过程的消息网络传输,降低网络负担。
区块链网络中按照每个节点集创建的顺序进行打块。节点集不进行周期性的算力计算,当有第K个节点集内相关交易时,由第K个节点集中的打块队列中的打块节点进行打块,一个块中大部分只有一个交易。根据用户发送的交易请求可以生成交易消息,由第K个节点集内的打块节点根据交易消息产生新区块。
参阅图2,图2示出了本发明实施例提供的一种节点集内部结构示意图。如图2所示,节点集20内的节点包括连接节点21、主节点22、存储节点23、候选节点24,以及第一打块节点25、第二打块节点26、第N打块节点27等。区块链网络中的每个节点集中的每个节点具有相应的职责。避免主节点22负担太重,承担不必要的运算,提高区块链整体效率。节点集20内的节点主要包括4种节点类型,分别为主节点22、打块节点(包括第一打块节点25、第二打块节点26及第N打块节点27等)、连接节点21以及存储节点23。各种节点的性能不同,各司其职。其中,主节点22在节点集20内有且仅有一个,主节点22可以检测并修复节点集20内所有节点的故障,可以主动进行选举其他节点,还可以对共识块进行签名。打块节点,顾名思义就是用于打块,产生新区块的节点,节点集内的打块节点至少包括一个,包括第一打块节点25、第二打块节点26及第N打块节点27等,按照排序顺序形成了打块队列,并按照顺序进行打块。连接节点21用于与其他节点集进行连接与交易,以及同步其他节点集的信息。存储节点23用于存储主链与内链的区块数据,其它节点只存储世界状态。节点集内还包括了候选节点24,候选节点24没有明确的任务,是以上4种节点的候补,等待某次选举能被选中当干部。
作为本申请实施例的一种实现方式,所述打块节点至少包括第一打块节点与第二打块节点,所述第一打块节点与所述第二打块节点按顺序连接并形成打块队列,步骤S11包括:
当第K个节点集接收到交易消息时,所述第一打块节点根据所述交易消息产生新区块;
若在预设时间内,所述第二打块节点未接收到所述新区块的消息时,则所述第二打块节点根据所述交易消息产生新区块。
具体地,节点集内的打块节点按照加入节点集的时间顺序进行排序形成打块队列,按照打块队列上每个打块节点的排列顺序进行打块。打块节点至少包括第一打块节点与第二打块节点,当节点集接收到交易消息时,打块队列上的第一打块节点根据交易消息产生新区块。如果第一打块节点打块成功,第二打块节点会接收到新区块的消息,但是如果第二打块节点在预设的一段时间内没有接收到新区块的消息时,表明第一打块节点可能损坏了,无法响应也无法进行打块,那么就由下一个顺序的第二打块节点进打块。依次类推,打块队列上的打块节点依次进行打块。第二打块节点打块完成后,向节点集内的所有节点广播新区块的信息,等待节点集内的所有节点接收到新区块的信息。当第一打块节点出现故障宕机无法产生新区块时,马上安排打块节点的排列顺序上下一个打块节点即第二打块节点进行打块,保证了打块的效率。
S12:通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点按照一定的校验规则对所述新区块的信息进行校验,得到校验结果;其中,N为等于或大于3的整数。
在步骤S12中,打块节点产生新区块后,向第K个节点集内的其他节点广播新区块的信息。通过打块节点进行打块并广播区块的信息,以使得第K个节点集内的所有节点接收到区块的信息并对区块进行校验。节点集内的N个节点根据相同的规则对新区块进行校验,对新区块的完整性和合法性进行校验。第K个节点集内存在N+1个节点,第K个节点集内至少包括打块节点、主节点、连接节点以及存储节点。可以理解的是,第K个节点集的打块节点是向除了本身进行打块的打块节点的第K个节点集内其他所有节点都广播了新区块的信息,令其他节点都对新区块进行校验。通过打块节点的广播,节点集内的节点接收整个新区块的信息,令节点按照相同的校验规则对新区块的信息进行校验。
可以对新区块的信息进行完整性校验,确定新区块的信息是否完整,在传输过程没有丢失信息。因为新区块都有一个编号,所以可以根据该编号可以确定该新区块是否已经生成。不仅对新区块的编号进行校验,还要对新区块的内容进行校验。合法性校验是确定新区块为节点集内的打块节点产生的。节点集内的所有节点都接收到新区块的信息,并进行校验。得到的校验结果是第K个节点集内除打块节点外的节点对新区块的信息进行初步校验的结果。在校验成功后,节点向主节点与连接节点发送确校验成功的消息。此时新区块还未完成共识,还需要第K个节点集内的主节点进行签名,与连接节点的校验通过才能在与第K个节点集内完成共识。
作为本申请实施例的一种实现方式,步骤S12包括:
通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点对所述新区块的信息进行合法性校验与完整性校验,得到合法性结果与完整性结果。
打块节点根据交易消息生成新区块后立即在第K个节点集内将新区块的信息进行广播,打块节点打块后立即广播,减少消息分发,降低网络负担。通过打块节点的广播,令第K个节点集内的N个节点接收到新区块的信息,对新区块进行校验。N个节点按照相同的校验规则对新区块进行校验,采用一种大家都认可的规则,从而达成一致意见。对新区块校验的方式包括新区块是否根据交易消息产生,新区块是否由第K个节点集内的打块节点打块得到的,区块的大小是否符合要求等。对新区块校验的方式可以总结为合法性校验与完整性校验,对新区块信息的完整性进行校验得到完整性结果,对新区块来源的合法性进行校验得到合法性结果,并根据完整性结果与合法性结果来判断第K个节点集内N个节点是否对新区块的信息校验成功。当得到的校验结果失败时,标记该区块无效。
作为实施例的一种实现方式,所述N个节点至少包括存储节点,所述新区块的信息包括所述新区块的编号,上述步骤通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点对所述新区块的信息进行合法性校验与完整性校验,得到合法性结果与完整性结果,包括:
通过所述打块节点向所述存储节点广播所述新区块的信息,令存储节点判断所述新区块是否为所述打块节点产生,得到合法性结果,以及令所述存储节点对所述新区块的编号进行编号校验,得到完整性结果。
第K个节点集内的N个节点至少包括存储节点,通过打块节点向存储节点广播新区块的信息,令存储节点根据接收到的新区块信息,对新区块进行校验。存储节点对新区块的合法性校验是判断新区块是否为打块节点所产生或者是否根据交易消息产生,得到合法性结果。存储节点对新区块的完整性校验是对新区块的编号进行校验,或者判断区块的大小是否符合要求,得到完整性结果。
S13:当所述校验结果为校验成功时,得到所述第K个节点集的共识块。
在步骤S13中,第K个节点集内的节点对新区块的信息校验成功时,新区块在第K个节点集内完成共识,得到共识块。当第K个节点集内的节点对接收到打块节点发送的区块信息校验成功时,向第K个节点集内的主节点以及连接节点发送校验成功的信息,主节点与连接节点对新区块的信息进行进一步的校验,等到连接节点对新区块的信息校验成功后,才得到第K个节点集的共识块。在得到第K个节点集的共识块后,还要通过第K个节点集的连接节点对共识块的信息进行广播,使得其他节点集接收到共识块的信息并进行校验。
当主节点接收到超过预设阈值的校验成功的消息时,对新区块进行签名。例如当主节点接收到第K个节点集内超过2/3的节点发送的校验成功的消息时,主节点使用私钥对新区块进行签名,并使用第K个节点集的私钥进行签名,将这两个签名附在共识块中,发送给连接节点,连接节点对签名后的新区块再进行校验。第K个节点集的私钥为创建第K个节点集时创建的,并保存在节点集内的创世块内,只有节点集内的主节点能获取到的私钥。对新区块进行签名表明对新区块校验成功,使用主节点的私钥与节点集的私钥对新区块进行加密,得到签名后的新区块。主节点的私钥与节点集的私钥对新区块进行签名,提高了安全性。
作为本申请实施例的一种实现方式,步骤S13包括:
当所述N个节点中的主节点接收到等于或大于预设阈值的所述N个节点的校验成功的信息时,使用所述主节点的私钥与所述第K个节点集的私钥对所述新区块进行签名,得到签名后的新区块;
当所述N个节点中的连接节点对所述签名后的新区块校验成功时,得到共识块。
N个节点对新区块的校验都是按照相同的校验规则进行的,对新区块的内容完整性与合法性进行校验。第K个节点集内的节点对新区块的信息校验成功后,向主节点及连接节点发送校验成功的消息,主节点对新区块进行签名表明主节点认可新区块。使用主节点与第K个节点集的私钥对新区块进行签名,提高安全性。然后连接节点对签名后的新区块进行进一步的校验,对新区块进行更详细的校验。
作为实施例的一种实现方式,上述步骤当所述N个节点中的连接节点对所述签名后的新区块校验成功时,得到共识块,包括:
当连接节点校验所述签名后的新区块上的签名为所述第K个节点集的所述主节点所签名、校验所述签名后的新区块上的签名正确以及所述签名后的新区块为所述打块节点产生时,得到共识块。
连接节点对签名后的新区块进行校验,主要校验新区块上的签名是否为第K个节点集的主节点所签名,校验新区块上的签名是否为第K个节点集使用私钥进行签名,校验新区块上的签名是否正确,校验签名后的新区块是否根据交易消息产生,校验签名后的新区块是否为打块节点产生等。当满足以上条件时,连接节点对共识块校验成功得到共识块。共识块在第K个节点集内共识完成,然后通过连接节点将共识块的信息向其他节点集进行广播,令其他节点集对共识块进行校验。
S14:通过所述第K个节点集内的连接节点,向所述M个节点集中的其他节点集广播所述共识块的信息。
在步骤S14中,向M个节点集除第K个节点集的其他节点集广播共识块的信息令其他节点集也对共识块进行校验。连接节点是连接各个节点集信息之间的节点,连接节点能够与其他节点集建立链接,接收其它节点集广播的交易及区块,以及向其它节点集广播节点集内的共识块及接受的交易。
因为在第K个节点集内是连接节点对新区块进行最后的校验,当连接节点校验成功得到共识块后,也由连接节点向其他节点集广播共识块的信息令其他节点集对共识块进行共识。减少消息分发,减少网络负担。
当其他节点集接收到第K个节点集打的共识块,其他节点集需要校验共识块上的签名是否正确,然后校验交易,确定成功后广播其它节点集接受共识块,若收到超过2/3的节点集接受信息,即将共识块写入主链。
S15:当所述其他节点集中超过X个节点集对所述共识块的信息确认成功时,将所述共识块链接上主链;所述X为等于或大于1的整数。
在步骤S15中,当新区块在第K个节点集内进行了共识得到共识块,通过第K个节点集内的连接节点向其他节点集广播共识块的信息,令其他节点集对共识块的信息进行共识,当超过X个节点集对共识块的信息确认成功时,共识块在区块链网络共识完成,并将共识块链接上区块链网络的主链上。其他节点集接收到通过连接节点广播的共识块的信息时,对共识块的信息进行确认。可以对共识块的完整性进行确认,对共识块上的签名进行确认。确认共识块上的签名是否是第K个节点集的主节点签名,主节点的签名是否正确,第K个节点集的签名是否正确等。
当第K个节点集接收到交易消息时,通过第K个节点集内的打块节点根据交易消息产生新区块,因为区块链网络包括M个节点集,而且第K个节点集包括N个节点,所以通过打块节点向第K个节点集内的N个节点广播新区块的信息,能够令N个节点按照一定的校验规则对新区块的信息进行校验,得到校验结果,而当校验结果为校验成功时,得到第K个节点集的共识块,又因为通过第K个节点集内的连接节点,M个节点集中的其他节点集广播能够接收到共识块的信息并进行校验,所以当其他节点集中超过X个节点集对共识块的信息确认成功时,将共识块链接上主链,新区块经过节点集内的N个节点的校验,与区块链网络中除产生新区块的节点集的其他节点集的校验,完成共识,减少区块链的运算力,提高了区块链网络共识的效率。
作为本申请的另一实施例,在步骤S11之前,还包括:
当所述第K个节点集内的所述N个节点接收Y个候选打块节点的选举请求时,所述N个节点对所述候选打块节点进行投票,确定每个所述候选打块节点的票数;所述Y为等于或大于1的整数;
根据所述票数对每个所述候选打块节点进行排序,将所述票数大于预设阈值的候选打块节点确定为打块节点,并按照所述排序将所述打块节点进行连接形成打块队列。
在本实施例中,节点会进行选举成为想要的类型节点进入节点集。所有的节点都要经过选举成为候选人,根据节点集的其他节点的投票结果成为想要的类型节点或者候选节点。这里以打块节点的选举为例,其他类型的节点的以此为参照进行选举。接收到候选节点的请求,请求为选举想要进行选举的节点类型,比如想选举打块节点。那么由节点集内的所有节点对该选举进行投票,投票结果根据节点的投票数决定,得票数高者成为打块节点。但是又因为节点集内的打块节点的数量有限,所以还要从候选节点确定前几位作为打块节点,将票数大于预设阈值的候选打块节点确定为打块节点,其中,预设阈值按照节点集内的打块节点的数量要求设定。并按照票数高低情况对候选打块节点进行排序,形成打块队列。打块队列上的打块节点按顺序排列,并依照排列顺序进行打块。由现有的打块节点将选举结果广播给节点集内的节点。选举失败的候选打块节点成为候选节点,等待下次选举。
进行四类主要角色选举时,每个节点需要推举四类角色的候选人,且每类角色的数量符合各角色节点数量要求(可以预先确定每个节点集内每个节点类型的数量),选举结果按所得票数排序,取得票高的前几个节点作为对应角色的节点。对于打块角色,需要保存排序顺序,其它角色不需要保存排序顺序。最终选举结果由主节点发起选举类型的交易,交易中包含各角色的选举结果,再由打块节点打块并广播给节点集内节点,节点集内节点收到块后若与自己统计的选举结果一致则写入节点集内链,若与自己节点统计的不一样则丢弃此块。连接节点与其它节点集的连接节点建立连接,可同步其它节点集的基本信息,即各节点集的内链的最新世界状态,包括各成员信息。
预先对区块链网络中节点进行分组形成节点集,每个节点必须且只能归属一个节点集。将各节点集按照加入区块链网络的时间排序,依次以节点集为单位进行打块。节点集打块即由节点集内的打块节点来打块,并先在节点集内共识,然后将共识块广播到其它节点集,再在其他节点集共识,没有算力浪费,且减少消息分发,降低网络负担。
相应于上面的方法实施例,本发明实施例还提供了一种区块链网络共识装置30,区块链网络共识装置包括M个节点集,所述M为等于或大于1的整数,包括:
接收模块31,用于当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块;K为小于或等于M的整数;
校验模块32,用于通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点按照一定的校验规则对所述新区块的信息进行校验,得到校验结果;其中,N为等于或大于3的整数;
成功模块33,用于当所述校验结果为校验成功时,得到所述第K个节点集的共识块;
广播模块34,用于通过所述第K个节点集内的连接节点,向所述M个节点集中的其他节点集广播所述共识块的信息;
链接模块35,用于当所述其他节点集中超过X个节点集对所述共识块的信息确认成功时,将所述共识块链接上主链;所述X为等于或大于1的整数。
作为一个实施例,区块链网络共识装置30还包括:确定模块(图中未示出)与打块模块(图中未示出)。
确定模块,用于当所述第K个节点集内的所述N个节点接收Y个候选打块节点的选举请求时,所述N个节点对所述候选打块节点进行投票,确定每个所述候选打块节点的票数;所述Y为等于或大于1的整数;
打块模块,用于根据所述票数对每个所述候选打块节点进行排序,将所述票数大于预设阈值的候选打块节点确定为打块节点,并按照所述排序将所述打块节点进行连接形成打块队列。
应当理解的是,图3示出的区块链网络共识流程的装置的结构框图中,各模块用于执行图1对应的实施例中的各步骤,而对于图1对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1所对应的实施例中的相关描述,此处不再赘述。
图4是本申请一实施例提供的一种计算机设备的结构框图。如图4所示,该实施例的计算机设备40包括:处理器41、存储器42以及存储在所述存储器42中并可在所述处理器41上运行的计算机程序43,例如区块链网络共识流程的方法的程序。处理器41执行所述计算机程序43时实现上述各个区块链网络共识流程的方法各实施例中的步骤,例如图1所示的S11至S15。或者,所述处理器41执行所述计算机程序43时实现上述图3对应的实施例中各模块的功能,例如,图3所示的模块31至35的功能,具体请参阅图3对应的实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序43可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器42中,并由所述处理器41执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序43在所述计算机设备40中的执行过程。
转台设备可包括,但不仅限于,处理器41、存储器42。本领域技术人员可以理解,图4仅仅是计算机设备40的示例,并不构成对计算机设备40的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器41可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-12Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器42可以是所述计算机设备40的内部存储单元,例如计算机设备40的硬盘或内存。所述存储器42也可以是所述计算机设备40的外部存储设备,例如所述计算机设备40上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器42还可以既包括所述计算机设备40的内部存储单元也包括外部存储设备。所述存储器42用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器42还可以用于暂时地存储已经输出或者将要输出的数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中区块链网络共识流程的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它计算机可读存储介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种区块链网络共识方法,所述区块链网络包括M个节点集,所述M为等于或大于1的整数,其特征在于,所述区块链网络共识方法包括:
当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块;K为小于或等于M的整数;
通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点按照一定的校验规则对所述新区块的信息进行校验,得到校验结果;其中,N为等于或大于3的整数;
当所述校验结果为校验成功时,得到所述第K个节点集的共识块;
通过所述第K个节点集内的连接节点,向所述M个节点集中的其他节点集广播所述共识块的信息;
当所述其他节点集中超过X个节点集对所述共识块的信息确认成功时,将所述共识块链接上主链;所述X为等于或大于1的整数。
2.根据权利要求1所述的方法,其特征在于,所述打块节点至少包括第一打块节点与第二打块节点,所述第一打块节点与所述第二打块节点按顺序连接并形成打块队列;
所述当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块,包括:
当第K个节点集接收到交易消息时,所述第一打块节点根据所述交易消息产生新区块;
若在预设时间内,所述第二打块节点未接收到所述新区块的消息时,则所述第二打块节点根据所述交易消息产生新区块。
3.根据权利要求1所述的方法,其特征在于,所述通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点按照一定的校验规则对所述新区块的信息进行校验,得到校验结果,包括:
通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点对所述新区块的信息进行合法性校验与完整性校验,得到合法性结果与完整性结果。
4.根据权利要求3所述的方法,其特征在于,所述N个节点至少包括存储节点,所述新区块的信息包括所述新区块的编号,所述通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点对所述新区块的信息进行合法性校验与完整性校验,得到合法性结果与完整性结果,包括:
通过所述打块节点向所述存储节点广播所述新区块的信息,令存储节点判断所述新区块是否为所述打块节点产生,得到合法性结果,以及令所述存储节点对所述新区块的编号进行编号校验,得到完整性结果。
5.根据权利要求1所述的方法,其特征在于,所述当所述校验结果为校验成功时,得到所述第K个节点集的共识块,包括:
当所述N个节点中的主节点接收到等于或大于预设阈值的所述N个节点的校验成功的信息时,使用所述主节点的私钥与所述第K个节点集的私钥对所述新区块进行签名,得到签名后的新区块;
当所述N个节点中的连接节点对所述签名后的新区块校验成功时,得到共识块。
6.根据权利要求5所述的方法,其特征在于,所述当所述N个节点中的连接节点对所述签名后的新区块校验成功时,得到共识块,包括:
当连接节点校验所述签名后的新区块上的签名为所述第K个节点集的所述主节点所签名、校验所述签名后的新区块上的签名正确以及所述签名后的新区块为所述打块节点产生时,得到共识块。
7.根据权利要求1所述的方法,其特征在于,在所述当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块的步骤之前,包括:
当所述第K个节点集内的所述N个节点接收Y个候选打块节点的选举请求时,所述N个节点对所述候选打块节点进行投票,确定每个所述候选打块节点的票数;所述Y为等于或大于1的整数;
根据所述票数对每个所述候选打块节点进行排序,将所述票数大于预设阈值的候选打块节点确定为打块节点,并按照所述排序将所述打块节点进行连接形成打块队列。
8.一种区块链网络共识装置,所述区块链网络共识装置包括M个节点集,所述M为等于或大于1的整数,其特征在于,包括:
接收模块,用于当第K个节点集接收到交易消息时,通过所述第K个节点集内的打块节点根据所述交易消息产生新区块;K为小于或等于M的整数;
校验模块,用于通过所述打块节点向所述第K个节点集内的N个节点广播所述新区块的信息,令所述N个节点按照一定的校验规则对所述新区块的信息进行校验,得到校验结果;其中,N为等于或大于3的整数;
成功模块,用于当所述校验结果为校验成功时,得到所述第K个节点集的共识块;
广播模块,用于通过所述第K个节点集内的连接节点,向所述M个节点集中的其他节点集广播所述共识块的信息;
链接模块,用于当所述其他节点集中超过X个节点集对所述共识块的信息确认成功时,将所述共识块链接上主链;所述X为等于或大于1的整数。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210608434.4A CN115001809A (zh) | 2022-05-31 | 2022-05-31 | 区块链网络共识方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210608434.4A CN115001809A (zh) | 2022-05-31 | 2022-05-31 | 区块链网络共识方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115001809A true CN115001809A (zh) | 2022-09-02 |
Family
ID=83031874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210608434.4A Pending CN115001809A (zh) | 2022-05-31 | 2022-05-31 | 区块链网络共识方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115001809A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
EP3701666A2 (en) * | 2019-09-05 | 2020-09-02 | Alibaba Group Holding Limited | System and method for deleting node in blockchain network |
CN112487491A (zh) * | 2020-10-31 | 2021-03-12 | 远光软件股份有限公司 | 一种区块链系统的控制方法及相关装置 |
CN113127569A (zh) * | 2021-05-11 | 2021-07-16 | 中国工商银行股份有限公司 | 用于区块链系统的共识方法、装置、电子设备及存储介质 |
CN113568974A (zh) * | 2021-07-23 | 2021-10-29 | 中信银行股份有限公司 | 基于区块链系统的分片共识方法、设备以及可读存储介质 |
WO2021244208A1 (zh) * | 2020-06-01 | 2021-12-09 | 腾讯科技(深圳)有限公司 | 区块链的提案消息处理方法、装置、设备以及存储介质 |
-
2022
- 2022-05-31 CN CN202210608434.4A patent/CN115001809A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
EP3701666A2 (en) * | 2019-09-05 | 2020-09-02 | Alibaba Group Holding Limited | System and method for deleting node in blockchain network |
WO2021244208A1 (zh) * | 2020-06-01 | 2021-12-09 | 腾讯科技(深圳)有限公司 | 区块链的提案消息处理方法、装置、设备以及存储介质 |
CN112487491A (zh) * | 2020-10-31 | 2021-03-12 | 远光软件股份有限公司 | 一种区块链系统的控制方法及相关装置 |
CN113127569A (zh) * | 2021-05-11 | 2021-07-16 | 中国工商银行股份有限公司 | 用于区块链系统的共识方法、装置、电子设备及存储介质 |
CN113568974A (zh) * | 2021-07-23 | 2021-10-29 | 中信银行股份有限公司 | 基于区块链系统的分片共识方法、设备以及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
CN109361740B (zh) | 一种区块链的区块生成方法、装置、设备和介质 | |
CN112685796B (zh) | 一种基于区块链的区块共识方法以及相关设备 | |
CN108111314B (zh) | 数字证书的生成和校验方法及设备 | |
CN107171810B (zh) | 区块链的验证方法及装置 | |
US20180308091A1 (en) | Fairness preserving byzantine agreements | |
CN111682942B (zh) | 一种应用于许可链的二元加权拜占庭容错共识方法 | |
CN111061769B (zh) | 一种区块链系统的共识方法及相关设备 | |
CN109525636B (zh) | 基于Raft算法的区块链共识方法 | |
CN110417502B (zh) | 一种区块链节点时钟共识方法及装置 | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN109194493B (zh) | 一种信息管理系统、方法及装置 | |
CN111314172A (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN109586949B (zh) | 区块生成方法及计算机存储介质 | |
CN113064764B (zh) | 在区块链系统中执行区块的方法及装置 | |
CN114422155B (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
CN115225639B (zh) | 共识可信集群的变更方法、装置、计算机设备及介质 | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN111679978B (zh) | 一种程序测试方法、程序测试装置、电子设备及存储介质 | |
CN112398949A (zh) | 交易确认方法、系统、装置和计算机设备 | |
CN110417833B (zh) | 基于区块链的数据处理方法、装置及存储介质 | |
CN114090682A (zh) | 一种多通道联盟链上链方法、装置、设备及存储介质 | |
CN112040015B (zh) | 一种共识节点列表生成方法及相关装置 | |
CN111061813B (zh) | 用于区块链网络中的数据同步的方法、装置和计算设备 | |
CN111131329A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220902 |