掌桥专利:专业的专利平台
掌桥专利
首页

一种跨链交易过程追踪方法及装置

文献发布时间:2023-06-19 19:30:30


一种跨链交易过程追踪方法及装置

技术领域

本申请涉及区块链技术领域,特别涉及一种跨链交易过程追踪方法及装置。

背景技术

随着区块链应用在不同场景领域的延伸,场景之间融合的需求呼之欲出。而不同异构区块链在技术框架、通信协议、共识机制、存储结构等不尽相同,各个区块链形成一个个价值孤岛,链上的资产数据难以互联互通,影响了区块链的推广和使用。

跨链技术(比如,以侧链/中继链的技术为基础研发的跨链平台)正是解决区块链之间如何互联互通的关键所在,是推动价值信息在链之间安全可靠传输的核心。跨链技术能够使不同区块链系统之间进行必要的信息转换,并完成跨链交易,以加以利用不同区块链之间的价值数据。

然而,目前缺乏对以侧链/中继链的技术为基础研发的跨链平台的交易过程进行追踪的方法,影响对跨链平台的监管。

发明内容

本申请提供如下技术方案:

本申请一方面提供一种跨链交易过程追踪方法,基于BitXHub平台,所述BitXHub平台包括:来源链、目的链、跨链网关和中继链,该方法包括:

获取所述来源链和所述目的链之间的各个跨链网关的身份信息和日志;

基于各个所述跨链网关的身份信息和日志,确定各个所述跨链网关、所述来源链、所述目的链和中继链之间的调用关系;

获取各个所述跨链网关和所述中继链之间的通用协议数据,对所述通用协议数据进行解析,获取跨链交易信息;

基于所述调用关系和所述跨链交易信息,构建各个所述跨链网关、所述来源链、所述目的链和所述中继链之间的调用关系拓扑网络;

对所述调用关系网络进行可视化展示。

可选的,各个跨链网关的日志,包括:type类型为INTERCHAIN的日志和type类型为RECEIPT_SUCCESS的日志;

基于各个所述跨链网关的身份信息和日志,确定各个所述跨链网关、所述来源链、所述目的链和中继链之间的调用关系,包括:

基于各个所述跨链网关的身份信息,确定产生了日志的跨链网关为所述目的链和所述中继链之间的跨链网关及所述来源链和所述中继链之间的跨链网关;

对type类型为INTERCHAIN的日志进行解析,得到所述目的链和所述中继链之间的跨链网关与所述目的链和所述中继链之间的调用关系;

对type类型为RECEIPT_SUCCESS的日志进行解析,得到所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系。

可选的,所述对type类型为INTERCHAIN的日志进行解析,得到所述目的链和所述中继链之间的跨链网关与所述目的链和所述中继链之间的调用关系,包括:

对type类型为INTERCHAIN的日志进行解析,得到类型为INTERCHAIN且包含关键字Apply tx的日志部分及类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分;

从所述类型为INTERCHAIN且包含关键字Apply tx的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述跨链网关向所述目的链提交了跨链交易申请请求;

从类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述目的链和所述中继链之间的跨链网关收到所述目的链针对所述跨链交易申请请求返回的交易回执,以及所述目的链和所述中继链之间的跨链网关与所述中继链之间的调用关系为所述目的链和所述中继链之间的跨链网关向所述中继链发送所述交易回执对应的路由转发请求。

可选的,所述对type类型为RECEIPT_SUCCESS的日志进行解析,得到所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系,包括:

对type类型为RECEIPT_SUCCESS的日志进行解析,得到类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分和类型为RECEIPT_SUCCESS且包含关键字Handle ibtpreceipt success的日志部分;

从所述类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述中继链向所述来源链和所述中继链之间的跨链网关发送了所述交易回执对应的路由转发请求,所述来源链和所述中继链之间的跨链网关向所述来源链发送了所述交易回执;

从所述类型为RECEIPT_SUCCESS且包含关键字Handle ibtp receipt success的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述来源链和所述中继链之间的跨链网关接收到所述来源链针对所述交易回执返回的响应信息,所述来源链和所述中继链之间的跨链网关将所述响应信息转发至所述中继链。

可选的,所述跨链交易信息至少包括:

