CN114529414A - 一种区块链的交易处理方法、区块链节点及电子设备 - Google Patents
一种区块链的交易处理方法、区块链节点及电子设备 Download PDFInfo
- Publication number
- CN114529414A CN114529414A CN202210178246.2A CN202210178246A CN114529414A CN 114529414 A CN114529414 A CN 114529414A CN 202210178246 A CN202210178246 A CN 202210178246A CN 114529414 A CN114529414 A CN 114529414A
- Authority
- CN
- China
- Prior art keywords
- consensus
- transaction
- node
- round
- proposal
- 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
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- 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/0633—Workflow 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/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Finance (AREA)
- Educational Administration (AREA)
- Accounting & Taxation (AREA)
- Game Theory and Decision Science (AREA)
- Technology Law (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本说明书实施例提供一种区块链的交易处理方法、区块链节点及电子设备。方法包括:区块链的共识节点执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数。所述共识节点执行所述第一交易集的交易执行操作。所述共识节点在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作。所述共识节点在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
Description
技术领域
本文件属于区块链技术领域,尤其涉及一种区块链的交易处理方法、区块链节点及电子设备。
背景技术
区块链由于具有开放性、不可篡改、去中心化等优点,越来越受到各行各业的青睐。目前区块链交易的处理流程主要包括:交易共识、交易执行、交易执行确认以及交易写块四个阶段。现有技术中,这四个阶段是按序串行执行的,也就是说区块链客户端发起交易后,无法立刻获知交易的执行结果(交易需要先完成共识后再被执行),从而影响了用户体验。
在未来阶段,区块链业务会呈爆发性增长,客户端确认交易执行结果的延迟问题也会突显出来。为此,有必要提出一种可以提高区块链交易的执行结果确认效率的技术方案。
发明内容
本说明书实施例目的是提供一种区块链交易的处理方法、区块链节点及电子设备,能够提高区块链交易的执行结果确认效率。
为了实现上述目的,本说明书实施例是这样实现的:
第一方面,提出了一种区块链的交易处理方法,包括:
区块链的共识节点执行第N轮共识提议中第一交易集的交易执行操作,其中,N为正整数;
所述共识节点执行第N轮共识提议中第一交易集的共识操作;
所述共识节点在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
所述共识节点在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
第二方面,提出了一种区块链的交易处理装置,包括:
交易共识模块,执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
交易执行模块,执行所述第一交易集的交易执行操作;
交易执行确认模块,在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
写块模块,在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
第三方面,提出了一种电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
执行所述第一交易集的交易执行操作;
在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
执行所述第一交易集的交易执行操作;
在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
基于本说明书实施例的方案,区块链的共识节点在完成交易的共识操作前,即可提前对交易执行交易执行操作,并在交易执行操作完成后发起交易执行确定操作,从而提高交易最终化的确认效率,进而使客户端用户能够尽早得知交易执行结果,在一定程度上改善了用户体验。此外,交易执行确认的提前也会更早的执行写块操作,使得区块链的交易上链效率也得了提升,进而提高了区块链的业务吞吐量,符合未来区块链业务高并发的发展趋势。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例的交易处理方法的流程示意图。
图2为传统PBFT协议的流程示意图。
图3为本说明书实施例的交易处理方法执行PBFT协议交易上链的第一种流程示意图。
图4为本说明书实施例的交易处理方法执行PBFT协议交易上链的第二种流程示意图。
图5为本说明书实施例的交易处理方法执行PBFT协议交易上链的第三种流程示意图。
图6为本说明书实施例的交易处理方法执行PBFT协议交易上链的第四种流程示意图。
图7为本说明书实施例的交易处理方法执行PBFT协议交易上链的第五种流程示意图。
图8为本说明书实施例的区块链节点的结构示意图。
图9为本说明书实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,区块链交易的处理流程主要包括:交易共识、交易执行、交易执行确认以及交易写块四个阶段。现有技术中,这四个阶段是按序串行执行的,也就是说,区块链的客户端发起交易后,交易先要完成共识再进行执行。这一样来,客户端无法立刻获知交易的执行结果,而这个延迟问题是能够被客户端用户感知到的,如果延迟严重则会影响用户体验。针对这一问题,本文件旨在提出一种提高区块链交易的执行结果确认效率的技术方案。
图1是本说明书实施例区块链交易的处理方法的流程图。图1所示的方法可以由下文相对应的区块链节点执行,包括如下步骤:
S102,区块链的共识节点执行第N轮共识提议中第一交易集的共识操作,N为正整数。
其中,第一交易集可以包含有第N轮共识提议中全部需要共识的交易,也可以包含第N轮共识提议中部分需要共识的交易,这里本文不作具体限定。
本步骤中,若共识节点作为区块链的共识主节点,则需要创建第N轮共识提议,并第N轮共识提议发送至区块链的共识备份节点。当共识备份节点获得第N轮共识提议后,区块链的共识节点(包含共识主节点和共识备份节点)开始对第一交易集执行共识操作。同理,若共识节点为区块链的共识备份节点,则在接收到区块链的共识主节点发送的第N轮共识提议后,再对对第一交易集执行共识操作。
S104,共识节点执行第一交易集的交易执行操作。
应理解,本说明书实施例中,共识节点不需要第一交易集达成共识,即可对第一交易集执行交易执行操作。
具体地,共识节点可以在第N轮共识提议发起后,执行第一交易集的共识操作时,并行执行第一交易集的交易执行操作。应理解,共识节点执行的共识操作主要包括:共识校验以及共识消息的收发。也就是说,在并行方式下,共识节点至少可以利用等待接收其他共识节点发送共识消息的时间来执行交易执行操作,从而提高区块链交易的处理效率。
S106,共识节点在交易执行操作执行完毕后,发起对第一交易集的交易执行确定操作。
应理解,交易执行确定操作是指确认交易执行结果的操作。在该过程中,共识节点在完成第一交易集的交易执行操作后,会向区块链的其它共识节点发送第一交易集的交易执行确认消息,交易执行确认消息携带有第一交易集的哈希信息;同理,其它共识节点在完成第一交易集的交易执行操作,也会向本步骤中的共识节点发送第一交易集的交易执行确认消息。
当本步骤中的共识节点收到2f个其它共识节点发送的携带有相同第一交易集的哈希信息的交易执行确认消息后,即可确认第一交易集的交易执行(f为所述区块链设置的拜占庭容错数量)。应理解,在第一交易集的交易执行被确认后,第一交易集中的交易执行结果即可反馈至对应的客户端,并被客户端用户提前感知。
S108,共识节点在对第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对第N轮共识提议的所有交易集执行写块操作。
应理解,传统串行方式的写块操作需要在第N轮共识提议的所有交易集的交易执行结果确认后才能执行,而基于本发明实施例的上述步骤可以提前完成交易执行操作和交易执行确认操作,这样一来写块操作也会随之提前执行,进而缩短了区块链交易上链的耗时,可提高区块链的交易处理效率。
此外,为了进一步提高区块链交易的处理效率,共识节点在对第N轮共识提议的所有交易集都完成交易执行确认操作后,可以生成第N轮共识提议的临时区块;此时,如果尚未对第N轮共识提议的所有交易集都达成共识,则共识节点进行等待;如果已经对第N轮共识提议的所有交易集都达成共识,则共识节点直接将第N轮共识提议的临时区块写入至区块链中,从而节省写块操作的耗时。
由此可见,基于本说明书实施例的方法,区块链的共识节点在完成交易的共识操作前,即可提前对交易执行交易执行操作,并在交易执行操作完成后发起交易执行确定操作,从而提高交易最终化的确认效率,进而使客户端用户能够尽早得知交易执行结果,在一定程度上改善了用户体验。此外,交易执行确认的提前也会更早的执行写块操作,使得区块链的交易上链效率也得了提升,进而提高了区块链的业务吞吐量,符合未来区块链业务高并发的发展趋势。
下面结合实际的应用场景对本说明书实施例的方法进行详细介绍。
本应用场景中,区块链的共识节点基于实用拜占庭容错(PBFT,PracticalByzantine Fault Tolerance)协议执行共识操作。
其中,传统PBFT协议的共识流程主要包括:
预准备pre-prepare阶段:
主共识节点收到来自Client的一个请求,并分配一个编号给这个请求,共识主节点广播一条pre-prepare消息给共识备份节点,这个pre-prepare消息主要包含当前共识的视图(view)、共识主节点的摘要(digest)以及上以区块哈信息等。
每一个共识备份节点在接收到pre-prepare消息后,对pre-prepare消息中的信息进行校验。如果检验成功,则直接进入prepare阶段。如果检验失败,则共识流程结束。
prepare阶段:
所有参与共识的共识备份节点中的每一个在接收到pre-prepare消息后,检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该共识提议在replica上的状态被确定为prepared,共识备份节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他参与共识的共识备份节点。
commit阶段:
所有共识节点中的每一个在进入prepared状态后,发送commit消息给其他共识节点,并将自己发送的commit消息添加到本地Log中(代表自己的认可)。当一个共识节点发现有一个quorum(quorum是为了能够确保所有replica数据一致性要求和容错要求需要的一定数量replica的集合)同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了不包含自身发送的2f个commit消息(f是联盟链中作恶节点的数量,2f个commit消息中不包含自身发送的commit消息),就说名该共识节点拥有了一个名为committed certificate的证书,请求在这个共识节点上达到了committed状态。此时只通过这一个共识节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有共识节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
以上是传统PBFT协议的流程介绍。本应用场景在对某一交易集执行PBFT协议的共识阶段,引入对该交易集的交易执行操作和交易执行确定操作。
这里以第N轮共识提议为例,在上述基础之上,本应用场景的共识主节点需要从自身交易池中选取出第一交易集发起第N轮共识提议,并在Pre-Prepare阶段,通过Pre-Prepare消息将第一交易集的交易数据发送至区块链的共识备份节点。
这里需要说明的是,共识节点在确定第一交易集的交易数据后,即可对第一交易集执行交易执行操作。也就是说,在本应用场景中,共识主节点最早在Pre-Prepare阶段即可对第一交易集执行交易执行操作,而共识备份节点则需要通过Pre-Prepare消息获得第一交易集的交易数据后,在Prepare阶段对第一交易集执行交易执行操作。
通过上述设计,区块链的各个共识节点可以在Commit阶段前生成第一交易集的临时区块。这样一来,可以复用Commit消息完成交易执行确认操作。即,区块链的各共识节点在Commit阶段,通过Commit消息将第一交易集的临时区块的哈希信息发送至区块链的其他区块链节点。之后,任意共识节点若接收到2f个其他共识节点发送的携带有相同第一交易集临时区块的哈希信息的Commit消息,则确认第一交易集的交易执行。
这里为方便理解,假设有区块链4个共识节点:P1、P2、P3、P4,其中,P1为第N轮共识提议的共识主节点,P2、P3、P4为第N轮共识提议的共识备份节点,P1发起的第N轮共识提议中只包括第一交易集。传统的基于PBFT协议的交易上链流程如可以如图2所示,是以串行方式依次对第一交易集执行pre-prepare阶段的共识操作、prepare阶段的共识操作、Commit阶段的共识操作、交易执行操作\交易执行确认操作(阴影填充的方块表示)以及写块操作(无填充的方块表示)。
本说明书实施例的应用场景基于PBFT协议的交易上链流程则如图3所示。也就是P1在对执行PBFT协议的Commit阶段的共识操作前,直接生成第N轮共识提议的临时区,并在Commit阶段发送携带有该第N轮共识提议的临时区块的哈希信息Commit消息给其他共识节点。应理解,由于第N轮共识提议中只包括第一交易集,因此第N轮共识提议的临时区块的哈希信息即为第一交易集的哈希信息,共识节点在Commit阶段若接收到2f个其它共识节点发送的携带有相同第N轮共识提议的临时区块的哈希信息的Commit消息,即可确认第N轮共识提议中所有交易的最终化执行,并直接将第N轮共识提议的临时区块写入至区块链中。
对比图2和图3可以看出,本说明书实施例的应用场景在不引入额外消息开销的基础之上,在共识阶段即可完成交易执行操作和后续的交易执行确认操作。
当然,以上是对以共识提议仅包含有一个交易集时,共识节点如何执行交易执行操作和交易执行确认操作的示例。除了图2所示外,本发明实施例方法还可以如图4所示,共识主节点在Prepare阶段和共识备份节点一起执行交易执行操作;或者如图5所示,共识主节点和共识备份节点在Prepare阶段后执行交易执行操作,并在完成交易执行操作后再进入Commit阶段。应理解,不管何种变化,但凡是在某一交易集的共识阶段内,并行对该交易集并行执行交易执行操作和交易执行确认都应属于本文件的保护范围之内。
基于上述原理延伸至第N轮共识提议包括第一交易集在内的多个交易集时,共识节点则可以如图6所示,分批次对第N轮共识提议的多个交集完成共识操作、交易执行操作和交易执行确认操作。
图6以第N轮共识提议包括第一交集、第二交易集合和第三交易集为示例。共识节点设置有负责执行共识操作的第一CPU线程(也可以是CPU核心,这里不再举例赘述),负责执交易执行操作和交易执行确认操作的第二CPU线程,以及负责执行写块操作的第三CPU线程,第一CPU线程、第二CPU线程和第三CPU线程之间相互并行。
首先,共识节点通过第一CPU线程执行第一交易集的共识操作,同时通过第二CPU线程执行第一交易集的交易执行操作和交易执行确认操作。在第一交易集完成共识且交易执行结果被确认后,共识节点开始通过第一CPU线程执行第二交易集的共识操作,同时通过第二CPU线程执行第二交易集的交易执行操作和交易执行确认操作。在第二交易集完成共识且交易执行结果被确认后,共识节点开始通过第一CPU线程执行第三交易集的共识操作,同时通过第二CPU线程执行第三交易集的交易执行操作和交易执行确认操作。在第三交易集完成共识且交易执行结果被确认后,共识节点开始通过第三CPU线程生再对第一交易集、第二交易集和第三交易集执行写块操作。
此外,如果第N轮共识提议包括第一交易集在内的多个交易集(依然以第N轮共识提议包括第一交集、第二交易集合和第三交易集为示例),共识节点还可以如图7所示那样,在分批次对第N轮共识提议的多个交集完成共识操作、交易执行操作和交易执行确认操作的基础之上,设置更多的CPU线程实现:在对第一交易集执行交易执行操作时,如果第N轮共识提议中存在尚未完成共识的第二交易集,则并行对第二交易集执行共识操作。同理,在对第二交易集执行交易执行操作时,如果第N轮共识提议中存在尚未完成共识的第三交易集,则并行对第三交易集执行共识操作。可以看出,图7所示的交易处理方式相比于图6所示的交易处理方式,进一步利用CPU多核多线程的优势,以并行方式提高区块链交易的上链效率。这里,如果需要保证区块链交易执行的有序性,第二交易集的交易执行操作应在第一交易集的交易执行操作完成后执行,同理第三交易集的交易执行操作应在第二交易集的交易执行操作完成后执行。
综上所述,本应用场景的方法在对第N轮共识提议的第一交易集执行共识操作时,还并行对第一交易集执行交易执行操作,从而提高第一交易集的交易执行确认效率,进而使客户端用户能够尽早得知交易执行结果,可在一定程度上改善用户体验。另一方面,共识操作和交易执行操作并行也缩短了区块链交易的上链耗时,这意味着区块链的业务吞吐量也随着得到了提升。
此外,即便是共识提议超时触发区块链的视图切换(更换共识主节点),共识节点执行交易执行操作也不会带来时间上的浪费。这是因为现有的区块链设置的共识提议超时时间一般为数秒至数十秒,共识节点在超时计时的期间,有充分时间来完成交易执行操作。
当然,如果共识提议超时结束,共识节点还可以将生成的临时区块进行缓存,以在后续轮次的共识提议中使用。这里,以第N轮共识提议超时为例,共识节点在生成第N轮共识提议的临时区块后,如果第N轮共识提议超时结束,则可以对第一交易集的临时区块先进行缓存,并在对第N+1轮共识提议的交易集执行共识操作时,若第N+1轮共识提议与第N轮共识提议的交易集一致(即,第N+1轮共识提议的共识节点发起了相同交易集的共识提议),则跳过对第二交易集执行交易执行操作,并将缓存的第一交易集的临时区块沿用为第二交易集的临时区块。也就是说,如果第N+1轮共识提议达成共识,则将之前缓存第一交易集的临时区块写入区块链中。当然,如果第N+1轮共识提议与第N轮共识提议的交易集不一致,则共识节点可以选择删除掉缓存的第一交易集的临时区块,以清理缓存空间。上述过程适用于共识主节点在共识阶段发生宕机后恢复并重新发起共识提议的场景,或者,共识提议超时触发区块链的视图切换,由新的共识主节点对原先共识提议的交易集重新发起共识提议的场景。
对应于图1所示的交易处理方法,本发明实施例还提供一种区块链节点。图8是本发明实施例区块链节点800的结构示意图,包括:
交易共识模块810,执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
交易执行模块820,执行所述第一交易集的交易执行操作;
交易执行确认模块830,在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
写块模块840,在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
基于本说明书实施例的装置,区块链的共识节点在完成交易的共识操作前,即可提前对交易执行交易执行操作,并在交易执行操作完成后发起交易执行确定操作,从而提高交易最终化的确认效率,进而使客户端用户能够尽早得知交易执行结果,在一定程度上改善了用户体验。此外,交易执行确认的提前也会更早的执行写块操作,使得区块链的交易上链效率也得了提升,进而提高了区块链的业务吞吐量,符合未来区块链业务高并发的发展趋势。
可选地,交易执行确认模块830具体用于:向区块链的其它共识节点发送所述第一交易集的交易执行确认消息,所述交易执行确认消息携带有所述第一交易集的哈希信息;以及,接收其它共识节点发送的携带有第一交易集的哈希信息的交易执行确认消息,并在接收到2f个其它共识节点发送的携带有相同所述第一交易集的哈希信息的交易执行确认消息后,确认所述第一交易集的交易执行,f为所述区块链设置的拜占庭容错数量。
可选地,写块模块840具体用于:在对所述第N轮共识提议的所有交易集都完成交易执行确认操作后,生成所述第N轮共识提议的临时区块;如果尚未对所述第N轮共识提议的所有交易集都达成共识,则所述共识节点进行等待;如果已经对所述第N轮共识提议的所有交易集都达成共识,则所述共识节点将所述第N轮共识提议的临时区块写入所述区块链中。
可选地,交易共识模块810在执行第N轮共识提议中第一交易集的共识操作的同事,交易执行模块820并行执行所述第一交易集的交易执行操作。
作为示例性介绍:
所述共识节点基于实用拜占庭容错PBFT协议执行共识操作;若所述共识节点作为所述区块链的共识主节点,则交易执行模块820在交易共识模块810对所述第一交易集执行所述PBFT协议的预准备Pre-Prepare阶段的共识操作时,并行执行所述第一交易集的交易执行操作;若所述共识节点作为所述区块链的共识备份节点,则交易执行模块820在交易共识模块810对所述第一交易集执行所述PBFT协议的准备Prepare阶段的共识操作时,并行执行所述第一交易集的交易执行操作。
可选地,交易执行模块820在交易共识模块810对所述第一交易集执行所述PBFT协议的保证Commit阶段的共识操作前,完成对第一交易集执行的交易执行操作;交易执行确认模块830交易执行模块820在对所述第一交易集执行所述PBFT的Commit阶段的共识操作时,将Commit消息作为所述第一交易集的交易执行确认消息以发送至所述区块链的其它共识节点,其中,所述共识节点发送的Commit消息携带有所述共识节点生成的所述第一交易集的哈希信息。
可选地,如果所述第N轮共识提议只包括所述第一交易集,则所述共识节点在对所述第一交易集执行所述PBFT协议的Commit阶段的共识操作前,生成所述第N轮共识提议的临时区块,其中,所述共识节点发送的Commit消息携带有所述共识节点生成的所述第N轮共识提议的临时区块的哈希信息,所述第N轮共识提议的临时区块的哈希信息作为所述第一交易集的哈希信息。
可选地,如果第N轮共识提议包括所述第一交易集在内的多个交易集,所述共识节点在对所述第一交易集执行交易执行操作时,如果存在第二交易集,则并行对所述第二交易集执行共识操作,其中,所述第二交易集是所述第N轮共识提议中尚未完成共识的交易集。
此外,本发明实施例的区块链节点还包括:
缓存模块,在交易执行模块820生成所述第N轮共识提议的临时区块后,若所述第N轮共识提议超时结束,则对所述第N轮共识提议的临时区块进行缓存;对应地,交易执行模块820在对第N+1轮共识提议的共识操作时,若所述第N+1轮共识提议与所述第N轮共识提议的交易集一致,则跳过对所述第N+1轮共识提议的交易集执行交易执行操作的流程,并将所述第N轮共识提议的临时区块沿用为所述第N+1轮共识提议的临时区块。当然,若所述第N+1轮共识提议与所述第N轮共识提议的交易集不一致,则缓存模块删可以除掉缓存的第N轮共识提议的临时区块的临时区块。
显然,本说明书实施例的区块链节点可以作为上述图1所示的交易处理方法的执行主体,因此能够实现交易处理方法在图1所实现的功能。由于原理相同,本文不再赘述。
图9是本说明书的一个实施例电子设备的结构示意图。请参考图9,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链的交易处理装置,该交易处理装置可以是指区块链节点,也可以是指区块链节点中的部件。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数。
执行所述第一交易集的交易执行操作。
在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作。
在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
基于本说明书实施例的电子设备,区块链的共识节点在完成交易的共识操作前,即可提前对交易执行交易执行操作,并在交易执行操作完成后发起交易执行确定操作,从而提高交易最终化的确认效率,进而使客户端用户能够尽早得知交易执行结果,在一定程度上改善了用户体验。此外,交易执行确认的提前也会更早的执行写块操作,使得区块链的交易上链效率也得了提升,进而提高了区块链的业务吞吐量,符合未来区块链业务高并发的发展趋势。
上述如本说明书图1所示实施例揭示的交易处理方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
应理解,本说明书实施例的电子设备可以实现上述共识方法在图1所示的实施例的功能。由于原理相同,本文不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
此外,本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下步骤:
执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数。
执行所述第一交易集的交易执行操作。
在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作。
在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
Claims (14)
1.一种区块链的交易处理方法,包括:
区块链的共识节点执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
所述共识节点执行所述第一交易集的交易执行操作;
所述共识节点在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
所述共识节点在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
2.如权利要求1所述的方法,
所述共识节点发起对所述第一交易集的交易执行确定操作,包括:
所述共识节点向区块链的其它共识节点发送所述第一交易集的交易执行确认消息,所述交易执行确认消息携带有所述第一交易集的哈希信息;
以及,所述共识节点当接收到2f个其它共识节点发送的携带有相同所述第一交易集的哈希信息的交易执行确认消息后,确认所述第一交易集的交易执行,f为所述区块链设置的拜占庭容错数量。
3.如权利要求2所述的方法,
所述共识节点在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作,包括:
所述共识节点在对所述第N轮共识提议的所有交易集都完成交易执行确认操作后,生成所述第N轮共识提议的临时区块;
如果尚未对所述第N轮共识提议的所有交易集都达成共识,则所述共识节点进行等待;
如果已经对所述第N轮共识提议的所有交易集都达成共识,则所述共识节点将所述第N轮共识提议的临时区块写入所述区块链中。
4.如权利要求3所述的方法,
在所述共识节点执行所述第一交易集的共识操作时,并行执行所述第一交易集的交易执行操作。
5.如权利要求4所述的方法,
所述共识节点基于实用拜占庭容错PBFT协议执行共识操作;
若所述共识节点作为所述区块链的共识主节点,则在对所述第一交易集执行所述PBFT协议的预准备Pre-Prepare阶段的共识操作时,并行执行所述第一交易集的交易执行操作;
若所述共识节点作为所述区块链的共识备份节点,则在对所述第一交易集执行所述PBFT协议的准备Prepare阶段的共识操作时,并行执行所述第一交易集的交易执行操作。
6.如权利要求5所述的方法,
所述共识节点在对所述第一交易集执行所述PBFT协议的保证Commit阶段的共识操作前,完成对第一交易集执行的交易执行操作;
所述共识节点在对所述第一交易集执行所述PBFT的Commit阶段的共识操作时,将Commit消息作为所述第一交易集的交易执行确认消息发送至所述区块链的其它共识节点,其中,所述共识节点发送的Commit消息携带有所述共识节点生成的所述第一交易集的哈希信息。
7.如权利要求6所述的方法,
所述第N轮共识提议只包括所述第一交易集,所述共识节点在对所述第一交易集执行所述PBFT协议的Commit阶段的共识操作前,生成所述第N轮共识提议的临时区块,其中,所述共识节点发送的Commit消息携带有所述共识节点生成的所述第N轮共识提议的临时区块的哈希信息,所述第N轮共识提议的临时区块的哈希信息作为所述第一交易集的哈希信息。
8.如权利要求1所述的方法,
所述第N轮共识提议包括所述第一交易集在内的多个交易集,所述共识节点在对所述第一交易集执行交易执行操作时,如果存在第二交易集,则并行对所述第二交易集执行共识操作,其中,所述第二交易集是所述第N轮共识提议中尚未完成共识的交易集。
9.如权利要求3所述的方法,还包括:
所述共识节点在生成所述第N轮共识提议的临时区块后,若所述第N轮共识提议超时结束,则对所述第N轮共识提议的临时区块进行缓存;以及,
所述共识节点在对第N+1轮共识提议的共识操作时,若所述第N+1轮共识提议与所述第N轮共识提议的交易集一致,则跳过对所述第N+1轮共识提议的交易集执行交易执行操作的流程,并将所述第N轮共识提议的临时区块沿用为所述第N+1轮共识提议的临时区块,若所述第N+1轮共识提议与所述第N轮共识提议的交易集不一致,则删除掉缓存的所述第N轮共识提议的临时区块的临时区块。
10.如权利要求1所述的方法,
所述共识节点为所述区块链的共识主节点,在共识节点执行第N轮共识提议中第一交易集的交易执行操作之前,所述方法还包括:
共识节点创建所述第N轮共识提议并发送至所述区块链的共识备份节点。
11.如权利要求1所述的方法,
所述共识节点为所述区块链的共识备份节点,在共识节点执行第N轮共识提议中第一交易集的交易执行操作之前,所述方法还包括:
共识节点接收所述区块链的共识主节点发送的所述第N轮共识提议。
12.一种区块链节点,包括:
交易共识模块,执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
交易执行模块,执行所述第一交易集的交易执行操作;
交易执行确认模块,在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
写块模块,在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
13.一种电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
执行所述第一交易集的交易执行操作;
在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
14.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
执行第N轮共识提议中第一交易集的共识操作,其中,N为正整数;
执行所述第一交易集的交易执行操作;
在所述交易执行操作执行完毕后,发起对所述第一交易集的交易执行确定操作;
在对所述第N轮共识提议的所有交易集都达成共识且都完成交易执行确认操作后,对所述第N轮共识提议的所有交易集执行写块操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210178246.2A CN114529414A (zh) | 2022-02-24 | 2022-02-24 | 一种区块链的交易处理方法、区块链节点及电子设备 |
PCT/CN2022/135403 WO2023160086A1 (zh) | 2022-02-24 | 2022-11-30 | 一种区块链的交易处理方法、区块链节点及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210178246.2A CN114529414A (zh) | 2022-02-24 | 2022-02-24 | 一种区块链的交易处理方法、区块链节点及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114529414A true CN114529414A (zh) | 2022-05-24 |
Family
ID=81624487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210178246.2A Pending CN114529414A (zh) | 2022-02-24 | 2022-02-24 | 一种区块链的交易处理方法、区块链节点及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114529414A (zh) |
WO (1) | WO2023160086A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023160086A1 (zh) * | 2022-02-24 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链的交易处理方法、区块链节点及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190354518A1 (en) * | 2018-05-01 | 2019-11-21 | Michael Zochowski | Chain mesh network for decentralized transaction systems |
CN108648078B (zh) * | 2018-05-02 | 2021-03-23 | 杭州溪塔科技有限公司 | 一种交易预处理方法、装置及电子设备 |
CN110020859B (zh) * | 2019-03-28 | 2022-03-11 | 杭州秘猿科技有限公司 | 一种并行执行的区块链共识方法、装置及电子设备 |
CN112991066A (zh) * | 2021-04-27 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法、装置和电子设备 |
CN113836232A (zh) * | 2021-09-24 | 2021-12-24 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和*** |
CN114529414A (zh) * | 2022-02-24 | 2022-05-24 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链的交易处理方法、区块链节点及电子设备 |
-
2022
- 2022-02-24 CN CN202210178246.2A patent/CN114529414A/zh active Pending
- 2022-11-30 WO PCT/CN2022/135403 patent/WO2023160086A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023160086A1 (zh) * | 2022-02-24 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链的交易处理方法、区块链节点及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023160086A1 (zh) | 2023-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111526219B (zh) | 一种联盟链的共识方法及联盟链*** | |
US11095750B2 (en) | Method, apparatus, and electronic device for processing consensus requests in a blockchain consensus network | |
EP3934162B1 (en) | Blockchain consensus method and device and electronic equipment | |
CN111523153B (zh) | 一种区块生成方法及共识节点 | |
CN108648078B (zh) | 一种交易预处理方法、装置及电子设备 | |
CN110557420B (zh) | 一种独立子链的运行方法及*** | |
CN110032436A (zh) | 支持暂停和启动的区块链共识方法、***和电子设备 | |
CN111523899A (zh) | 联盟链的共识方法、数据校验方法、装置及*** | |
CN114529414A (zh) | 一种区块链的交易处理方法、区块链节点及电子设备 | |
CN111522648B (zh) | 一种区块链的交易处理方法、装置及电子设备 | |
CN113821569A (zh) | 一种区块链的共识方法及区块链 | |
CN114529413A (zh) | 一种区块链交易的处理方法、区块链节点及电子设备 | |
CN113438092B (zh) | 一种交易广播方法及*** | |
CN111522696B (zh) | 区块链共识节点的宕机处理方法、数据持久化方法及硬件 | |
CN112465515B (zh) | 一种区块链的共识方法、共识节点及电子设备 | |
CN113297318B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114266573A (zh) | 区块链的信息异步处理方法及*** | |
CN114996151A (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
CN110908821B (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
CN114357079A (zh) | 一种基于区块链的数据处理方法、节点设备、***及平台 | |
CN113535338A (zh) | 用于数据接入的交互方法、***、存储介质及电子设备 | |
CN113886502B (zh) | 一种数据库和区块链同步的数据处理方法及*** | |
CN112445761B (zh) | 一种文件校验方法、装置及存储介质 | |
CN112788141B (zh) | 一种文件下载方法、装置、设备及计算机可读存储介质 | |
CN115270107A (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 |