一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的跨链处理方法、装置、存储介质及服务器与流程

2022-04-16 18:28:44 来源:中国专利 TAG:


1.本技术涉及计算机领域,具体涉及一种基于区块链的跨链处理方法、装置、存储介质及服务器。


背景技术:

2.近年来,随着区块链技术的火热,越来越多的企业和开发人员加入到区块链的浪潮中,市面上也出现了许多不同类型的链,应用在金融、健康医疗、供应链、资产管理和溯源等领域。然而大部分链上应用(加密货币或者智能合约) 都无法跨越当前链的边界,不能与其他链协同合作实现价值的流通从而限制了区块链的发挥空间。如何能让不同类型的链协同合作实现价值的流通成了探索的方向,这也是跨链技术的起因。
3.现有技术中,完整的跨链事务完成标志为:来源链收到目的链的处理结果。但由于网络延迟、设备故障等问题,导致存在跨链交易处理超时的情况,而中继链需要查询每一交易的处理情况,才能筛选出超时交易,降低了中继链的交易处理速率。


技术实现要素:

4.本技术实施例提供一种基于区块链的跨链处理方法、装置、存储介质及服务器,可以快速查询到因网络延迟、设备故障等问题所导致的超时交易,在保证跨链事务原子性的同时提高中继链的交易处理速率。
5.为解决上述技术问题,本技术实施例提供以下技术方案:
6.一种基于区块链的跨链处理方法,包括:
7.接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;
8.基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;
9.向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;
10.当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;
11.若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述第一处理结果。
12.一种基于区块链的跨链处理装置,包括:
13.第一接收模块,用于接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述
跨链交易的处理时长上限值;
14.确定模块,用于基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;
15.触发模块,用于向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;
16.第二接收模块,用于当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;
17.清除模块,用于若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述第一处理结果。
18.在一些实施例中,所述装置,还包括:
19.记录模块,用于当接收到针对于其他跨链交易的第二处理结果时,记录接收到所述第二处理结果的第三接收时间戳;
20.筛选模块,用于从所述指定超时列表中筛选出超时处理时间戳位于所述第三接收时间戳之前的超时交易,并标记所述超时交易的状态为回滚中状态;
21.第一触发模块,用于将超时交易返回至各超时交易对应的来源链,触发来源链对超时交易进行回滚,回滚完成后反馈一第一回滚回执。
22.在一些实施例中,所述第一触发模块包括:
23.第一确定子模块,用于获取各超时交易对应的来源链,确定来源链相同的超时交易;
24.第一触发子模块,用于将来源链相同的超时交易一并返回至对应的来源链,触发来源链对超时交易进行回滚。
25.在一些实施例中,所述装置还包括:
26.第二触发模块,用于若所述跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,触发所述目的链对所述跨链交易进行回滚,并在回滚完成后反馈一第二回滚回执;
27.第一标记模块,用于当接收到所述第一回滚回执以及所述第二回滚回执时,标记所述跨链交易的状态为回滚完成状态。
28.在一些实施例中,所述第二触发模块,包括:
29.发送子模块,用于若所述跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,向所述目的链发送报错信息,所述报错信息用于提示目的链所述跨链交易的状态为回滚中状态;
30.第二触发子模块,用于触发所述目的链在接收到所述报错信息时对所述跨链交易进行回滚,并在回滚完成后反馈一第二回滚回执。
31.在一些实施例中,所述确定模块,包括:
32.计算子模块,用于计算所述第一接收时间戳与所述处理时长的和,得到计算结果;
33.第二确定子模块,用于将所述计算结果确定为所述跨链交易的超时处理时间戳。
34.在一些实施例中,所述清除模块,包括:
35.清除子模块,用于清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,标记所述跨链交易的状态为处理完成状态,并向所述来源链发送所述第一处理结果。
36.一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述基于区块链的跨链处理方法中的步骤。
37.一种服务器,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述基于区块链的跨链处理方法中的步骤。
38.本技术实施例通过接收接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述处理结果。以此,通过在接收每一跨链交易的处理请求时,将跨链交易以及对应的超时时间戳记录在指定超时列表中,并在超时时间戳之前收到跨链交易的处理结果时删除记录的跨链交易以及对应的超时时间戳,从而通过指定超时列表记录交易的处理情况,快速查询到因网络延迟、设备故障等问题所导致的超时交易,提高中继链的交易处理速率。
附图说明
39.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1a为本技术实施例所提供的基于区块链的跨链处理方法的数据共享系统示意图。
41.图1b为本技术实施例提供的基于区块链的跨链处理方法的流程示意图。
42.图2a为本技术实施例提供的基于区块链的跨链处理方法的第一种信令流程示意图。
43.图2b为本技术实施例提供的基于区块链的跨链处理方法的第二种信令流程示意图。
44.图3为本技术实施例提供的基于区块链的跨链处理装置的结构示意图;
45.图4为本技术实施例提供的服务器的结构示意图。
具体实施方式
46.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完
整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.本技术实施例提供了一基于区块链的跨链处理方法、装置及计算机可读存储介质。
48.请参阅图1a,图1a为本技术实施例所提供的基于区块链的跨链处理方法的数据共享系统示意图,参见图1a所示的数据共享系统,数据共享系统100是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点11,多个节点11可以是指数据共享系统中各个客户端。每个节点11在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。
49.对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为ip(internet protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1 中仅以ip地址为例进行说明。
50.表1
[0051][0052][0053]
在本实施例中,将从基于区块链的跨链处理装置的角度进行描述,该基于区块链的跨链处理装置具体可以集成在具备储存单元并安装有微处理器而具有运算能力的服务器中。
[0054]
请参阅图1b,图1b为本技术实施例提供的基于区块链的跨链处理方法的第一种流程示意图。该基于区块链的跨链处理方法包括:
[0055]
在步骤101中,接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值。
[0056]
其中,在进行跨链交易时,跨链交易的来源端(发起端)即为来源链,跨链交易对应的处理端即为目的端。来源链将跨链事务抛出,跨链事务中还携带有来源链为该跨链事务指定的处理时长上限值,例如5分钟。跨链网关监听到存在跨链事务时,会将跨链事务封装
为通用格式的跨链交易并发送到中继链。处理时长上限值即为跨链交易从被中继链接收到正常处理完成(不超时)所能支持的最大时长。
[0057]
具体的,中继链在接收到跨链网关发送过来的跨链交易时,会记录该跨链交易的上链时间戳,也即接收到该跨链交易上链的第一接收时间戳,其中,跨链交易的上链是指中继链将本次跨链交易以及其他跨链交易进行交易的打包以及出块的过程,故第一接收时间戳即为将本次跨链交易以及其他跨链交易进行交易的打包以及出块,且共识通过后该区块上链的时间戳。例如,跨链交易在 11点45分30秒上链,也即跨链交易所在的区块在11点45分30秒上链。则 11点45分30秒为跨链交易a的第一接收时间戳。
[0058]
在步骤102中,基于第一接收时间戳以及处理时长上限值,确定跨链交易的超时处理时间戳,并在指定超时列表中记录跨链交易以及跨链交易对应的超时处理时间戳。
[0059]
其中,可基于接收到跨链交易的第一接收时间戳以及来源链提供的跨链交易的处理时长上限值确定出跨链交易的超时处理时间戳。超时处理时间戳用于当跨链交易在超时处理时间戳之前处理完成时,则确认跨链交易正常处理,并未超时;当跨链交易在超时处理时间戳之后处理完成时,则确认跨链交易超时处理。并在指定超时列表中记录该跨链交易以及对应的超时处理时间戳。
[0060]
在一些实施方式中,所述基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳的步骤,包括:
[0061]
(1)计算所述第一接收时间戳与所述处理时长的和,得到计算结果;
[0062]
(2)将所述计算结果确定为所述跨链交易的超时处理时间戳。
[0063]
其中,超时处理时间戳可通过计算第一接收时间戳与所述处理时长的和,得到计算结果;将所述计算结果确定为所述跨链交易的超时处理时间戳。
[0064]
例如,接收到跨链交易a的第一接收时间戳为11点45分30秒,来源链为跨链交易a配置的处理时长上限值为5分钟,则计算结果为11点50分30 秒。将11点50分30秒确定为跨链交易a的超时处理时间戳。
[0065]
在步骤103中,向目的链发送跨链交易,触发目的链在处理完成跨链交易后反馈第一处理结果。
[0066]
其中,中继链在接收到跨链交易后,会对跨链交易进行交易的打包出块,成功出块后将对交易进行校验。并将校验完毕后的跨链交易、校验结果等信息发送至目的链,从而触发目的链处理该跨链交易,并在跨链交易后反馈第一处理结果。
[0067]
具体的,第一处理结果为目的链根据跨链交易进行的相应处理从而得到的处理结果。例如,跨链交易为请求目的链计算1加1等于多少,目的链就会计算1加1的值,从而将2作为第一处理结果进行反馈。
[0068]
在步骤104中,当接收到针对于跨链交易的第一处理结果时,记录接收到第一处理结果的第二接收时间戳。
[0069]
其中,当接收到目的链反馈的针对于跨链交易的第一处理结果时,记录收到第一处理结果的第二接收时间戳。具体的,如跨链交易的上链过程,第一处理结果也是会被中继链进行打包出块的,故第二接收时间戳为中继链打包第一处理结果进区块的该区块上链的时间戳。
[0070]
例如,收到第一处理结果为2的第二接收时间戳为11点50分25秒。
[0071]
在步骤105中,若第二接收时间戳位于超时处理时间戳之前,则清除指定超时列表中跨链交易以及跨链交易对应的超时处理时间戳,并向来源链发送处理结果。
[0072]
其中,若第二接收时间戳位于超时处理时间戳之前,则说明跨链交易并未超时,属于正常处理,则可以清除指定超时列表中跨链交易以及跨链交易对应的超时处理时间戳,并向来源链发送该第一处理结果,从而结束整个跨链交易。
[0073]
例如,指定超时列表内记录有跨链交易a对应的超时处理时间戳为11点 50分30秒,而接收到目的链反馈的针对于跨链交易a的第一处理结果的第二接收时间戳为11点50分25秒,在11点50分30秒之前,则未超时,故清除指定超时列表内记录的跨链交易a及其对应的超时处理时间戳,并将第一处理结果发送至来源链。
[0074]
在一些实施方式中,在所述在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳的步骤之后,还包括:
[0075]
(1)当接收到针对于其他跨链交易的处理请求或接收到针对于其他跨链交易的第二处理结果时,记录接收到所述第二处理结果的第三接收时间戳;
[0076]
(2)从所述指定超时列表中筛选出超时处理时间戳位于所述第三接收时间戳之前的超时交易,并标记所述超时交易的状态为回滚中状态
[0077]
(3)将超时交易返回至各超时交易对应的来源链,触发来源链对超时交易进行回滚,回滚完成后反馈一第一回滚回执,
[0078]
其中,针对于跨链交易,会存在目的链反馈的处理结果,因此,可在接收到其他跨链交易的第二处理结果时,或接收到针对于其他跨链交易的处理请求时,记录接收到所述第二处理结果的第三接收时间戳。具体的,如跨链交易的上链过程,第二处理结果也是会被中继链进行打包出块的,故第三接收时间戳为中继链打包第二处理结果进区块的该出块的上链时间戳。具体的,还可以设定一区块的出块的周期,例如2s,当新产出一区块时,将出块的时间戳确定为第三接收时间戳。并从指定超时列表中筛选出超时处理时间戳位于所述第三接收时间戳之前的超时交易。故为超时交易的筛选设定一触发条件,该触发条件即为接收到跨链交易的处理结果时,基于第三接收时间戳以及指定超时列表中记录的每个跨链交易及其对应的超时处理时间戳。
[0079]
例如,指定超时列表内记录有跨链交易a对应的超时处理时间戳为11点 50分30秒,跨链交易b对应的超时处理时间戳为11点52分30秒,当接收到其他跨链交易c对应的第二处理结果时的第三接收时间戳为11点55分30秒时,则说明跨链交易a以及跨链交易b在11点55分30秒还未从指定超时列表中基于正常处理流程被删除,确定跨链交易a以及跨链交易b处理超时,并将其确定为超时交易。
[0080]
具体的,在指定超时列表内确定出超时交易后,中继链将这些超时交易的状态标记为回滚中,并将超时交易返回至各超时交易对应的来源链,触发来源链对超时交易进行回滚,回滚完成后反馈一第一回滚回执至中继链,。其中,标记超时交易的状态的目的在于,一方面为中继链根据超时交易的状态指导应用链对这些跨链交易的回滚操作,另一方面,为避免存在超时时间过长所导致的超时列表内的某一交易被多次重复确定为超时交易,可设定一超时交易的确定条件,按照超时列表内交易的交易状态进行确定,已被标记为回滚中的超时交易在后续将不再被再次筛选为超时交易,从而提高中继链在筛选超时交易时的筛选效率。故可将指定超时列表内未被标记为回滚中状态且超时的交易确定为超时交易。
回滚是指将用户所在的账户恢复成交易发起前的状态,例如来源链的业务合约有对应的方法处理回滚的交易,比如转账的transfer合约用于将交易发起时在账户内扣除的金额复原。由于来源链上的回滚处理也需要一定时间,故需要来源链在回滚完成后反馈一第一回滚回执。
[0081]
在一些实施方式中,所述将超时交易返回至各超时交易对应的来源链,触发来源链对超时交易进行回滚的步骤,包括:
[0082]
(1.1)获取各超时交易对应的来源链,确定来源链相同的超时交易;
[0083]
(1.2)将来源链相同的超时交易一并返回至对应的来源链,触发来源链对超时交易进行回滚。
[0084]
其中,为了避免将超时交易单个发送至来源链,可将由同一来源链所发起的超时交易进行整理,整理后一并返回至对应的来源链,从而触发来源链对超时交易进行回滚。进而提高针对于来源链的回滚效率。
[0085]
在一些实施方式中,在所述从所述指定超时列表中筛选出超时处理时间戳位于所述第三接收时间戳之前的超时交易的步骤之后,还包括:
[0086]
(1)若所述跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,触发所述目的链对所述跨链交易进行回滚,并在回滚完成后反馈一第二回滚回执;
[0087]
(2)当接收到所述第一回滚回执以及所述第二回滚回执时,标记所述跨链交易的状态为回滚完成状态。
[0088]
其中,若本次处理的跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,触发所述目的链对所述跨链交易进行回滚,并在回滚完成后反馈一第二回滚回执。其中,目的链的业务合约也有对应的方法处理回滚的交易,比如转账的transfer合约用于将交易发起时在账户内扣除的金额复原。
[0089]
具体的,当接收到第一回滚回执以及所述第二回滚回执时,则说明来源链与目的链针对于同一跨链交易均回滚完成,则标记所述跨链交易的状态为回滚完成状态。
[0090]
在一些实施方式中,所述若所述跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,触发所述目的链对所述跨链交易进行回滚的步骤,包括:
[0091]
(1.1)若所述跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,向所述目的链发送报错信息,所述报错信息用于提示目的链所述跨链交易的状态为回滚中状态;
[0092]
(1.2)触发所述目的链在接收到所述报错信息时对所述跨链交易进行回滚,并在回滚完成后反馈一第二回滚回执。
[0093]
其中,由于本次处理的跨链交易被确定为超时交易,则跨链交易会被标记为回滚中状态,可基于回滚中状态生成报错信息,用于提示目的链该跨链交易由于超时已经被确定为回滚中状态,不能继续执行,需要目的链针对于该跨链交易进行回滚。
[0094]
在一些实施方式中,所述清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述第一处理结果的步骤,包括:
[0095]
清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,标记所述跨链交易的状态为处理完成状态,并向所述来源链发送所述第一处理结果。
[0096]
其中,若跨链交易的处理并未超时,则还可以标记跨链交易的状态为处理完成状态。
[0097]
由上述可知,本技术实施例通过接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述处理结果。以此,通过在接收每一跨链交易的处理请求时,将跨链交易以及对应的超时时间戳记录在指定超时列表中,并在超时时间戳之前收到跨链交易的处理结果时删除记录的跨链交易以及对应的超时时间戳,从而通过指定超时列表记录交易的处理情况,快速查询到因网络延迟、设备故障等问题所导致的超时交易,提高中继链的交易处理速率。
[0098]
结合上述实施例所描述的方法,以下将举例作进一步详细说明。
[0099]
在本实施例中,将以该基于区块链的跨链处理装置具体集成在服务器中为例进行说明,具体参照以下说明。
[0100]
请参阅图2a及图2b,图2a为本技术实施例提供的基于区块链的跨链处理方法的第一种信令流程示意图,图2b为本技术实施例提供的基于区块链的跨链处理方法的第二种信令流程示意图。图2a为针对于本次跨链交易的正常处理 (未超时)的信令流程示意图,图2b为针对于本次跨链交易的超时处理的信令流程示意图。
[0101]
请参阅图2a,其中,来源链基于业务需求抛出本次跨链交易,跨链网关在监听到本次跨链交易时,将跨链交易转发给中继链,中继链在接收到跨链交易时记录第一接收时间戳,并在指定超时列表内记录本次跨链交易以及对应的超时处理时间戳;将本次跨链交易外发,跨链网关在监听到中继链存在外发的跨链交易时,将跨链交易转发给对应的目的链。由目的链执行相应处理,得到第一处理结果,并外发第一处理结果。跨链网关接收到第一处理结果后转发至中继链。中继链在接收到该第一处理结果时,记录第二接收时间戳,并基于第二接收时间戳以及指定超时列表内记录的本次跨链交易的超时处理时间戳的前后,确定出本次跨链交易的处理未超时,属于正常处理,则对应清除超时列表内记录的本次跨链交易,并将第一处理结果通过跨链网关返回给来源链,从而结束本次跨链交易流程。
[0102]
请参阅图2b,其中,来源链基于业务需求抛出本次跨链交易,跨链网关在监听到本次跨链交易时,将跨链交易转发给中继链,中继链在接收到跨链交易时记录第一接收时间戳,并在指定超时列表内记录本次跨链交易以及对应的超时处理时间戳;将本次跨链交易外发,跨链网关在监听到中继链存在外发的跨链交易时,将跨链交易转发给对应的目的链。由目的链执行相应处理,得到第一处理结果,并外发第一处理结果。在上述过程中,若中继链接收到了目的链基于其他跨链交易所返回的第二处理结果时,记录第三接收时间戳,并基于第三接收时间戳从指定超时列表内确定出超时交易。若本次跨链交易被确定为超时交易,则中继链会通过跨链网关触发来源链的回滚,并将本次跨链交易的状态标记为回滚中
状态。来源链在回滚结束后会通过跨链网关向中继链反馈一第一回滚回执,从而告知中继链来源链侧已经回滚完成。若中继链接收到目的链通过跨链网关返回的第一处理结果时,由于本次跨链交易的状态被标记为回滚中状态,则中继链会通过跨链网关向目的链发送一报错信息,报错信息用于触发目的链针对于本次跨链交易进行回滚。目的链回滚完成后通过跨链网关向中继链反馈一第二回滚回执,用于告知中继链目的链侧回滚完成。当中继链接收到第一回滚回执以及第二回滚回执后,则可以确定针对于本次跨链交易,来源链侧以及目的链侧均回滚完成,则结束本次跨链交易流程。
[0103]
由上述可知,本技术实施例通过接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述处理结果。以此,通过在接收每一跨链交易的处理请求时,将跨链交易以及对应的超时时间戳记录在指定超时列表中,并在超时时间戳之前收到跨链交易的处理结果时删除记录的跨链交易以及对应的超时时间戳,从而通过指定超时列表记录交易的处理情况,快速查询到因网络延迟、设备故障等问题所导致的超时交易,提高中继链的交易处理速率。
[0104]
为便于更好的实施本技术实施例提供的基于区块链的跨链处理方法,本技术实施例还提供一种基于上述基于区块链的跨链处理方法的装置。其中名词的含义与上述基于区块链的跨链处理方法中相同,具体实现细节可以参考方法实施例中的说明。
[0105]
请参阅图3,图3为本技术实施例提供的基于区块链的跨链处理装置的结构示意图,其中该基于区块链的跨链处理装置可以包括第一接收模块301、确定模块302、触发模块303、第二接收模块304以及清除模块305等。
[0106]
第一接收模块301,用于接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;
[0107]
确定模块302,用于基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;
[0108]
触发模块303,用于向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;
[0109]
第二接收模块304,用于当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;
[0110]
清除模块305,用于若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述第一处理结果。
[0111]
在一些实施方式中,所述装置,还包括:
[0112]
记录模块,用于当接收到针对于其他跨链交易的第二处理结果时,记录接收到所述第二处理结果的第三接收时间戳;
[0113]
筛选模块,用于从所述指定超时列表中筛选出超时处理时间戳位于所述第三接收时间戳之前的超时交易;
[0114]
第一触发模块,用于将超时交易返回至各超时交易对应的来源链,触发来源链对超时交易进行回滚,回滚完成后反馈一第一回滚回执,并标记所述超时交易的状态为回滚中状态。
[0115]
在一些实施方式中,所述第一触发模块包括:
[0116]
第一确定子模块,用于获取各超时交易对应的来源链,确定来源链相同的超时交易;
[0117]
第一触发子模块,用于将来源链相同的超时交易一并返回至对应的来源链,触发来源链对超时交易进行回滚。
[0118]
在一些实施方式中,所述装置还包括:
[0119]
第二触发模块,用于若所述跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,触发所述目的链对所述跨链交易进行回滚,并在回滚完成后反馈一第二回滚回执;
[0120]
第一标记模块,用于当接收到所述第一回滚回执以及所述第二回滚回执时,标记所述跨链交易的状态为回滚完成状态。
[0121]
在一些实施方式中,所述第二触发模块,包括:
[0122]
发送子模块,用于若所述跨链交易为超时交易,则当接收到针对于所述跨链交易的第一处理结果时,向所述目的链发送报错信息,所述报错信息用于提示目的链所述跨链交易的状态为回滚中状态;
[0123]
第二触发子模块,用于触发所述目的链在接收到所述报错信息时对所述跨链交易进行回滚,并在回滚完成后反馈一第二回滚回执。
[0124]
在一些实施方式中,所述确定模块302,包括:
[0125]
计算子模块,用于计算所述第一接收时间戳与所述处理时长的和,得到计算结果;
[0126]
第二确定子模块,用于将所述计算结果确定为所述跨链交易的超时处理时间戳。
[0127]
在一些实施方式中,所述清除模块305,包括:
[0128]
清除子模块,用于清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,标记所述跨链交易的状态为处理完成状态,并向所述来源链发送所述第一处理结果。
[0129]
由上述可知,本技术实施例通过第一接收模块301接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;确定模块302基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;触发模块303向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;第二接收模块304 当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述
第一处理结果的第二接收时间戳;清除模块305若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述第一处理结果。以此,通过在接收每一跨链交易的处理请求时,将跨链交易以及对应的超时时间戳记录在指定超时列表中,并在超时时间戳之前收到跨链交易的处理结果时删除记录的跨链交易以及对应的超时时间戳,从而通过指定超时列表记录交易的处理情况,快速查询到因网络延迟、设备故障等问题所导致的超时交易,提高中继链的交易处理速率。
[0130]
相应的,本技术实施例还提供一种服务器。如图4所示,图4为本技术实施例提供的服务器的结构示意图。该服务器400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0131]
处理器401是服务器400的控制中心,利用各种接口和线路连接整个服务器400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器400的各种功能和处理数据,从而对服务器400进行整体监控。
[0132]
在本技术实施例中,服务器400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器 401来运行存储在存储器402中的应用程序,从而实现各种功能:
[0133]
接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述第一处理结果。
[0134]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0135]
可选的,如图4所示,服务器400还包括:输入单元403以及电源404。其中,处理器401分别与输入单元403以及电源404电性连接。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0136]
在本技术实施例中,输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
[0137]
电源404用于给服务器400的各个部件供电。可选的,电源404可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功
能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0138]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0139]
由上可知,本实施例提供的服务器,通过接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述处理结果。以此,通过在接收每一跨链交易的处理请求时,将跨链交易以及对应的超时时间戳记录在指定超时列表中,并在超时时间戳之前收到跨链交易的处理结果时删除记录的跨链交易以及对应的超时时间戳,从而通过指定超时列表记录交易的处理情况,快速查询到因网络延迟、设备故障等问题所导致的超时交易,提高中继链的交易处理速率。
[0140]
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
[0141]
为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种数据处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
[0142]
接收来源链发送的请求目的链对跨链交易进行处理的处理请求,记录接收到所述处理请求的第一接收时间戳,所述处理请求携带有跨链交易以及所述跨链交易的处理时长上限值;基于所述第一接收时间戳以及所述处理时长上限值,确定所述跨链交易的超时处理时间戳,并在指定超时列表中记录所述跨链交易以及所述跨链交易对应的所述超时处理时间戳;向目的链发送所述跨链交易,触发所述目的链在处理完成所述跨链交易后反馈第一处理结果;当接收到针对于所述跨链交易的第一处理结果时,记录接收到所述第一处理结果的第二接收时间戳;若所述第二接收时间戳位于所述超时处理时间戳之前,则清除所述指定超时列表中所述跨链交易以及所述跨链交易对应的所述超时处理时间戳,并向所述来源链发送所述处理结果。
[0143]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0144]
其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
[0145]
由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种数据处理方法中的步骤,因此,可以实现本技术实施例所提供的任一种基于区块链的跨链处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
[0146]
以上对本技术实施例所提供的一种基于区块链的跨链处理方法、装置、存储介质
及服务器进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献