CN114185996A - 一种跨链事务处理方法及装置 - Google Patents
一种跨链事务处理方法及装置 Download PDFInfo
- Publication number
- CN114185996A CN114185996A CN202210136247.0A CN202210136247A CN114185996A CN 114185996 A CN114185996 A CN 114185996A CN 202210136247 A CN202210136247 A CN 202210136247A CN 114185996 A CN114185996 A CN 114185996A
- Authority
- CN
- China
- Prior art keywords
- transactions
- sub
- chain
- transaction
- cross
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/465—Distributed object oriented systems
-
- 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
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种跨链事务处理方法及装置,应用于跨链系统中的中继单元;所述跨链系统的至少两条区块链中均预先部署有智能合约;所述方法包括:从所述中继单元维护的跨链事务表中,获取包含至少两个子事务的目标跨链事务;生成分别与所述至少两个子事务对应的至少两个第一类调用交易,分别发送至所述至少两个区块链,调用所述智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;若所述预留的结果均为成功,生成分别与所述至少两个子事务对应的至少两个第二类调用交易,分别发送至所述至少两个区块链,调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
Description
技术领域
本说明书涉及区块链技术领域,尤其涉及一种跨链事务处理方法及装置。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的技术;通常,区块链具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的性质。
在相关技术中,可以通过跨链技术将多个区块链网络相互连接,使多个区块链网络进行相互通信,从而满足链上业务扩展、可信程度提升等需求,一般认为,跨链技术是实现价值互联网的关键,它是把区块链从分散的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁;但是,跨链相关的事务往往需要在多个区块链网络中同步事务进度,该同步过程往往难以兼顾效率和可靠性。
发明内容
有鉴于此,本说明书公开了一种跨链事务处理方法和装置。
根据本说明书实施例的第一方面,公开了一种跨链事务处理方法,应用于包含至少两条区块链的跨链系统中的中继单元;其特征在于,所述至少两条区块链中均预先部署有用于跨链事务处理的智能合约;所述方法包括:
从所述中继单元维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;
生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
若所述至少两条区块链的至少两个子事务对应的预留结果均为成功,则进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
可选的,所述方法还包括:
若所述至少两条区块链的至少两个子事务对应的预留结果中存在失败,则进一步生成分别与所述至少两个子事务对应的至少两个第三类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的取消逻辑,取消对与所述至少两个子事务对应的事务资源的预留。
可选的,所述目标跨链事务包括跨链转账事务,所述跨链转账事务包括转出子事务和转入子事务,所述至少两条区块链包括转出区块链和转入区块链;
所述预留与所述至少两个子事务对应的事务资源,包括:
检查所述转出区块链中由所述转出子事务指示的转出账户中的余额,是否大于或等于所述转出子事务指示的转账数额,在大于或等于的情况下,视为预留成功;
所述完成所述至少两个子事务,包括:
在所述转出区块链中,从所述转出账户中扣减所述转账数额;在所述转入区块链中,向所述转入子事务指示的转入账户中,增加所述转账数额。
可选的,所述目标跨链事务为上层分布式事务的尝试子事务、或者执行子事务、或者取消子事务。
可选的,所述上层分布式事务为存储在所述跨链事务表中的跨链事务。
可选的,所述跨链系统为上层分布式系统的一部分;所述上层分布式事务为所述上层分布式系统中待执行的分布式一致任务。
可选的,所述中继单元包括中继链和/或公证人。
根据本说明书实施例的第二方面,公开了一种跨链事务处理装置,应用于包含至少两条区块链的跨链系统的中继单元;其特征在于,所述至少两条区块链中均预先部署有用于跨链事务处理的智能合约;所述装置包括:
获取模块,从所述中继单元维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;
尝试模块,生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
确认模块,若所述至少两条区块链的至少两个子事务对应的预留结果均为成功,则进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
根据本说明书实施例的第三方面,公开了一种跨链事务处理系统,其特征在于,包括:
至少两条形成跨链通信关系的区块链,其中部署有用于跨链事务处理的智能合约;
所述至少两条形成跨链通信关系的区块链之间的中继单元,用于从维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;以及生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链;
所述至少两条区块链还用于,响应于所述至少两个第一类调用交易,调用所述智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
所述中继单元还用于,在所述至少两条区块链的至少两个子事务对应的预留结果均为成功的情况下,进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链;
所述至少两条区块链还用于,响应于所述至少两个第二类调用交易,调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
根据本说明书实施例的第四方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方面实施例所述的方法。
根据本说明书实施例的第五方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方面实施例所述的方法。
以上技术方案中,一方面,由于跨链系统中的中继单元会维护跨链事务表,其中包含至少两个子事务的目标跨链事务会被对应生成第一类调用交易,通过调用对应的区块链中的智能合约的方式尝试预留事务资源,并在跨链事务涉及的各个区块链中的尝试均成功的情况下再调用智能合约中的确认逻辑,完成上述至少两个子任务;因此,上述过程能够保证在各个区块链中完成子事务时不会出现资源被其他事务挤占,保障跨链事务的执行成功率。
另一方面,由于上述跨链事务表由跨链系统中原有的的中继单元维护,而具体实现子事务时则由跨链系统中涉及到的各个区块链中的智能合约实现,不仅没有引入新的开发门槛,还实现了高效的分工合作,因此能够提高跨链事务的部署和执行的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书示出的一种跨链系统的结构示例图;
图2是本说明书示出的一种跨链事务处理方法的流程示例图;
图3是本说明书示出的一种多层分布式事务嵌套的示意图;
图4是本说明书示出的一种跨链事务处理装置的结构示例图;
图5是本说明书示出的一种用于跨链事务处理的计算机设备的结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与本说明书的一些方面相一致的系统和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的技术;通常,区块链具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的性质。
在相关技术中,可以通过跨链技术将多个区块链网络相互连接,使多个区块链网络进行相互通信,从而满足链上业务扩展、可信程度提升等需求,一般认为,跨链技术是实现价值互联网的关键,它是把区块链从分散的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁;但是,跨链相关的事务往往需要在多个区块链网络中同步事务进度,该同步过程往往难以兼顾效率和可靠性。
有介于此,本说明书提出一种在包含中继单元的跨链系统中维护跨链事务表,并通过尝试-确认的工作流程,将跨链事务包含的子事务在对应的区块链上通过智能合约分布式执行的技术方案,以保障跨链事务的成功率和运行效率。
具体而言,请参见图1,图1为本说明书示出的一种跨链系统的结构示例图;在该示例中,上述跨链系统包括一个中继单元,以及对接到该中继单元的、需要进行跨链通信的两个区块链网络。
其中,该中继单元是一个逻辑概念上的单元,其可以指任意的、用于在上述两个需要进行跨链通信的区块链网络之间实现对接的单元,例如,如果上述两个区块链使用中继链方式进行跨链,那么上述中继单元就可以是中继链;如果上述两个区块链使用公证人方式完成跨链,那么上述中继单元就可以是公证人;因此,在本说明书中实际无需具体限定上述区块链网络之间进行跨链时具体采用的技术种类,上述中继单元的具体内容可以视上述区块链网络之间进行跨链时具体采用的技术种类而定。
上述区块链网络,则可以是任意形式的、支持智能合约的区块链网络;通常,区块链可以被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。通常各种类型的区块链性质可能存在差异,进而可以用于满足不同的技术需求;例如,如果希望获得最高的去中心化程度,则可以选用公有链;如果希望兼顾去中心化程度和性能,则可以选用联盟链等等。本领域技术人员可以根据具体的需求自行选择上述区块链的类型,本说明书对上述区块链的具体类型不进行额外限定。
当然可以理解的是,上述结构示例图仅是一个可行示例,本领域技术人员可以根据具体需求进行扩展;例如,虽然上述示例图中仅示出了两个各自包含5个节点的区块链网络,但是在实际应用中,该跨链系统也可以包含多于两个的区块链网络,每个区块链网络中的节点数量也有可能发生变化;也就是说,本申请说明书对于公开的跨链系统中区块链网络的数量、每个区块链网络中节点的数量都无需限定。
在实现时,上述中继单元中可以维护跨链事务表,并根据需要执行的跨链事务中的子事务,对应生成智能合约调用交易发送到对应的区块链中,从而以尝试-确认的方式在上述跨链系统中的多个区块链中分布式地执行上述子事务,进而实现跨链事务的分布式一致执行。
以上技术方案中,一方面,由于跨链系统中的中继单元会维护跨链事务表,其中包含至少两个子事务的目标跨链事务会被对应生成第一类调用交易,通过调用对应的区块链中的智能合约的方式尝试预留事务资源,并在跨链事务涉及的各个区块链中的尝试均成功的情况下再调用智能合约中的确认逻辑,完成上述至少两个子任务;因此,上述过程能够保证在各个区块链中完成子事务时不会出现资源被其他事务挤占,保障跨链事务的执行成功率。
另一方面,由于上述跨链事务表由跨链系统中原有的的中继单元维护,而具体实现子事务时则由跨链系统中涉及到的各个区块链中的智能合约实现,不仅没有引入新的开发门槛,还实现了高效的分工合作,因此能够提高跨链事务的部署和执行的效率。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图2,图2是本说明书一实施例提供的一种跨链事务处理方法,可以应用于包含至少两条区块链的跨链系统中的中继单元;其中,上述跨链系统的可行结构可以参考图1,上述至少两条区块链中均预先部署有用于跨链事务处理的智能合约;上述方法可以包括以下步骤:
S201,从所述中继单元维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;
S202,生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
S203,若所述至少两条区块链的至少两个子事务对应的预留结果均为成功,则进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
上述跨链事务表,可以指任意用于存储跨链事务的数据存储结构,例如关系型数据库、KV数据库、结构化文本文件等等;具体的数据存储方式、读写算法等等均可以根据具体需求,结合相关技术文献进行选择,本说明书更注重对于获取到的跨链事务的操作,因此无需对跨链事务表本身的实现方式进行额外限定。
上述智能合约,可以指任意通过在区块链的节点上响应于区块链交易而触发执行的、预先部署的数字合约,其通常可以通过代码的形式定义。在实际应用中,不同的可编程区块链都有可能各自提供不同的智能合约开发方法、开发语言、开发环境以及调试维护方法,而本说明书所公开的技术方案更关注于通过智能合约所完成的任务,因此无需对智能合约本身的类型、语言进行严格限定。
在本说明书中,上述中继单元可以首先从所述中继单元维护的跨链事务表中,获取待处理的目标跨链事务;例如,上述中继单元可以使用统一的结构体或者对象来存储跨链事务,并将所需要管理维护的跨链事务存储在上述跨链事务数据库、或者跨链事务队列等数据结构中;其中,具体从上述跨链事务表中获取待处理的目标跨链事务的条件,则本说明书无需进行详细限定,例如,其既可以是定时触发(例如,到达预设的时间点触发,或者经过预设的时间间隔后触发),也可以是响应于其监控的某些外部数据(例如,某利益相关人去世、某上市公司的股价超过预设阈值等等)触发,等等。
上述中继单元获取到的目标跨链事务中,则可以包含分别针对所述至少两条区块链的至少两个子事务;以跨链转账事务为例,如果需要从区块链A转出资产到区块链B,那么,上述跨链转账事务中就至少包含针对区块链A的转出子事务、以及针对区块链B的转入子事务。可以理解的是,上述目标跨链事务所包含的子事务的数量,既可能多于上述跨链系统中区块链的数量,也可能等于或者少于上述跨链系统中区块链的数量;举例而言,如果某跨链事务流程较为繁杂且多个环节之间有间隔时间,那么就有可能存在针对于同一个区块链的先后多个子事务,进而导致子事务的数量偏多;又例如,如果某跨链系统规模较大,但目标跨链事务仅需要在上述跨链系统中的部分区块链中执行,而与跨链系统中其他的区块链无关,那么上述目标跨链事务所包含的子事务的数量就可能少于上述跨链系统中区块链的数量。
在本说明书中,上述中继单元可以生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的尝试逻辑。如前所述,子事务与区块链相对应,因此涉及到目标跨链事务的区块链中,也就应当预先部署有与目标跨链事务相对应的智能合约;具体而言,该智能合约既可以是通用的、框架性质的合约,具体需要执行的逻辑和数据均通过上述调用交易以参数的方式传入,以提高智能合约的复用性,减少智能合约开发压力,也可以是非通用的、与子事务一一对应的智能合约,具体需要执行的逻辑被预先写在智能合约中,调用参数等数据则可以由调用交易携带传入,这样可以提高多个子事务的智能合约调用过程的独立性,避免智能合约出现故障时影响多个子事务的执行,提高系统的稳定性。
上述尝试逻辑,可以具体指用于预留子事务对应资源的逻辑代码;举例而言,如果上述子事务中涉及将某账户的链上资产减少预设数额,那么子事务对应资源就可以是上述某账户的预设数额的链上资产,对其预留操作则可以具体是对上述某账户的预设数额的链上资产的冻结操作;又例如,如果上述子事务中涉及在某存储区域写入数据,那么子事务对应资源久可以是该存储区域,而对应的预留操作就可以是对该存储区域的加锁操作,以避免其他程序对该存储区域进行意外操作。一般认为,调用上述尝试逻辑,在预留与上述至少两个子事务对应的事务资源之后,还可以将上述预留的结果反馈至上述中继单元,从而使得上述中继单元能够基于各个区块链反馈的预留结果进行逻辑判断,执行后续步骤。
在本说明书中,如果上述至少两条区块链的至少两个子事务对应的预留结果均为成功,就意味着,上述目标跨链事务的各个子事务所涉及的资源均已经被成功预留,后续进行各个子事务的执行将不会因为资源冲突而中止;因此,中继单元可以在上述至少两条区块链的至少两个子事务对应的预留结果均为成功的情况下,进一步生成分别与上述至少两个子事务对应的至少两个第二类调用交易,并分别发送至上述至少两个区块链,以调用上述至少两个区块链中的智能合约中的确认逻辑,完成上述至少两个子事务。
继续以前述上述子事务中涉及在某存储区域写入数据为例,如果前述尝试逻辑的资源预留成功,就意味着上述某存储区域被成功加锁,只能由上述子事务进行操作,则上述中继单元发出的第二类调用交易就可以调用上述智能合约中的确认逻辑,向上述被加锁的某区域写入数据,并且不会出现资源冲突的情况。
在示出的一种具体实施方式中,若上述至少两条区块链的至少两个子事务对应的预留结果中存在失败,则意味着如果继续进行子事务的执行过程,就有可能出现资源预留失败而导致的资源冲突,进而子事务执行失败,分布式不一致;在这种情况下,上述中继模块则可以进一步生成分别与上述至少两个子事务对应的至少两个第三类调用交易,并分别发送至上述至少两个区块链,以调用上述至少两个区块链中的智能合约中的取消逻辑,取消对与上述至少两个子事务对应的事务资源的预留。
继续以前述上述子事务中涉及在某存储区域写入数据为例,如果前述尝试逻辑的资源预留失败,就意味着上述某存储区域没有被成功加锁,无法保障只能由上述子事务进行操作,则上述中继单元发出的第三类调用交易就可以调用上述智能合约中的取消逻辑,使相关的区块链中取消对于上述某存储区域的加锁,回滚上述尝试逻辑所带来的影响。
在示出的一种具体实施方式中,上述目标跨链事务可以包括跨链转账事务,上述跨链转账事务可以包括转出子事务和转入子事务两部分,上述至少两条区块链则可以包括转出区块链和转入区块链;上述预留与上述至少两个子事务对应的事务资源,可以包括:检查上述转出区块链中由上述转出子事务指示的转出账户中的余额,是否大于或等于上述转出子事务指示的转账数额,在大于或等于的情况下,视为预留成功;上述完成上述至少两个子事务,可以包括:在上述转出区块链中,从上述转出账户中扣减上述转账数额;在上述转入区块链中,向上述转入子事务指示的转入账户中,增加上述转账数额;由于上述尝试逻辑中只是做了读取和判断动作,未产生需要回滚的影响,因此取消逻辑可以留空。
当然可以理解的是,在具体实现时,上述尝试-确认-取消的过程,既可以如上述例子中分别对应锁定资产、转移资产、取消锁定三个环节,也可以分别对应预扣资产、增加资产、返还资产三个环节;例如,如果在尝试逻辑中就执行从上述转出账户中扣减上述转账数额的步骤,并将余额大于或等于0作为预留成功的条件,那么在对应确认逻辑中就无需再对转出账户进行操作,而只需要在上述转入区块链中,向上述转入子事务指示的转入账户中,增加上述转账数额,在取消逻辑中,则可以包括在上述转出区块链中,从上述转出账户中增加上述转账数额的步骤,从而返还在尝试逻辑中预扣除的转出账户的转账数额。
亦可以理解的是,跨链转账事务并不一定是一条链转向另一条链,还可能是一条链中的资产转向多条链,或者,多条链中的资产转向一条链。本领域技术人员可以根据具体的业务需求自行进行代码设计,本说明书无需进行全部列举。
在示出的一种具体实施方式中,上述目标跨链事务可以为上层分布式事务的尝试子事务、或者执行子事务、或者取消子事务。请参见图3,图3是本说明书示出的一种多层分布式事务嵌套的示意图;在该示例中,下层分布式事务本身就是上层确认子事务,是上层分布式事务的一部分。也就是说,上述目标跨链事务本身可能是其他分布式事务的一个中间环节。通过此方案,可以增强代码的复用性,提高开发效率。
可以理解的是,上述目标跨链事务的上层分布式事务,既可以也是一个本跨链系统中的跨链事务,也可以是更大范围的上层分布式系统中的分布式一致任务。
在示出的一种具体实施方式中,上述目标跨链事务的上层分布式事务可以是一个本跨链系统中的跨链事务;在该情况下,实质上是实现了在一个跨链系统中的跨链事务的嵌套;例如,某跨链交易的逻辑可以表达为,若A向B支付虚拟资产X,那么B向C支付虚拟资产Y;那么,上层的分布式事务则可以描述为:
尝试:A向B支付虚拟资产X;
确认:B向C支付虚拟资产Y;
取消:B向A返还虚拟资产X。
而其中的每一项都可以视为一个跨链事务通过本说明书公开的跨链事务处理方法完成,例如尝试步骤中A向B支付虚拟资产X的过程,就可以如前述跨链转账方案完成,这样也就形成了两层跨链事务的嵌套。
在示出的另一种具体实施方式中,上述跨链系统是上层分布式系统的一部分,上述上层分布式事务为上述上层分布式系统中待执行的分布式一致任务。举例而言,假设一项基于股权交易系统的股权交易中,存在虚拟资产抵价的行为而虚拟资产低价的过程需要跨链转账,那么,虚拟资产的跨链转账就可以作为一个下层的分布式事务,而该转移成功与否又可以影响股权交易能否继续进行,因此该虚拟资产跨链转账的分布式事务又可以作为上层的、股权交易的分布式一致事务的尝试子事务。这样,可以将本说明书公开的跨链事务与传统的分布式一致事务进行结合,或者将多个跨链事务组成一个更大的分布式一致事务。
当然可以理解的是,上述上层分布式系统的“上层”只是从调用逻辑角度的描述,并不意味着上层分布式系统的管理级别或者规模一定高于下层分布式系统;例如,上层分布式系统可以是几个人维护的、只有4个节点的分布式计算网络,而下层分布式系统则可以涉及多个全球范围的上万节点的公有区块链。
在示出的一种具体实施方式中,上述中继单元可以是中继链,也可以是公证人;具体中继单元的形态可以根据上述跨链系统的具体搭设方式而确定,本说明书对此亦无需进行更详细的限定。
上述内容即为本说明书针对所述跨链事务处理方法的全部实施例。基于以上实施例可知,一方面,上述过程能够保证在各个区块链中完成子事务时不会出现资源被其他事务挤占,保障跨链事务的执行成功率;而另一方面,该方案不仅没有引入新的开发门槛,还实现了高效的分工合作,因此能够提高跨链事务的部署和执行的效率。
本说明书还提供了对应的跨链事务处理装置的实施例如下:
本说明书提出一种跨链事务处理装置,该跨链事务处理装置的结构示例如图4所示;该装置可以应用于包含至少两条区块链的跨链系统的中继单元;其特征在于,上述至少两条区块链中均预先部署有用于跨链事务处理的智能合约;上述装置可以包括如下模块:
获取模块401,从所述中继单元维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;
尝试模块402,生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
确认模块403,若所述至少两条区块链的至少两个子事务对应的预留结果均为成功,则进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
本说明书还提供了对应的跨链事务处理系统的实施例如下:
本说明书提出一种跨链事务处理系统,其可能的结构可参见前述图1中的跨链系统;该跨链事务处理系统可以包括:
至少两条形成跨链通信关系的区块链,其中部署有用于跨链事务处理的智能合约;
所述至少两条形成跨链通信关系的区块链之间的中继单元,用于从维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;以及生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链;
所述至少两条区块链还用于,响应于所述至少两个第一类调用交易,调用所述智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
所述中继单元还用于,在所述至少两条区块链的至少两个子事务对应的预留结果均为成功的情况下,进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链;
所述至少两条区块链还用于,响应于所述至少两个第二类调用交易,调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
当然可以理解的是,上述图1中示出的跨链系统只是一个可能的实现形态,在实际实现时亦可以进行灵活扩展和修改,例如,涉及的区块链网络的数量也可以高于2个,每个区块链网络中的节点数量也可以根据具体需求自行调整设计,本说明书无需进行详细限定。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的跨链事务处理方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的跨链事务处理方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (11)
1.一种跨链事务处理方法,应用于包含至少两条区块链的跨链系统中的中继单元;其特征在于,所述至少两条区块链中均预先部署有用于跨链事务处理的智能合约;所述方法包括:
从所述中继单元维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;
生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
若所述至少两条区块链的至少两个子事务对应的预留结果均为成功,则进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述至少两条区块链的至少两个子事务对应的预留结果中存在失败,则进一步生成分别与所述至少两个子事务对应的至少两个第三类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的取消逻辑,取消对与所述至少两个子事务对应的事务资源的预留。
3.根据权利要求2所述的方法,其特征在于,所述目标跨链事务包括跨链转账事务,所述跨链转账事务包括转出子事务和转入子事务,所述至少两条区块链包括转出区块链和转入区块链;
所述预留与所述至少两个子事务对应的事务资源,包括:
检查所述转出区块链中由所述转出子事务指示的转出账户中的余额,是否大于或等于所述转出子事务指示的转账数额,在大于或等于的情况下,视为预留成功;
所述完成所述至少两个子事务,包括:
在所述转出区块链中,从所述转出账户中扣减所述转账数额;在所述转入区块链中,向所述转入子事务指示的转入账户中,增加所述转账数额。
4.根据权利要求1所述的方法,其特征在于,所述目标跨链事务为上层分布式事务的尝试子事务、或者执行子事务、或者取消子事务。
5.根据权利要求4所述的方法,其特征在于,所述上层分布式事务为存储在所述跨链事务表中的跨链事务。
6.根据权利要求4所述的方法,其特征在于,所述跨链系统为上层分布式系统的一部分;所述上层分布式事务为所述上层分布式系统中待执行的分布式一致任务。
7.根据权利要求1所述的方法,其特征在于,所述中继单元包括中继链和/或公证人。
8.一种跨链事务处理装置,应用于包含至少两条区块链的跨链系统的中继单元;其特征在于,所述至少两条区块链中均预先部署有用于跨链事务处理的智能合约;所述装置包括:
获取模块,从所述中继单元维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;
尝试模块,生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
确认模块,若所述至少两条区块链的至少两个子事务对应的预留结果均为成功,则进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链,以调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
9.一种跨链事务处理系统,其特征在于,包括:
至少两条形成跨链通信关系的区块链,其中部署有用于跨链事务处理的智能合约;
所述至少两条形成跨链通信关系的区块链之间的中继单元,用于从维护的跨链事务表中,获取待处理的目标跨链事务;其中,所述目标跨链事务中包含分别针对所述至少两条区块链的至少两个子事务;以及生成分别与所述至少两个子事务对应的至少两个第一类调用交易,并分别发送至所述至少两个区块链;
所述至少两条区块链还用于,响应于所述至少两个第一类调用交易,调用所述智能合约中的尝试逻辑,预留与所述至少两个子事务对应的事务资源,并将所述预留的结果反馈至所述中继单元;
所述中继单元还用于,在所述至少两条区块链的至少两个子事务对应的预留结果均为成功的情况下,进一步生成分别与所述至少两个子事务对应的至少两个第二类调用交易,并分别发送至所述至少两个区块链;
所述至少两条区块链还用于,响应于所述至少两个第二类调用交易,调用所述至少两个区块链中的智能合约中的确认逻辑,完成所述至少两个子事务。
10.一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现权利要求1~7任一所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210136247.0A CN114185996B (zh) | 2022-02-15 | 2022-02-15 | 一种跨链事务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210136247.0A CN114185996B (zh) | 2022-02-15 | 2022-02-15 | 一种跨链事务处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114185996A true CN114185996A (zh) | 2022-03-15 |
CN114185996B CN114185996B (zh) | 2022-05-13 |
Family
ID=80607038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210136247.0A Active CN114185996B (zh) | 2022-02-15 | 2022-02-15 | 一种跨链事务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185996B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899698A (zh) * | 2017-04-11 | 2017-06-27 | 张铮文 | 一种区块链之间的跨链互操作方法 |
CN106960388A (zh) * | 2017-03-01 | 2017-07-18 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 跨区块链的数字资产流转的方法和装置 |
CN108269190A (zh) * | 2018-01-17 | 2018-07-10 | 深圳四方精创资讯股份有限公司 | 基于跨链中继平台的跨链方法及其系统 |
CN108288159A (zh) * | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、系统、设备及存储介质 |
WO2019211225A1 (en) * | 2018-05-01 | 2019-11-07 | International Business Machines Corporation | Blockchain implementing cross-chain transactions |
CA3149396A1 (en) * | 2019-08-06 | 2021-02-11 | Zeu Technologies, Inc. | Distributed blockchain transaction system |
CN112579700A (zh) * | 2020-12-14 | 2021-03-30 | 深圳前海微众银行股份有限公司 | 一种跨链事务处理方法及装置 |
CN113377875A (zh) * | 2021-06-29 | 2021-09-10 | 北京百度网讯科技有限公司 | 跨链数据处理方法、装置、电子设备及可读存储介质 |
-
2022
- 2022-02-15 CN CN202210136247.0A patent/CN114185996B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960388A (zh) * | 2017-03-01 | 2017-07-18 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 跨区块链的数字资产流转的方法和装置 |
CN106899698A (zh) * | 2017-04-11 | 2017-06-27 | 张铮文 | 一种区块链之间的跨链互操作方法 |
CN108269190A (zh) * | 2018-01-17 | 2018-07-10 | 深圳四方精创资讯股份有限公司 | 基于跨链中继平台的跨链方法及其系统 |
CN108288159A (zh) * | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、系统、设备及存储介质 |
WO2019211225A1 (en) * | 2018-05-01 | 2019-11-07 | International Business Machines Corporation | Blockchain implementing cross-chain transactions |
CA3149396A1 (en) * | 2019-08-06 | 2021-02-11 | Zeu Technologies, Inc. | Distributed blockchain transaction system |
CN112579700A (zh) * | 2020-12-14 | 2021-03-30 | 深圳前海微众银行股份有限公司 | 一种跨链事务处理方法及装置 |
CN113377875A (zh) * | 2021-06-29 | 2021-09-10 | 北京百度网讯科技有限公司 | 跨链数据处理方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114185996B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471984B (zh) | 基于区块链的业务处理方法及装置、电子设备 | |
CN110706114B (zh) | 一种基于区块链的违约资产处理方法、装置及电子设备 | |
CN109144414B (zh) | 区块链数据的多级存储方法和装置 | |
CN110458631B (zh) | 基于区块链的票据号码分配方法、装置及电子设备 | |
CN111290866B (zh) | 业务处理方法及装置 | |
CN110162470B (zh) | 一种区块链的测试方法和装置 | |
CN109933404B (zh) | 一种基于区块链智能合约的编解码方法及系统 | |
CN110020846B (zh) | 一种转账业务处理方法及系统 | |
CN110992038B (zh) | 交易处理方法、装置及设备 | |
CN109241186A (zh) | 分布式事务的管理方法、系统、计算机设备及存储介质 | |
CN111679902B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN112307045A (zh) | 一种数据同步方法及系统 | |
CN110750530B (zh) | 一种业务系统及其数据核对方法 | |
CN110992188B (zh) | 交易处理方法、装置及设备 | |
JP6975153B2 (ja) | データ格納サービス処理方法及び装置 | |
CN103309796A (zh) | 一种组件对象模型对象的监控方法和装置 | |
CN110599305A (zh) | 业务处理方法、装置及存储介质 | |
CN111913807B (zh) | 一种基于多个存储区域的事件处理方法、系统及装置 | |
CN111553699A (zh) | 一种资源调度方法及装置 | |
CN110188975A (zh) | 一种资源获取方法及装置 | |
CN110458538B (zh) | 基于区块链的状态机维护方法及装置、电子设备、存储介质 | |
CN114331435A (zh) | 一种基于区块链的任务众包方法及装置 | |
CN114298840A (zh) | 一种基于零知识证明的区块链交易背书方法及系统 | |
CN114185996B (zh) | 一种跨链事务处理方法及装置 | |
CN109345249A (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 |