CN111210350A - 区块链的交易方法、装置、计算机设备及存储介质 - Google Patents
区块链的交易方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111210350A CN111210350A CN202010005552.7A CN202010005552A CN111210350A CN 111210350 A CN111210350 A CN 111210350A CN 202010005552 A CN202010005552 A CN 202010005552A CN 111210350 A CN111210350 A CN 111210350A
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- stage
- successful
- state
- 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
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (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
本发明公开了一种区块链的交易方法、装置、计算机设备及存储介质,涉及区块链技术领域,主要用于保证分布式事务数据的一致性。本发明的主要技术方案为:获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链的交易方法、装置、计算机设备及存储介质。
背景技术
区块链网络是一个去中心化的分布式网络,不同区块链网络之间相互隔离;相同区块链网络的不同通道之间相互隔离。当多个区块链网络并存,且区块链网络之间需要共享某些数据时;或在同一个区块链网络中的不同通道之间需要共享数据时,就需要做跨通道的交易。
跨链跨通道交易中每笔交易都是采用二阶段提交的方式,由于网络的复杂性及系统等原因,在交易的各个阶段都可能发生问题。例如,跨链交易的调用者在执行交易时发生宕机,再次启动后调用者无法感知该交易在各个链或者各个通道上的执行状态,再次提交交易或者放弃交易都不是合理的处理方式。如果该笔交易是部分链或者部分通道成功,其他链或通道失败,此时放弃交易就会导致链之间的数据不一致,如果重复提交会导致成功的链或通道失败。
发明内容
本发明提供一种区块链的交易方法、装置、计算机设备及存储介质,保证了分布式事务数据的一致性,减少了因为网络异常或者机器宕机等异常导致的分布式网络中区块数据不一致的问题,维护区块链跨链或者跨通道交易的正常。
本发明实施例提供一种区块链的交易方法,所述方法包括:
获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;
确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;
若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
本发明实施例提供一种区块链的交易装置,所述装置包括:
获取模块,用于获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;
确定模块,用于确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;
回滚模块,用于若在所述第一节点和所述第二节点分别对应的交易成功记录表中一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链的交易方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链的交易方法。
上述区块链的交易方法、装置、计算机设备及存储介质,首先获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;然后确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。由于本发明可以通过记录的交易成功记录表和交易状态表准确的获知节点的交易状态,并在交易成功记录表中存在一个表中存储交易成功的节点,另一个表中未存储交易成功的节点的情况下,将交易成功的节点回滚到第一阶段交易之前的状态,从而本发明保证了分布式事务数据的一致性,减少了因为网络异常或者机器宕机等异常导致的分布式网络中区块数据不一致的问题,维护区块链跨链或者跨通道交易的正常。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中区块链的交易方法的一流程图;
图2是本发明一实施例中第二阶段交易确认方法的一流程图;
图3是本发明一实施例中确认第二阶段交易是否成功方法的一流程图;
图4是本发明一实施例中第二阶段交易确认装置的一原理框图;
图5是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一实施例中,如图1所示,提供一种区块链的交易方法,所述方法包括如下步骤:
S101,获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表。
其中,第一节点和第二节点为需要进行交易的节点,每个节点均对应一个交易成功记录表和交易状态表,所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态。具体的,交易成功记录表存储交易成功的节点标识信息,交易状态表中存储节点标识信息及对应的交易状态,交易状态具体可以为第一阶段交易成功、第一节点交易失败、第二阶段交易成功、第二阶段交易失败等信息,本发明实施例不做具体限定。
第一节点和第二节点在第一阶段交易失败(模拟执行失败)和第一阶段交易未收到(请求在网络中丢失或者调用者未发送交易)认为是同一种交易,不记录,即如果在交易状态表中查不到该记录则说明该笔交易第一阶段交易失败。如果在交易成功记录表中查不到该记录则说明该笔交易已回滚、或已提交、或第一阶段失败。
需要说明的是,本发明实施例中的第一阶段交易为预提交阶段:调用者发送交易到需要进行交易的节点,例如从A账户转账10元到B账户的交易发送到P1、P2两个节点,P1、P2节点先模拟执行账户A-10元、账户B+10元的操作。其中,模拟执行指的是做业务预设的校验如身份校验、安全校验、账户校验等,账户A-10元、账户B+10元的结果并不会真正落库,而是模拟真正转账的交易看是否可以成功,如模拟成功,会将A、B两个账户暂时上锁,即A、B账户无法做其他转账交易,将P1、P2两个节点交易的状态分别记录到其对应的交易成功记录表和交易状态表;如模拟失败,则不需要对A、B两个账户上锁,需要将交易成功的节点记录到交易成功记录表中,并在P1、P2两个节点分别对应的交易状态表中记录第一阶段的交易状态。
在本发明提供的一个实施例中,在获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表之前,所述方法还包括:获取在所述第一阶段交易中的第一节点和第二节点的交易状态;将交易成功的节点写入到与该节点对应的交易成功记录表中,并对应修改所述交易状态表中第一阶段交易的交易状态。其中,所述第一阶段交易的交易状态包括交易成功和交易失败。例如,存在节点P1和P2,在第一交易阶段中P1节点交易成功,P2节点交易失败,则在P1的节点标识写到对应的交易成功记录表中,并在其对应的交易状态表中添加P1节点第一阶段交易成功;而对于P2节点,仅在其对应的交易状态表中记录P2的第一阶段交易为失败,不需要在其对应的交易成功记录表中记录任何信息。
S102,确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点。
例如,存在两个交易节点A1和A2,在第一阶段交易中,A1交易成功,A2交易失败,即A1对应的交易成功记录表中存储了A1节点,A2对应的交易成功记录表中未存储A2节点,此时便可确认节点A1和A2分别对应的交易成功记录表中一个表中存储交易成功的节点,另一个表中未存储交易成功的节点。
S103,若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
需要说明的是,在第一阶段交易中,将交易成功的节点写入到与该节点对应的交易成功记录表中,并对应修改所述交易状态表中第一阶段交易的交易状态只是预提交阶段,只完成第一阶段交易预提交,没完成第二阶段交易提交的交易说明该笔交易已经通过了验证可以在区块链网络中落块,但并不真正落块,只是将资源上锁,准备落块。而在本发明实施例中,对于在所述第一节点和所述第二节点分别对应的交易成功记录表中一个表中存储交易成功的节点,另一个表中未存储交易成功的节点的情况下,说明第一阶段交易并没有完全成功,因此需要将所述交易成功的节点回滚到所述第一阶段交易之前的状态,第一阶段交易不执行真正的落块,需要将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
本发明实施例提供了一种区块链的交易方法,首先获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;然后确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。由于本发明可以通过记录的交易成功记录表和交易状态表准确的获知节点的交易状态,并在交易成功记录表中存在一个表中存储交易成功的节点,另一个表中未存储交易成功的节点的情况下,将交易成功的节点回滚到第一阶段交易之前的状态,从而本发明保证了分布式事务数据的一致性,减少了因为网络异常或者机器宕机等异常导致的分布式网络中区块数据不一致的问题,维护区块链跨链或者跨通道交易的正常。
在一实施例中,如图2所示,提供一种第二阶段交易确认方法,所述方法包括如下步骤:
S10,若确定所述第一节点和所述第二节点分别对应的交易成功记录表中均存储所述交易成功的节点;则进入所述第二阶段交易。
其中,第二阶段交易为提交阶段:根据各个节点预提交的结果,执行提交或者回滚。例如,存在两个节点P1和P2,节点P1在第一阶段交易成功,节点P2在第二阶段交易失败,则将节点P1的第一阶段交易回滚,即将节点P1从所述交易成功记录表中删除,并对应修改节点P1所在交易状态表中第一阶段交易的交易状态;如节点P1和节点P2在第一阶段交易都成功,则进入第二阶段交易。
S20,根据在所述第二阶段交易的交易提交时间,确定所述第二阶段交易是否交易成功。
具体的,第二阶段交易的交易提交时间为在第二阶段交易对该次交易的实际提交时间,对于本发明实施例可以根据进入第二阶段交易的时间,以及第二阶段交易的交易提交时间,确定第二阶段是否交易成功。
在本发明提供的一个实施例中,步骤S20根据在所述第二阶段交易的交易提交时间,确定所述第二阶段交易是否交易成功,包括:
S201,检测所述第二阶段交易是否在预置时间内提交交易。
其中,预置时间可以根据实际需求进行设置,具体的,可以根据统计在第二阶段正常的提交时间进行确定,如正常的第二阶段交易的提交时间为在3秒内,则可将预置时间设置为3秒,本发明实施例对预置时间的设定不做具体限定。
在本发明实施例,根据检测第二阶段交易是否在预置时间内提交交易的结果,确定后续的执行步骤,若第二阶段交易在预置时间内提交交易,则进入步骤S202A确定所述第二阶段交易成功;若第二阶段交易未在预置时间内提交交易,则进入步骤S202B确定所述第二阶段交易失败。
第二阶段交易的提交,这种多选择的情况下,可以根据业务需求,来让协调者对此类交易进行回滚还是提交操作,由协调者内部代码逻辑控制。即自动处理,如果协调者选择提交则进入步骤S203A继续进行执行;如果协调者选择回滚则进入步骤S203B继续进行执行。
S202A,若所述第二阶段交易在预置时间内提交交易,则确定所述第二阶段交易成功。
S203A,将在所述第一阶段交易中第一节点和第二节点分别对应的交易成功记录表中存储的交易成功的节点删除;并对应更新第一节点和第二节点分别对应的交易状态表中第二阶段交易的交易状态为成功。
其中,所述两个交易状态表中还分别记录有对应节点在第二交易阶段中的交易状态。
S202B,若所述第二阶段交易未在预置时间内提交交易,则确定所述第二阶段交易失败。
其中,步骤S202B为步骤S202A的并列步骤,若第二阶段交易未在预置时间内提交交易,则确定所述第二阶段交易失败。
S203B,将所述第一节点和第二节点分别回滚到所述第一阶段交易之前的状态。
S204B,将在所述第一阶段交易中第一节点和第二节点分别对应的交易成功记录表中存储的交易成功的节点删除;并对应更新第一节点和第二节点分别对应的交易状态表中第二阶段交易的交易状态为第一阶段交易回滚。
例如:节点P1中查询到交易A,节点P2中未查询到交易A,则说明A交易在P1中处于第一阶段成功,第二阶段未开始的状态,则A交易在P2中处于第一阶段失败,或者已提交或已回滚;为确定A在P2中的状态,再在P2中的交易状态表中查询交易A的状态,如果表2没有查询到该记录,则说明该交易在P2中处于第一阶段失败,则整体状态为“A在P1是第一阶段成功,在P2是第一阶段失败”,该笔交易为异常交易,应在P1节点回滚;如果在交易状态表中查询到交易A为已提交(或已回滚),则整体状态为“A在P1是第一阶段成功,在P2是第二阶段已提交(或已回滚)”,该笔交易为异常交易,应在P1节点回滚(或提交)。
节点P1中未查询到交易A,节点P2中也未查询到交易A,则该笔交易处于第一阶段失败或者第二阶段已提交或已回滚,状态一致无需管理。节点P1中查询到交易A,节点P2中也查询到交易A,则该笔交易在各个节点一致,只需同时提交或同时回滚即可。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种区块链的交易装置,该区块链的交易装置与上述实施例中区块链的交易方法一一对应。如图4所示,该区块链的交易装置包括获取模块10、确定模块20、回滚模块30。各功能模块详细说明如下:
获取模块10,用于获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;
确定模块20,用于确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;
回滚模块30,用于若在所述第一节点和所述第二节点分别对应的交易成功记录表中一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
进一步的,所述装置还包括:
进入模块40,若确定所述第一节点和所述第二节点分别对应的交易成功记录表中均存储所述交易成功的节点;则进入所述第二阶段交易;
所述确定模块20,还用于根据所述第二阶段交易的交易提交时间,确定所述第二阶段交易是否交易成功。
在本发明提供的一个实施例中,所述确定模块20包括:
确定单元21,用于若所述第二阶段交易在预置时间内提交交易,则确定所述第二阶段交易成功;
编辑单元22,用于将在所述第一阶段交易中第一节点和第二节点分别对应的交易成功记录表中存储的交易成功的节点删除;并对应更新第一节点和第二节点分别对应的交易状态表中第二阶段交易的交易状态为成功;所述两个交易状态表中还分别记录有对应节点在所述第二交易阶段中的交易状态。
在本发明提供的一个实施例中,所示确定模块20还包括:
所述确定单元21,还用于若所述第二阶段交易未在预置时间内提交交易,则确定所述第二阶段交易失败;
回滚单元23,还用于将所述第一节点和第二节点分别回滚到所述第一阶段交易之前的状态;
所述编辑单元22,还用于将在所述第一阶段交易中第一节点和第二节点分别对应的交易成功记录表中存储的交易成功的节点删除;并对应更新第一节点和第二节点分别对应的交易状态表中第二阶段交易的交易状态为第一阶段交易回滚。
进一步的,所述装置还包括:
所述获取模块10,还用于获取在所述第一阶段交易中的第一节点和第二节点的交易状态;
编辑模块50,用于将交易成功的节点写入到与该节点对应的交易成功记录表中,并对应修改所述交易状态表中第一阶段交易的交易状态,所述第一阶段交易的交易状态包括交易成功和交易失败。
关于区块链的交易装置的具体限定可以参见上文中对于区块链的交易法的限定,在此不再赘述。上述区块链的交易装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各节点分别对应的交易成功记录表和交易状态表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链的交易法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;
确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;
若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;
确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;
若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.一种区块链的交易方法,其特征在于,所述方法包括:
获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;
确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;
若是,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
2.根据权利要求1所述的区块链的交易方法,其特征在于,所述方法还包括:
若所述第一节点和所述第二节点分别对应的交易成功记录表中均存储所述交易成功的节点;则进入所述第二阶段交易;
根据所述第二阶段交易的交易提交时间,确定所述第二阶段交易是否交易成功。
3.根据权利要求2所述的区块链的交易方法,其特征在于,所述根据所述第二阶段交易的交易提交时间,确定所述第二阶段交易是否交易成功,包括:
若所述第二阶段交易在预置时间内提交交易,则确定所述第二阶段交易成功;
将在所述第一阶段交易中第一节点和第二节点分别对应的交易成功记录表中存储的交易成功的节点删除;并对应更新第一节点和第二节点分别对应的交易状态表中第二阶段交易的交易状态为成功;所述两个交易状态表中还分别记录有对应节点在第二交易阶段中的交易状态。
4.根据权利要求3所述的区块链的交易方法,其特征在于,所述根据所述第二阶段交易的交易提交时间,确定所述第二阶段交易是否交易成功,包括:
若所述第二阶段交易未在预置时间内提交交易,则确定所述第二阶段交易失败;
将所述第一节点和第二节点分别回滚到所述第一阶段交易之前的状态;
将在所述第一阶段交易中第一节点和第二节点分别对应的交易成功记录表中存储的交易成功的节点删除;并对应更新第一节点和第二节点分别对应的交易状态表中第二阶段交易的交易状态为第一阶段交易回滚。
5.根据权利要求1所述的区块链的交易方法,其特征在于,在获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表之前,所述方法还包括:
获取在所述第一阶段交易中的第一节点和第二节点的交易状态;
将交易成功的节点写入到与该节点对应的交易成功记录表中,并对应修改所述交易状态表中第一阶段交易的交易状态,所述第一阶段交易的交易状态包括交易成功和交易失败。
6.一种区块链的交易装置,其特征在于,所述装置包括:
获取模块,用于获取第一阶段交易中的第一节点和第二节点分别对应的交易成功记录表和交易状态表;所述两个交易成功记录表中分别记录有第一阶段交易成功的节点,所述两个交易状态表中分别记录有对应节点在第一交易阶段中的交易状态;
确定模块,用于确定在所述第一节点和所述第二节点分别对应的交易成功记录表中是否一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点;
回滚模块,用于若在所述第一节点和所述第二节点分别对应的交易成功记录表中一个交易成功记录表中存储交易成功的节点,另一个交易成功记录表中未存储交易成功的节点,则将所述交易成功的节点回滚到所述第一阶段交易之前的状态,并将所述交易成功的节点从所述交易成功记录表中删除,以及对应修改所述交易状态表中第一阶段交易的交易状态。
7.根据权利要求6所述的区块链的交易装置,其特征在于,所述装置还包括:
进入模块,若所述第一节点和所述第二节点分别对应的交易成功记录表中均存储所述交易成功的节点;则进入所述第二阶段交易;
所述确定模块,还用于根据所述第二阶段交易的交易提交时间,确定所述第二阶段交易是否交易成功。
8.根据权利要求7所述的区块链的交易装置,其特征在于,所述确定模块包括:
确定单元,用于若所述第二阶段交易在预置时间内提交交易,则确定所述第二阶段交易成功;
编辑模块,用于将在所述第一阶段交易中第一节点和第二节点分别对应的交易成功记录表中存储的交易成功的节点删除;并对应更新第一节点和第二节点分别对应的交易状态表中第二阶段交易的交易状态为成功;所述两个交易状态表中还分别记录有对应节点在所述第二交易阶段中的交易状态。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述区块链的交易方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述区块链的交易方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010005552.7A CN111210350A (zh) | 2020-01-03 | 2020-01-03 | 区块链的交易方法、装置、计算机设备及存储介质 |
PCT/CN2020/099537 WO2021135131A1 (zh) | 2020-01-03 | 2020-06-30 | 区块链的交易方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010005552.7A CN111210350A (zh) | 2020-01-03 | 2020-01-03 | 区块链的交易方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111210350A true CN111210350A (zh) | 2020-05-29 |
Family
ID=70787210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010005552.7A Pending CN111210350A (zh) | 2020-01-03 | 2020-01-03 | 区块链的交易方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111210350A (zh) |
WO (1) | WO2021135131A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112927073A (zh) * | 2021-02-23 | 2021-06-08 | 网易(杭州)网络有限公司 | 跨链数据互换方法、系统、装置、电子设备 |
WO2021135131A1 (zh) * | 2020-01-03 | 2021-07-08 | 平安科技(深圳)有限公司 | 区块链的交易方法、装置、计算机设备及存储介质 |
CN113918654A (zh) * | 2021-12-07 | 2022-01-11 | 深圳前海微众银行股份有限公司 | 一种区块数据提交的方法及装置 |
WO2023273438A1 (zh) * | 2021-06-28 | 2023-01-05 | 华为云计算技术有限公司 | 数据处理的方法以及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073540A (zh) * | 2010-12-15 | 2011-05-25 | 北京新媒传信科技有限公司 | 分布式事务提交方法和装置 |
CN103885854A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 一种数据备份方法、装置及系统 |
CN108269190A (zh) * | 2018-01-17 | 2018-07-10 | 深圳四方精创资讯股份有限公司 | 基于跨链中继平台的跨链方法及其系统 |
CN109325762A (zh) * | 2018-08-30 | 2019-02-12 | 杭州复杂美科技有限公司 | 平行链跨链交易方法、设备和存储介质 |
CN110473100A (zh) * | 2019-08-15 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的交易处理方法及装置 |
CN110502319A (zh) * | 2019-08-23 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 分布式事务的处理方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2018273794A1 (en) * | 2017-05-22 | 2019-12-12 | Richardson, Ric B | System for blockchain based domain name and IP number register |
CN109544171A (zh) * | 2018-11-30 | 2019-03-29 | 众安信息技术服务有限公司 | 用于实现跨区块链交易的一致性的方法及设备 |
CN111210350A (zh) * | 2020-01-03 | 2020-05-29 | 平安科技(深圳)有限公司 | 区块链的交易方法、装置、计算机设备及存储介质 |
-
2020
- 2020-01-03 CN CN202010005552.7A patent/CN111210350A/zh active Pending
- 2020-06-30 WO PCT/CN2020/099537 patent/WO2021135131A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073540A (zh) * | 2010-12-15 | 2011-05-25 | 北京新媒传信科技有限公司 | 分布式事务提交方法和装置 |
CN103885854A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 一种数据备份方法、装置及系统 |
CN108269190A (zh) * | 2018-01-17 | 2018-07-10 | 深圳四方精创资讯股份有限公司 | 基于跨链中继平台的跨链方法及其系统 |
CN109325762A (zh) * | 2018-08-30 | 2019-02-12 | 杭州复杂美科技有限公司 | 平行链跨链交易方法、设备和存储介质 |
CN110473100A (zh) * | 2019-08-15 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的交易处理方法及装置 |
CN110502319A (zh) * | 2019-08-23 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 分布式事务的处理方法、装置、电子设备及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135131A1 (zh) * | 2020-01-03 | 2021-07-08 | 平安科技(深圳)有限公司 | 区块链的交易方法、装置、计算机设备及存储介质 |
CN112927073A (zh) * | 2021-02-23 | 2021-06-08 | 网易(杭州)网络有限公司 | 跨链数据互换方法、系统、装置、电子设备 |
WO2023273438A1 (zh) * | 2021-06-28 | 2023-01-05 | 华为云计算技术有限公司 | 数据处理的方法以及装置 |
CN113918654A (zh) * | 2021-12-07 | 2022-01-11 | 深圳前海微众银行股份有限公司 | 一种区块数据提交的方法及装置 |
WO2023103340A1 (zh) * | 2021-12-07 | 2023-06-15 | 深圳前海微众银行股份有限公司 | 一种区块数据提交的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021135131A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111210350A (zh) | 区块链的交易方法、装置、计算机设备及存储介质 | |
CN110457157B (zh) | 分布式事务异常处理方法、装置、计算机设备及存储介质 | |
CN110750267A (zh) | 业务信息更新方法、装置、计算机设备和存储介质 | |
CN112035144B (zh) | 区块链系统的升级方法、装置、计算机设备及存储介质 | |
CN112965936B (zh) | 一种异构分布式模型的处理方法、装置、设备和存储介质 | |
CN111324623A (zh) | 资源转移数据核对方法、装置、计算机设备和存储介质 | |
CN110795171A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN113163011A (zh) | 区块链中修改数据的方法、系统、设备及存储介质 | |
CN116610752A (zh) | 事务性分布式数据同步方法、装置、系统及存储介质 | |
CN117195129A (zh) | 一种基于沙箱系统的异常处理方法及相关设备 | |
CN112069223B (zh) | 数据获取需求处理方法、装置、计算机设备和存储介质 | |
CN114527974B (zh) | 软件产品的业务功能实现方法、装置和计算机设备 | |
CN111858764A (zh) | 一种数据同步方法、装置、计算机设备及存储介质 | |
CN111966461A (zh) | 虚拟机集群节点守护方法、装置、设备及存储介质 | |
CN115604086A (zh) | 监控报警故障自愈方法、装置、设备、介质和程序产品 | |
CA3191210A1 (en) | Data syncronization method and device, computer equipment and storage medium | |
CN112765126A (zh) | 数据库事务的管理方法、装置、计算机设备和存储介质 | |
CN113986941A (zh) | 事务批量处理方法及装置 | |
CN112631821A (zh) | 内存故障检测定位方法、装置、计算机设备及存储介质 | |
CN110673987A (zh) | 数据库的恢复方法、装置、设备和存储介质 | |
CN115277232B (zh) | 安全策略回收方法和装置 | |
CN114595159B (zh) | 测试数据生成方法、装置、设备及存储介质 | |
CN111125123B (zh) | 一种基于redis实现跨库操作一致性的方法和系统 | |
CN112445829B (zh) | 数据核对的方法、装置、设备及存储介质 | |
CN111866130B (zh) | 基于zookeeper的日志处理方法、装置、计算机设备和存储介质 |
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 |