CN113242306B - 一种区块链的共识方法和装置 - Google Patents
一种区块链的共识方法和装置 Download PDFInfo
- Publication number
- CN113242306B CN113242306B CN202110528971.3A CN202110528971A CN113242306B CN 113242306 B CN113242306 B CN 113242306B CN 202110528971 A CN202110528971 A CN 202110528971A CN 113242306 B CN113242306 B CN 113242306B
- Authority
- CN
- China
- Prior art keywords
- consensus
- transaction set
- current node
- result
- blockchain
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012545 processing Methods 0.000 claims abstract description 77
- 238000012795 verification Methods 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010200 validation analysis Methods 0.000 claims 2
- 230000008569 process Effects 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
- 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/3236—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 using cryptographic hash functions
-
- 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)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Development 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
本发明公开了一种区块链的共识方法和装置,涉及计算机技术领域。该方法的一个具体实施方式包括:对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果,以当前节点的交易集合处理结果作为共识元素,在包括当前节点在内的区块链各节点之间完成共识,得到共识结果,共识结果为区块链的其中一个节点的交易集合处理结果,根据共识结果获取对应的交易集合,以执行与区块链状态相关的操作。该实施方式能够降低网络带宽、机器性能等因素对共识过程的限制,降低共识压力,缩短共识过程,提高了区块链性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种区块链的共识方法和装置。
背景技术
在区块链,特别是联盟链中,对链性能的要求通常会比较高,所使用的共识算法往往决定了链的性能上限,联盟链中常用的无论是PBFT(拜占庭容错)类还是PoS(proof ofstake,权益证明)类的共识方案,链的共识模块通常是对链正确的最新状态(通常包括交易集合及执行结果)进行共识,从而在节点之间达成一致的最新状态,所以共识元素包含交易集合、状态生成(交易执行)以及状态正确性的验证。当有大量交易时,这三部分的共识过程会极大地影响共识过程,包括大量交易数据的传播、执行和验证,由于网络带宽、机器性能的限制,联盟链的性能也受到极大的限制。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
包括大量交易数据的传播、执行和验证,共识过程受网络带宽、机器性能等因素的限制较大,共识压力大、共识过程长,降低了区块链性能。
发明内容
有鉴于此,本发明实施例提供一种区块链的共识方法和装置,能够实现轻量的共识方式,降低网络带宽、机器性能等因素对共识过程的限制,降低共识压力,缩短共识过程,提高了区块链性能。
为实现上述目的,根据本发明实施例的一个方面,提供了一种区块链的共识方法。
一种区块链的共识方法,包括:对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果;以所述当前节点的交易集合处理结果作为共识元素,在包括所述当前节点在内的区块链各节点之间完成共识,得到共识结果,所述共识结果为区块链的其中一个节点的交易集合处理结果;根据所述共识结果获取对应的交易集合,基于获取的交易集合执行与区块链状态相关的操作。
可选地,所述对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果,包括:将所述当前节点采集的交易集合组装为区块,并对所述区块进行哈希处理,以生成区块哈希值,作为所述当前节点的交易集合处理结果。
可选地,所述基于获取的交易集合执行与区块链状态相关的操作,包括:基于根据所述共识结果获取的交易集合,异步执行区块链状态验证操作。
可选地,所述异步执行区块链状态验证操作之后,还包括:在区块链状态验证通过后,将根据所述共识结果获取的交易集合,异步存储至区块链。
可选地,所述异步执行区块链状态验证操作之前,还包括:基于根据所述共识结果获取的交易集合,异步执行区块链状态生成操作。
可选地,所述根据所述共识结果获取对应的交易集合,包括:在所述共识结果与所述当前节点的交易集合处理结果相同的情况下,从所述当前节点获取所述当前节点采集的交易集合;在所述共识结果与所述当前节点的交易集合处理结果不同的情况下,从生成所述共识结果的其他节点获取所述共识结果对应的交易集合,所述其他节点不同于所述当前节点。
可选地,所述从生成所述共识结果的其他节点获取所述共识结果对应的交易集合,包括:从生成所述共识结果的其他节点中,获取与所述共识结果对应,且在所述当前节点缺失的交易;根据所述当前节点中与所述共识结果对应的交易,以及获取到的在所述当前节点缺失的交易,得到所述共识结果对应的交易集合。
根据本发明实施例的另一方面,提供了一种区块链的共识装置。
一种区块链的共识装置,包括:管理模块,用于对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果;共识模块,用于以所述当前节点的交易集合处理结果作为共识元素,在包括所述当前节点在内的区块链各节点之间完成共识,得到共识结果,所述共识结果为区块链的其中一个节点的交易集合处理结果;所述管理模块还用于根据所述共识结果获取对应的交易集合;状态操作模块,用于基于获取的交易集合执行与区块链状态相关的操作。
可选地,所述管理模块还用于:将所述当前节点采集的交易集合组装为区块,并对所述区块进行哈希处理,以生成区块哈希值,作为所述当前节点的交易集合处理结果。
可选地,所述状态操作模块包括状态验证子模块,用于:基于根据所述共识结果获取的交易集合,异步执行区块链状态验证操作。
可选地,所述状态验证子模块还用于:在区块链状态验证通过后,将根据所述共识结果获取的交易集合,异步存储至区块链。
可选地,所述状态操作模块还包括状态生成子模块,用于:基于根据所述共识结果获取的交易集合,异步执行区块链状态生成操作。
可选地,所述管理模块还用于:在所述共识结果与所述当前节点的交易集合处理结果相同的情况下,从所述当前节点获取所述当前节点采集的交易集合;在所述共识结果与所述当前节点的交易集合处理结果不同的情况下,从生成所述共识结果的其他节点获取所述共识结果对应的交易集合,所述其他节点不同于所述当前节点。
可选地,所述管理模块还用于:从生成所述共识结果的其他节点中,获取与所述共识结果对应,且在所述当前节点缺失的交易;根据所述当前节点中与所述共识结果对应的交易,以及获取到的在所述当前节点缺失的交易,得到所述共识结果对应的交易集合。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的区块链的共识方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的区块链的共识方法。
上述发明中的一个实施例具有如下优点或有益效果:对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果,以当前节点的交易集合处理结果作为共识元素,在包括当前节点在内的区块链各节点之间完成共识,得到共识结果,共识结果为区块链的其中一个节点的交易集合处理结果,根据共识结果获取对应的交易集合,以执行与区块链状态相关的操作。能够实现轻量的共识方式,降低网络带宽、机器性能等因素对共识过程的限制,降低共识压力,缩短共识过程,提高了区块链性能。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的区块链的共识方法的主要步骤示意图;
图2是根据本发明一个实施例的区块链的共识装置的主要模块示意图;
图3是根据本发明一个实施例的区块链的共识装置的结构示意图;
图4是根据本发明一个实施例的区块链的共识装置的工作流程示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一个实施例的区块链的共识方法的主要步骤示意图。
如图1所示,本发明一个实施例的区块链的共识方法主要包括如下的步骤S101至步骤S103。
步骤S101:对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果;
步骤S102:以当前节点的交易集合处理结果作为共识元素,在包括当前节点在内的区块链各节点之间完成共识,得到共识结果,共识结果为区块链的其中一个节点的交易集合处理结果;
步骤S103:根据共识结果获取对应的交易集合,基于获取的交易集合执行与区块链状态相关的操作。
当前节点即当前执行区块链的共识方法的区块链节点。节点是区块链的基本组成部分,各节点共同形成区块链网络并对外提供相关服务。
本发明实施例的区块链可以是联盟链、公链、私链中的任一种,区块链的每一节点都可以按照本发明实施例的区块链的共识方法来进行共识。
对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果,具体可以包括:将当前节点采集的交易集合组装(例如打包)为区块,并对区块进行哈希处理(即把任意长度的输入通过哈希算法变换成固定长度的输出的处理),以生成区块哈希值,作为当前节点的交易集合处理结果。
本发明实施例通过重构共识元素(共识元素即参与共识的元素),使共识元素由现有技术中的三元素(交易集合、状态生成、状态验证)变成了单元素(交易集合处理结果,例如区块哈希值),从而通过共识算法(即:使多个分布式节点之间达成一致性状态的算法)在各节点之间对区块哈希值达成一致性即可,不涉及对大量交易数据的传播、执行和验证,实现了轻量的共识方式,在不影响共识的安全稳定情况下,从而能够极大地提高共识性能。并且,由于区块哈希值是长度固定的,因此大大降低了网络带宽对共识的限制。
基于获取的交易集合执行与区块链状态相关的操作,具体可以包括:基于根据共识结果获取的交易集合,异步执行区块链状态验证操作。
由于区块链状态验证操作是异步执行的,因此,在共识操作中剥离了状态验证,缩短了共识的过程,状态验证在共识之外异步进行。
异步执行区块链状态验证操作之后,还可以在区块链状态验证通过后,将根据共识结果获取的交易集合,异步存储至区块链。
基于获取的交易集合执行与区块链状态相关的操作还可以包括:在异步执行区块链状态验证操作之前,基于根据共识结果获取的交易集合,异步执行区块链状态生成操作。
由于区块链状态生成操作是异步执行的,因此,在共识操作中剥离了状态生成,缩短了共识的过程,状态生成在共识之外异步进行。
上述状态生成、状态验证中的状态是指区块链账本的状态。
在一个实施例中,根据共识结果获取对应的交易集合,包括:在共识结果与当前节点的交易集合处理结果相同的情况下,从当前节点获取当前节点采集的交易集合;在共识结果与当前节点的交易集合处理结果不同的情况下,从生成共识结果的其他节点获取共识结果对应的交易集合,其他节点不同于当前节点。
在一个实施例中,从生成共识结果的其他节点获取共识结果对应的交易集合,具体包括:从生成共识结果的其他节点中,获取与共识结果对应,且在当前节点缺失的交易;根据当前节点中与共识结果对应的交易,以及获取到的在当前节点缺失的交易,得到共识结果对应的交易集合。
在另一个实施例中,从生成共识结果的其他节点获取共识结果对应的交易集合,可以不检查当前节点缺失的交易,而直接从生成共识结果的其他节点获取共识结果对应的交易集合的全部交易。
如果一个交易属于某个交易集合,且该交易集合经所在的区块链节点进行预设处理,而生成交易集合处理结果之后,通过共识,被作为共识结果,那么该交易即为共识结果对应的交易,该交易集合即为该共识结果对应的交易集合。
图2是根据本发明一个实施例的区块链的共识装置的主要模块示意图。
如图2所示,本发明一个实施例的区块链的共识装置200主要包括:管理模块201、共识模块202、状态操作模块203。
区块链的共识装置200位于区块链节点中,区块链的每一个节点都可以包含一个区块链的共识装置200。
管理模块201,用于对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果;
共识模块202,用于以所述当前节点的交易集合处理结果作为共识元素,在包括所述当前节点在内的区块链各节点之间完成共识,得到共识结果,所述共识结果为区块链的其中一个节点的交易集合处理结果;
管理模块201还用于根据所述共识结果获取对应的交易集合;
状态操作模块203,用于基于获取的交易集合执行与区块链状态相关的操作。
在一个实施例中,管理模块201具体可以用于:将所述当前节点采集的交易集合组装为区块,并对所述区块进行哈希处理,以生成区块哈希值,作为所述当前节点的交易集合处理结果。
状态操作模块203可以包括状态验证子模块,用于:基于根据所述共识结果获取的交易集合,异步执行区块链状态验证操作。
状态验证子模块还用于:在区块链状态验证通过后,将根据所述共识结果获取的交易集合,异步存储至区块链。
在一个实施例中,状态操作模块203还可以包括状态生成子模块,用于:基于根据所述共识结果获取的交易集合,异步执行区块链状态生成操作。
管理模块201具体还可以用于:在所述共识结果与所述当前节点的交易集合处理结果相同的情况下,从所述当前节点获取所述当前节点采集的交易集合;在所述共识结果与所述当前节点的交易集合处理结果不同的情况下,从生成所述共识结果的其他节点获取所述共识结果对应的交易集合,所述其他节点不同于所述当前节点。
在一个实施例中,管理模块201具体可以用于:从生成所述共识结果的其他节点中,获取与所述共识结果对应,且在所述当前节点缺失的交易;根据所述当前节点中与所述共识结果对应的交易,以及获取到的在所述当前节点缺失的交易,得到所述共识结果对应的交易集合。
在另一个实施例中,管理模块201可以不检查当前节点缺失的交易,而直接从生成共识结果的其他节点获取共识结果对应的交易集合的全部交易。
本发明实施例的区块链节点还可以包括交易池和网络模块,上述管理模块201、共识模块202、状态操作模块203的功能以及交易池和网络模块,在下文将进一步详细介绍。
图3是根据本发明一个实施例的区块链的共识装置的结构示意图。
如图3所示,本发明一个实施例的区块链的共识装置包括异步区块管理模块301、通用共识模块302、异步状态生成模块303、异步状态验证模块304。
异步区块管理模块301与管理模块201的功能相同,具体用于收集交易集合,并根据交易集合生成区块,以及对区块进行哈希处理以生成待共识的区块哈希值,将区块哈希值发给通用共识模块302,同时存储区块哈希值与具体交易集合(或交易集合的区块)之间的映射关系,异步区块管理模块301还用于请求及发送缺失的区块哈希值对应的具体交易集合。
通用共识模块302与共识模块202的功能相同,具体用于获取待共识的区块哈希值,并经过相应共识算法完成共识,输出确定性的一致的区块哈希值(即共识结果)。
异步状态生成模块303与状态操作模块203中的状态生成子模块的功能相同,具体用于根据从通用共识模块302得到的共识后的区块哈希值(即共识结果),从异步区块管理模块301获取具体交易集合,以进行区块链最新状态生成。
异步状态验证模块304与状态操作模块203中的状态验证子模块功能相同,具体用于验证区块链最新状态的有效性,若有效,则把具体交易集合写入区块链进行存储,具体地,是将交易集合的区块写入区块链进行存储。
本发明实施例的区块链节点还可以包括交易池和网络模块,本发明实施例的实施例的区块链的共识装置需要与区块链架构中的交易池和网络模块进行交互。
交易池用于存储新交易,并为异步区块管理模块301提供交易集合。
网络模块负责区块链各节点之间的信息传输,同时与异步区块管理模块301交互,以传输请求的区块信息。
通用共识模块302在以当前节点的交易集合处理结果(例如区块哈希值)作为共识元素,在区块链各节点之间完成共识时,也需要通过网络模块与其他节点的通用共识模块交互,以确定共识结果。
通用共识模块302对外提供两个通用的接口,分别用于输出共识后的区块哈希值、获取待共识的区块哈希值,具体如表1所示:
表1
异步区块管理模块301包含三个部分的功能:一是维护区块哈希值及具体区块的关系,以区块哈希作为key(键),具体的区块为value(值),可提供区块哈希值与区块的映射,以通过区块哈希值获取具体的区块信息:map(block_hash,block_info);二是获取缺失区块信息:当从通用共识模块302接收共识后的区块哈希值之后,如果本地没有对应的区块信息,则向其他节点请求该区块信息,例如,作为共识结果的区块哈希值不是本节点生成的区块哈希值,那么本节点本地可能不存在对应的交易集合(可以是区块的形式),那么则需要向其他节点请求该区块信息,以获取到对应的交易集合;三是对外提供查询服务,包括处理其他节点的区块信息请求,以及另外模块的请求。
获取区块信息的具体方式如表2所示。
表2
异步状态生成模块303包含两个部分的功能:一是缓存已共识的区块哈希值(即共识结果),由于是异步生成,所以可能存在延后的情况;二是根据链的状态(具体是区块链账本的状态)与已共识的区块哈希值对应的交易集合,生成最新的链的状态。
异步状态验证模块304用于对最新状态的有效性进行验证,包括三个部分的功能:一是缓存已共识的区块哈希值,由于是异步生成,所以可能存在延后的情况;二是验证生成的最新状态的有效性;三是将通过验证的区块信息写入区块链。
本发明实施例通过重新定义共识元素,能够降低共识压力,提高链性能上限,通过拆解共识过程,把与区块链状态相关的操作放在通用共识之外异步的进行,减少了共识过程,进一步提高链性能上限。
需要说明的是,本方案可适用于大部分的联盟链结构,针对不同的场景,在一些实施例中,异步状态生成模块303不是必须的(比如UTXO模型,状态隐含在交易集合中,无需异步状态生成模块)。另外,本发明实施例也适用于公链或私链。
图4是根据本发明一个实施例的区块链的共识装置的工作流程示意图。
图4所示的区块链共识装置的工作流程涉及异步区块管理模块、通用共识模块、异步状态生成模块、异步状态验证模块之间的交互,其中,异步区块管理模块可以是上文实施例的管理模块201或异步区块管理模块301,通用共识模块可以是上文实施例的共识模块202或通用共识模块302,异步状态生成模块可以是上文实施例的状态生成子模块或异步状态生成模块303,异步状态验证模块可以是上文实施例的状态验证子模块或异步状态验证模块304。
如图4所示,工作流程包括:异步区块管理模块收集交易集合并组装为区块,然后计算区块哈希值,将区块哈希值发送到通用共识模块,异步区块管理模块收集交易集合可以是收集从应用端或其他节点转发的交易的集合;通用共识模块完成对区块哈希值的共识,得到共识区块(即作为共识结果的区块哈希值对应的区块);异步状态生成模块获取共识区块的具体区块交易集合,生成区块链最新的状态(账本的状态);异步状态验证模块验证状态的有效性,验证通过后,将交易集合写入区块链进行存储。在上述工作流程中,通用共识模块还负责把共识后的区块哈希值(即共识结果)发送给其他各个模块进行异步处理。异步区块管理模块还负责维护共识后的区块哈希值及具体的交易集合的关系,为异步状态生成模块和异步状态验证模块提供具体区块的交易数据,其中,在缺失交易集合的情况下,异步区块管理模块需要获取缺失的区块的交易集合。异步状态生成模块根据通用共识模块输出的区块哈希值,从异步区块管理模块获取具体的区块交易数据,以进行区块链状态生成。异步状态验证模块根据通用共识模块输出的区块哈希值,从异步区块管理模块获取具体的区块交易数据,以进行区块链状态验证,若验证通过,则负责进行具体区块的交易集合的写入。
通用共识模块不断地从异步区块管理模块获取区块哈希值,进行共识,异步区块管理模块异步地管理共识的区块哈希值以及区块的交易集合,包括向其他节点请求缺失的交易或交易集合(交易集合可以是区块形式),异步状态生成模块缓存共识后的区块哈希值,从异步区块管理模块获取具体的区块交易集合,异步地生成最新的状态,异步状态验证模块缓存共识后的区块哈希值,从异步区块管理模块获取具体的区块交易集合,异步地验证最新的状态,并将交易集合异步地写入区块链,以进行存储。
另外,在本发明实施例中区块链的共识装置的具体实施内容,在上面所述区块链的共识方法中已经详细说明了,故在此重复内容不再说明。
图5示出了可以应用本发明实施例的区块链的共识方法或区块链的共识装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的信息查询请求等数据进行分析等处理,并将处理结果(例如交易信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的区块链的共识方法一般由服务器505执行,相应地,区块链的共识装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统600的结构示意图。图6示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括管理模块、共识模块、状态操作模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,管理模块还可以被描述为“用于对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果;以所述当前节点的交易集合处理结果作为共识元素,在包括所述当前节点在内的区块链各节点之间完成共识,得到共识结果,所述共识结果为区块链的其中一个节点的交易集合处理结果;根据所述共识结果获取对应的交易集合,基于获取的交易集合执行与区块链状态相关的操作。
根据本发明实施例的技术方案,对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果,以当前节点的交易集合处理结果作为共识元素,在包括当前节点在内的区块链各节点之间完成共识,得到共识结果,共识结果为区块链的其中一个节点的交易集合处理结果,根据共识结果获取对应的交易集合,以执行与区块链状态相关的操作。能够实现轻量的共识方式,降低网络带宽、机器性能等因素对共识过程的限制,降低共识压力,缩短共识过程,提高了区块链性能。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种区块链的共识方法,其特征在于,包括:
对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果;
以所述当前节点的交易集合处理结果作为共识元素,在包括所述当前节点在内的区块链各节点之间完成共识,在共识时与区块链的其他节点进行交互以得到共识结果,所述共识结果为区块链的其中一个节点的交易集合处理结果,所述其他节点不同于所述当前节点;
根据所述共识结果获取对应的交易集合,基于获取的交易集合执行与区块链状态相关的操作,包括:基于根据所述共识结果获取的交易集合,异步执行区块链状态验证操作。
2.根据权利要求1所述的方法,其特征在于,所述对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果,包括:
将所述当前节点采集的交易集合组装为区块,并对所述区块进行哈希处理,以生成区块哈希值,作为所述当前节点的交易集合处理结果。
3.根据权利要求1所述的方法,其特征在于,所述异步执行区块链状态验证操作之后,还包括:
在区块链状态验证通过后,将根据所述共识结果获取的交易集合,异步存储至区块链。
4.根据权利要求1所述的方法,其特征在于,所述异步执行区块链状态验证操作之前,还包括:
基于根据所述共识结果获取的交易集合,异步执行区块链状态生成操作。
5.根据权利要求1所述的方法,其特征在于,所述根据所述共识结果获取对应的交易集合,包括:
在所述共识结果与所述当前节点的交易集合处理结果相同的情况下,从所述当前节点获取所述当前节点采集的交易集合;
在所述共识结果与所述当前节点的交易集合处理结果不同的情况下,从生成所述共识结果的其他节点获取所述共识结果对应的交易集合。
6.根据权利要求5所述的方法,其特征在于,所述从生成所述共识结果的其他节点获取所述共识结果对应的交易集合,包括:
从生成所述共识结果的其他节点中,获取与所述共识结果对应,且在所述当前节点缺失的交易;
根据所述当前节点中与所述共识结果对应的交易,以及获取到的在所述当前节点缺失的交易,得到所述共识结果对应的交易集合。
7.一种区块链的共识装置,其特征在于,包括:
管理模块,用于对当前节点采集的交易集合进行预设处理,得到当前节点的交易集合处理结果;
共识模块,用于以所述当前节点的交易集合处理结果作为共识元素,在包括所述当前节点在内的区块链各节点之间完成共识,在共识时与区块链的其他节点进行交互以得到共识结果,所述共识结果为区块链的其中一个节点的交易集合处理结果,所述其他节点不同于所述当前节点;
所述管理模块还用于根据所述共识结果获取对应的交易集合;
状态操作模块,用于基于获取的交易集合执行与区块链状态相关的操作;
所述状态操作模块包括状态验证子模块,用于:基于根据所述共识结果获取的交易集合,异步执行区块链状态验证操作。
8.根据权利要求7所述的装置,其特征在于,所述管理模块还用于:
将所述当前节点采集的交易集合组装为区块,并对所述区块进行哈希处理,以生成区块哈希值,作为所述当前节点的交易集合处理结果。
9.根据权利要求7所述的装置,其特征在于,所述状态验证子模块还用于:
在区块链状态验证通过后,将根据所述共识结果获取的交易集合,异步存储至区块链。
10.根据权利要求7所述的装置,其特征在于,所述状态操作模块还包括状态生成子模块,用于:
基于根据所述共识结果获取的交易集合,异步执行区块链状态生成操作。
11.根据权利要求7所述的装置,其特征在于,所述管理模块还用于:
在所述共识结果与所述当前节点的交易集合处理结果相同的情况下,从所述当前节点获取所述当前节点采集的交易集合;
在所述共识结果与所述当前节点的交易集合处理结果不同的情况下,从生成所述共识结果的其他节点获取所述共识结果对应的交易集合。
12.根据权利要求11所述的装置,其特征在于,所述管理模块还用于:
从生成所述共识结果的其他节点中,获取与所述共识结果对应,且在所述当前节点缺失的交易;
根据所述当前节点中与所述共识结果对应的交易,以及获取到的在所述当前节点缺失的交易,得到所述共识结果对应的交易集合。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110528971.3A CN113242306B (zh) | 2021-05-14 | 2021-05-14 | 一种区块链的共识方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110528971.3A CN113242306B (zh) | 2021-05-14 | 2021-05-14 | 一种区块链的共识方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113242306A CN113242306A (zh) | 2021-08-10 |
CN113242306B true CN113242306B (zh) | 2023-08-22 |
Family
ID=77134273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110528971.3A Active CN113242306B (zh) | 2021-05-14 | 2021-05-14 | 一种区块链的共识方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113242306B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111130801A (zh) * | 2019-12-26 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、节点设备及计算机存储介质 |
CN111522822A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置及电子设备 |
CN112598525A (zh) * | 2021-02-26 | 2021-04-02 | 北京全息智信科技有限公司 | 一种智能合约分簇并行的区块链实现方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11138608B2 (en) * | 2018-06-28 | 2021-10-05 | International Business Machines Corporation | Authorizing multiparty blockchain transactions via one-time passwords |
US10911240B2 (en) * | 2018-07-23 | 2021-02-02 | Hitachi, Ltd. | Off-chain blockchain storage with validation |
-
2021
- 2021-05-14 CN CN202110528971.3A patent/CN113242306B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111130801A (zh) * | 2019-12-26 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、节点设备及计算机存储介质 |
CN111522822A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置及电子设备 |
CN112598525A (zh) * | 2021-02-26 | 2021-04-02 | 北京全息智信科技有限公司 | 一种智能合约分簇并行的区块链实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113242306A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019350B (zh) | 基于配置信息的数据查询方法和装置 | |
CN108846753B (zh) | 用于处理数据的方法和装置 | |
CN111277639B (zh) | 一种保持数据一致性的方法和装置 | |
CN111127181B (zh) | 一种凭证记账方法和装置 | |
US11368447B2 (en) | Oauth2 SAML token service | |
CN111857888B (zh) | 一种交易处理方法及装置 | |
CN108933695B (zh) | 用于处理信息的方法和装置 | |
CN109873863B (zh) | 服务的异步调用方法和装置 | |
CN110909022A (zh) | 一种数据查询方法和装置 | |
US11368297B2 (en) | Method and apparatus for updating digital certificate | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN112988311A (zh) | 一种基于web服务器的线上实验方法 | |
CN113242306B (zh) | 一种区块链的共识方法和装置 | |
CN109413212B (zh) | 用于处理请求的方法和装置 | |
CN113536748A (zh) | 一种生成图表数据的方法和装置 | |
EP4365808A1 (en) | Data verification method and apparatus | |
CN110730109A (zh) | 用于生成信息的方法和装置 | |
CN109218339B (zh) | 请求处理方法和装置 | |
CN108898446B (zh) | 用于输出信息的方法和装置 | |
CN113553206A (zh) | 数据事件执行方法、装置、电子设备和计算机可读介质 | |
CN113760929A (zh) | 数据同步方法、装置、电子设备和计算机可读介质 | |
CN109587224B (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN113342837B (zh) | 数据发送方法、装置、电子设备和计算机可读介质 | |
CN111291038B (zh) | 一种数据查询方法及装置 | |
CN112468543B (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 |