CN110648137B - 一种区块处理方法和节点以及系统 - Google Patents
一种区块处理方法和节点以及系统 Download PDFInfo
- Publication number
- CN110648137B CN110648137B CN201910906176.6A CN201910906176A CN110648137B CN 110648137 B CN110648137 B CN 110648137B CN 201910906176 A CN201910906176 A CN 201910906176A CN 110648137 B CN110648137 B CN 110648137B
- Authority
- CN
- China
- Prior art keywords
- node
- block
- transaction
- transaction information
- result
- 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
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
-
- 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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- 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/1089—Hierarchical topologies
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开一种区块处理方法和节点以及系统。当至少一个客户端发送交易信息到区块链时,领导者节点将客户端发送的交易信息放入到领导者节点的交易队列中;领导者节点检查交易队列是否满足预设的出块条件;当交易队列满足出块条件时,本申请实施例中可以将未验证的系列交易打包成一个备选区块,通过bft‑Raft算法领导者节点广播给从属者节点,领导者节点和从属者节点作为共识节点,可以对备选区块验证过程中同时验证和执行交易,对交易验证执行结果标记为成功或失败,最后所有共识节点对备选区块的验证结果进行共识,共识成功后所有节点保存备选区块,并保存备选区块中标记为成功的交易,提升区块产生的速度以及交易处理的性能。
Description
本申请为2019年4月26日提交中国专利局、申请号为201910345985.4、发明名称为“一种区块处理方法和节点以及系统”的中国专利申请的分案申请。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种区块处理方法和节点以及系统。
背景技术
用户可以通过客户端发起交易,在交易中记录的全部交易信息会被打包到一个区块中进行存储。随着持续的交易扩大,一个个区块相互链接,形成了区块链,区块链也称为账本。区块链是一个开放性的网络账本,区块链中可以包括有多个区块(Block)。区块链具有多种形式,例如可以包括公链、私链和联盟链,公链可以包括:比特币系列、以太坊系列等。
目前存在一种用于公链的出块方法,具体可以包括如下流程:
当新的交易到达区块链中的某一节点(例如节点1)后,该节点1首先校验交易是否合法,然后将合法的交易放到本地交易池,并在区块链中向其它节点广播交易信息。
当新的区块生成周期到来后,该节点1从交易池中获取交易列表,然后将该交易列表打包成备选区块,对该备选区块进行签名后,再通过区块链将备选区块广播出去。
区块链中的所有节点对收到的备选区块进行共识,在共识成功后保存该备选区块,最后由节点1执行备选区块中的交易。
上述的出块方法适用于公链时,能够保证区块链的底层数据安全。但是在联盟链和私链中,安全因素的校验可以分割到多层,而不局限于区块链底层。若前述的出块方法用作联盟链或者私链时,存在出块所需的时间过长的问题,造成交易不能被及时处理而导致堆积,因而容易造成区块链的拥堵问题。
发明内容
本申请实施例提供了一种区块处理方法和节点以及系统,用于提升区块产生的速度以及交易处理的性能。
本申请实施例提供以下技术方案:
一方面,本申请实施例提供一种区块处理方法,所述方法应用于区块链中的第一节点,所述区块链中还包括第二节点,所述方法包括:
当所述第一节点为领导者节点、所述第二节点为从属者节点时,所述第一节点将所述第一节点的交易队列中的第一交易信息打包到备选区块,以及通过所述区块链将所述备选区块广播出去;
所述第一节点校验所述备选区块中的第一交易信息以生成第一校验结果,以及执行所述备选区块中的第一交易信息以生成第一交易执行结果;
所述第一节点通过所述区块链将第一节点处理结果广播出去,所述第一节点处理结果包括:所述第一校验结果和所述第一交易执行结果;
所述第一节点接收所述第二节点通过所述区块链广播的第二节点处理结果,所述第二节点处理结果包括:所述第二节点通过校验所述备选区块中的第一交易信息生成的第二校验结果,以及通过执行所述备选区块中的第一交易信息生成的第二交易执行结果;
所述第一节点根据所述第一节点处理结果和所述第二节点处理结果对所述备选区块进行共识,然后所述第一节点在所述备选区块共识成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第一交易执行结果。
另一方面,本申请实施例还提供一种区块处理方法,所述方法应用于区块链中的第二节点,所述区块链中还包括第一节点,所述方法包括:
当所述第一节点为领导者节点、所述第二节点为从属者节点时,所述第二节点接收所述第一节点通过所述区块链广播的备选区块,以及从所述备选区块中获取第一交易信息;
所述第二节点校验所述备选区块中的第一交易信息以生成第二校验结果,以及执行所述备选区块中的第一交易信息以生成第二交易执行结果;
所述第二节点通过所述区块链将第二节点处理结果广播出去,所述第二节点处理结果包括:所述第二校验结果和所述第二交易执行结果;
所述第二节点在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果。
另一方面,本申请实施例还提供一种区块链节点,所述区块链节点具体为区块链中的第一节点,所述第一节点包括:处理模块和收发模块,其中,
当所述第一节点为领导者节点、所述第二节点为从属者节点时,所述处理模块,用于将所述第一节点的交易队列中的第一交易信息打包到备选区块;
所述收发模块,用于通过所述区块链将所述备选区块广播出去;
所述处理模块,还用于校验所述备选区块中的第一交易信息以生成第一校验结果,以及执行所述备选区块中的第一交易信息以生成第一交易执行结果;
所述收发模块,还用于通过所述区块链将第一节点处理结果广播出去,所述第一节点处理结果包括:所述第一校验结果和所述第一交易执行结果;
所述收发模块,还用于接收所述第二节点通过所述区块链广播的第二节点处理结果,所述第二节点处理结果包括:所述第二节点通过校验所述备选区块中的第一交易信息生成的第二校验结果,以及通过执行所述备选区块中的第一交易信息生成的第二交易执行结果;
所述处理模块,还用于根据所述第一节点处理结果和所述第二节点处理结果对所述备选区块进行共识,然后所述第一节点在所述备选区块共识成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第一交易执行结果。
另一方面,本申请实施例还提供一种区块链节点,所述区块链节点具体为区块链中的第二节点,所述第二节点包括:处理模块和收发模块,其中,
当所述第一节点为领导者节点、所述第二节点为从属者节点时,所述收发模块,用于接收所述第一节点通过所述区块链广播的备选区块;
所述处理模块,用于从所述备选区块中获取第一交易信息;
所述处理模块,还用于校验所述备选区块中的第一交易信息以生成第二校验结果,以及执行所述备选区块中的第一交易信息以生成第二交易执行结果;
所述收发模块,还用于通过所述区块链将第二节点处理结果广播出去,所述第二节点处理结果包括:所述第二校验结果和所述第二交易执行结果;
所述处理模块,还用于在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果。
另一方面,本申请实施例提供一种区块链节点,所述区块链节点具体为区块链中的第一节点,所述第一节点包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得第一节点执行如前述一方面中任一项的方法。
另一方面,本申请实施例提供一种区块链节点,所述区块链节点具体为区块链中的第二节点,所述第二节点包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得第二节点执行如前述另一方面中任一项的方法。
另一方面,本申请实施例提供一种区块处理系统,所述区块处理系统包括:第一节点和第二节点;
所述第一节点,用于执行前述一方面中所述的区块处理方法;
所述第二节点,用于执行前述另一方面中所述的区块处理方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
在本申请实施例中,当第一节点为领导者节点、第二节点为从属者节点时,第一节点将第一节点的交易队列中的第一交易信息打包到备选区块,以及通过区块链将备选区块广播出去,然后第一节点校验备选区块中的第一交易信息以生成第一校验结果,以及执行备选区块中的第一交易信息以生成第一交易执行结果,接下来第一节点通过区块链将第一节点处理结果广播出去,第一节点处理结果包括:第一校验结果和第一交易执行结果,接下来第一节点接收第二节点通过区块链广播的第二节点处理结果,第一节点根据第一节点处理结果和第二节点处理结果对备选区块进行共识,然后第一节点在备选区块共识成功时保存备选区块,以及在第一交易信息执行成功时保存第一交易执行结果。本申请实施例中第一节点作为领导者节点,第一节点可以通过交易队列来缓存待处理的交易信息,对交易队列中的交易信息先打包到备选区块,就可以广播该备选区块,使得区块链中的从属者节点可以进行交易验证和交易执行,广播该备选区块之后第一节点就可以进行如下处理:交易验证和交易执行,然后第一节点可以广播第一节点处理结果,第一节点根据区块链中每个节点的处理结果进行备选区块的共识,在共识成功时再执行区块保存。本申请实施例中改变了出块的顺序,使得区块链中的所有节点都可以进行交易验证和交易执行,因此可以提升区块产生的速度以及交易处理的性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1本申请实施例提供的一种区块处理系统的组成结构示意图;
图2为本申请实施例提供的一种领导者节点和从属者节点之间的一种交互流程示意图;
图3为本申请实施例提供的由领导者节点执行的一种区块处理方法的流程方框示意图;
图4为本申请实施例提供的由从属者节点执行的一种区块处理方法的流程方框示意图;
图5为本申请实施例提供的一种出块流程的应用场景示意图;
图6为本申请实施例提供的Raft数据提交流程的示意图;
图7为本申请实施例提供的Bft-Raft数据提交流程的示意图;
图8为本申请实施例提供的一种第一节点的组成结构示意图;
图9为本申请实施例提供的一种第二节点的组成结构示意图;
图10为本申请实施例提供的一种区块处理方法应用于服务器的组成结构示意图;
图11为本申请实施例提供的另一种区块处理方法应用于服务器的组成结构示意图。
具体实施方式
本申请实施例提供了一种区块处理方法和节点以及系统,用于提升区块产生的速度以及交易处理的性能。
为使得本申请实施例的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请实施例一部分实施例,而非全部实施例。基于本申请实施例中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本申请实施例保护的范围。
本申请实施例的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例提供的区块处理方法可应用于区块处理系统,该区块处理处理系统属于区块链中的一部分。如图1所示,在该区块处理系统中可以包括:至少两个区块链节点。例如可以包括:第一节点和第二节点。其中,第一节点为领导者(Leader)节点,第二节点为从属者(Follower)节点,第一节点和第二节点之间可以进行相互的通信,例如通过无线网络或者有线网络进行通信。具体的,在区块处理系统可以通过节点角色选择确定出领导者节点和从属者节点,例如从区块链的全部节点中运行Raft算法,竞选出Leader节点和Follower节点,其中,在区块链中Leader节点只有一个,而区块链中可以有一个或者多个的Follower节点。Raft算法是一种分布式共识算法,保证多个节点在状态上达成一致。正常工作下,节点要么处于Leader角色,要么处于Follower角色,Follower角色追随Leader角色的状态。不限定的是,本申请实施例中节点角色选择所使用的算法不局限于Raft算法,例如还可以使用类BFT算法进行节点角色选择,例如PBFT算法等,此处不做限定。
首先对本申请实施例中区块处理系统中的领导者节点和从属者节点之间的交互流程进行举例说明,请参阅图2所示,本申请实施例一个实施例提供的区块处理方法,可以包括如下步骤:
201、当第一节点为领导者节点、第二节点为从属者节点时,第一节点将第一节点的交易队列中的第一交易信息打包到备选区块,以及通过区块链将备选区块广播出去。
在本申请实施例中,区块链中通过节点角色选择可以确定出一个领导者节点和至少一个的从属者节点,以第一节点为领导者节点、第二节点为从属者节点为例,第一节点被选举为领导者节点时,该第一节点可以管理一个交易队列,交易队列用于存储客户端发送的交易信息。其中,交易队列中存储的交易信息可以为一个或者多个,该交易信息也可以称为交易。
例如,第一节点将第一节点的交易队列中的第一交易信息打包到备选区块,其中备选区块是准备写到区块链账本的区块,在第一交易信息被打包到备选区块时,第一节点可以通过区块链将备选区块广播出去,第一节点将备选区块广播时,处于该区块链中的所有节点(包括从属者节点和领导者节点)都可以接收到该备选区块。不限定的是,本申请实施例中第一节点在广播之前,还可以进行签名,以防止被广播的信息被篡改。
211、第二节点接收第一节点通过区块链广播的备选区块,以及从备选区块中获取第一交易信息。
在本申请实施例中,第一节点通过区块链将备选区块广播出去时,区块链中的第二节点可以接收到第一节点通过区块链广播的备选区块,不限定的是,区块链中的其它从属者节点也可以接收到该备选区块,例如区块链中的第三节点也可以接收到第一节点发送的备选区块。后续实施例中以第二节点对备选区块以及交易信息进行处理为例,区块链中的其它从属者节点也可以参照第二节点的执行流程,此处不做限定。
第二节点从第一节点获取到备选区块之后,第二节点可以从该备选区块中获取到第一节点打包到备选区块中的第一交易信息。
212、第二节点校验备选区块中的第一交易信息以生成第二校验结果,以及执行备选区块中的第一交易信息以生成第二交易执行结果。
在本申请实施例中,第二节点从备选区块中获取第一交易信息之后,第二节点可以对第一交易信息进行校验,还可以对该第一交易信息进行交易执行操作。其中,第二节点对第一交易信息进行的校验也可以称为合法性校验。该合法性校验可以包括如下校验方式的至少一种:校验交易数据格式和参数、校验交易列表是否有重复的交易、校验交易的输入是否合法和是否双花、校验交易的签名是否正确、校验交易的输入数额是否大于等于输出数额。第二节点执行第一交易信息可以生成第二交易执行结果,执行交易的场景可以有多种,此处不做限定。
202、第一节点校验备选区块中的第一交易信息以生成第一校验结果,以及执行备选区块中的第一交易信息以生成第一交易执行结果。
在本申请实施例中,第一节点从备选区块中获取第一交易信息之后,第一节点可以对第一交易信息进行校验,还可以对该第一交易信息进行交易执行操作。其中,第一节点对第一交易信息进行的校验也可以称为合法性校验。该合法性校验可以包括如下校验方式的至少一种:校验交易数据格式和参数、校验交易列表是否有重复的交易、校验交易的输入是否合法和是否双花、校验交易的签名是否正确、校验交易的输入数额是否大于等于输出数额。第一节点执行第一交易信息可以生成第一交易执行结果,执行交易的场景可以有多种,此处不做限定。
203、第一节点通过区块链将第一节点处理结果广播出去,第一节点处理结果包括:第一校验结果和第一交易执行结果。
在本申请实施例中,第一节点在完成交易校验和交易执行之后,第一节点可以生成第一节点处理结果,第一节点处理结果包括:第一校验结果和第一交易执行结果。第一节点通过区块链将第一节点处理结果广播出去,处于该区块链中的所有节点(包括从属者节点和领导者节点)都可以接收到该第一节点处理结果。
213、第二节点通过区块链将第二节点处理结果广播出去,第二节点处理结果包括:第二校验结果和第二交易执行结果。
在本申请实施例中,第二节点在完成交易校验和交易执行之后,第二节点可以生成第二节点处理结果,第二节点处理结果包括:第二校验结果和第二交易执行结果。第二节点通过区块链将第二节点处理结果广播出去,处于该区块链中的所有节点(包括从属者节点和领导者节点)都可以接收到该第二节点处理结果。
需要说明的是,前述实施例中步骤202至步骤203的执行顺序与步骤211至步骤213的执行顺序没有先后顺序之分,图2中只是一种可行的实现方案,不作为对本申请实施例的限定。
204、第一节点接收第二节点通过区块链广播的第二节点处理结果,第二节点处理结果包括:第二节点通过校验备选区块中的第一交易信息生成的第二校验结果,以及通过执行备选区块中的第一交易信息生成的第二交易执行结果。
在本申请实施例中,第二节点通过区块链将第二节点处理结果广播出去,区块链中的第一节点可以接收第二节点通过区块链广播的第二节点处理结果。
205、第一节点根据第一节点处理结果和第二节点处理结果对备选区块进行共识,然后第一节点在备选区块共识成功时保存备选区块,以及在第一交易信息执行成功时保存第一交易执行结果。
在本申请实施例中,第一节点通过步骤204接收到第二节点广播的第二节点处理结果,第一节点可以根据第一节点处理结果和第二节点处理结果对备选区块进行共识,例如第一节点可以使用分布式共识算法进行共识,该分布式共识算法可以是Raft算法,另外,本申请实施例中分布式共识算法也可以是Bft-Raft算法,Bft-Raft算法是一种兼容了拜占庭容错的Raft算法,拜占庭容错(Bft)用于处理由于硬件错误、网络故障以及网络节点恶意攻击而导致节点可能出现不可预料的失效行为。
本申请实施例中,第一节点通过对备选区块进行共识,然后第一节点在备选区块共识成功时保存备选区块,从而完成备选区块的出块,第一节点还可以在第一交易信息执行成功时保存第一交易执行结果,以被后续处理流程中能够查询到第一交易信息对应的第一交易执行结果。
在本申请的一些实施例中,步骤205中第一节点在备选区块共识成功时保存备选区块包括:
在备选区块共识成功时,第一节点保存备选区块的头部信息,以及保存校验成功的第一交易信息。
其中,在备选区块中打包有第一交易信息,第一节点对备选区块进行共识之后,第一节点在备选区块共识成功时,第一节点具体可以保存备选区块的头部信息,以及保存校验成功的第一交易信息。其中,备选区块的头部信息是从备选区块的数据格式来说的,例如可以包括上一个区块的哈希(hash)值、默克尔树根、状态根、收据根、节点的签名、随机数值(nonce)等等。具体可以根据应用场景来确定该备选区块的头部信息,此处不做限定。
214、第二节点在第一交易信息验证成功时保存备选区块,以及在第一交易信息执行成功时保存第二交易执行结果。
在本申请实施例中,第二节点通过区块链将第二节点处理结果广播出去之后,第二节点可以根据第一交易信息是否验证成功来确定是否保存该备选区块,若第一交易信息验证成功时第二节点保存备选区块,从而完成备选区块的出块,第二节点还可以在第一交易信息执行成功时保存第二交易执行结果,以被后续处理流程中能够查询到第一交易信息对应的第二交易执行结果。
通过以上实施例对本申请实施例的描述可知,当第一节点为领导者节点、第二节点为从属者节点时,第一节点将第一节点的交易队列中的第一交易信息打包到备选区块,以及通过区块链将备选区块广播出去,然后第一节点校验备选区块中的第一交易信息以生成第一校验结果,以及执行备选区块中的第一交易信息以生成第一交易执行结果,接下来第一节点通过区块链将第一节点处理结果广播出去,第一节点处理结果包括:第一校验结果和第一交易执行结果,接下来第一节点接收第二节点通过区块链广播的第二节点处理结果,第一节点根据第一节点处理结果和第二节点处理结果对备选区块进行共识,然后第一节点在备选区块共识成功时保存备选区块,以及在第一交易信息执行成功时保存第一交易执行结果。本申请实施例中第一节点作为领导者节点,第一节点可以通过交易队列来缓存待处理的交易信息,对交易队列中的交易信息先打包到备选区块,就可以广播该备选区块,使得区块链中的从属者节点可以进行交易验证和交易执行,广播该备选区块之后第一节点就可以进行如下处理:交易验证和交易执行,然后第一节点可以广播第一节点处理结果,第一节点根据区块链中每个节点的处理结果进行备选区块的共识,在共识成功时再执行区块保存。本申请实施例中改变了出块的顺序,使得区块链中的所有节点都可以进行交易验证和交易执行,因此可以提升区块产生的速度以及交易处理的性能。
接下来从第一节点的角度来说明本申请实施例提供的一种区块处理方法,请参阅图3所示,本申请实施例提供一种区块处理方法,主要包括如下步骤:
301、当第一节点为领导者节点、第二节点为从属者节点时,第一节点接收至少一个客户端发送到区块链中的交易信息。
不限定的是,在本申请的一些实施例中,上述步骤301还可以替换为如下步骤:第一节点接收第二节点从至少一个客户端获取到的交易信息。
在本申请实施例中,至少一个客户端可以在获取到用户的交易信息之后,至少一个客户端可以将交易信息发送到区块链中,例如可以发送给区块链中的第一节点,或者发送给第二节点,具体可以应用场景来确定采用哪种交易信息的发送方式,若客户端将交易信息直接发送给第一节点,则第一节点接收至少一个客户端发送到区块链中的交易信息。若客户端将交易信息直接发送给第二节点,第二节点作为从属者节点在接收到客户端的交易信息之后,第二节点将交易信息发送给第一节点,第一节点可以接收第二节点从至少一个客户端获取到的交易信息。
302、第一节点将至少一个客户端的交易信息放入到交易队列中。
在本申请实施例中,第一节点维护有交易队列,第一节点获取到至少一个客户端的交易信息之后,第一节点将至少一个客户端的交易信息放入到交易队列中。
303、第一节点检查交易队列是否满足预设的出块条件。
在本申请实施例中,第一节点可以预先配置针对交易队列的出块条件,从而在交易队列中存储有新的交易信息时,检查交易队列是否满足预设的出块条件,该出块条件是指是否进行出块设置的执行条件,若交易队列满足该出块条件,则第一节点执行出块流程,若交易队列不满足该出块条件,则第一节点不执行出块流程,继续判断是否满足该出块条件,在满足该出块条件才能执行出块流程。
在本申请的一些实施例中,步骤303第一节点检查交易队列是否满足预设的出块条件,包括:
第一节点检查交易队列中存储的交易信息个数是否超过第一门限值,若交易信息个数超过第一门限值,确定交易队列满足出块条件,若交易信息个数没有超过第一门限值,确定交易队列不满足出块条件。
其中,第一节点统计交易队列中存储的交易信息个数,交易信息个数指示了交易队列大小,检查该交易信息个数是否满足预设的第一门限值,该第一门限值是指出块门限值,比如第一门限值可以是1000个,交易队列包含的交易信息个数达到1000个时,确定交易队列满足出块条件,交易队列包含的交易信息个数没有达到1000个时,确定交易队列不满足出块条件。
在本申请的一些实施例中,步骤303第一节点检查交易队列是否满足预设的出块条件,包括:
第一节点检查交易队列中存储的数据量大小是否超过第二门限值,若数据量大小超过第二门限值,确定交易队列满足出块条件,若数据量大小没有超过第二门限值,确定交易队列不满足出块条件。
其中,第一节点统计交易队列中存储的数据量大小,数据量大小指示了交易队列占用的存储空间容量,检查数据量大小是否满足预设的第二门限值,该第二门限值是指出块门限值,比如第二门限值可以是1兆(M),交易队列中存储的数据量大小达到1M时,确定交易队列满足出块条件,交易队列中存储的数据量大小没有达到1M时,确定交易队列不满足出块条件。
在本申请的一些实施例中,步骤303第一节点检查交易队列是否满足预设的出块条件,包括:
第一节点检查交易队列从上一次出块时间到当前时间之间的时间差值是否超过出块时间阈值,若时间差值超过出块时间阈值,确定交易队列满足出块条件,若时间差值没有超过出块时间阈值,确定交易队列不满足出块条件。
其中,第一节点还可以对交易队列的出块次数进行计数,在交易队列每次出块时记录一个出块时间,实时统计从上一次出块时间到当前时间之间的时间差值,检查该时间差值是否超过出块时间阈值,若时间差值超过出块时间阈值,确定交易队列满足出块条件,若时间差值没有超过出块时间阈值,确定交易队列不满足出块条件,例如出块时间阈值可以是5秒钟。
304、当交易队列满足出块条件时,第一节点将第一节点的交易队列中的第一交易信息打包到备选区块,以及通过区块链将备选区块广播出去。
在本申请实施例中,第一节点检测出交易队列满足出块条件时,第一节点将第一节点的交易队列中的第一交易信息打包到备选区块,对该备选区块进行广播,以使得区块链中的所有节点都可以接收到备选区块。
305、第一节点校验备选区块中的第一交易信息以生成第一校验结果,以及执行备选区块中的第一交易信息以生成第一交易执行结果。
306、第一节点通过区块链将第一节点处理结果广播出去,第一节点处理结果包括:第一校验结果和第一交易执行结果。
307、第一节点接收第二节点通过区块链广播的第二节点处理结果,第二节点处理结果包括:第二节点通过校验备选区块中的第一交易信息生成的第二校验结果,以及通过执行备选区块中的第一交易信息生成的第二交易执行结果。
308、第一节点根据第一节点处理结果和第二节点处理结果对备选区块进行共识,然后第一节点在备选区块共识成功时保存备选区块,以及在第一交易信息执行成功时保存第一交易执行结果。
其中,本申请实施例中步骤304至步骤308与前实施例中的步骤202至步骤205的执行流程相类似,此处不再赘述。
在本申请的一些实施例中,第一节点在执行前述步骤304至步骤308中的任意一个步骤时,本申请实施例提供的出块处理方法还可以包括如下步骤:
当第一交易信息打包到备选区块时,第一节点将交易队列中的第二交易信息打包到备选区块,以及通过区块链将备选区块广播出去;
第一节点校验备选区块中的第二交易信息以生成第三校验结果,以及执行备选区块中的第二交易信息以生成第三交易执行结果;
第一节点通过区块链将第三节点处理结果广播出去,第三节点处理结果包括:第三校验结果和第三交易执行结果;
第一节点接收第二节点通过区块链广播的第四节点处理结果,第四节点处理结果包括:第二节点通过校验备选区块中的第二交易信息生成的第四校验结果,以及通过执行备选区块中的第二交易信息生成的第四交易执行结果;
第一节点根据第三节点处理结果和第四节点处理结果对备选区块进行共识,然后第一节点在备选区块共识成功时保存备选区块,以及在第二交易信息执行成功时保存第三交易执行结果。
其中,第一节点的交易队列中存储有第一交易信息和第二交易信息,在对第一交易信息进行打包、验证、执行、共识、保存的任意一个流程时,第一节点还可以同时对第二交易信息进行打包、验证、执行、共识、保存等流程,因此本申请实施例中在区块生成过程中,采用区块并发校验算法,将没有相互依赖的区块并发校验执行,从而进一步的提高了出块效率。
通过以上实施例对本申请实施例的描述可知,本申请实施例中第一节点作为领导者节点,第一节点可以通过交易队列来缓存待处理的交易信息,对交易队列中的交易信息先打包到备选区块,就可以广播该备选区块,使得区块链中的从属者节点可以进行交易验证和交易执行,广播该备选区块之后第一节点就可以进行如下处理:交易验证和交易执行,然后第一节点可以广播第一节点处理结果,第一节点根据区块链中每个节点的处理结果进行备选区块的共识,在共识成功时再执行区块保存。本申请实施例中改变了出块的顺序,使得区块链中的所有节点都可以进行交易验证和交易执行,因此可以提升区块产生的速度以及交易处理的性能。
接下来从第二节点的角度来说明本申请实施例提供的一种区块处理方法,请参阅图4所示,本申请实施例提供一种区块处理方法,主要包括如下步骤:
401、当第一节点为领导者节点、第二节点为从属者节点时,第二节点接收第一节点通过区块链广播的备选区块,以及从备选区块中获取第一交易信息。
402、第二节点校验备选区块中的第一交易信息以生成第二校验结果,以及执行备选区块中的第一交易信息以生成第二交易执行结果。
403、第二节点通过区块链将第二节点处理结果广播出去,第二节点处理结果包括:第二校验结果和第二交易执行结果。
其中,本申请实施例中步骤401至步骤403与前实施例中的步骤211至步骤213的执行流程相类似,此处不再赘述。
404、第二节点接收第一节点通过区块链广播的第一节点处理结果,第一节点处理结果包括:第一节点通过校验备选区块中的第一交易信息生成的第一校验结果,以及通过执行备选区块中的第一交易信息生成的第一交易执行结果。
在本申请的一些实施例中,区块链中除了领导者节点(即第一节点)可以进行共识之外,区块链中的从属者节点也可以进行共识。例如第二节点通过步骤404接收到第一节点广播的第一节点处理结果,第二节点可以根据第一节点处理结果和第二节点处理结果对备选区块进行共识,例如第二节点可以使用分布式共识算法进行共识,该分布式共识算法可以是Raft算法,另外,本申请实施例中分布式共识算法也可以是Bft-Raft算法。
405、第二节点根据第一节点处理结果和第二节点处理结果对备选区块进行共识,当备选区块共识成功时触发如下步骤:第二节点在第一交易信息验证成功时保存备选区块,以及在第一交易信息执行成功时保存第二交易执行结果。
在本申请实施例中,第二节点可以对备选区块进行共识,当备选区块共识成功时,第二节点在第一交易信息验证成功时保存备选区块,以及在第一交易信息执行成功时保存第二交易执行结果。在区块链中,对于第一节点可能存在作恶的情况,第二节点对第二节点处理结果采用广播的方式,这样区块链中所有节点都收到其他节点的节点处理结果,每个节点根据收到的节点处理结果判断数据是否可以提交保存,而不再依赖第一节点的通知,保证了对第一交易信息的正确执行。
在本申请的一些实施例中,步骤403第二节点通过区块链将第二节点处理结果广播出去之后,本申请实施例除了执行步骤404至步骤405之外,还可以将步骤404至步骤405使用如下的可替换步骤:
第二节点接收第一节点在对备选区块共识成功时发送的通知消息;
第二节点根据通知消息触发执行如下步骤:第二节点在第一交易信息验证成功时保存备选区块,以及在第一交易信息执行成功时保存第二交易执行结果。
其中,第一节点可以对备选区块进行共识,在对备选区块共识成功时第一节点广播通知消息,区块链中的第二节点可以接收该通知消息,根据该通知消息确定共识成功,然后第二节点在第一交易信息验证成功时保存备选区块,以及在第一交易信息执行成功时保存第二交易执行结果。
在本申请的一些实施例中,第一节点在执行前述步骤304至步骤308中的任意一个步骤时,本申请实施例提供的出块处理方法还可以包括如下步骤:
第二节点接收第一节点通过区块链广播的备选区块,以及从备选区块中获取第二交易信息;
第二节点校验备选区块中的第二交易信息以生成第四校验结果,以及执行备选区块中的第二交易信息以生成第四交易执行结果;
第二节点通过所述区块链将第四节点处理结果广播出去,所述第四节点处理结果包括:所述第四校验结果和所述第四交易执行结果;
第二节点在第二交易信息验证成功时保存备选区块,以及在第二交易信息执行成功时保存第四交易执行结果。
其中,第一节点的交易队列中存储有第一交易信息和第二交易信息,在对第一交易信息进行打包、验证、执行、共识、保存的任意一个流程时,第一节点还可以同时对第二交易信息进行打包、验证、执行、共识、保存等流程,第二节点收到第一节点的广播时,第二节点也可以对第二交易信息进行验证和执行,因此本申请实施例中在区块生成过程中,采用区块并发校验算法,将没有相互依赖的区块并发校验执行,从而进一步的提高了出块效率。
通过以上对本申请实施例的描述可知,本申请实施例中第一节点作为领导者节点,第一节点可以通过交易队列来缓存待处理的交易信息,对交易队列中的交易信息先打包到备选区块,就可以广播该备选区块,使得第二节点可以进行交易验证和交易执行,然后第二节点可以广播第二节点处理结果,使得第一节点根据区块链中每个节点的处理结果进行备选区块的共识,在共识成功时再执行区块保存。本申请实施例中改变了出块的顺序,使得区块链中的所有节点都可以进行交易验证和交易执行,因此可以提升区块产生的速度以及交易处理的性能。
为便于更好的理解和实施本申请实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本申请实施例提供了一种新的区块生成方案,接下来以第一节点具体为leader节点、第二节点具体为follower节点为例。本申请实施例中可以将未验证的系列交易打包成一个备选区块,通过bft-Raft算法leader节点广播给follower节点,leader节点和follower节点作为共识节点,可以对备选区块验证过程中同时验证和执行交易,对交易验证执行结果标记为成功或失败,最后所有共识节点对备选区块的验证结果进行共识,共识成功后所有节点保存备选区块,并保存备选区块中标记为成功的交易,剔除失败的交易。
接下来请参阅图5所示,为本申请实施例提供的一种出块流程的应用场景示意图,主要包括如下流程:
S101、从区块链网络中基于Raft算法选举出leader节点、follower节点。
首先进行节点角色选择,从区块链网络的全部节点中运行Raft算法,竞选出leader节点和follower节点,在区块链中leader节点只有一个。
S102、用户发送交易到区块链,leader节点收到交易直接放入交易队列。
其中,用户可以通过终端发送交易到区块链中。对于发送到leader节点的交易,leader节点直接放入交易队列中。或者,对于发送到follower节点的交易,follower节点转发交易到leader节点,然后leader节点将从follower节点接收到的交易放入交易队列中。
S103、leader节点检查交易队列交易是否达到出块要求。
S104、在达到出块要求的情况下,leader节点对交易队列中的交易打包成备选区块,签名广播给follower节点。
其中,leader节点检查交易队列是否满足出块要求,例如可以检测交易队列中存储的交易个数或者交易数据量大小是否满足出块要求。若满足出块要求,将交易队列中交易打包到备选区块,签名并广播。若未满足出块要求,则检查出块时间是否到达,若到达该出块时间,leader节点将交易队列中交易打包到备选区块,签名并广播。
S105、区块链网络中共识节点到备选区块进行校验,包括对备选区块中交易列表校验。
S106、共识节点对备选区块校验结果签名和广播。
其中,leader节点和follower节点作为共识节点,对备选区块进行校验,校验的过程中对备选区块中交易列表进行合法性校验,并标记交易合法或者非法,对交易进行执行并生成交易执行结果,对合法的交易执行结果缓存。
S107、区块链网络中共识节点对结果进行BFT判断,达成共识后保存备选区块以及合法的交易。
leader节点和follower节点对前述步骤S106的各自验证结果和执行结果进行签名,并广播。然后对收到的节点签名结果通过拜占庭容错算法(Bft)进行共识,节点签名结果中是包括:验证结果和交易执行结果。
leader节点和follower节点对节点签名结果共识成功后,节点保存备选区块头部信息,保存备选区块中合法的交易,保存备选区块中缓存的交易执行结果。其中,保存备选区块中合法的交易是指保存用户发送的交易原生数据(即此处不包含交易执行结果),而保存交易执行结果是指保存的交易执行结果状态。
需要说明的是,备选区块头部信息是从区块的数据格式来说的,包括上一个区块的哈希值(hash)、默克尔树根、状态根、收据根、节点的签名、随机数值等等。
如图6所示,为本申请实施例提供的Raft数据提交流程的示意图,图6中的L表示leader节点,F表示follower节点,主要包括如下过程:
步骤1、客户端提交数据v=3,发送给leader节点。
步骤2.1、leader节点复制数据v=3,发送给follower节点。
步骤3.1、follower节点确认接收数据v=3,发送给leader节点。
步骤3.2、follower节点确认接收数据v=3,发送给leader节点。
步骤4.1、leader节点确认接收数据v=3,发送给客户端。
步骤4.2、leader节点数据提交v=3,发送给follower节点。
在上述流程中,Raft算法本身的容错技术是基于leader节点而言的,follower节点收到leader节点的数据后,缓存数据并返回结果给leader节点,leader节点收到来自follower节点的结果进行容错判断,当收到相同的结果的节点数目大于50%即可认为数据成功,然后leader节点通知follower节点保存数据状态。
如图7所示,为本申请实施例提供的Bft-Raft数据提交流程的示意图,主要包括如下流程:
客户端1生成交易1,发送给领导者节点,客户端2生成交易2,发送给从属者节点1,从属者节点1再将交易2发送给领导者节点,领导者节点生成区块之后,广播该区块给3个从属者节点,3个从属者节点发送广播响应到区块链中,领导者节点和3个从属者节点进行提交区块,领导者节点和3个从属者节点进行共识,共识成功之后,领导者节点和3个从属者节点向客户端1发送提交成功消息,领导者节点和3个从属者节点向客户端2发送提交成功消息。
在区块链中,上述的容错技术不能处理leader节点作恶的情况,所以本申请中加入了拜占庭容错技术,上述follower节点对结果采用广播的方式,这样区块链网络中所有节点都收到其他节点的签名结果,每个节点根据收到的签名结果判断数据是否可以提交保存,而不再依赖leader节点的通知。
在本申请实施例中,上述步骤S101至步骤S107还可以使用区块并发校验技术,即在一个区块内有多个交易,在区块生成过程中,采用区块并发校验算法,将没有相互依赖的区块并发校验执行。
本申请实施例提供的前述方案能提升联盟链或者私链中区块产生的速度以及交易处理的性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请实施例所必须的。
为便于更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图8所示,本申请实施例提供的一种区块链中的第一节点800,所述第一节点800包括:处理模块801和收发模块802,其中,
当所述第一节点为领导者节点、所述第二节点为从属者节点时,所述处理模块,用于将所述第一节点的交易队列中的第一交易信息打包到备选区块;
所述收发模块,用于通过所述区块链将所述备选区块广播出去;
所述处理模块,还用于校验所述备选区块中的第一交易信息以生成第一校验结果,以及执行所述备选区块中的第一交易信息以生成第一交易执行结果;
所述收发模块,还用于通过所述区块链将第一节点处理结果广播出去,所述第一节点处理结果包括:所述第一校验结果和所述第一交易执行结果;
所述收发模块,还用于接收所述第二节点通过所述区块链广播的第二节点处理结果,所述第二节点处理结果包括:所述第二节点通过校验所述备选区块中的第一交易信息生成的第二校验结果,以及通过执行所述备选区块中的第一交易信息生成的第二交易执行结果;
所述处理模块,还用于根据所述第一节点处理结果和所述第二节点处理结果对所述备选区块进行共识,然后所述第一节点在所述备选区块共识成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第一交易执行结果。
在本申请的一些实施例中,所述收发模块将所述第一节点的交易队列中的第一交易信息打包到备选区块之前,所述处理模块,还用于检查所述交易队列是否满足预设的出块条件;当所述交易队列满足所述出块条件时,触发执行如下步骤:将所述第一节点的交易队列中的第一交易信息打包到备选区块。
在本申请的一些实施例中,所述处理模块,还用于检查所述交易队列中存储的交易信息个数是否超过第一门限值,若所述交易信息个数超过所述第一门限值,确定所述交易队列满足所述出块条件,若所述交易信息个数没有超过所述第一门限值,确定所述交易队列不满足所述出块条件。
在本申请的一些实施例中,所述处理模块,还用于检查所述交易队列中存储的数据量大小是否超过第二门限值,若所述数据量大小超过所述第二门限值,确定所述交易队列满足所述出块条件,若所述数据量大小没有超过所述第二门限值,确定所述交易队列不满足所述出块条件。
在本申请的一些实施例中,所述处理模块,还用于检查所述交易队列从上一次出块时间到当前时间之间的时间差值是否超过出块时间阈值,若所述时间差值超过所述出块时间阈值,确定所述交易队列满足所述出块条件,若所述时间差值没有超过所述出块时间阈值,确定所述交易队列不满足所述出块条件。
在本申请的一些实施例中,所述收发模块,还用于接收至少一个客户端发送到所述区块链中的交易信息;或者,所述第一节点接收所述第二节点从至少一个客户端获取到的交易信息;
所述处理模块,还用于将所述至少一个客户端的交易信息放入到所述交易队列中。
在本申请的一些实施例中,所述处理模块,还用于当所述第一交易信息打包到所述备选区块时,将所述交易队列中的第二交易信息打包到备选区块;
所述收发模块,还用于通过所述区块链将所述备选区块广播出去;
所述处理模块,还用于校验所述备选区块中的第二交易信息以生成第三校验结果,以及执行所述备选区块中的第二交易信息以生成第三交易执行结果;
所述收发模块,还用于通过所述区块链将第三节点处理结果广播出去,所述第三节点处理结果包括:所述第三校验结果和所述第三交易执行结果;
所述收发模块,还用于接收所述第二节点通过所述区块链广播的第四节点处理结果,所述第四节点处理结果包括:所述第二节点通过校验所述备选区块中的第二交易信息生成的第四校验结果,以及通过执行所述备选区块中的第二交易信息生成的第四交易执行结果;
所述处理模块,还用于根据所述第三节点处理结果和所述第四节点处理结果对所述备选区块进行共识,然后所述第一节点在所述备选区块共识成功时保存所述备选区块,以及在所述第二交易信息执行成功时保存所述第三交易执行结果。
在本申请的一些实施例中,所述处理模块,还用于在所述备选区块共识成功时,保存所述备选区块的头部信息,以及保存校验成功的第一交易信息。
通过以上对本申请实施例的描述可知,当第一节点为领导者节点、第二节点为从属者节点时,第一节点将第一节点的交易队列中的第一交易信息打包到备选区块,以及通过区块链将备选区块广播出去,然后第一节点校验备选区块中的第一交易信息以生成第一校验结果,以及执行备选区块中的第一交易信息以生成第一交易执行结果,接下来第一节点通过区块链将第一节点处理结果广播出去,第一节点处理结果包括:第一校验结果和第一交易执行结果,接下来第一节点接收第二节点通过区块链广播的第二节点处理结果,第一节点根据第一节点处理结果和第二节点处理结果对备选区块进行共识,然后第一节点在备选区块共识成功时保存备选区块,以及在第一交易信息执行成功时保存第一交易执行结果。本申请实施例中第一节点作为领导者节点,第一节点可以通过交易队列来缓存待处理的交易信息,对交易队列中的交易信息先打包到备选区块,就可以广播该备选区块,使得区块链中的从属者节点可以进行交易验证和交易执行,广播该备选区块之后第一节点就可以进行如下处理:交易验证和交易执行,然后第一节点可以广播第一节点处理结果,第一节点根据区块链中每个节点的处理结果进行备选区块的共识,在共识成功时再执行区块保存。本申请实施例中改变了出块的顺序,使得区块链中的所有节点都可以进行交易验证和交易执行,因此可以提升区块产生的速度以及交易处理的性能。
请参阅图9所示,本申请实施例提供的一种区块链中的第二节点900,所述第二节点900包括:处理模块901和收发模块902,其中,
当所述第一节点为领导者节点、所述第二节点为从属者节点时,所述收发模块,用于接收所述第一节点通过所述区块链广播的备选区块;
所述处理模块,用于从所述备选区块中获取第一交易信息;
所述处理模块,还用于校验所述备选区块中的第一交易信息以生成第二校验结果,以及执行所述备选区块中的第一交易信息以生成第二交易执行结果;
所述收发模块,还用于通过所述区块链将第二节点处理结果广播出去,所述第二节点处理结果包括:所述第二校验结果和所述第二交易执行结果;
所述处理模块,还用于在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果。
在本申请的一些实施例中,所述收发模块通过所述区块链将第二节点处理结果广播出去之后,接收所述第一节点通过所述区块链广播的第一节点处理结果,所述第一节点处理结果包括:所述第一节点通过校验所述备选区块中的第一交易信息生成的第一校验结果,以及通过执行所述备选区块中的第一交易信息生成的第一交易执行结果;
所述处理模块,还用于根据所述第一节点处理结果和所述第二节点处理结果对所述备选区块进行共识,当所述备选区块共识成功时触发执行如下步骤:在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果。
本申请的一些实施例中,所述收发模块通过所述区块链将第二节点处理结果广播出去之后,接收所述第一节点在对所述备选区块共识成功时发送的通知消息;
所述处理模块,还用于根据所述通知消息触发执行如下步骤:在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果。
本申请的一些实施例中,所述收发模块,还用于接收所述第一节点通过所述区块链广播的备选区块,以及从所述备选区块中获取第二交易信息,
所述处理模块,还用于校验所述备选区块中的第二交易信息以生成第四校验结果,以及执行所述备选区块中的第二交易信息以生成第四交易执行结果;
所述收发模块,还用于通过所述区块链将第四节点处理结果广播出去,所述第四节点处理结果包括:所述第四校验结果和所述第四交易执行结果;
所述处理模块,还用于在所述第二交易信息验证成功时保存所述备选区块,以及在所述第二交易信息执行成功时保存所述第四交易执行结果。
通过以上对本申请实施例的描述可知,本申请实施例中第一节点作为领导者节点,第一节点可以通过交易队列来缓存待处理的交易信息,对交易队列中的交易信息先打包到备选区块,就可以广播该备选区块,使得第二节点可以进行交易验证和交易执行,然后第二节点可以广播第二节点处理结果,使得第一节点根据区块链中每个节点的处理结果进行备选区块的共识,在共识成功时再执行区块保存。本申请实施例中改变了出块的顺序,使得区块链中的所有节点都可以进行交易验证和交易执行,因此可以提升区块产生的速度以及交易处理的性能。
图10是本申请实施例提供的一种服务器结构示意图,该服务器具体可以是前述的区块链中的第一节点,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由第一节点所执行的区块处理方法步骤可以基于该图10所示的服务器结构。
图11是本申请实施例提供的一种服务器结构示意图,该服务器具体可以是前述的区块链中的第二节点,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由第二节点所执行的区块处理方法步骤可以基于该图11所示的服务器结构。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请实施例提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请实施例可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请实施例而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例所述的方法。
综上所述,以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照上述实施例对本申请实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请实施例各实施例技术方案的精神和范围。
Claims (15)
1.一种区块处理方法,其特征在于,所述方法应用于区块链中的领导者节点,所述区块链中还包括至少一个从属者节点,所述领导者节点和所述从属者 节点通过分布式共识算法确定,所述区块链为私链或联盟链,所述私链、联盟链中安全因素的校验分割到多层,所述方法包括:
当至少一个客户端发送交易信息到所述区块链时,所述领导者节点将所述客户端发送的交易信息放入到所述领导者节点的交易队列中;所述领导者节点获取所述交易信息,包括:所述领导者节点接收所述从属者节点从至少一个客户端获取到的交易信息;
所述领导者节点检查所述交易队列是否满足预设的出块条件;
当所述交易队列满足所述出块条件时,所述领导者节点将所述领导者节点的交易队列中的第一交易信息打包到备选区块,以及对所述备选区块进行签名,然后通过所述区块链将所述备选区块广播出去;
所述领导者节点校验所述备选区块中的第一交易信息以生成第一校验结果,以及执行所述备选区块中的第一交易信息以生成第一交易执行结果;
所述领导者节点对第一节点处理结果进行签名,然后通过所述区块链将第一节点处理结果广播出去,所述第一节点处理结果包括:所述第一校验结果和所述第一交易执行结果;
所述领导者节点接收所述从属者节点通过所述区块链广播的第二节点处理结果,所述第二节点处理结果包括:所述从属者节点通过校验所述备选区块中的第一交易信息生成的第二校验结果,以及通过执行所述备选区块中的第一交易信息生成的第二交易执行结果;
所述领导者节点根据所述第一节点处理结果和所述第二节点处理结果对所述备选区块,通过所述分布式共识算法进行共识,然后所述领导者节点在所述备选区块共识成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第一交易执行结果;
其中,所述领导者节点对第一交易信息进行的校验以及所述从属者节点对第一交易信息进行的校验,均为合法性校验,包括如下校验方式的至少一种:校验交易数据格式和参数、校验交易列表是否有重复的交易、校验交易的输入是否合法和是否双花、校验交易的签名是否正确、校验交易的输入数额是否大于等于输出数额;
若所述交易队列中同时存储有所述第一交易信息和第二交易信息;所述领导者节点在对所述第一交易信息进行打包、验证、执行、共识、保存的任意一个流程时,同时对第二交易信息进行打包、验证、执行、共识、保存。
2.根据权利要求1所述的方法,其特征在于,所述领导者节点检查所述交易队列是否满足预设的出块条件,包括:
所述领导者节点检查所述交易队列中存储的交易信息个数是否超过第一门限值,若所述交易信息个数超过所述第一门限值,确定所述交易队列满足所述出块条件,若所述交易信息个数没有超过所述第一门限值,确定所述交易队列不满足所述出块条件。
3.根据权利要求1所述的方法,其特征在于,所述领导者节点检查所述交易队列是否满足预设的出块条件,包括:
所述领导者节点检查所述交易队列中存储的数据量大小是否超过第二门限值,若所述数据量大小超过所述第二门限值,确定所述交易队列满足所述出块条件,若所述数据量大小没有超过所述第二门限值,确定所述交易队列不满足所述出块条件。
4.根据权利要求1所述的方法,其特征在于,所述领导者节点检查所述交易队列是否满足预设的出块条件,包括:
所述领导者节点检查所述交易队列从上一次出块时间到当前时间之间的时间差值是否超过出块时间阈值,若所述时间差值超过所述出块时间阈值,确定所述交易队列满足所述出块条件,若所述时间差值没有超过所述出块时间阈值,确定所述交易队列不满足所述出块条件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述领导者节点接收至少一个客户端发送到所述区块链中的交易信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一交易信息打包到所述备选区块时,所述领导者节点将所述交易队列中的第二交易信息打包到所述备选区块,以及对所述备选区块进行签名,然后通过所述区块链将所述备选区块广播出去;
所述领导者节点校验所述备选区块中的第二交易信息以生成第三校验结果,以及执行所述备选区块中的第二交易信息以生成第三交易执行结果;
所述领导者节点对第三节点处理结果进行签名,然后通过所述区块链将所述第三节点处理结果广播出去,所述第三节点处理结果包括:所述第三校验结果和所述第三交易执行结果;
所述领导者节点接收所述从属者节点通过所述区块链广播的第四节点处理结果,所述第四节点处理结果包括:所述从属者节点通过校验所述备选区块中的第二交易信息生成的第四校验结果,以及通过执行所述备选区块中的第二交易信息生成的第四交易执行结果;
所述领导者节点根据所述第三节点处理结果和所述第四节点处理结果对所述备选区块进行共识,然后所述领导者节点在所述备选区块共识成功时保存所述备选区块,以及在所述第二交易信息执行成功时保存所述第三交易执行结果。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述领导者节点在所述备选区块共识成功时保存所述备选区块包括:
在所述备选区块共识成功时,所述领导者节点保存所述备选区块的头部信息,以及保存校验成功的第一交易信息,其中,所述备选区块的头部信息包括:所述备选区块的上一个区块的哈希值、默克尔树根、状态根、收据根、节点的签名、随机数值。
8.一种区块处理方法,其特征在于,所述方法应用于区块链中的从属者节点,所述区块链中还包括领导者节点,所述领导者节点和所述从属者 节点通过分布式共识算法确定,所述区块链为私链或联盟链,所述私链、联盟链中安全因素的校验分割到多层,所述方法包括:
所述从属者节点从至少一个客户端获取到的交易信息,并将所述交易信息发送到所述领导者节点;
所述从属者节点接收所述领导者节点通过所述区块链广播的备选区块,以及从所述备选区块中获取第一交易信息;
所述从属者节点校验所述备选区块中的第一交易信息以生成第二校验结果,以及执行所述备选区块中的第一交易信息以生成第二交易执行结果;其中,所述从属者节点对第一交易信息进行的校验为合法性校验,包括如下校验方式的至少一种:校验交易数据格式和参数、校验交易列表是否有重复的交易、校验交易的输入是否合法和是否双花、校验交易的签名是否正确、校验交易的输入数额是否大于等于输出数额;
所述从属者节点对第二节点处理结果进行签名,然后通过所述区块链将所述第二节点处理结果广播出去,所述第二节点处理结果包括:所述第二校验结果和所述第二交易执行结果;
所述从属者节点在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果;
若所述区块链广播的备选区块还包括第二交易信息,所述从属者节点同时对所述第二交易信息进行校验和执行。
9.根据权利要求8所述的方法,其特征在于,所述从属者节点通过所述区块链将第二节点处理结果广播出去之后,所述方法还包括:
所述从属者节点接收所述领导者节点通过所述区块链广播的第一节点处理结果,所述第一节点处理结果包括:所述领导者节点通过校验所述备选区块中的第一交易信息生成的第一校验结果,以及通过执行所述备选区块中的第一交易信息生成的第一交易执行结果;
所述从属者节点根据所述第一节点处理结果和所述第二节点处理结果对所述备选区块进行共识,当所述备选区块共识成功时触发执行如下步骤:所述从属者节点在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果。
10.根据权利要求8所述的方法,其特征在于,所述从属者节点通过所述区块链将第二节点处理结果广播出去之后,所述方法还包括:
所述从属者节点接收所述领导者节点在对所述备选区块共识成功时发送的通知消息;
所述从属者节点根据所述通知消息触发执行如下步骤:所述从属者节点在所述第一交易信息验证成功时保存所述备选区块,以及在所述第一交易信息执行成功时保存所述第二交易执行结果。
11.根据权利要求8至10中任一项所述的方法,其特征在于,所述方法还包括:
所述从属者节点接收所述领导者节点通过所述区块链广播的备选区块,以及从所述备选区块中获取第二交易信息;
所述从属者节点校验所述备选区块中的第二交易信息以生成第四校验结果,以及执行所述备选区块中的第二交易信息以生成第四交易执行结果;
所述从属者节点对第四节点处理结果进行签名,然后通过所述区块链将所述第四节点处理结果广播出去,所述第四节点处理结果包括:所述第四校验结果和所述第四交易执行结果;
所述从属者节点在所述第二交易信息验证成功时保存所述备选区块,以及在所述第二交易信息执行成功时保存所述第四交易执行结果。
12.一种区块链节点,其特征在于,所述区块链节点具体为区块链中的领导者节点,所述领导者节点包括:处理器和存储器;
所述存储器,用于存储指令;
所述处理器,用于执行所述存储器中的所述指令,执行如权利要求1至7中任一项所述的方法。
13.一种区块链节点,其特征在于,所述区块链节点具体为区块链中的从属者节点,所述从属者节点包括:处理器和存储器;
所述存储器,用于存储指令;
所述处理器,用于执行所述存储器中的所述指令,执行如权利要求8至11中任一项所述的方法。
14.一种区块处理系统,其特征在于,所述区块处理系统包括:领导者节点和从属者节点;
所述领导者节点,用于执行如权利要求1至7中任一项所述的方法;
所述从属者节点,用于执行如权利要求8至11中任一项所述的方法。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至7、或者权利要求8至11中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906176.6A CN110648137B (zh) | 2019-04-26 | 2019-04-26 | 一种区块处理方法和节点以及系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906176.6A CN110648137B (zh) | 2019-04-26 | 2019-04-26 | 一种区块处理方法和节点以及系统 |
CN201910345985.4A CN110046896B (zh) | 2019-04-26 | 2019-04-26 | 一种区块处理方法和节点以及系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910345985.4A Division CN110046896B (zh) | 2019-04-26 | 2019-04-26 | 一种区块处理方法和节点以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110648137A CN110648137A (zh) | 2020-01-03 |
CN110648137B true CN110648137B (zh) | 2021-08-20 |
Family
ID=67279655
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910906176.6A Active CN110648137B (zh) | 2019-04-26 | 2019-04-26 | 一种区块处理方法和节点以及系统 |
CN201910345985.4A Active CN110046896B (zh) | 2019-04-26 | 2019-04-26 | 一种区块处理方法和节点以及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910345985.4A Active CN110046896B (zh) | 2019-04-26 | 2019-04-26 | 一种区块处理方法和节点以及系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12014204B2 (zh) |
JP (1) | JP7186862B2 (zh) |
KR (1) | KR102562558B1 (zh) |
CN (2) | CN110648137B (zh) |
SG (1) | SG11202101131QA (zh) |
WO (1) | WO2020216280A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110648137B (zh) * | 2019-04-26 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 一种区块处理方法和节点以及系统 |
CN110519287B (zh) * | 2019-08-30 | 2022-08-12 | 腾讯科技(深圳)有限公司 | 一种信息管理方法及相关设备 |
CN110570196B (zh) * | 2019-09-05 | 2024-06-28 | 腾讯科技(深圳)有限公司 | 交易数据处理方法、装置、终端设备以及存储介质 |
CN110648234B (zh) * | 2019-09-12 | 2022-08-19 | 广州蚁比特区块链科技有限公司 | 一种区块生成方法及装置 |
CN111078696A (zh) * | 2019-12-04 | 2020-04-28 | 杭州复杂美科技有限公司 | 区块生成方法、设备和存储介质 |
CN111199485A (zh) * | 2020-01-02 | 2020-05-26 | 支付宝(杭州)信息技术有限公司 | 用于在区块链节点处进行交易数据处理的方法及装置 |
CN111262918A (zh) * | 2020-01-13 | 2020-06-09 | 中孚安全技术有限公司 | 一种跨平台分布式一致性框架系统及其实现方法 |
CN111431696B (zh) * | 2020-03-26 | 2023-10-17 | 深圳市欧欣泰科技有限公司 | 一种基于身份的区块链封印机制 |
CN111724260B (zh) * | 2020-06-18 | 2022-08-05 | 清华大学 | 基于配置区块的多场景配置数据存储方法及系统 |
KR102473672B1 (ko) * | 2020-10-20 | 2022-12-02 | 주식회사 커먼컴퓨터 | 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템 |
CN112347193B (zh) * | 2020-11-27 | 2024-07-23 | 网易(杭州)网络有限公司 | 基于区块链的交易打包方法及装置、电子设备 |
CN114666327B (zh) * | 2020-12-23 | 2023-12-19 | 富泰华工业(深圳)有限公司 | 基于区块链交易的区块打包方法、装置及电子设备 |
CN113269637B (zh) * | 2020-12-28 | 2024-06-18 | 上海零数众合信息科技有限公司 | 一种基于区块链的智能设备数据的存证与验证方法 |
CN112804233B (zh) * | 2021-01-15 | 2023-05-02 | 欧冶云商股份有限公司 | 一种面向区块链多通道的区块打包方法、装置及存储介质 |
CN113543073B (zh) * | 2021-06-07 | 2023-05-09 | 中国联合网络通信集团有限公司 | 区块校验方法和区块链系统 |
CN113922965B (zh) * | 2021-10-09 | 2024-04-16 | 筹远(上海)信息科技有限公司 | 一种拜占庭场景下的区块链数据共识方法及装置 |
CN113961349B (zh) * | 2021-10-28 | 2022-09-06 | 中国西安卫星测控中心 | 一种qpid集群控制方法及系统 |
CN117579633B (zh) * | 2024-01-17 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 区块竞选方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10204341B2 (en) * | 2016-05-24 | 2019-02-12 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees |
JP6775086B2 (ja) * | 2016-12-16 | 2020-10-28 | 株式会社日立製作所 | ブロックチェーン監視及び管理 |
US10657225B2 (en) * | 2016-12-29 | 2020-05-19 | Red Hat, Inc. | Providing blockchain-based subscription-as-a-service management |
WO2018119930A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN107040585B (zh) * | 2017-02-22 | 2020-06-19 | 创新先进技术有限公司 | 一种业务校验的方法及装置 |
CN111614655A (zh) * | 2017-03-24 | 2020-09-01 | 创新先进技术有限公司 | 一种共识校验的方法及装置 |
US20200160943A1 (en) * | 2017-05-02 | 2020-05-21 | Sustainable Medicine, Inc. | Security system and node device used in same |
US10740733B2 (en) * | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
CN107402824B (zh) * | 2017-05-31 | 2020-06-02 | 创新先进技术有限公司 | 一种数据处理的方法及装置 |
US11055703B2 (en) * | 2017-06-19 | 2021-07-06 | Hitachi, Ltd. | Smart contract lifecycle management |
CN109118214B (zh) * | 2017-06-26 | 2020-11-17 | 华为技术有限公司 | 运行智能合约的方法和装置 |
JP7064950B2 (ja) * | 2017-09-15 | 2022-05-11 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 電子投票システム、及び、制御方法 |
KR101924026B1 (ko) * | 2017-11-10 | 2018-11-30 | 부산대학교 산학협력단 | 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법 |
CN112767158A (zh) * | 2018-02-27 | 2021-05-07 | 创新先进技术有限公司 | 基于区块链的交易执行方法及装置、电子设备 |
CN108876384B (zh) * | 2018-09-19 | 2021-11-05 | 联动优势科技有限公司 | 一种交易数据的处理方法及装置 |
CN109542926B (zh) | 2018-11-06 | 2021-04-09 | 北京新唐思创教育科技有限公司 | 区块处理方法及计算机存储介质 |
CN109327459B (zh) * | 2018-11-12 | 2020-12-01 | 崔晓晖 | 一种联盟区块链网络的共识方法 |
CN109636389B (zh) * | 2018-12-13 | 2020-09-22 | 东软集团股份有限公司 | 区块链出块时间的确定方法、装置、设备及存储介质 |
CN110648137B (zh) * | 2019-04-26 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 一种区块处理方法和节点以及系统 |
-
2019
- 2019-04-26 CN CN201910906176.6A patent/CN110648137B/zh active Active
- 2019-04-26 CN CN201910345985.4A patent/CN110046896B/zh active Active
-
2020
- 2020-04-23 WO PCT/CN2020/086351 patent/WO2020216280A1/zh active Application Filing
- 2020-04-23 SG SG11202101131QA patent/SG11202101131QA/en unknown
- 2020-04-23 JP JP2021512837A patent/JP7186862B2/ja active Active
- 2020-04-23 KR KR1020217009871A patent/KR102562558B1/ko active IP Right Grant
-
2021
- 2021-05-11 US US17/317,189 patent/US12014204B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、系统和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR102562558B1 (ko) | 2023-08-03 |
JP2022500742A (ja) | 2022-01-04 |
CN110046896B (zh) | 2022-03-01 |
JP7186862B2 (ja) | 2022-12-09 |
CN110046896A (zh) | 2019-07-23 |
SG11202101131QA (en) | 2021-03-30 |
US20210263765A1 (en) | 2021-08-26 |
CN110648137A (zh) | 2020-01-03 |
US12014204B2 (en) | 2024-06-18 |
KR20210055734A (ko) | 2021-05-17 |
WO2020216280A1 (zh) | 2020-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110648137B (zh) | 一种区块处理方法和节点以及系统 | |
US11057504B2 (en) | System and method for ending view change protocol | |
WO2020177537A1 (zh) | 平行链共识方法、数据异常处理方法、设备和存储介质 | |
CN110875893B (zh) | 共识验证方法、校验节点及区块链系统 | |
US20190347657A1 (en) | Resource transfer method and apparatus, storage medium, and computer device | |
AU2019203862B2 (en) | System and method for ending view change protocol | |
US20180308091A1 (en) | Fairness preserving byzantine agreements | |
CN111988203B (zh) | 节点选举方法、装置及存储介质 | |
CN111242784B (zh) | 区块预打包方法、区块节点、装置及存储介质 | |
US11165766B2 (en) | Implementing authentication protocol for merging multiple server nodes with trusted platform modules utilizing provisioned node certificates to support concurrent node add and remove | |
US10938750B2 (en) | Consensus system downtime recovery | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN111767347B (zh) | 共识算法的切换方法、装置、节点设备及存储介质 | |
CN111010284B (zh) | 一种待共识区块的处理方法、相关装置及区块链系统 | |
CN111311254A (zh) | 一种基于区块链的业务处理方法、装置和系统 | |
CN113064764B (zh) | 在区块链系统中执行区块的方法及装置 | |
JP2022523217A (ja) | 投票集計を伴うトポロジードリブンビザンチンフォールトトレラント合意プロトコル | |
CN114936253A (zh) | 区块链的共识方法及装置、电子设备、存储介质 | |
CN112838930A (zh) | 区块链交易的执行方法及装置、电子设备、存储介质 | |
CN111756548A (zh) | 节点共识机制优化方法、系统、设备及存储介质 | |
CN114820179A (zh) | 区块链验签方法及相关设备 | |
CN110766552B (zh) | 基于区块链的业务处理方法及装置 | |
CN112000731B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111740833B (zh) | 一种区块链网络的签名方法、节点、系统及存储介质 | |
CN115904659A (zh) | 分布式系统的批量业务处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40017533 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |