CN112787999B - 跨链调用方法、装置、系统与计算机可读存储介质 - Google Patents

跨链调用方法、装置、系统与计算机可读存储介质 Download PDF

Info

Publication number
CN112787999B
CN112787999B CN202011573440.8A CN202011573440A CN112787999B CN 112787999 B CN112787999 B CN 112787999B CN 202011573440 A CN202011573440 A CN 202011573440A CN 112787999 B CN112787999 B CN 112787999B
Authority
CN
China
Prior art keywords
cross
chain
calling
contract
link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011573440.8A
Other languages
English (en)
Other versions
CN112787999A (zh
Inventor
贺双洪
莫楠
石翔
王�章
郭锐
李辉忠
张开翔
范瑞彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202011573440.8A priority Critical patent/CN112787999B/zh
Publication of CN112787999A publication Critical patent/CN112787999A/zh
Application granted granted Critical
Publication of CN112787999B publication Critical patent/CN112787999B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种跨链调用方法,包括:若检测到第一区块链的业务合约存在跨链调用需求,则基于第一区块链的桥接合约注册业务合约的跨链请求,并将跨链请求保存到桥接合约的任务队列;基于第一区块链的第一跨链路由,轮询获取任务队列中的跨链请求,并将跨链请求路由至跨链调用需求对应的第二区块链的第二跨链路由;基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测跨链请求是否为重复调用;基于检测结果,在第二区块链获取跨链请求对应的调用结果,并基于调用结果,完成回调。本发明还公开了一种跨链调用装置、系统和计算机可读存储介质。本发明通用性强,可保证业务正常进行。

Description

跨链调用方法、装置、系统与计算机可读存储介质
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种跨链调用方法、装置、系统与计算机可读存储介质。
背景技术
近年来,随着金融科技(Fintech),尤其是互联网金融的不断发展,越来越多的技术(如分布式、区块链Blockchain、人工智能等)应用在金融领域,但金融业也对其提出了更高的要求,如金融业对跨链调用有更高的要求。
其中,跨链调用指的是由智能合约发起的调用其他链资源(智能合约、区块链状态等)的一种跨系统远程调用方法,在现有技术中,为了实现跨链调用,一般采用基于事件机制来实现跨链调用请求的触发,具体的,各区块链有自己的交互装置,不同链的交互装置可以进行相互通讯,链上的智能合约以某种格式,如日志格式等,发起一个跨链调用事件,当交互装置监听到该事件时,进行相应的处理,并完成调用。
然而,现有跨链技术由于不同的区块链事件机制千差万别,功能参差不齐,甚至有的区块链不支持事件机制,使得现有的跨链技术通用性不足。并且,区块链本身是不需要考虑多活的,因为区块链节点间互为主备,但是为了实现跨链调用,现有技术引入了新的交互装置,而为了保证交互装置可靠,需要做多活处理,而在基于事件机制的跨链系统中,链上的一个跨链调用事件,多活架构下所有的交互装置都会监听到,然后都做一样的动作,这就保证业务合约的实现必须是幂等的,否则重复调用会导致业务出错。可见,现有跨链技术通用性不足,跨链调用限制多。
发明内容
本发明的主要目的在于提出一种跨链调用方法、装置、系统与计算机可读存储介质,旨在实现便捷且通用的跨链调用。
为实现上述目的,本发明提供一种跨链调用方法,所述跨链调用方法包括如下步骤:
基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链请求保存到任务队列;
基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由;
基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链请求是否为重复调用;
基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调。
优选地,所述基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求的步骤包括:
确定所述业务合约的跨链参数,并将所述跨链参数传入所述桥接合约;
获取所述桥接合约的序列号,并基于所述序列号和所述跨链参数,注册所述业务合约的跨链请求。
优选地,所述获取所述桥接合约的序列号,并基于所述序列号和所述跨链参数,注册所述业务合约的跨链请求的步骤包括:
获取所述桥接合约当前的序列号,所述序列号为自增序列号;
对所述跨链参数进行序列化处理,以得到序列化字符串,并将所述序列号和所述序列化字符串按照键值对的形式保存,以得到所述业务合约的跨链请求。
优选地,所述基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由的步骤包括:
获取所述桥接合约的索引号,所述索引号用于记录所述任务队列中跨链请求的处理进度;
基于第一区块链的第一跨链路由和所述索引号,在所述任务队列中轮询索引所述跨链请求;
对所述跨链请求进行唯一化处理,并将处理后的所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由。
优选地,所述对所述跨链请求进行唯一化处理的步骤包括:
对所述跨链请求进行反序列化处理,以得到跨链参数,并基于所述跨链参数和所述索引号,计算跨链序列号;
基于所述跨链序列号和所述跨链参数,重新生成跨链请求。
优选地,所述基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调的步骤包括:
若所述检测结果为不重复,则基于所述入口合约和所述跨链请求,调用所述调用跨链需求对应的目标业务合约,以获得所述跨链请求对应的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约不存在所述跨链序列号,则检测结果为不重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
优选地,所述基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调的步骤包括:
若所述检测结果为重复,则基于所述跨链序列号,查找上一次调用的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约存在所述跨链序列号,则检测结果为重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
此外,为实现上述目的,本发明还提供一种跨链调用装置,所述跨链调用装置包括:
注册保存模块,用于基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链请求保存到任务队列;
轮询路由模块,用于基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由;
调用检测模块,用于基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链请求是否为重复调用;
获取回调模块,用于基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调。
优选地,所述检测注册模块还用于:
确定所述业务合约的跨链参数,并将所述跨链参数传入所述桥接合约;
获取所述桥接合约的序列号,并基于所述序列号和所述跨链参数,注册所述业务合约的跨链请求。
优选地,所述检测注册模块还用于:
获取所述桥接合约当前的序列号,所述序列号为自增序列号;
对所述跨链参数进行序列化处理,以得到序列化字符串,并将所述序列号和所述序列化字符串按照键值对的形式保存,以得到所述业务合约的跨链请求。
优选地,所述轮询路由模块还用于:
获取所述桥接合约的索引号,所述索引号用于记录所述任务队列中跨链请求的处理进度;
基于第一区块链的第一跨链路由和所述索引号,在所述任务队列中轮询索引所述跨链请求;
对所述跨链请求进行唯一化处理,并将处理后的所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由。
优选地,所述轮询路由模块还用于:
对所述跨链请求进行反序列化处理,以得到跨链参数,并基于所述跨链参数和所述索引号,计算跨链序列号;
基于所述跨链序列号和所述跨链参数,重新生成跨链请求。
优选地,所述获取回调模块还用于:
若所述检测结果为不重复,则基于所述入口合约和所述跨链请求,调用所述调用跨链需求对应的目标业务合约,以获得所述跨链请求对应的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约不存在所述跨链序列号,则检测结果为不重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
优选地,所述获取回调模块还用于:
若所述检测结果为重复,则基于所述跨链序列号,查找上一次调用的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约存在所述跨链序列号,则检测结果为重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
此外,为实现上述目的,本发明还提供一种跨链调用系统,所述跨链调用系统包括:至少两条异构区块链、每条区块链对应的跨链路由、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的跨链调用程序,其中,每条区块链部署有业务合约、桥接合约和入口合约;所述跨链路由多活部署,所述跨链调用程序被所述处理器执行时实现如上所述的跨链调用方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有跨链调用程序,所述跨链调用程序被处理器执行时实现如上所述的跨链调用方法的步骤。
本发明提出的跨链调用方法,基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链请求保存到任务队列;基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由;基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链请求是否为重复调用;基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调。本发明跨链请求轮询机制,不需要区块链做特殊支持,只需要新增专门的合约,也即桥接合约,来记录跨链请求即可,使得跨链请求可被所有区块链识别,通用性高,方便扩展,且通过新增入口合约对来自其他区块链的跨链请求进行重复过滤,保证在多活部署架构下,业务合约的实现不需要幂等,从而实现便捷且通用的跨链调用。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图;
图2为本发明跨链调用方法第一实施例的流程示意图;
图3为本发明跨链调用方法第一实施例中跨链调用系统的架构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图。
如图1所示,该系统可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及跨链调用程序。
其中,操作系统是管理和控制跨链调用系统与软件资源的程序,支持网络通信模块、用户接口模块、跨链调用程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的跨链调用系统中,所述跨链调用系统通过处理器1001调用存储器1005中存储的跨链调用程序,并执行下述跨链调用方法各个实施例中的操作。
基于上述硬件结构,提出本发明跨链调用方法实施例。
参照图2,图2为本发明跨链调用方法第一实施例的流程示意图,所述方法包括:
步骤S10,基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链请求保存到任务队列;
步骤S20,基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由;
步骤S30,基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链请求是否为重复调用;
步骤S40,基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调。
本实施例跨链调用方法运用于理财机构或者银行等金融机构的跨链调用系统中,跨链调用系统包括至少两条异构区块链和每条区块链对应的跨链路由,参照图3,假设一个存证区块链网络Evidence,有第一区块链A和第二区块链B,跨链调用系统中的每条区块链部署有:
业务合约,用于在外部应用调用业务合约的目标接口时,调用桥接合约(hus合约,也即Y合约),或者用于响应通过入口合约的跨链请求;
桥接合约(Y合约),用于注册跨链请求,并将跨链请求保存到对应的任务队列中,以供跨链路由轮询获取;其中,Y合约实现3个接口,分别是interchainCall(链内调用接口):供业务合约调用,注册跨链调用请求,该接口参数依次为:目标资源路径path、调用方法method、调用参数args、回调资源路径callbackPath、回调资源方法callbackMethod;getInterchainRequest(接通接口):供路由调用,获取当前要处理的跨链请求;updateRequestIndex(更新接口):供路由调用,更新当前跨链请求的索引号,此外,桥接合约还部署一个任务队列,以存储跨链请求。
入口合约(gate合约,也即X合约),用于接收跨链路由转发的来自其他区块链的跨链请求,并对跨链请求进行重复性检测;若不重复,则调用业务合约,以获取业务合约响应跨链请求的调用结果,并将调用结果返回跨链路由;若重复,则获取上一次调用的调用结果,并将调用结果返回跨链路由;或者用于接收跨链路由基于跨链请求的回调。其中,X合约实现1个接口:call(调用接口):供路由调用,该接口参数依次为:跨链序列号s、资源路径path、调用方法method、调用参数args。所有来自跨链路由的访问业务合约的跨链请求都通过该接口。该接口基于path、method和args完成对业务合约的调用,并基于s保存调用结果,同时将调用结果返回给跨链路由。X合约保存所有的跨链序列号,如果X收到一个带有重复的跨链序列号的跨链请求,则返回X上次的调用结果,无需再次进行业务合约的真实调用,也即,来自跨链路由的跨链请求都必须经过X合约,然后再去调用真正的业务合约,且X合约会维护跨链序列号,重复的调用会被拒绝。
此外,以每条区块链对应的跨链路由作为区块链之间的桥接装置,如图3中的第一跨链路由RouterA和第二跨链路由RouterB,负责和各自对应的区块链完成交互,并且跨链路由与跨链路由之间可以相互通讯,且跨链路由多活部署,也即,多活架构下,每条区块链有多个跨链路由同时在线,其中,跨链路由包括轮询器和调度器,轮询器用于轮询获取桥接合约的任务队列中的跨链请求,或者用于接收其他跨链路由转发过来的跨链路由;调度器用于调用入口合约,以获得调用结果,或者调用桥接合约,以完成回调。
本实施例通过新增一个专门用来记录跨链请求的桥接合约,和一个拦截重复调用的入口合约,不需要区块链做特殊支持,即可使得跨链请求可被所有区块链识别,通用性强,且实现业务合约的过程中不需要幂等。
以下将对各个步骤进行详细说明:
步骤S10,基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链请求保存到任务队列;
在本实施例中,为方便理解,假设一个存证区块链网络Evidence,有第一区块链A和第二区块链B,通过Evidence.ChainA可以定位到A链,通过Evidence.ChainB可以定位到B链。其中A链分别部署了XA(入口合约)、YA(桥接合约)和ContractA(业务合约)三个合约,B链部署了XB(入口合约)、YB(桥接合约)和ContractB(业务合约)三个合约。如果A链的ContractA合约想要调用B链的ContractB合约的FuncB接口(业务合约中的某个功能接口),也即外部应用调用第一区块链的业务合约的FuncA接口(业务合约中的某个功能接口,调用该接口会使得业务合约跨链调用FuncB接口),第一区块链的业务合约即调用桥接合约注册跨链请求,桥接合约将该跨链请求保存到任务队列中,以供跨链路由轮询获取。
在一实施例中,基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求的步骤包括:
步骤a1,确定所述业务合约的跨链参数,并将所述跨链参数传入所述桥接合约;
在一实施例中,A链的业务合约ContractA基于同链的合约调用方式发起链内调用,访问YA合约的interchainCall接口(链间调用接口),传入跨链参数(Evidence.ChainB.ContractB,FuncB,′Hello′,Evidence.ChainA.ContractA,FuncA),其中,′Hello′在此为预设调用需求,具体内容根据实际调用需求填充。
步骤a2,获取所述桥接合约的序列号,并基于所述序列号和所述跨链参数,注册所述业务合约的跨链请求;
接着,获取桥接合约的序列号,再根据序列号和跨链参数,注册业务合约的跨链请求,其中,Y合约维护一个序列号Seq,以及一个记录当前请求处理进度的索引号index。当收到来自业务合约的跨链请求后,将当前的序列号和跨链参数作为跨链请求的注册参数。
具体的,步骤a2包括:
步骤a21,获取所述桥接合约当前的序列号,所述序列号为自增序列号;
在一实施例中,桥接合约维护的序列号为一个自增序列号,也即,在接收到业务合约的跨链请求后,将当前的序列号加1处理。
步骤a21,对所述跨链参数进行序列化处理,以得到序列化字符串,并将所述序列号和所述序列化字符串按照键值对的形式保存,以得到所述业务合约的跨链请求。
之后,对跨链参数进行序列化处理,从而得到序列化字符串,如Serialize(Evidence.ChainB.ContractB,FuncB,′Hello′,Evidence.ChainA.ContractA,FuncA),其中,Serialize为序列化方法,常见的如JSON序列化。最后,以序列号和序列化字符串作为键值对的形式,具体为Key-Value的形式,进行保存,从而得到业务合约的跨链请求,如(Seq+1,Serialize(Evidence.ChainB.ContractB,FuncB,′Hello′,Evidence.ChainA.ContractA,FuncA)。
需要解释的是,序列化是将对象状态转换为可保持或传输的格式的过程,也即将跨链参数表示为实例的序列化数据,这样,其他区块链能够确定这些数据的值,而不依赖于跨链请求的可访问性,也即,与访问规则无关,因此,通过上面的方式,Y合约将ContractA的一次跨链调用的请求保存到了A链上,便于后续将跨链请求转发给第二区块链的第二跨链路由,并可被第二区块链识别。
步骤S20,基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由。
在本实施例中,第一区块链,也即A链的第一跨链路由,也即A链上所有的跨链路由RouterA每隔一个预设周期轮询YA的getInterchainRequest接口,从而获取到任务队列中的跨链请求,再根据跨链参数,通过第一跨链路由将跨链请求路由至跨链调用需求对应的第二区块链的第二跨链路由。
进一步地,在一实施例中,步骤S20包括:
步骤Sb1,获取所述桥接合约的索引号,所述索引号用于记录所述任务队列中跨链请求的处理进度;
在一实施例中,先获取桥接合约的索引号,其中,索引号用于记录任务队列中跨链请求的处理进度,如索引号为5,则代表任务队列中处理进度为第5个跨链请求。
步骤Sb2,基于第一区块链的第一跨链路由和所述索引号,在所述任务队列中轮询索引所述跨链请求;
然后,通过A链的跨链路由和索引号,在任务队列中轮询索引跨链请求,具体的,YA合约以保存的任务处理进度index为Key,在任务队列中查询Value,并返回index和当前应该处理的跨链请求Serialize(Evidence.ChainB.ContractB,FuncB,′Hello′,Evidence.ChainA.ContractA,FuncA)。
步骤Sb3,对所述跨链请求进行唯一化处理,并将处理后的所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由。
接着,对跨链请求进行唯一化处理,使其在跨链调用系统中唯一,便于后续进行重复检测,再将处理后的跨链请求路由至第二跨链路由,也即第一链的业务合约想要调用的目标合约所在的第二区块链的第二跨链路由。
其中,在一实施例中,对所述跨链请求进行唯一化处理的步骤包括:
步骤b31,对所述跨链请求进行反序列化处理,以得到跨链参数,并基于所述跨链参数和所述索引号,计算跨链序列号;
在一实施例中,跨链调用系统的第一跨链路由RouterA在获取到跨链请求后,首先反序列化跨链请求,得到跨链参数(Evidence.ChainB.ContractB,FuncB,′Hello′,Evidence.ChainA.ContractA,FuncA),并基于跨链参数和索引号,计算跨链序列号。
具体的,在一实施例中,以请求方,也即第一区块链的路径Evidence.ChainA和索引号作为输入,计算哈希s=Hash(Evidence.ChainA,index),得到的结果即为跨链序列号。可以理解的,采用其他参数,如第一区块链的路径、第二区块链的路径和索引号作为输入等也可以,只要保证结果唯一,便于后续重复检测即可。
步骤b32,基于所述跨链序列号和所述跨链参数,重新生成跨链请求。
最后基于跨链序列号和跨链参数,重新生成跨链请求,在一实施例中,重新生成的跨链请求为(s,Evidence.ChainB.ContractB,FuncB,′Hello′),再将跨链调用请求转发给第二区块链B的跨链路由RouterB
步骤S30,基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链请求是否为重复调用。
在本实施例中通过第二跨链路由,调用第二区块链B的入口合约XB,并在第二区块链的入口合约,检测跨链请求是否为重复调用,也即对跨链请求进行过滤,避免相同的跨链请求多次调用造成资源浪费。
在一实施例中,具体检测跨链请求是否为重复调用的过程为:将跨链请求与历史的跨链请求进行比较,从而确定当前的跨链请求是否为重复调用。
在另一实施例中,只需检测入口合约中是否存在与当前跨链请求一致的跨链序列号,也即,入口合约会保存每次跨链请求的跨链序列号,而跨链序列号具有唯一性,因此,只需检测入口合约中是否存在一致的跨链序列号,即可确定当前跨链请求是否是重复调用。
步骤S40,基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调。
在本实施例中,跨链调用系统根据入口合约的检测结果,对重复调用的跨链请求进行过滤,不再需要幂等实现,因此,第二区块链的业务合约不需要响应重复的跨链调用,可获取上一次调用的调用结果进行反馈,从而完成回调;当然,若当前跨链请求不是重复调用,则需要获取本次的调用结果,完成回调。
本实施例基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链请求保存到任务队列;基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由;基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链请求是否为重复调用;基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调。本发明跨链请求轮询机制,不需要区块链做特殊支持,只需要新增专门的合约,也即桥接合约,来记录跨链请求即可,使得跨链请求可被所有区块链识别,通用性高,方便扩展,且通过新增入口合约对来自其他区块链的跨链请求进行重复过滤,保证在多活部署架构下,业务合约的实现不需要幂等,从而实现便捷且通用的跨链调用。
进一步地,基于本发明跨链调用方法第一实施例,提出本发明跨链调用方法第二实施例。
跨链调用方法的第二实施例与跨链调用方法的第一实施例的区别在于,基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调的步骤包括:
步骤c,若所述检测结果为不重复,则基于所述入口合约和所述跨链请求,调用所述调用跨链需求对应的目标业务合约,以获得所述跨链请求对应的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约不存在所述跨链序列号,则检测结果为不重复;
步骤d,基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
步骤e,基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
本实施例若检测结果为不重复,则调用真正的业务合约,从而获得本次跨链请求的调用结果,再延第二跨链路由和第一跨链路由,将调用结果返回至第一区块链,以完成回调。
以下将对各个步骤进行详细说明:
步骤c,若所述检测结果为不重复,则基于所述入口合约和所述跨链请求,调用所述调用跨链需求对应的目标业务合约,以获得所述跨链请求对应的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约不存在所述跨链序列号,则检测结果为不重复。
在本实施例中,若跨链调用系统在第二区块链的入口合约中检测到当前跨链请求不是重复调用,也即第二区块链的入口合约中不存在与当前跨链请求一致的跨链序列号,则代表检测结果为不重复,此时,需要调用第二区块链中的目标业务合约,从而得到本次跨链请求对应的调用结果,并将调用结果通过入口合约,返回第二跨链路由,再通过第二跨链路由将调用结果转发至第一跨链路由,使得第一区块链可以获得调用结果。
具体的,XB调用目标业务合约ContractB,并将跨链序列号s和调用结果Resultcall以Key-Value的方式存储,然后将调用结果Resultcall返回给RouterB,RouterB再将调用结果Resultcall转发给RouterA
步骤d,基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约。
在本实施例中,在将调用结果返回第一区块链的第一跨链路由之后,通过第一跨链路由,调用第一区块链的入口合约,再通过第一区块链的入口合约,将调用结果返回至第一区块链的业务合约,从而满足第一区块链的业务合约的跨链调用需求。
也即,RouterA以(s,Evidence.ChainA.ContractA,FuncA,Resultcall)调用XA完成回调。
步骤e,基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
在本实施例中,除了将调用结果返回给第一区块链的业务合约之外,还需要更新桥接合约的索引号,以便更新任务队列中当前跨链请求的处理进度,具体的,根据调用结果,通过第一跨链路由调用第一区块链的桥接合约,对桥接合约的索引号进行加1处理,使任务队列的处理进度加1,以便后续跨链路由轮询获取下一个跨链请求。
也即,RouterA以(index+1)为参数,调用YA的updateRequestIndex接口,YA合约保存传入的参数,完成任务队列中索引号的更新。
本实施例若检测结果为不重复,则调用真正的业务合约,从而获得本次跨链请求的调用结果,再延第二跨链路由和第一跨链路由,将调用结果返回至第一区块链,根据调用结果,完成第一区块链的业务合约的回调,从而实现不同区块链之间的跨链调用。
进一步地,基于本发明跨链调用方法第一、第二实施例,提出本发明跨链调用方法第三实施例。
跨链调用方法的第三实施例与跨链调用方法的第一、第二实施例的区别在于,基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调的步骤包括:
步骤f,若所述检测结果为重复,则基于所述跨链序列号,查找上一次调用的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约存在所述跨链序列号,则检测结果为重复;
步骤g,基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
步骤h,基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
本实施例若检测结果为重复,则不需要调用真正的业务合约,只需以上一次的调用结果进行返回,再根据调用结果,完成第一区块链的业务合约的回调,从而实现不同区块链之间的跨链调用。
以下将对各个步骤进行详细说明:
步骤f,若所述检测结果为重复,则基于所述跨链序列号,查找上一次调用的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约存在所述跨链序列号,则检测结果为重复。
在本实施例,若跨链调用系统在第二区块链的入口合约中检测到当前跨链请求是重复调用,也即第二区块链的入口合约中存在与当前跨链请求一致的跨链序列号,则代表检测结果为重复,此时,不需要调用第二区块链中的目标业务合约,而是直接获取上一次的调用结果,并将调用结果通过入口合约,返回第二跨链路由,再通过第二跨链路由将调用结果转发至第一跨链路由,使得第一区块链可以获得调用结果。
具体的,在确定当前跨链请求为重复调用时,根据跨链序列号s找到对应的上次的调用结果Resultcall(每次跨链调用,入口合约都会将s与调用结果Resultcall以Key-Value的形式储存,因此,可通过s找到上次的调用结果),然后返回给RouterB,RouterB再将调用结果Resultcall转发给RouterA
步骤g,基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约。
在本实施例中,在将调用结果返回第一区块链的第一跨链路由之后,通过第一跨链路由,调用第一区块链的入口合约,再通过第一区块链的入口合约,将调用结果返回至第一区块链的业务合约,从而满足第一区块链的业务合约的跨链调用需求。
也即,RouterA以(s,Evidence.ChainA.ContractA,FuncA,Resultcall)调用XA完成回调。
步骤h,基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
在本实施例中,除了将调用结果返回给第一区块链的业务合约之外,还需要更新桥接合约的索引号,以便更新任务队列中当前跨链请求的处理进度,具体的,根据调用结果,通过第一跨链路由调用第一区块链的桥接合约,对桥接合约的索引号进行加1处理,使任务队列的处理进度加1,以便后续跨链路由轮询获取下一个跨链请求。
也即,RouterA以(index+1)为参数,调用YA的updateRequestIndex接口,YA合约保存传入的参数,完成任务队列中索引号的更新。
本实施例若检测结果为重复,则不需要调用真正的业务合约,而是获取上次的调用结果,再延第二跨链路由和第一跨链路由,将调用结果返回至第一区块链,根据调用结果,完成第一区块链的业务合约的回调,也即XB合约将多活跨链路由的跨链请求进行了过滤,重复的请求不会发到第二区块链的目标业务合约上,因此目标业务合约并不需要自己实现幂等方法,就可以实现不同区块链之间的跨链调用。
本发明还提供一种跨链调用装置。本发明跨链调用装置包括:
注册保存模块,用于基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链请求保存到任务队列;
轮询路由模块,用于基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链请求,并将所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由;
调用检测模块,用于基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链请求是否为重复调用;
获取回调模块,用于基于检测结果,在第二区块链获取所述跨链请求对应的调用结果,并基于所述调用结果,完成回调。
优选地,所述检测注册模块还用于:
确定所述跨链调用需求的跨链参数,并将所述跨链参数传入所述桥接合约;
获取所述桥接合约的序列号,并基于所述序列号和所述跨链参数,注册所述业务合约的跨链请求。
优选地,所述检测注册模块还用于:
获取所述桥接合约当前的序列号,所述序列号为自增序列号;
对所述跨链参数进行序列化处理,以得到序列化字符串,并将所述序列号和所述序列化字符串按照键值对的形式保存,以得到所述业务合约的跨链请求。
优选地,所述轮询路由模块还用于:
获取所述桥接合约的索引号,所述索引号用于记录所述任务队列中跨链请求的处理进度;
基于第一区块链的第一跨链路由和所述索引号,在所述任务队列中轮询索引所述跨链请求;
对所述跨链请求进行唯一化处理,并将处理后的所述跨链请求路由至所述跨链调用需求对应的第二区块链的第二跨链路由。
优选地,所述轮询路由模块还用于:
对所述跨链请求进行反序列化处理,以得到跨链参数,并基于所述跨链参数和所述索引号,计算跨链序列号;
基于所述跨链序列号和所述跨链参数,重新生成跨链请求。
优选地,所述获取回调模块还用于:
若所述检测结果为不重复,则基于所述入口合约和所述跨链请求,调用所述调用跨链需求对应的目标业务合约,以获得所述跨链请求对应的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约不存在所述跨链序列号,则检测结果为不重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
优选地,所述获取回调模块还用于:
若所述检测结果为重复,则基于所述跨链序列号,查找上一次调用的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约存在所述跨链序列号,则检测结果为重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有跨链调用程序,所述跨链调用程序被处理器执行时实现如上所述的跨链调用方法的步骤。
其中,在所述处理器上运行的跨链调用程序被执行时所实现的方法可参照本发明跨链调用方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种跨链调用方法,其特征在于,所述跨链调用方法包括如下步骤:
基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链调用请求保存到任务队列;
基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链调用请求,并将所述跨链调用请求路由至所述跨链调用请求对应的第二区块链的第二跨链路由;
基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链调用请求是否为重复调用,其中,所述检测所述跨链调用请求是否为重复调用的步骤包括检测所述第二区块链的入口合约中是否存在一致对应的跨链序列号,或将所述跨链调用请求与历史对应的跨链调用请求进行比较;
基于检测结果,在第二区块链获取所述跨链调用请求对应的调用结果,并基于所述调用结果,完成回调;
其中,所述基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链调用请求,并将所述跨链调用请求路由至所述跨链调用请求对应的第二区块链的第二跨链路由的步骤包括:
获取所述桥接合约的索引号,所述索引号用于记录所述任务队列中跨链调用请求的处理进度;
基于第一区块链的第一跨链路由和所述索引号,在所述任务队列中轮询索引所述跨链调用请求;
对所述跨链调用请求进行唯一化处理,并将处理后的所述跨链调用请求路由至所述跨链调用请求对应的第二区块链的第二跨链路由。
2.如权利要求1所述的跨链调用方法,其特征在于,所述基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求的步骤包括:
确定所述业务合约的跨链参数,并将所述跨链参数传入所述桥接合约;
获取所述桥接合约的序列号,并基于所述序列号和所述跨链参数,注册所述业务合约的跨链调用请求。
3.如权利要求2所述的跨链调用方法,其特征在于,所述获取所述桥接合约的序列号,并基于所述序列号和所述跨链参数,注册所述业务合约的跨链调用请求的步骤包括:
获取所述桥接合约当前的序列号,所述序列号为自增序列号;
对所述跨链参数进行序列化处理,以得到序列化字符串,并将所述序列号和所述序列化字符串按照键值对的形式保存,以得到所述业务合约的跨链调用请求。
4.如权利要求3所述的跨链调用方法,其特征在于,所述对所述跨链调用请求进行唯一化处理的步骤包括:
对所述跨链调用请求进行反序列化处理,以得到跨链参数,并基于所述跨链参数和所述索引号,计算跨链序列号;
基于所述跨链序列号和所述跨链参数,重新生成跨链调用请求。
5.如权利要求4所述的跨链调用方法,其特征在于,所述基于检测结果,在第二区块链获取所述跨链调用请求对应的调用结果,并基于所述调用结果,完成回调的步骤包括:
若所述检测结果为不重复,则基于所述入口合约和所述跨链调用请求,调用所述跨链调用请求对应的目标业务合约,以获得所述跨链调用请求对应的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约不存在所述跨链序列号,则检测结果为不重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
6.如权利要求4所述的跨链调用方法,其特征在于,所述基于检测结果,在第二区块链获取所述跨链调用请求对应的调用结果,并基于所述调用结果,完成回调的步骤包括:
若所述检测结果为重复,则基于所述跨链序列号,查找上一次调用的调用结果,并将所述调用结果返回第二跨链路由,以基于第二跨链路由将所述调用结果转发至第一跨链路由,其中,若第二区块链的入口合约存在所述跨链序列号,则检测结果为重复;
基于第一跨链路由和所述调用结果,调用第一区块链的入口合约,以通过第一区块链的入口合约将所述调用结果返回至第一区块链的业务合约;
基于第一跨链路由和所述调用结果,调用第一区块链的桥接合约,以更新所述索引号。
7.一种跨链调用装置,其特征在于,所述跨链调用装置包括:
注册保存模块,用于基于第一区块链的业务合约调用桥接合约,以注册跨链调用请求,并基于桥接合约将所述跨链调用请求保存到任务队列;
轮询路由模块,用于基于第一区块链的第一跨链路由,轮询获取所述任务队列中的所述跨链调用请求,并将所述跨链调用请求路由至所述跨链调用请求对应的第二区块链的第二跨链路由,所述轮询路由模块具体用于,获取所述桥接合约的索引号,所述索引号用于记录所述任务队列中跨链调用请求的处理进度;基于第一区块链的第一跨链路由和所述索引号,在所述任务队列中轮询索引所述跨链调用请求;对所述跨链调用请求进行唯一化处理,并将处理后的所述跨链调用请求路由至所述跨链调用请求对应的第二区块链的第二跨链路由;
调用检测模块,用于基于第二跨链路由,调用第二区块链的入口合约,并基于第二区块链的入口合约,检测所述跨链调用请求是否为重复调用,其中,所述检测所述跨链调用请求是否为重复调用的步骤包括检测所述第二区块链的入口合约中是否存在一致对应的跨链序列号,或将所述跨链调用请求与历史对应的跨链调用请求进行比较;
获取回调模块,用于基于检测结果,在第二区块链获取所述跨链调用请求对应的调用结果,并基于所述调用结果,完成回调。
8.一种跨链调用系统,其特征在于,所述跨链调用系统包括:至少两条异构区块链、每条区块链对应的跨链路由、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的跨链调用程序,其中,每条区块链部署有业务合约、桥接合约和入口合约;所述跨链路由多活部署,所述跨链调用程序被所述处理器执行时实现如权利要求1至6中任一项所述的跨链调用方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有跨链调用程序,所述跨链调用程序被处理器执行时实现如权利要求1至6中任一项所述的跨链调用方法的步骤。
CN202011573440.8A 2020-12-25 2020-12-25 跨链调用方法、装置、系统与计算机可读存储介质 Active CN112787999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011573440.8A CN112787999B (zh) 2020-12-25 2020-12-25 跨链调用方法、装置、系统与计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011573440.8A CN112787999B (zh) 2020-12-25 2020-12-25 跨链调用方法、装置、系统与计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112787999A CN112787999A (zh) 2021-05-11
CN112787999B true CN112787999B (zh) 2023-02-17

Family

ID=75752759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011573440.8A Active CN112787999B (zh) 2020-12-25 2020-12-25 跨链调用方法、装置、系统与计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112787999B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259478B (zh) * 2021-06-17 2021-11-02 支付宝(杭州)信息技术有限公司 在区块链系统中执行交易的方法、装置及区块链系统
CN113590718B (zh) * 2021-09-23 2022-11-08 南京慧链和信数字信息科技研究院有限公司 基于区块链一体机的可信数据跨链系统
CN114363335B (zh) * 2021-12-31 2024-03-15 支付宝(杭州)信息技术有限公司 跨链交互方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109784921A (zh) * 2018-12-29 2019-05-21 广州蓝石信息技术有限公司 基于去中心化网关的通用跨链通信机制
CN111640017A (zh) * 2020-05-06 2020-09-08 深圳前海微众银行股份有限公司 一种应用于联盟链跨链转账的交易正确性验证方法及装置
CN111769948A (zh) * 2020-06-15 2020-10-13 布比(北京)网络技术有限公司 基于区块链的链间交互方法、系统、装置和计算机设备
CN111800463A (zh) * 2020-05-29 2020-10-20 易联众信息技术股份有限公司 区块链间跨链信息交互方法、系统、介质、设备及应用

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109784921A (zh) * 2018-12-29 2019-05-21 广州蓝石信息技术有限公司 基于去中心化网关的通用跨链通信机制
CN111640017A (zh) * 2020-05-06 2020-09-08 深圳前海微众银行股份有限公司 一种应用于联盟链跨链转账的交易正确性验证方法及装置
CN111800463A (zh) * 2020-05-29 2020-10-20 易联众信息技术股份有限公司 区块链间跨链信息交互方法、系统、介质、设备及应用
CN111769948A (zh) * 2020-06-15 2020-10-13 布比(北京)网络技术有限公司 基于区块链的链间交互方法、系统、装置和计算机设备

Also Published As

Publication number Publication date
CN112787999A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN112787999B (zh) 跨链调用方法、装置、系统与计算机可读存储介质
US11159411B2 (en) Distributed testing service
US20190303779A1 (en) Digital worker management system
US10360523B2 (en) System and method for executing business services and enhancing business performance through a business process modeling notation
CN112099935B (zh) 一种任务处理方法及装置
US11503109B2 (en) Processing an operation with a plurality of processing steps
US11456914B2 (en) Implementing affinity and anti-affinity with KUBERNETES
JP7161560B2 (ja) 人工知能開発プラットフォームの管理方法及び装置、媒体
CN112579319B (zh) 一种基于LRU Cache优化的服务调用方法及装置
US20060288085A1 (en) Modular server architecture for multi-environment HTTP request processing
CN108055296B (zh) 一种基于微服务架构的事务处理方法及装置
CN114116149A (zh) 一种任务调度方法、装置、设备及介质
CN110516000B (zh) 一种支持复杂工作流结构的工作流管理系统
CN112565340B (zh) 分布式应用的服务调度方法、装置、计算机系统及介质
CN113191889A (zh) 风控配置方法、配置系统、电子设备及可读存储介质
CN117149413A (zh) 一种通用ai算法模型云服务集成部署系统及方法
CN111857995A (zh) 进程调度方法和装置、存储介质及电子装置
CN116932147A (zh) 流式作业处理方法、装置、电子设备及介质
US11886460B2 (en) Multiple version data cluster ETL processing
US20220276901A1 (en) Batch processing management
US8549537B2 (en) Middleware bridge system and method
CN111771191B (zh) 跨域的内联事件处理程序
CN114968505A (zh) 任务处理系统、方法、装置、设备、存储介质及程序产品
CN112711602A (zh) 一种存储过程的运行方法、装置,数据库系统及存储介质
CN116860353B (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