所述来源链ID、所述目的链ID、合约ID、合约参数和结果集。

本申请另一方面提供一种跨链交易过程追踪装置,基于BitXHub平台,所述BitXHub平台包括:来源链、目的链、跨链网关和中继链,该装置包括:

第一获取模块,用于获取所述来源链和所述目的链之间的各个跨链网关的身份信息和日志;

确定模块,用于基于各个所述跨链网关的身份信息和日志,确定各个所述跨链网关、所述来源链、所述目的链和中继链之间的调用关系;

第二获取模块,用于获取各个所述跨链网关和所述中继链之间的通用协议数据,对所述通用协议数据进行解析,获取跨链交易信息;

构建模块,用于基于所述调用关系和所述跨链交易信息,构建各个所述跨链网关、所述来源链、所述目的链和所述中继链之间的调用关系拓扑网络;

展示模块,用于对所述调用关系网络进行可视化展示。

可选的,各个跨链网关的日志,包括:type类型为INTERCHAIN的日志和type类型为RECEIPT_SUCCESS的日志;

确定模块,具体用于:

基于各个所述跨链网关的身份信息和日志,确定各个所述跨链网关、所述来源链、所述目的链和中继链之间的调用关系,包括:

基于各个所述跨链网关的身份信息,确定产生了日志的跨链网关为所述目的链和所述中继链之间的跨链网关及所述来源链和所述中继链之间的跨链网关;

对type类型为INTERCHAIN的日志进行解析,得到所述目的链和所述中继链之间的跨链网关与所述目的链和所述中继链之间的调用关系;

对type类型为RECEIPT_SUCCESS的日志进行解析,得到所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系。

可选的,所述确定模块对type类型为INTERCHAIN的日志进行解析,得到所述目的链和所述中继链之间的跨链网关与所述目的链和所述中继链之间的调用关系的过程,具体包括:

对type类型为INTERCHAIN的日志进行解析,得到类型为INTERCHAIN且包含关键字Apply tx的日志部分及类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分;

从所述类型为INTERCHAIN且包含关键字Apply tx的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述跨链网关向所述目的链提交了跨链交易申请请求;

从类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述目的链和所述中继链之间的跨链网关收到所述目的链针对所述跨链交易申请请求返回的交易回执,以及所述目的链和所述中继链之间的跨链网关与所述中继链之间的调用关系为所述目的链和所述中继链之间的跨链网关向所述中继链发送所述交易回执对应的路由转发请求。

可选的,所述确定模块对type类型为RECEIPT_SUCCESS的日志进行解析,得到所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系的过程,具体包括:

对type类型为RECEIPT_SUCCESS的日志进行解析,得到类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分和类型为RECEIPT_SUCCESS且包含关键字Handle ibtpreceipt success的日志部分;

从所述类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述中继链向所述来源链和所述中继链之间的跨链网关发送了所述交易回执对应的路由转发请求,所述来源链和所述中继链之间的跨链网关向所述来源链发送了所述交易回执;

从所述类型为RECEIPT_SUCCESS且包含关键字Handle ibtp receipt success的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述来源链和所述中继链之间的跨链网关接收到所述来源链针对所述交易回执返回的响应信息,所述来源链和所述中继链之间的跨链网关将所述响应信息转发至所述中继链。

可选的,所述跨链交易信息至少包括:

所述来源链ID、所述目的链ID、合约ID、合约参数和结果集。

与现有技术相比,本申请的有益效果为:

在本申请中,针对BitXHub平台的中继链、跨链网关、通用协议进行综合考虑,具体通过获取来源链和目的链之间的各个跨链网关的身份信息和日志,及基于各个跨链网关的日志,确定各个跨链网关、来源链、目的链和中继链之间的调用关系,及获取各个跨链网关和中继链之间的通用协议数据,对通用协议数据进行解析,获取跨链交易信息,及基于调用关系和跨链交易信息,确定出各个跨链网关、来源链、目的链和中继链之间的调用关系拓扑网络,及对调用关系网络进行可视化展示,实现对跨链交易过程的追踪,并以可视化的形式还原出Bitxhub平台的跨链交易过程。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的一种跨链交易过程示意图;

图2是本申请实施例1提供的一种跨链交易过程追踪方法的流程示意图;

图3是本申请提供的一种跨链交易过程追踪装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了解决上述问题,本申请提供了一种跨链交易过程追踪方法,接下来对本申请提供的跨链交易过程追踪方法进行介绍。

本申请提供的跨链交易过程追踪方法基于BitXHub平台。BitXHub平台支持同构及异构区块链之间的跨链交易,兼容异构链之间的资产互换、身份验证,是国内现有较为成熟的开源跨链平台。BitXHub平台通常由三部分组成,分别为中继链、跨链网关、应用链,应用链根据交易过程可以分为来源链和目的链。

本申请中“应用链(App-chain)”是指BitXHub平台组成部分之一,负责具体业务场景的合约逻辑的区块链,典型的有以太坊、Hyperledger Fabric等BitXHub支持接入的区块链。

本申请中“中继链(Relay-chain)”是特指BitXHub平台的核心组成部分,是一组特殊的区块链,主要负责管理应用链、验证跨链信息、对跨链交易进行路由等核心功能,从而确保跨链交易事务的一致性。需注意本文的中继链不代表通用中继链跨链技术,只是BitXHub平台的组成部分之一,当需要说明中继链跨链技术时,会特别标注技术二字。

本申请中“跨链网关(Pier)”是指BitXHub平台组成部分之一,是中继链和应用链之间的桥梁,负责收集应用链发送的跨链交易信息,并将应用链抛出的事件数据格式转化为BitXHub平台可识别的IBTP通用协议数据。

本申请中“插件机制”是指BitXHub平台为了更好支持不同异构应用链接入的插件化方式,当Pier跨链网关运行时,通过动态加载不同插件的方式实现不同应用链的灵活适配,从而提升Pier与不同应用链的交互性。当需要接入特定的应用链时,只需按照不同应用链的特性实现插件的交互接口,即可完成插件接入。其中待实现的插件接口至少涵盖三个功能,一是监听应用链上的跨链事件并传递给核心模块进行处理,二是执行跨链网关的跨链请求,三是主动查询应用链上已收到和已执行的跨链请求状态。

本申请中“跨链合约”是指针对跨链交易设计的合约,跨链合约部署在应用链上,与一般业务合约不同之处在于,跨链合约会包含事件的抛出,由对应应用链的Pier插件进行事件订阅,从而实现信息的交换。

本申请中“ProtoBuf”是指Google推出的protocol buffers,具体是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于通信协议、数据存储等,在BitXHub源码中提供了多种后缀为pb的文件,基于pb等文件,可以对传输的数据进行一定的解密。

BitXHub平台中各个部分之间均可通过IBTP(Inter Blockchain TransferProtocol,BitXHub平台提供的通用跨链传输协议)进行跨链交易消息的传输,使得不同异构之间的区块链消息能借助统一的IBTP协议在BitXHub平台上进行转发和路由。

所述BitXHub平台包括:来源链、目的链、跨链网关和中继链。其中,如图1所示,BitXHub平台中跨链交易在各个模块之间的基本流转过程如下:

去中心化应用A通过SDK等方式向应用链A(即,来源链)发起跨链业务合约,其中参数会包含要调用应用链B(即,目的链)的链ID(ChainID)、合约方法等。

应用链A接收到应用A发起的请求,进入指定的跨链合约方法,执行合约,最终会向跨链网关A(即,来源链和中继链之间的跨链网关)抛出一个跨链事件TA。

跨链网关A的应用链插件监听到应用链A发起跨链事件TA,将跨链数据转换为中继链通用的IBTP结构,并将IBTP封装为中继链可识别的交易类型。

跨链网关A将IBTP的交易类型的跨链数据提交至中继链(一个或多个中继链节点)。

中继链对IBTP交易类型的跨链数据进行验证,如交易的合法性,验证无误后进行共识出块并提交给执行模块,由执行模块验证交易的目的地址的有效性,如地址有效则交给路由模块。

中继链通过路由模块转发将跨链交易再一次进行封装,并将跨链交易转发至对应的跨链网关B。

跨链网关B(即,中继链和目的链之间的跨链网关)接收到跨链交易后进行验证,验证无误后将IBTP结构解析为应用链B可识别的交易结构,并提交至应用链B。

应用链B根据传送过来的交易结构,识别并执行指定的合约方法,将响应返回给应用B。

此外,应用链B还会将向跨链网关B发送跨链交易回执,并通过中继链和跨链网关A转发至应用链A,应用链A识别回执的内容是否成功,若成功则提交,若失败或者内容显示跨链交易超时,则执行rollback对业务进行回滚。

从以上九个步骤可得知,一笔跨链交易并不单单只涉及一个组件,而是有多个模块组件之间有机组成,对跨链过程的追踪有利于监管方从整体把控跨链交易的有效状态、异常定位点、事件处理逻辑等深层次的运维问题识别。若要追踪到一笔跨链交易在BitXHub平台的流转过程,需重点识别跨链网关和中继链对跨链数据的处理,其中跨链网关和中继链之间的数据传输均采用IBTP协议,其IBTP协议的字段格式表格1所示。其中两个字段内容From、To分别表示来源链ID和目的链ID,这两个ID是应用链注册时生成,可以通过此字段识别跨链交易的双方。

表格1

然而IBTP协议内容仅能获取跨链交易的基本数据,对于跨链交易如何流转无从得知,还需分析跨链网关和中继链的对跨链处理。而跨链网关、中继链的日志蕴含着大量丰富的信息,结合BitXHub平台的中继链提供的丰富的API接口,可丰富跨链交易过程的数据情况。

参照图2,为本申请实施例1提供的一种跨链交易过程追踪方法的流程示意图,如图2所示,该方法可以包括但并不局限于以下步骤:

步骤S11、获取所述来源链和所述目的链之间的各个跨链网关的身份信息和日志。

各个跨链网关的身份信息可以用于区分是哪个跨链网关产生了日志信息。跨链网关的身份信息可以包括但不局限于:跨链网关所部署的主机地址、主机域名和pier应用插件路径等。

各个跨链网关的日志包含大量丰富的信息,可以用于对跨链交易过程进行追踪。

步骤S12、基于各个所述跨链网关的身份信息和日志,确定各个所述跨链网关、所述来源链、所述目的链和中继链之间的调用关系。

可以理解的是,所述跨链网关的日志中至少记录有交易过程中数据的传输方向,基于数据的传输方向,可以确定各个跨链网关、来源链、目的链和中继链之间的调用关系。

步骤S13、获取各个所述跨链网关和所述中继链之间的通用协议数据,对所述通用协议数据进行解析,获取跨链交易信息。

由于跨链网关和中继链是用于转发来源链和目的链之间的交易数据,具体会将来源链和目的链之间的交易数据封装为通用协议数据,因此通过对所述通用协议数据进行解析,可以获取跨链交易信息。

本实施例中,跨链交易信息可以包括但不局限于:所述来源链ID、所述目的链ID、合约ID、合约参数和结果集。

获取各个所述跨链网关和所述中继链之间的通用协议数据可以包括但不局限于:

利用BitXHub平台的中继链提供的多种语言的SDK,获取详细的交易信息情况。可参考官方提供的基于中继链Java的SDK(https://github.com/meshplus/java-bitxhub-client)以及pier插件源码如fabric插件(https://github.com/meshplus/pier-client-fabric),获取跨链交易的基本信息;

和/或,

基于跨链网关的日志中包含的IBTP-ID(其内容为来源链ID-目的链ID-版本号,其ID是唯一的),可利用插件的client.go(meshplus/pier-client-fabric/client.go)中提供针对fabric的解包IBTP协议方法unpackIBTP(),即可获取更加详细的数据,包含调用的参数、合约名等交易基本信息;

和/或,

利用以太坊插件也可完成IBTP协议的数据,可根据接入的应用链类型选择对应的方法进行协议的解析。

各个所述跨链网关和所述中继链之间的通用协议数据可以包括但不局限于:各个所述跨链网关和所述中继链之间的IBTP(Inter Blockchain Transfer Protocol,BitXHub平台提供的通用跨链传输协议)数据。

步骤S14、基于所述调用关系和所述跨链交易信息,构建各个所述跨链网关、所述来源链、所述目的链和所述中继链之间的调用关系拓扑网络。

本实施例中,以各个所述跨链网关、所述来源链、所述目的链和所述中继链分别为不同的节点,基于所述调用关系,构建各个节点之间的关联关系,得到各个所述跨链网关、所述来源链、所述目的链和所述中继链之间的调用关系拓扑网络,并将所述跨链交易信息作为节点之间的补充信息。

步骤S15、对所述调用关系网络进行可视化展示。

可以利用展示点边关系的可视化组件对所述调用关系网络进行可视化展示。可视化组件可以包括但不局限于:蚂蚁开源的Graphin组件或Echarts关系组件。

在本申请中,针对BitXHub平台的中继链、跨链网关、通用协议进行综合考虑,具体通过获取来源链和目的链之间的各个跨链网关的身份信息和日志,及基于各个跨链网关的日志,确定各个跨链网关、来源链、目的链和中继链之间的调用关系,及获取各个跨链网关和中继链之间的通用协议数据,对通用协议数据进行解析,获取跨链交易信息,及基于调用关系和跨链交易信息,确定出各个跨链网关、来源链、目的链和中继链之间的调用关系拓扑网络,及对调用关系网络进行可视化展示,实现对跨链交易过程的追踪,并以可视化的形式还原出Bitxhub平台的跨链交易过程。

作为本申请另一可选实施例,本实施例2主要是对上述实施例1中步骤S12的细化方案,其中,各个跨链网关的日志,可以包括:type类型为INTERCHAIN的日志和type类型为RECEIPT_SUCCESS的日志。

type类型为INTERCHAIN的日志可以通过以下方式收集:

开源的跨链网关Pier仅提供了本地部署的方式,日志文件在pier.toml配置文件中指定,针对本地日志文件的收集方式有多种方式,不限于使用Filebeat等组件进行日志收集。其中Info日志中出现“type=INTERCHAIN”关键字眼是需要日志收集的对象数据,因为类型为INTERCHAIN的日志是跨链网关进行跨链交易请求路由转发的处理类型。

type类型为RECEIPT_SUCCESS的日志可以通过以下方式收集:

Info日志中出现“type=RECEIPT_SUCCESS”关键字眼是日志收集的对象数据,因为类型为RECEIPT_SUCCESS的日志是跨链网关进行跨链交易回执路由转发的处理类型。

在此基础上,步骤S12可以包括但不局限于以下步骤:

S121、基于各个所述跨链网关的身份信息,确定产生了日志的跨链网关为所述目的链和所述中继链之间的跨链网关及所述来源链和所述中继链之间的跨链网关。

S122、对type类型为INTERCHAIN的日志进行解析,得到所述目的链和所述中继链之间的跨链网关与所述目的链和所述中继链之间的调用关系。

S123、对type类型为RECEIPT_SUCCESS的日志进行解析,得到所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系。

本实施例中,步骤S122可以包括但不局限于:

S1221、对type类型为INTERCHAIN的日志进行解析,得到类型为INTERCHAIN且包含关键字Apply tx的日志部分及类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分。

类型为INTERCHAIN日志类型主要存在两种情况,一是提交交易的日志,简单实例如下,“INFO[时间戳]Apply tx from=来源链ID id=来源链ID-目的链ID-版本号index=1module=executor status=true type=INTERCHAIN”,需要解析固定关键字为“Applytx”的INTERCHAIN类型日志,其代表跨链网关监听到中继链转发来的跨链请求日志,并指出了来源链和目的链,需将IBTP协议数据转化为目的链可识别的数据格式。通过此日志可识别跨链网关转发跨链请求至目的链的流程。

类型为INTERCHAIN日志类型对应的另一种情况则是IBTP封装的回执日志,简单实例如下,“INFO[时间戳]Handle ibtp success id=来源链ID-目的链ID-版本号module=exchanger type=INTERCHAIN”,需要解析固定关键字为”Handle ibtp success”的INTERCHAIN类型日志,其代表目的链已成功接收到跨链交易并向跨链网关进行响应回执,跨链网关将此消息重新封装成IBTP类型的交易,将交易转发至中继链。通过日志可识别跨链网关收到目的链的响应,以及跨链网关将目的链的跨链回执转发至中继链流程。

S1222、从所述类型为INTERCHAIN且包含关键字Apply tx的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述跨链网关向所述目的链提交了跨链交易申请请求。

所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系可以表示为<跨链网关,目的链>,表示所述跨链网关向所述目的链提交了跨链交易申请请求。

S1223、从类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述目的链和所述中继链之间的跨链网关收到所述目的链针对所述跨链交易申请请求返回的交易回执,以及所述目的链和所述中继链之间的跨链网关与所述中继链之间的调用关系为所述目的链和所述中继链之间的跨链网关向所述中继链发送所述交易回执对应的路由转发请求。

所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系可以表示为<目的链,跨链网关>,表示所述目的链和所述中继链之间的跨链网关收到所述目的链针对所述跨链交易申请请求返回的交易回执。

同时,所述目的链和所述中继链之间的跨链网关与所述中继链之间的调用关系可以表示为<跨链网关,中继链>,表示所述目的链和所述中继链之间的跨链网关向所述中继链发送所述交易回执对应的路由转发请求。

本实施例中,步骤S123可以包括但不局限于:

S1231、对type类型为RECEIPT_SUCCESS的日志进行解析,得到类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分和类型为RECEIPT_SUCCESS且包含关键字Handle ibtp receipt success的日志部分。

类型为RECEIPT_SUCCESS日志类型主要存在两种情况,一是提交交易回执的日志,简单实例如下,“INFO[时间戳]Apply tx from=来源链ID id=来源链ID-目的链ID-版本号index=1module=executor status=true type=RECEIPT_SUCCESS”,需要解析固定关键字为“Apply tx”的RECEIPT_SUCCESS类型日志,其代表跨链网关监听到中继链转发来的跨链交易回执日志,并指出了来源链和目的链,需将IBTP协议数据转化为来源链可识别的数据格式。通过此日志可识别跨链网关转发跨链交易回执至来源链的流程。

类型为RECEIPT_SUCCESS日志类型对应的另一种情况则是IBTP封装的回执处理日志,简单实例如下,“INFO[时间戳]Handle ibtp receipt success id=来源链ID-目的链ID-版本号module=exchanger type=RECEIPT_SUCCESS”,需要解析固定关键字为”Handleibtp receipt success”的RECEIPT_SUCCESS类型日志,其代表来源链已成功接收到跨链交易回执并向跨链网关进行响应回执处理结果,跨链网关将此消息重新封装成IBTP类型的交易,将交易转发至中继链。通过日志可识别跨链网关收到来源链的交易回执响应,以及跨链网关将来源链的跨链回执结果转发至中继链流程。

S1232、从所述类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述中继链向所述来源链和所述中继链之间的跨链网关发送了所述交易回执对应的路由转发请求,所述来源链和所述中继链之间的跨链网关向所述来源链发送了所述交易回执。

所述来源链和所述中继链之间的跨链网关与所述中继链之间的调用关系可以表示为<中继链,跨链网关>,表示所述中继链向所述来源链和所述中继链之间的跨链网关发送了所述交易回执对应的路由转发请求。

所述来源链和所述中继链之间的跨链网关与所述来源链之间的调用关系可以表示为<跨链网关,来源链>,表示所述来源链和所述中继链之间的跨链网关向所述来源链发送了所述交易回执。

S1233、从所述类型为RECEIPT_SUCCESS且包含关键字Handle ibtp receiptsuccess的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述来源链和所述中继链之间的跨链网关接收到所述来源链针对所述交易回执返回的响应信息,所述来源链和所述中继链之间的跨链网关将所述响应信息转发至所述中继链。

所述来源链和所述中继链之间的跨链网关与所述来源链之间的调用关系可以表示为<来源链,跨链网关>,表示所述来源链和所述中继链之间的跨链网关接收到所述来源链针对所述交易回执返回的响应信息。

所述来源链和所述中继链之间的跨链网关与所述中继链之间的调用关系可以表示为<跨链网关,中继链>,所述来源链和所述中继链之间的跨链网关将所述响应信息转发至所述中继链。

接下来对本申请提供的跨链交易过程追踪装置进行介绍,下文介绍的跨链交易过程追踪装置与上文介绍的跨链交易过程追踪方法可相互对应参照。

请参见图3,跨链交易过程追踪装置包括:第一获取模块100、确定模块200、第二获取模块300、构建模块400和展示模块500。

第一获取模块100,用于获取所述来源链和所述目的链之间的各个跨链网关的身份信息和日志;

确定模块200,用于基于各个所述跨链网关的身份信息和日志,确定各个所述跨链网关、所述来源链、所述目的链和中继链之间的调用关系;

第二获取模块300,用于获取各个所述跨链网关和所述中继链之间的通用协议数据,对所述通用协议数据进行解析,获取跨链交易信息;

构建模块400,用于基于所述调用关系和所述跨链交易信息,构建各个所述跨链网关、所述来源链、所述目的链和所述中继链之间的调用关系拓扑网络;

展示模块500,用于对所述调用关系网络进行可视化展示。

各个跨链网关的日志,包括:type类型为INTERCHAIN的日志和type类型为RECEIPT_SUCCESS的日志;

确定模块200,具体可以用于:

基于各个所述跨链网关的身份信息和日志,确定各个所述跨链网关、所述来源链、所述目的链和中继链之间的调用关系,包括:

基于各个所述跨链网关的身份信息,确定产生了日志的跨链网关为所述目的链和所述中继链之间的跨链网关及所述来源链和所述中继链之间的跨链网关;

对type类型为INTERCHAIN的日志进行解析,得到所述目的链和所述中继链之间的跨链网关与所述目的链和所述中继链之间的调用关系;

对type类型为RECEIPT_SUCCESS的日志进行解析,得到所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系。

所述确定模块200对type类型为INTERCHAIN的日志进行解析,得到所述目的链和所述中继链之间的跨链网关与所述目的链和所述中继链之间的调用关系的过程,具体可以包括:

对type类型为INTERCHAIN的日志进行解析,得到类型为INTERCHAIN且包含关键字Apply tx的日志部分及类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分;

从所述类型为INTERCHAIN且包含关键字Apply tx的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述跨链网关向所述目的链提交了跨链交易申请请求;

从类型为INTERCHAIN且包含关键字Handle ibtp success的日志部分中确定出所述目的链和所述中继链之间的跨链网关与所述目的链之间的调用关系为所述目的链和所述中继链之间的跨链网关收到所述目的链针对所述跨链交易申请请求返回的交易回执,以及所述目的链和所述中继链之间的跨链网关与所述中继链之间的调用关系为所述目的链和所述中继链之间的跨链网关向所述中继链发送所述交易回执对应的路由转发请求。

所述确定模块200对type类型为RECEIPT_SUCCESS的日志进行解析,得到所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系的过程,具体可以包括:

对type类型为RECEIPT_SUCCESS的日志进行解析,得到类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分和类型为RECEIPT_SUCCESS且包含关键字Handle ibtpreceipt success的日志部分;

从所述类型为RECEIPT_SUCCESS且包含关键字Apply tx的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述中继链向所述来源链和所述中继链之间的跨链网关发送了所述交易回执对应的路由转发请求,所述来源链和所述中继链之间的跨链网关向所述来源链发送了所述交易回执;

从所述类型为RECEIPT_SUCCESS且包含关键字Handle ibtp receipt success的日志部分中确定出所述来源链和所述中继链之间的跨链网关与所述来源链和所述中继链之间的调用关系为所述来源链和所述中继链之间的跨链网关接收到所述来源链针对所述交易回执返回的响应信息,所述来源链和所述中继链之间的跨链网关将所述响应信息转发至所述中继链。

所述跨链交易信息至少可以包括:

所述来源链ID、所述目的链ID、合约ID、合约参数和结果集。

需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

以上对本申请所提供的一种跨链交易过程追踪方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 区块链跨链交易方法、跨链通信装置及存储介质
  • 一种跨链交易方法及装置
  • 一种跨链交易方法及装置
  • 人车跨镜头追踪方法及装置
  • 一种基于区块链的链货币兑换方法、装置、设备和介质
  • 基于区块链的跨会话链路追踪方法、装置及存储介质
  • 一种创建区块链、数据跨链、注销区块链的方法、装置及个人区块链
技术分类

06120115938082