CN112235423A - 跨链事务处理方法及装置、电子设备、存储介质 - Google Patents
跨链事务处理方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN112235423A CN112235423A CN202011442948.4A CN202011442948A CN112235423A CN 112235423 A CN112235423 A CN 112235423A CN 202011442948 A CN202011442948 A CN 202011442948A CN 112235423 A CN112235423 A CN 112235423A
- Authority
- CN
- China
- Prior art keywords
- chain
- target
- transaction
- cross
- chain transaction
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/3247—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 involving digital signatures
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请的实施例揭示了一种跨链事务处理方法及装置,该方法包括:当获取到源区块链中触发了跨链事件时,根据所述跨链事件生成针对目标区块链的目标链事务,所述跨链事件是所述源区块链根据跨链事务请求在所述源区块链上完成本地链事务后生成的;将所述目标链事务发送至所述目标区块链;向所述目标区块链查询所述目标链事务的处理结果;若根据所述处理结果确定所述目标区块链未完成所述目标链事务的处理,则向所述目标区块链重新发送所述目标链事务,直至所述目标链事务处理完成。本申请实施例的技术方案使得跨链事务能够达到最终一致性。
Description
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种跨链事务处理方法及装置、电子设备、计算机可读存储介质。
背景技术
在区块链技术领域中,为解决多条区块链之间的信息孤岛,于是产生了区块链跨链的需求,以在跨链的基础上实现多条区块链之间信息或资产的流通。但是,如何保证区块链跨链的过程最终能够达到预期的跨链效果,是需要不断研究的问题。
发明内容
本申请的实施例基于多个方面提供了一种跨链事务处理方法及装置、电子设备、计算机可读存储介质,基于本申请的实施例可以保证区块链跨链事务的最终一致性。
根据本申请实施例的一个方面,提供了一种跨链事务处理方法,所述方法应用于进行跨链事务管理的中继服务器,所述方法包括:当获取到源区块链中触发了跨链事件时,根据所述跨链事件生成针对目标区块链的目标链事务,所述跨链事件是所述源区块链根据跨链事务请求在所述源区块链上完成本地链事务后生成的;将所述目标链事务发送至所述目标区块链;向所述目标区块链查询所述目标链事务的处理结果;若根据所述处理结果确定所述目标区块链未完成所述目标链事务的处理,则向所述目标区块链重新发送所述目标链事务,直至所述目标链事务处理完成。
根据本申请实施例的另一个方面,提供了一种跨链事务处理方法,所述方法应用于跨链事务的请求方所属的源区块链,所述方法包括:根据请求方发起的跨链事务请求,执行需要在所述源区块链上处理的本地链事务;在所述本地链事务执行完成后生成跨链事务参数结构,以生成跨链事件,其中,所述跨链事务参数结构中含有待处理的事务参数以及目标链标识信息,所述事务参数用于构建待处理的目标链事务,所述目标链标识信息用于标识处理所述目标链事务的目标区块链,所述跨链事件用于触发中继服务器向所述目标区块链发送所述目标链事务;对所述本地链事务的执行结果进行共识,并在共识通过后将所述本地链事务、所述本地链事务对应的执行结果、以及所述跨链事务参数结构存储到所述源区块链上。
根据本申请实施例的另一个方面,提供了一种跨链事务处理方法,所述方法应用于跨链事务的目的方所属的目标区块链,所述方法包括:根据接收到的中继服务器发送的目标链事务请求,在所述目标区块链中处理目标链事务,其中,所述目标链事务是根据所述跨链事务的请求方所属的源区块链中触发的跨链事件生成的,所述跨链事件是所述源区块链根据所述请求方发起的跨链事务请求在所述源区块链上完成本地链事务后生成的;对所述目标链事务的执行结果进行共识;在所述共识通过后,将所述目标链事务以及所述目标链事务对应的执行结果存储到所述目标区块链上。
根据本申请实施例的一个方面,提供了一种跨链事务处理装置,该装置包括:跨链事件获取模块,配置为当获取到源区块链中触发了跨链事件时,根据所述跨链事件生成针对目标区块链的目标链事务,所述跨链事件是所述源区块链根据跨链事务请求在所述源区块链上完成本地链事务后生成的;目标链事务发送模块,配置为将所述目标链事务发送至所述目标区块链;处理结果查询模块,配置为向所述目标区块链查询所述目标链事务的处理结果;目标链事务重发模块,配置为在根据所述处理结果确定所述目标区块链未完成所述目标链事务的处理时,向所述目标区块链重新发送所述目标链事务,直至所述目标链事务处理完成。
根据本申请实施例的另一个方面,提供了一种跨链事务处理装置,该装置包括:本地链事务执行模块,配置为根据请求方发起的跨链事务请求,执行需要在所述源区块链上处理的本地链事务;跨链事件生成模块,配置为在所述本地链事务执行完成后生成跨链事务参数结构,以生成跨链事件,其中,所述跨链事务参数结构中含有待处理的事务参数以及目标链标识信息,所述事务参数用于构建待处理的目标链事务,所述目标链标识信息用于标识处理所述目标链事务的目标区块链,所述跨链事件用于触发中继服务器向所述目标区块链发送所述目标链事务;本地链事务共识模块,配置为对所述本地链事务的执行结果进行共识,并在共识通过后将所述本地链事务、所述本地链事务对应的执行结果、以及所述跨链事务参数结构存储到所述源区块链上。
根据本申请实施例的另一个方面,提供了一种跨链事务处理装置,该装置包括:目标链事务执行模块,配置为根据接收到的中继服务器发送的目标链事务请求,在所述目标区块链中处理目标链事务,其中,所述目标链事务是根据所述跨链事务的请求方所属的源区块链中触发的跨链事件生成的,所述跨链事件是所述源区块链根据所述请求方发起的跨链事务请求在所述源区块链上完成本地链事务后生成的;目标链事务共识模块,配置为对所述目标链事务的执行结果进行共识;执行结果上链模块,配置为在所述共识通过后,将所述目标链事务以及所述目标链事务对应的执行结果存储到所述目标区块链上。
根据本申请实施例的一个方面,提供了一种电子设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述各种可选实施例中提供的跨链事务处理方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述各种可选实施例中提供的跨链事务处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的跨链事务处理方法。
在本申请的实施例所提供的技术方案中,将跨链事务拆分为本地链事务和目标链事务,本地链事务在跨链事务的请求方所属的源区块链上执行,目标链事务则在跨链事务的目的方所属的目标区块链上执行,并通过中继服务器来将本地链事务和目标链事务串接起来,从而使得跨链事务能够达到最终一致性,也即使得跨链事务最终能够达到预期的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请涉及的一种实施环境的示意图。
图2是本申请的示例性实施例示出的跨链事务处理方法的流程图。
图3是本申请的另一示例性实施例示出的跨链事务处理方法的流程图。
图4是本申请的另一示例性实施例示出的跨链事务处理方法的流程图。
图5是本申请的示例性实施例示出的跨链事务处理方法的应用场景的示意图。
图6是本申请的另一示例性实施例示出的跨链事务处理方法的应用场景的示意图。
图7是本申请的示例性实施例示出的跨链事务处理装置的框图。
图8是本申请的另一示例性实施例示出的跨链事务处理装置的框图。
图9是本申请的另一示例性实施例示出的跨链事务处理装置的框图。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参阅图1,图1是本申请涉及的一种实施环境的示意图。该实施环境具体包括节点设备10、中继服务器20和节点设备30,中继服务器20分别与节点设备10和节点设备30进行通信。
节点设备10中存储有区块链A,节点设备30中存储有区块链B,区块链A和区块链B可以是同构链,也可以是非同构链,本处不对此进行限制。需要理解的是,该同构链是指区块链A和区块链B具有相同的代码,例如区块链A和区块链B都具有以太坊代码;该非同构链则是指区块链A和区块链B具有的代码不同,例如区块链A具有以太坊代码,而区块链B具有比特币代码。区块链A和区块链B均由多个区块组成,每个区块中包括区块头和区块体,区块头中存储有区块高度等信息。
通过中继服务器20,区块链A与区块链B之间可以实现信息或资产的流通,进而实现区块链A与区块链B之间的跨链事务处理。
例如,当用户向节点设备10发起区块链A向区块链B的转账请求时,该转账请求作为跨链事务,区块链A作为该跨链事务的请求方所属的源区块链,区块链B相应作为该跨链事务的目的方所属的目标区块链。节点设备10在区块链A上执行完成本地链事务(对应于在区块链A上的扣款)后,中继服务器20中生成目标链事务(对应于在区块链B上的入账),并将目标链事务发送给节点设备30,使节点设备30在区块链B上执行目标链事务。中继服务器20还将向区块链B查询目标链事务的处理结果,若根据处理结果确定区块链B未完成所述目标链事务的处理,则向节点设备30重新发送目标链事务,直至目标链事务处理完成。
可以看出,通过中继服务器20所进行的跨链事务管理,使得源区块链和目标区块链能够完成各自链上的本地事务,跨链事务能够完成预期的效果,进而能够保证跨链事务的最终一致性。
此外,节点设备10和节点设备30中均存储有跨链合约,该跨链合约是一种智能合约,是一套以数字形式定义、传播、验证或执行的约定,合约的参与方即可以在合约上执行约定的协议。在图1所示的实施环境中,节点设备10基于自身存储的跨链合约执行本地链事务,节点设备30基于自身存储的跨链合约执行目标链事务。
需要说明的是,图1所示的节点设备10、中继服务器20以及节点设备30可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处也不对此进行限制。
图2是本申请的示例性实施例示出的跨链事务处理方法的流程图。
该方法适用于图1所示的实施环境,例如由图1所示实施环境中的中继服务器20具体执行,以对跨链事务进行管理。在其它的应用场景中,该方法也可以由其它用于进行跨链事务管理的中继服务器执行,本实施例不对此进行限制。
如图2所示,在一示例性实施例中,该跨链事务处理方法可以包括步骤S110至步骤S170,详细介绍如下:
步骤S110,当获取到源区块链中触发了跨链事件时,根据跨链事件生成针对目标区块链的目标链事务,跨链事件是源区块链根据跨链事务请求在源区块链上完成本地链事务后生成的。
首先需要说明的是,本实施例中提及的跨链事务是指需要由不同的区块链参与实现的事务,其可以归属于柔性事务的事务类型。跨链事务可以包括跨链信息传递事务、跨链交易事务等具体事务。
源区块链是指跨链事务的请求方所属的区块链,目标区块链是指跨链事务的目的方所属的区块链,由此可知,本实施例所处理的跨链事务实际上是由源区块链和目标区块链参与实现的事务。源区块链与目标区块链可以是同构链,也可以是异构链;源区块链与目标区块链可以是同一区块链网络中部署的不同区块链,源区块链与目标区块链也分别部署在不同的区块链网络中,本实施例均不对此进行限制。
跨链事务具有原子性,该原子性是指不同区块链之间的原子操作,具体是将跨链事务拆分为多个本地事务,每个本地事务在各自的区块链上执行异步处理。在本实施例中,跨链事务的原子性对应于跨链事务处理过程中生成的本地链事务以及目标链事务,本地链事务由源区块链执行,目标区块链事务则由目标区块链执行。
跨链事务还具有最终一致性,该最终一致性强调的是系统中最终的数据能够达到一致,对本实施例涉及的跨链事务处理过程来说,跨链事务的最终一致性体现在本地链事务在源区块链上执行的结果、以及目标链事务在目标区块链上执行的结果达到跨链事务的预期效果。由此可知,跨链事务的最终一致性能够影响跨链事务的处理性能,因此本实施例需实现跨链事务处理的最终一致性。
源区块链根据请求方发起的跨链事务请求在源区块链上完成本地链事务后,相应生成跨链事件,当中继服务器监听到源区块链中触发了跨链事件时,则根据监听到的跨链事件生成针对目标区块链的目标链事务。
需要理解的是,请求方所发起的跨链事务请求中通常含有跨链事务的内容,源区块链基于跨链事务的内容即可确定需要在源区块链上处理的本地链事务,从而在源区块链上完成该本地链事务的处理。若以跨链事务为跨链交易事务为示例进行说明,跨链事务请求中含有源区块链向目标区块链转账的资产数目,源区块链即可确定需要处理的本地链事务为:在源区块链上执行该数目的扣款。
在一些实施例中,源区块链在执行完成本地链事务后会生成跨链事务参数结构,当中继服务器监听到源区块链中生成了跨链事务参数结构时,则确定监听到了源区块链中触发了跨链事件。
跨链事务参数结构中至少可以包括目标链标识信息和事务参数。其中,目标链标识信息具体可以包含目标区块链的链ID(Identity Document,身份标识号)和IP(InternetProtocol,网际互连协议)地址,基于目标链标识信息则可以确定待处理目标链事务的目标区块链。事务参数具体可以包括目标区块链上需要入账的入账地址、入账资产数目、目标区块链上部署的跨链合约的合约地址、目标区块链上部署的跨链合约执行入账操作对应的合约调用函数等参数,基于这些事务参数以及目标区块链对应的事务规范信息,即可生成目标区块链对应的目标链事务。
需要理解的是,目标区块链对应事务规范信息是指目标区块链处理本地事务所约定的规则,若以目标区块链处理本地的交易事务为例,目标区块链对应的交易规范信息可以包括预先约定的交易格式,例如包括交易类型、交易是否能反序列化成目标区块链定义的结构体、交易大小、交易消耗等交易格式信息,以保证基于事务参数和事务规范信息生成的目标链事务能够满足目标区块链的客观要求,从而使得所生成的目标链事务具有被目标区块链成功处理的基础条件。
或者在一些实施例中,源区块链生成跨链事务参数结构后,可以向中继服务器发送通知消息,若中继服务器接收到该通知消息,则确定监听到源区块链中触发了跨链事件,本处不对中继服务器监听到源区块链中的跨链事件的具体方式进行限制。
在另外的一些实施例中,中继服务器在生成针对目标区块链的目标区块链事务之后,还对目标链事务进行签名,所得到的签名结果将与目标链事务共同发送至目标区块链中,目标区块链只有对接收到的签名结果验证通过后,才执行所接收到的目标链事务。
示例性的,对目标链事务进行签名可以通过中继服务器自身的私钥对目标链事务进行哈希运算实现,中继服务器自身的公钥预先同步至目标区块链的本地,使得目标区块链可以根据本地存储的中继服务器的公钥对接收到的签名结果进行验证。
步骤S130,将目标链事务发送至目标区块链。
中继服务器预先与源区块链和目标区块链建立通信连接,因此中继服务器可以将生成的目标链事务发送至目标区块链。
目标链事务可以是以请求的形式发送至目标区块链的。具体来说,中继服务器在生成目标链事务后,向目标区块链发送目标链事务请求,目标链事务请求中含有目标链事务的内容,以请求目标区块链处理目标链事务。
在一些实施例中,目标区块链上部署有用于执行目标链事务的跨链合约,目标链事务请求中还含有目标区块链上部署的跨链合约的合约地址,以及含有目标区块链上部署的跨链合约执行目标链事务所需的合约调用函数。目标区块链在接收到目标链事务请求后,先根据目标链事务请求中含有的目标区块链对应的合约地址,确定目标区块链上部署的跨链合约,然后调用目标区块链中部署的跨链合约来执行目标链事务请求中含有的合约调用函数,由此通过目标区块链中部署的跨链合约来处理目标链事务。
中继服务器可以通过目标区块链对外提供的接口,来向目标区块链发送目标链事务或者目标链事务请求。
步骤S150,向目标区块链查询目标链事务的处理结果。
如前所述的,为保证本实施例进行的跨链事务处理具有较高的处理性能,需保证跨链事务具有最终一致性,因此中继服务器在向目标区块链发送目标链事务后,还向目标区块链查询目标链事务的处理结果。
若根据查询到的处理结果可以确定目标区块链已完成目标链事务的处理,则可以进一步确定已经通过本地链事务在源区块链上完成执行、以及目标链事务在目标区块链上完成执行来达到跨链事务的预期效果,因此本实施例对于跨链事务的处理具有最终一致性。若根据查询到的处理结果确定目标区块链未完成目标链事务的处理,则执行以下步骤S170描述的内容。
举例来说,若跨链事务为源区块链向目标区块链的转账事务,并且转账金额为人民币M元,当源区块链执行完成在源区块链上扣款人民币M元的本地链事务,并且目标区块链执行完成在目标区块链上入账人民币M元的目标链事务后,即实现了跨链事务所指示的源区块链向目标区块链转账人民币M元的预期效果,也即最终数据能够达到一致,由此实现跨链事务处理的最终一致性。
在一些实施例中,中继服务器中存储有待检查列表和重试列表,将待检查列表中含有的事务称为待检查事务,将重试列表中含有的事务称为重试事务。中继服务器周期性地获取待检查列表中含有的待检查事务,然后向执行待检查事务的区块链发起对应处理结果的获取请求,如果返回的处理结果指示区块链已完成待检查事务,则将待检查事务从待检查列表中删除。中继服务器执行完成待检查列表的处理后,针对重试列表执行重试操作,以将重试列表中含有的重试事务重新发送至执行重试事务的区块链。
中继服务器在向目标区块链发送目标链事务后,会将目标链事务添加到待检查列表中,因此目标链事务也称为待检查事务。在中继服务器周期性获取待检查列表的过程中,则会获取到目标链事务,从而向目标区块链发起目标链事务对应的处理结果的获取请求。
如果目标区块链返回的目标链事务对应的处理结果指示目标区块链已完成目标链事务的处理,则表示跨链事务已经执行完成,因此将目标链事务从待检查列表中删除,这也标识跨链事务的处理结束。如果目标区块链返回的目标链事务对应的处理结果指示目标区块链未完成目标链事务的处理,中继服务器将目标链事务添加至重试列表中,在针对重试列表执行重试操作时,中继服务器即可向目标区块链重新发送目标链事务,以使目标区块链重新执行目标链事务。
在一些实施例中,如果目标区块链并未查询到目标链事务的处理结果,也可以确定目标区块链未完成目标链事务的处理。例如,当跨链事务具体为跨链交易事务时,中继服务器根据目标区块链所执行交易对应的交易哈希向目标区块链拉取交易结果,如果拉取失败,则确定目标区块链未完成目标链事务的处理。
步骤S170,若根据处理结果确定目标区块链未完成目标链事务的处理,则向目标区块链重新发送目标链事务,直至目标链事务处理完成。
如上所述的,如果确定目标区块链未完成目标链事务的处理,中继服务器将目标链事务添加至重试列表中,在针对重试列表执行重试操作时,中继服务器则向目标区块链重新发送目标链事务,以使目标区块链重新执行目标链事务。
如果目标区块链在重新执行目标链事务的阶段完成了目标链事务的处理,中继服务器将在下一周期获取待检查列表的过程中,再次向目标区块链查询目标链事务的处理结果,如果确定目标区块链已完成目标链事务的处理,则将目标链事务从待检查列表中删除,进而结束跨链事务的处理。
而如果目标区块链在重新执行目标链事务的阶段仍未完成目标链事务的处理,中继服务器将在下一周期获取待检查列表的过程中,将目标链事务再次添加到重试列表中,以在中继服务器针对重试列表执行重试操作时,向目标区块链再一次发送目标链事务。中继服务器通过重复以上针对待检查列表以及重试列表的操作,直至目标链事务在目标区块链上完成处理,从而实现了跨链事务的最终一致性。
由上可知,本实施例将跨链事务拆分为本地链事务和目标链事务,并且本地链事务在跨链事务的请求方所属的源区块链上执行,目标链事务则在跨链事务的目的方所属的目标区块链上执行,还通过中继服务器来对跨链事务进行管理,从而将本地链事务和目标链事务串接起来,使得跨链事务能够达到最终一致性,进而使得本进行的跨链事务处理具有良好的跨链性能。
图3是本申请的另一示例性实施例示出的跨链事务处理方法的流程图。
该方法也适用于图1所示的实施环境,例如由图1所示实施环境中的节点设备10具体执行。在其它的应用场景中,该方法也可以由存储有跨链事务的请求方所属源区块链的设备执行,本实施例不进行限制。
如图3所示,在一示例性实施例中,该跨链事务处理方法可以包括步骤S210至步骤S250,详细介绍如下:
步骤S210,根据请求方发起的跨链事务请求,执行需要在源区块链上处理的本地链事务。
首先需要说明的是,本实施例提供的方法由跨链事务的请求方所属的源区块链执行,源区块链在接收到请求方发起的跨链事务请求后,则相应执行需要在区块链上处理的本地链事务。
请求方所发起的跨链事务请求中通常含有跨链事务的内容,源区块链基于跨链事务的内容即可确定需要在源区块链上处理的本地链事务,从而在源区块链上完成该本地链事务的处理。示例性的,以跨链事务为跨链交易事务为示例,跨链事务请求中含有目标区块链的链ID、源区块链向目标区块链转账的资产数目、扣款方及入账方在各自区块链上的地址信息等信息,基于这些信息即可确定需要在源区块链上执行的本地链事务为:在源区块链上执行该资产数目的扣款,并且扣款账户对应于扣款方的地址信息。
在一些实施例中,源区块链上部署有用于执行本地链事务的跨链合约,因此跨链事务请求中还含有源区块链上部署的跨链合约的合约地址,以及源区块链上部署的跨链合约执行本地链事务所需的合约调用函数。源区块链则根据跨链事务请求中含有的源区块链对应的合约地址,确定源区块链中部署的跨链合约,然后调用源区块链中部署的跨链合约执行跨链事务请求中含有的合约调用函数,以通过源区块链中部署的跨链合约处理本地链事务。
还需要说明的是,如果目标区块链上部署有用于执行目标链事务的跨链合约,跨链事务请求中还含有目标区块链上部署的跨链合约的合约地址,以及目标区块链上部署的跨链合约执行目标链事务所需的合约调用函数。
为确保源区块链能够成功执行本地链事务,源区块链在接收到跨链事务请求后,还对请求方发起的跨链事务请求进行合法性验证,若验证跨链事务请求合法,则执行需要在源区块链上处理的本地链事务。在对跨链事务请求进行合法性验证时,可以验证跨链事务对应的签名信息以及交易格式等信息,其中跨链事务对应的签名信息是请求方基于请求方私钥对跨链事务进行签名所得到的,因此根据请求方的公钥对该签名信息进行验证,交易格式可以包括交易类型、交易是否能反序列化成目标区块链定义的结构体、交易大小、交易消耗等信息。请求方的公钥可以预先存储在源区块链的本地。
步骤S230,在本地链事务执行完成后生成跨链事务参数结构,以生成跨链事件,其中,跨链事务参数结构中含有待处理的事务参数以及目标链标识信息,事务参数用于构建待处理的目标链事务,目标链标识信息用于标识处理目标链事务的目标区块链。
源区块链在执行完成本地链事务后会生成跨链事务参数结构,进而生成跨链事件,当中继服务器监听到源区块链中生成了跨链事件时,相应生成目标链事务,并将目标链事务发送给目标区块链。可以看出,源区块链中生成的跨链事件是用于触发中继服务器向目标区块链发送目标链事务。
跨链事务参数结构中至少可包括目标链标识信息和事务参数。其中,目标链标识信息具体可以包含目标区块链的链ID(Identity Document,身份标识号)和IP(InternetProtocol,网际互连协议)地址,基于目标链标识信息则可以确定待处理目标链事务的目标区块链。事务参数具体可以包括目标区块链上需要入账的入账地址、入账资产数目、目标区块链上部署的跨链合约的合约地址、目标区块链上部署的跨链合约执行入账操作对应的合约调用函数等参数。
中继服务器基于跨链事务参数结构中含有的事务参数、以及目标区块链对应的事务规范信息,即可生成针对目标区块链的目标链事务。如前所述的,目标区块链对应事务规范信息是指目标区块链处理本地事务所约定的规则,以保证基于事务参数和事务规范信息生成的目标链事务能具有被目标区块链成功处理的基础条件。
步骤S250,对本地链事务的执行结果进行共识,并在共识通过后将本地链事务、本地链事务对应的执行结果、以及跨链事务参数结构存储到源区块链上。
源区块链对本地链事务的执行结果进行共识,并在共识通过后将本地链事务、本地链事务对应的执行结果、以及跨链事务参数结构存储到源区块链上,从而完成本地链事务在源区块链上的处理。
在一些实施例中,由于中继服务器所进行的跨链事务管理能够保证目标链事务一定能够在目标区块链上完成处理,因此源区块链完成本地链事务的处理后,即可向请求方返回跨链事务请求对应的结果信息,以指示已完成跨链事务的处理。本实施例可以在请求方实现跨链事务的快速处理,能够提升用户的跨链体验。
或者在一些实施例中,中继服务器确定目标区块链已完成目标链事务后,会向源区块链发送目标区块链已完成目标链事务的通知消息,以使得源区块链向请求方返回跨链事务已完成跨链事务的处理的结果信息。本实施例则可以确保请求方所接收到的跨链事务响应能够与区块链上的处理同步,因此用户能够准确获知区块链上真实的处理结果。
图4是本申请的另一示例性实施例示出的跨链事务处理方法的流程图。
该方法也适用于图1所示的实施环境,例如由图1所示实施环境中的节点设备30具体执行。在其它的应用场景中,该方法也可以由存储有跨链事务的目的方所属目标区块链的设备执行,本实施例不进行限制。
如图4所示,在一示例性实施例中,该跨链事务处理方法可以包括步骤S310至步骤S350,详细介绍如下:
步骤S310,根据接收到的中继服务器发送的目标链事务请求,在目标区块链中处理目标链事务,其中,目标链事务是根据跨链事务的请求方所属的源区块链中触发的跨链事件生成的,跨链事件是源区块链根据请求方发起的跨链事务请求在源区块链上完成本地链事务后生成的。
首先需要说明的是,中继服务器向目标区块链发送目标链事务请求,以请求目标区块链处理目标链事务。
目标链事务是根据跨链事务的请求方所属的源区块链中触发的跨链事件生成的,跨链事件是源区块链根据请求方发起的跨链事务请求在源区块链上完成本地链事务后生成的,详细过程请参见前述实施例中记载的内容,本处不再进行赘述。目标区块链执行完成目标链事务后,则完成了请求方所请求的跨链事务。
在一些实施例中,目标区块链上部署有用于执行目标链事务的跨链合约,目标链事务请求中还含有目标区块链上部署的跨链合约的合约地址,以及含有目标区块链上部署的跨链合约执行目标链事务所需的合约调用函数。目标区块链在接收到目标链事务请求后,先根据目标链事务请求中含有的目标区块链对应的合约地址,确定目标区块链上部署的跨链合约,然后调用目标区块链中部署的跨链合约来执行目标链事务请求中含有的合约调用函数,由此通过目标区块链中部署的跨链合约来处理目标链事务。
步骤S330,对目标链事务的执行结果进行共识。
目标区块链执行完成目标链事务后,则对目标链事务的执行结果进行共识。若目标链事务的执行结果通过共识,则可以将目标链事务的执行结果是可信性。
步骤S350,在共识通过后,将目标链事务以及目标链事务对应的执行结果存储到目标区块链上。
本实施例在目标链事务的执行结果通过共识后,将目标链事务以及目标链事务对应的执行结果存储到目标区块链上,从而结束目标链事务在目标区块链上的处理。
当目标区块链接收到中继服务器针对待检查事务对应的处理结果的获取请求时,目标区块链则在链上查询待检查事务对应的执行结果,并将查找到的执行结果作为待检查事务对应的处理结果返回至中继服务器。如果未查找到待检查事务对应的执行结果,则表示目标区块链中并未执行完成相应待检查事务,因此向中继服务器返回指示目标区块链未完成该待检查事务的结果信息。其中,待检查事务是指中继服务器中存储的待检查列表中含有的事务,中继服务器对于待检查列表的处理和维护过程也请参见前述实施例中记载的内容,本处不也对此进行限制。
可以看出,以上各个实施例主要体现了源区块链和目标区块链这2条区块链之间的跨链事务处理,但是,基于2条区块链之间的跨链事务处理,还可以扩展至2条以上区块链之间的跨链事务处理。
示例性的,图5和图6分别是本申请的示例性实施例示出的跨链事务处理方法的应用场景的示意图。
如图5所示,在2条以上区块链之间的跨链事务处理场景下,可以将在2条以上区块链之间的跨链事务处理抽象为多组2条区块链之间的跨链事务处理,每一组2条区块链之间的跨链事务处理均配置有相应的中继服务器进行跨链事务管理,并且在相邻的两组2条区块链之间的跨链事务处理之间,前一组跨链事务处理中含有的目标区块链同时也是下一跨链事务处理中含有的源区块链,由此组合形成2条以上区块链之间的跨链事务处理流程。而基于各个中继服务器所进行的跨链事务管理,也能够保证2条以上区块链之间的跨链事务处理的最终一致性。
如图6所示,在较为复杂的应用场景中,2条以上区块链之间的跨链事务处理流程还可能存在“分路”的情况,例如图6中所示的区块链2不仅作为中继服务器1所通信的目标区块链,还作为中继服务器2和中继服务器3分别通信的源区块链。
由此可知,本实施例基于2条区块链之间的跨链事务处理,可以扩展实现2条以上区块链之间的跨链事务处理。但需要说明的是,具体的跨链事务处理请求需根据实际的应用场景进行设置,以上图5和图6所示出的跨链事务处理流程仅作为示例,并不能表示是对2条以上区块链之间的跨链事务处理流程进行了限制。
图7是本申请的示例性实施例示出的跨链事务处理装置的框图,跨链事务处理装置可以配置在用于进行跨链事务管理的中继服务器中。如图7所示,该跨链事务处理装置400包括:
跨链事件获取模块410,配置为当获取到源区块链中触发了跨链事件时,根据跨链事件生成针对目标区块链的目标链事务,跨链事件是源区块链根据跨链事务请求在源区块链上完成本地链事务后生成的;目标链事务发送模块430,配置为将目标链事务发送至目标区块链;处理结果查询模块450,配置为向目标区块链查询目标链事务的处理结果;目标链事务重发模块470,配置为在根据处理结果确定目标区块链未完成目标链事务的处理时,向目标区块链重新发送目标链事务,直至目标链事务处理完成。
在另一示例性实施例中,当监听到源区块链中生成了跨链事务参数结构时,则确定源区块链中触发了跨链事件;跨链事件获取模块410包括:
目标区块链确定单元,配置为根据跨链事务参数结构中含有的目标链标识信息,确定待处理目标链事务的目标区块链;目标链事务生成单元,配置为根据目标区块链对应的事务规范信息,以及跨链事务参数结构中含有的事务参数,生成针对目标区块链的目标链事务。
在另一示例性实施例中,跨链事件获取模块410还包括:事务签名单元,配置为对于目标链事务进行签名,以将得到的签名结果与目标链事务共同发送至目标区块链。
在另一示例性实施例中,中继服务器中存储有待检查列表;处理结果查询模块450包括:
待检查事务获取单元,配置为周期性地获取待检查列表中含有的待检查事务,待检查事务包括向目标区块链发送的目标链事务;获取请求发起单元,配置为向目标区块链发起目标链事务对应的处理结果的获取请求;处理结果接收单元,配置为接收所述目标区块链针对所述获取请求返回的处理结果。
此外,该装置还包括:待检查事务删除模块,配置为若目标区块链返回的处理结果指示目标区块链已完成目标链事务的处理,则将目标链事务从待检查列表中删除。
在另一示例性实施例中,中继服务器中还存储有待检查列表;该装置还包括:重试列表操作单元,配置为若目标区块链返回的处理结果指示目标区块链未完成目标链事务的处理,则将目标链事务添加至重试列表中,以在针对重试列表执行重试操作时,向目标区块链重新发送目标链事务。
图8是本申请的另一示例性实施例示出的跨链事务处理装置的框图。如图8所示,该跨链事务处理装置500包括:
本地链事务执行模块510,配置为根据请求方发起的跨链事务请求,执行需要在源区块链上处理的本地链事务;跨链事件生成模块530,配置为在本地链事务执行完成后生成跨链事务参数结构,以生成跨链事件,其中,跨链事务参数结构中含有待处理的事务参数以及目标链标识信息,事务参数用于构建待处理的目标链事务,目标链标识信息用于标识处理目标链事务的目标区块链,跨链事件用于触发中继服务器向目标区块链发送目标链事务;本地链事务共识模块550,配置为对本地链事务的执行结果进行共识,并在共识通过后将本地链事务、本地链事务对应的执行结果、以及跨链事务参数结构存储到源区块链上。
在另一示例性实施例中,本地链事务执行模块510包括:
第一跨链合约确定单元,配置为根据跨链事务请求中含有的源区块链对应的合约地址,确定源区块链中部署的跨链合约;第一合约调用执行单元,配置为调用源区块链中部署的跨链合约执行跨链事务请求中含有的合约调用函数,以通过源区块链中部署的跨链合约处理本地链事务。
在另一示例性实施例中,该跨链事务处理装置500还包括:结果信息返回模块,配置为向请求方返回跨链事务请求对应的结果信息,结果信息指示已完成跨链事务的处理。
在另一示例性实施例中,该跨链事务处理装置500还包括:事务请求验证模块,配置为对请求方发起的跨链事务请求进行合法性验证,若验证跨链事务请求合法,则执行需要在源区块链上处理的本地链事务。
图9是本申请的另一示例性实施例示出的跨链事务处理装置的框图。如图9所示,该跨链事务处理装置600包括:
目标链事务执行模块610,配置为根据接收到的中继服务器发送的目标链事务请求,在目标区块链中处理目标链事务,其中,目标链事务是根据跨链事务的请求方所属的源区块链中触发的跨链事件生成的,跨链事件是源区块链根据请求方发起的跨链事务请求在源区块链上完成本地链事务后生成的;目标链事务共识模块630,配置为对目标链事务的执行结果进行共识;执行结果上链模块650,配置为在共识通过后,将目标链事务以及目标链事务对应的执行结果存储到目标区块链上。
在另一示例性实施例中,目标链事务执行模块610包括:
第二跨链合约确定单元,配置为根据目标链事务请求中含有的目标区块链对应的合约地址,确定目标区块链中部署的跨链合约;第二合约调用执行单元,配置为调用目标区块链中部署的跨链合约执行目标链事务请求中含有的合约调用函数,以通过目标区块链中部署的跨链合约处理目标链事务。
在另一示例性实施例中,该跨链事务处理装置600还包括:
执行结果查询模块,配置为当接收到中继服务器针对待检查事务对应的处理结果的获取请求时,在目标区块链上查询待检查事务对应的执行结果;执行结果返回模块,配置为将查找到的执行结果作为待检查事务对应的处理结果返回至中继服务器。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请的实施例还提供了一种电子设备,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前所述的跨链事务处理方法。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图10示出的电子设备的计算机系统1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1600包括中央处理单元(Central Processing Unit,CPU)1601,其可以根据存储在只读存储器(Read-Only Memory,ROM)1602中的程序或者从储存部分1608加载到随机访问存储器(Random Access Memory,RAM)1603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1603中,还存储有系统操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(Input /Output,I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的储存部分1608;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入储存部分1608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的跨链事务处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的跨链事务处理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (15)
1.一种跨链事务处理方法,其特征在于,所述方法应用于进行跨链事务管理的中继服务器,所述方法包括:
当获取到源区块链中触发了跨链事件时,根据所述跨链事件生成针对目标区块链的目标链事务,所述跨链事件是所述源区块链根据跨链事务请求在所述源区块链上完成本地链事务后生成的;
将所述目标链事务发送至所述目标区块链;
向所述目标区块链查询所述目标链事务的处理结果;
若根据所述处理结果确定所述目标区块链未完成所述目标链事务的处理,则向所述目标区块链重新发送所述目标链事务,直至所述目标链事务处理完成。
2.根据权利要求1所述的方法,其特征在于,当监听到所述源区块链中生成了跨链事务参数结构时,确定所述源区块链中触发了所述跨链事件;所述根据所述跨链事件生成针对目标区块链的目标链事务,包括:
根据所述跨链事务参数结构中含有的目标链标识信息,确定待处理目标链事务的目标区块链;
根据所述目标区块链对应的事务规范信息,以及所述跨链事务参数结构中含有的事务参数,生成针对所述目标区块链的目标链事务。
3.根据权利要求1所述的方法,其特征在于,在根据所述跨链事件生成针对目标区块链的目标链事务之后,所述方法还包括:
对于所述目标链事务进行签名,以将得到的签名结果与所述目标链事务共同发送至所述目标区块链。
4.根据权利要求1所述的方法,其特征在于,所述中继服务器中存储有待检查列表;所述向所述目标区块链查询所述目标链事务的处理结果,包括:
周期性地获取所述待检查列表中含有的待检查事务,所述待检查事务包括向所述目标区块链发送的所述目标链事务;
向所述目标区块链发起所述目标链事务对应的处理结果的获取请求;
接收所述目标区块链针对所述获取请求返回的处理结果;
在向所述目标区块链查询所述目标链事务的处理结果之后,所述方法还包括:
若所述目标区块链返回的处理结果指示所述目标区块链已完成所述目标链事务的处理,则将所述目标链事务从所述待检查列表中删除。
5.根据权利要求4所述的方法,其特征在于,所述中继服务器中还存储有重试列表;所述方法还包括:
若所述目标区块链返回的处理结果指示所述目标区块链未完成所述目标链事务的处理,则将所述目标链事务添加至所述重试列表中,以在针对所述重试列表执行重试操作时,向所述目标区块链重新发送所述目标链事务。
6.一种跨链事务处理方法,其特征在于,所述方法应用于跨链事务的请求方所属的源区块链,所述方法包括:
根据请求方发起的跨链事务请求,执行需要在所述源区块链上处理的本地链事务;
在所述本地链事务执行完成后生成跨链事务参数结构,以生成跨链事件,其中,所述跨链事务参数结构中含有待处理的事务参数以及目标链标识信息,所述事务参数用于构建待处理的目标链事务,所述目标链标识信息用于标识处理所述目标链事务的目标区块链,所述跨链事件用于触发中继服务器向所述目标区块链发送所述目标链事务;
对所述本地链事务的执行结果进行共识,并在共识通过后将所述本地链事务、所述本地链事务对应的执行结果、以及所述跨链事务参数结构存储到所述源区块链上。
7.根据权利要求6所述的方法,其特征在于,所述根据请求方发起的跨链事务请求,执行需要在所述源区块链上的本地链事务,包括:
根据所述跨链事务请求中含有的所述源区块链对应的合约地址,确定所述源区块链中部署的跨链合约;
调用所述源区块链中部署的跨链合约执行所述跨链事务请求中含有的合约调用函数,以通过所述源区块链中部署的跨链合约处理所述本地链事务。
8.根据权利要求6所述的方法,其特征在于,在将所述本地链事务、所述本地链事务对应的执行结果、以及所述跨链事务参数结构存储到所述源区块链上后,所述方法还包括:
向所述请求方返回所述跨链事务请求对应的结果信息,所述结果信息指示已完成所述跨链事务的处理。
9.根据权利要求6所述的方法,其特征在于,在执行需要在所述源区块链上处理的本地链事务之前,所述方法还包括:
对所述请求方发起的跨链事务请求进行合法性验证;
若验证所述跨链事务请求合法,则执行需要在所述源区块链上处理的本地链事务。
10.一种跨链事务处理方法,其特征在于,所述方法应用于跨链事务的目的方所属的目标区块链,所述方法包括:
根据接收到的中继服务器发送的目标链事务请求,在所述目标区块链中处理目标链事务,其中,所述目标链事务是根据所述跨链事务的请求方所属的源区块链中触发的跨链事件生成的,所述跨链事件是所述源区块链根据所述请求方发起的跨链事务请求在所述源区块链上完成本地链事务后生成的;
对所述目标链事务的执行结果进行共识;
在所述共识通过后,将所述目标链事务以及所述目标链事务对应的执行结果存储到所述目标区块链上。
11.根据权利要求10所述的方法,其特征在于,所述根据接收到的中继服务器发送的目标链事务请求,在所述目标区块链中执行目标链事务,包括:
根据所述目标链事务请求中含有的所述目标区块链对应的合约地址,确定所述目标区块链中部署的跨链合约;
调用所述目标区块链中部署的跨链合约执行所述目标链事务请求中含有的合约调用函数,以通过所述目标区块链中部署的跨链合约处理所述目标链事务。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当接收到所述中继服务器针对待检查事务对应的处理结果的获取请求时,在所述目标区块链上查询所述待检查事务对应的执行结果;
将查找到的执行结果作为所述待检查事务对应的处理结果返回至所述中继服务器。
13.一种跨链事务处理装置,其特征在于,所述装置包括:
跨链事件获取模块,配置为当获取到源区块链中触发了跨链事件时,根据所述跨链事件生成针对目标区块链的目标链事务,所述跨链事件是所述源区块链根据跨链事务请求在所述源区块链上完成本地链事务后生成的;
目标链事务发送模块,配置为将所述目标链事务发送至所述目标区块链;
处理结果查询模块,配置为向所述目标区块链查询所述目标链事务的处理结果;
目标链事务重发模块,配置为在根据所述处理结果确定所述目标区块链未完成所述目标链事务的处理时,向所述目标区块链重新发送所述目标链事务,直至所述目标链事务处理完成。
14.一种电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-12中的任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-12中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011442948.4A CN112235423B (zh) | 2020-12-11 | 2020-12-11 | 跨链事务处理方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011442948.4A CN112235423B (zh) | 2020-12-11 | 2020-12-11 | 跨链事务处理方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112235423A true CN112235423A (zh) | 2021-01-15 |
CN112235423B CN112235423B (zh) | 2021-08-10 |
Family
ID=74124609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011442948.4A Active CN112235423B (zh) | 2020-12-11 | 2020-12-11 | 跨链事务处理方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112235423B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112396427A (zh) * | 2021-01-19 | 2021-02-23 | 北京连琪科技有限公司 | 一种面向通用场景的跨链互换操作方法 |
CN113807960A (zh) * | 2021-03-04 | 2021-12-17 | 京东科技控股股份有限公司 | 异构链间的跨链处理方法、装置、系统、电子设备 |
CN115580621A (zh) * | 2022-09-08 | 2023-01-06 | 中国联合网络通信集团有限公司 | 区块链跨链业务处理方法、节点、介质及区块链 |
CN115914240A (zh) * | 2023-01-06 | 2023-04-04 | 江苏荣泽信息科技股份有限公司 | 一种基于dns解析的跨链事务模版管理系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108269190A (zh) * | 2018-01-17 | 2018-07-10 | 深圳四方精创资讯股份有限公司 | 基于跨链中继平台的跨链方法及其系统 |
CN108876370A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种异构多链架构下跨区块链共享开放数据的体系架构 |
CN108900585A (zh) * | 2018-06-15 | 2018-11-27 | 浙江华信区块链科技服务有限公司 | 跨链事务一致性实现方法 |
CN109544171A (zh) * | 2018-11-30 | 2019-03-29 | 众安信息技术服务有限公司 | 用于实现跨区块链交易的一致性的方法及设备 |
CN109784881A (zh) * | 2018-12-29 | 2019-05-21 | 广州蓝石信息技术有限公司 | 基于去中心化网关的通用跨链支付方案 |
CN109993531A (zh) * | 2019-04-01 | 2019-07-09 | 辽宁大学 | 一种支持跨区块链交易的数据验证方法 |
CN110443704A (zh) * | 2019-06-28 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 一种跨链发送资源的方法和装置 |
CN111046109A (zh) * | 2019-12-27 | 2020-04-21 | 深圳市网心科技有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
CN111181968A (zh) * | 2019-12-30 | 2020-05-19 | 北京金山云网络技术有限公司 | 跨区块链通信方法、装置、跨链服务系统及跨链交易系统 |
CN111200641A (zh) * | 2019-12-25 | 2020-05-26 | 深圳供电局有限公司 | 数据跨链共享方法、系统,计算机设备和存储介质 |
-
2020
- 2020-12-11 CN CN202011442948.4A patent/CN112235423B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108269190A (zh) * | 2018-01-17 | 2018-07-10 | 深圳四方精创资讯股份有限公司 | 基于跨链中继平台的跨链方法及其系统 |
CN108876370A (zh) * | 2018-06-12 | 2018-11-23 | 北京航空航天大学 | 一种异构多链架构下跨区块链共享开放数据的体系架构 |
CN108900585A (zh) * | 2018-06-15 | 2018-11-27 | 浙江华信区块链科技服务有限公司 | 跨链事务一致性实现方法 |
CN109544171A (zh) * | 2018-11-30 | 2019-03-29 | 众安信息技术服务有限公司 | 用于实现跨区块链交易的一致性的方法及设备 |
CN109784881A (zh) * | 2018-12-29 | 2019-05-21 | 广州蓝石信息技术有限公司 | 基于去中心化网关的通用跨链支付方案 |
CN109993531A (zh) * | 2019-04-01 | 2019-07-09 | 辽宁大学 | 一种支持跨区块链交易的数据验证方法 |
CN110443704A (zh) * | 2019-06-28 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 一种跨链发送资源的方法和装置 |
CN111200641A (zh) * | 2019-12-25 | 2020-05-26 | 深圳供电局有限公司 | 数据跨链共享方法、系统,计算机设备和存储介质 |
CN111046109A (zh) * | 2019-12-27 | 2020-04-21 | 深圳市网心科技有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
CN111181968A (zh) * | 2019-12-30 | 2020-05-19 | 北京金山云网络技术有限公司 | 跨区块链通信方法、装置、跨链服务系统及跨链交易系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112396427A (zh) * | 2021-01-19 | 2021-02-23 | 北京连琪科技有限公司 | 一种面向通用场景的跨链互换操作方法 |
CN113807960A (zh) * | 2021-03-04 | 2021-12-17 | 京东科技控股股份有限公司 | 异构链间的跨链处理方法、装置、系统、电子设备 |
CN115580621A (zh) * | 2022-09-08 | 2023-01-06 | 中国联合网络通信集团有限公司 | 区块链跨链业务处理方法、节点、介质及区块链 |
CN115580621B (zh) * | 2022-09-08 | 2024-02-27 | 中国联合网络通信集团有限公司 | 区块链跨链业务处理方法、节点、介质及区块链 |
CN115914240A (zh) * | 2023-01-06 | 2023-04-04 | 江苏荣泽信息科技股份有限公司 | 一种基于dns解析的跨链事务模版管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112235423B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112235423B (zh) | 跨链事务处理方法及装置、电子设备、存储介质 | |
CN111163182B (zh) | 基于区块链的设备注册方法、装置、电子设备和存储介质 | |
US20180097779A1 (en) | Method and system for providing a transaction forwarding service in blockchain implementations | |
CN110766408A (zh) | 异构区块链的跨链交易验证方法、引擎、设备和存储介质 | |
CN109146490B (zh) | 区块生成方法、装置和系统 | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
CN108846753B (zh) | 用于处理数据的方法和装置 | |
WO2021098139A1 (zh) | 跨链交易的状态数据的存储方法、装置及存储介质 | |
CN111461763A (zh) | 一种资源分配方法及装置 | |
CN109005208B (zh) | 用于推送信息的方法和装置 | |
CN113760976B (zh) | 业务的处理方法、装置、设备及存储介质 | |
CN112291372A (zh) | 区块链的异步落账方法、装置、介质及电子设备 | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN114239060A (zh) | 数据获取方法、装置、电子设备及存储介质 | |
CN114936254A (zh) | 云链融合机制下的食品安全大数据共享管理方法及系统 | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
US20190372825A1 (en) | Communication apparatus, communication method, and recording medium | |
CN111681011A (zh) | 数据处理方法、区块链系统、计算机系统和介质 | |
US20230092069A1 (en) | Server apparatus | |
CN114092093B (zh) | 区块链交易处理方法、装置、电子设备和可读介质 | |
CN113807968B (zh) | 区块链用户请求处理方法、装置、委托服务器及存储介质 | |
CN114820132A (zh) | 订单派发方法、装置、电子设备及存储介质 | |
CN111524011B (zh) | 平行链共识确认方法、设备和存储介质 | |
CN114329369A (zh) | 权限管理方法及装置、电子设备、计算机可读介质 | |
CN115222392A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40038174 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |