CN114298700A - 区块链交易方法、装置、终端设备及计算机可读存储介质 - Google Patents
区块链交易方法、装置、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114298700A CN114298700A CN202111633305.2A CN202111633305A CN114298700A CN 114298700 A CN114298700 A CN 114298700A CN 202111633305 A CN202111633305 A CN 202111633305A CN 114298700 A CN114298700 A CN 114298700A
- Authority
- CN
- China
- Prior art keywords
- transaction
- chain
- cross
- block
- event
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种区块链交易方法、装置、终端设备及计算机可读存储介质,该方法包括:若交易起始链发起跨链交易事务,将跨链交易事务封装为跨链交易事件并发送至预设的中继链;获取中继链中目标区块的第一区块高度,目标区块为中继链中处理跨链交易事件的区块;根据第一区块高度,处理跨链交易事件。本申请提供的区块链交易方法,可以通过中继链作为交易起始链与交易目的链的处理桥梁,避免了交易起始链和交易目的链在处理多个交易时,由于处理当前交易超时,而不能对其他交易进行处理的问题。同时,再根据中继链中处理当前交易的区块高度,对当前交易进行超时或者非超时的把控,可以将超时的跨链事务均返还至交易起始链,减少了交易的超时率。
Description
技术领域
本申请涉及区块链领域,具体涉及一种区块链交易方法、装置、终端设备及计算机可读存储介质。
背景技术
在区块链的跨链交易场景中,来源链(交易的起始链或者交易的发起链)将某个业务发起跨链交易后,需要等待目的链(交易的接收链)执行跨链交易后返回的回执才能继续之后业务。如果目的链TPS(Transactions Per Second,每秒传输的事物处理个数)较低时,或者来源链和目的链之间的网络出现故障,会导致来源链接收到目的链的跨链交易的回执较慢,影响来源链上的业务的正常进行,由此就可能导致交易出现超时的情况。然而,在交易的过程中,交易具有时效性。因此,若出现交易超时,交易即使成功,此时也有可能对交易发起者造成损失。故,如何解决交易超时的问题,便成了本领域需要解决的问题。
发明内容
本申请提供了一种区块链交易方法,可以通过构建中继链的方式,通过中继链进行交易信息的处理,避免了交易起始链不能接收到交易目的链的跨链交易的回执,影响来源链上的业务的正常进行。
第一方面,本申请提供一种区块链交易方法,所述方法包括:
若交易起始链发起跨链交易事务,将所述跨链交易事务封装为跨链交易事件并发送至预设的中继链;
获取所述中继链中目标区块的第一区块高度,所述目标区块为所述中继链中处理所述跨链交易事件的区块;
根据所述第一区块高度,处理所述跨链交易事件。
在本申请一些实施例中,所述获取所述中继链的目标区块的第一区块高度,包括:
若所述中继链通过一个区块对所述跨链交易事件出块,将对所述跨链交易事件出块的区块确定为所述目标区块,所述目标区块在所述中继链的位置为所述第一区块高度。
在本申请一些实施例中,所述根据所述第一区块高度,处理所述跨链交易事件,包括:
获取所述跨链交易事件的等待区块数;
获取所述中继链的第二区块高度,所述第二区块高度的数值为所述等待区块数的数值与所述第一区块高度的数值之和相同;
根据所述第二区块高度,处理所述跨链交易事件。
在本申请一些实施例中,所述根据所述第二区块高度,处理所述跨链交易事件,包括:
建立所述第二区块高度的超时交易列表;
根据所述超时交易列表,处理所述跨链交易事件。
在本申请一些实施例中,所述根据所述超时交易列表,处理所述跨链交易事件,包括:
将所述跨链交易事件放入所述超时交易列表中;
将所述跨链交易事件由所述中继链发送至交易目的链;
若所述交易目的链将交易结果返回至所述中继链,判断是否将所述跨链交易事件从所述超时交易列表中删除。
在本申请一些实施例中,所述判断是否将所述跨链交易事件从所述超时交易列表中删除,包括:
获取所述中继链用于处理所述交易结果的实际区块的区块高度;
根据所述实际区块的区块高度,判断是否将所述跨链交易事件从所述超时交易列表中删除。
在本申请一些实施例中,所述根据所述实际区块的区块高度,判断是否将所述跨链交易事件从所述超时交易列表中删除,包括:
若所述实际区块的区块高度的数值大于所述等待区块数的数值与所述第一区块高度的数值的和,确定所述跨链交易事件超时,保留所述超时交易列表中的所述跨链交易事件;
若保留所述超时交易列表中的所述跨链交易事件,修改所述跨链交易事件的状态为开始回滚状态,同时,通知所述交易起始链进行回滚操作;
若所述实际区块的区块高度的数值小于等于所述等待区块数的数值与所述第一区块高度的数值的和,确定所述跨链交易事件未超时,删除所述超时交易列表中的所述跨链交易事件。
第二方面,本申请还提供了一种区块链交易装置,所述装置包括:
封装模块,用于若交易起始链发起跨链交易事务,将所述跨链交易事务封装为跨链交易事件并发送至预设的中继链;
获取模块,用于获取所述中继链中目标区块的第一区块高度,所述目标区块为所述中继链中处理所述跨链交易事件的区块;
交易处理模块,用于根据所述第一区块高度,处理所述跨链交易事件。
在本申请一些实施例中,所述获取模块具体用于:
若所述中继链通过一个区块对所述跨链交易事件出块,将对所述跨链交易事件出块的区块确定为所述目标区块,所述目标区块在所述中继链的位置为所述第一区块高度。
在本申请一些实施例中,所述交易处理模块具体用于:
获取所述跨链交易事件的等待区块数;
获取所述中继链的第二区块高度,所述第二区块高度的数值为所述等待区块数的数值与所述第一区块高度的数值之和相同;
根据所述第二区块高度,处理所述跨链交易事件。
在本申请一些实施例中,所述交易处理模块具体还用于:
建立所述第二区块高度的超时交易列表;
根据所述超时交易列表,处理所述跨链交易事件。
在本申请一些实施例中,所述交易处理模块具体还用于:
将所述跨链交易事件放入所述超时交易列表中;
将所述跨链交易事件由所述中继链发送至交易目的链;
若所述交易目的链将交易结果返回至所述中继链,判断是否将所述跨链交易事件从所述超时交易列表中删除。
在本申请一些实施例中,所述交易处理模块具体还用于:
获取所述中继链用于处理所述交易结果的实际区块的区块高度;
根据所述实际区块的区块高度,判断是否将所述跨链交易事件从所述超时交易列表中删除。
在本申请一些实施例中,所述交易处理模块具体还用于:
若所述实际区块的区块高度的数值大于所述等待区块数的数值与所述第一区块高度的数值的和,确定所述跨链交易事件超时失败,保留所述超时交易列表中的所述跨链交易事件;
若保留所述超时交易列表中的所述跨链交易事件,修改所述跨链交易事件的状态为开始回滚状态,同时,通知所述交易起始链进行回滚操作;
若所述实际区块的区块高度的数值小于等于所述等待区块数的数值与所述第一区块高度的数值的和,确定所述跨链交易事件未超时,删除所述超时交易列表中的所述跨链交易事件。
第三方面,本申请还提供了一种终端设备,所述终端设备包括处理器、存储器以及存储于所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序以实现任一项所述的区块链交易方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现任一项所述的区块链交易方法中的步骤。
本申请提供的区块链交易方法,可以通过中继链作为交易起始链与交易目的链的处理桥梁,避免了交易起始链和交易目的链在处理多个交易时,由于处理当前交易超时,而不能对其他交易进行处理的问题。同时,再根据中继链中处理当前交易的区块高度,对当前交易进行超时或者非超时的把控,可以将超时的跨链事务均返还至交易起始链,减少了交易的超时率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中提供的区块链交易***的场景示意图;
图2是本申请实施例中区块链交易方法的一个实施例流程示意图;
图3是本申请实施例中区块链交易装置的一个功能模块示意图;
图4是本申请实施例中终端设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
本申请提供了一种区块链交易方法、装置、终端设备及计算机可读存储介质,以下分别进行详细说明。
首先,介绍本申请中出现的一些概念:
区块链:区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。从应用视角来看,简单来说,区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。而区块链丰富的应用场景,基本上都基于区块链能够解决信息不对称问题,实现多个主体之间的协作信任与一致行动。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
请参阅图1,图1为本申请实施例所提供的区块链交易***的场景示意图,该区块链交易***可以包括终端设备100和存储设备200,该存储设备200可以向该终端设备100传输数据。如图1中的终端设备100,可以获取该存储设备200中存储的区块链交易数据,以执行本申请中的区块链交易方法。
本申请实施例中,终端设备100其包括但不限可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、平板电脑、无线终端设备、嵌入式设备等。
本申请的实施例中,终端设备100和存储设备200之间可通过任何通信方式实现通信,包括但不限于,基于第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)、长期演进(Long Term Evolution,LTE)、全球互通微波访问(WorldwideInteroperability for Microwave Access,WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)的计算机网络通信等。
需要说明的是,图1所示的区块链交易***的场景示意图仅仅是一个示例,本申请实施例描述的区块链交易***以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着区块链交易***的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
如图2所示,图2为本申请实施例中区块链交易方法的一个实施例流程示意图,区块链交易方法可以包括如下步骤201~203:
201、若交易起始链发起跨链交易事务,将跨链交易事务封装为跨链交易事件并发送至预设的中继链。
首先,在区块链技术中,有价值的信息以数据的形式被永久存储下来,这些用于存储数据信息的载体被称为区块。区块按时间顺序排列,每个区块都记录着它在被创建期间所发生的交易信息,所有区块有序链接起来以汇聚成一本“总账”,而每个区块都可被看作总账中的一页。区块记录了在这段时间内发生的所有交易信息。同时,每个区块都包含前一个区块的识别信息,因此便可根据此识别信息找到上一个区块,依此类推,追踪到起始区块,从而可以生成一个完整的交易链条,进而形成区块链。由此可见,一个区块链可以作为一个“总账”,因此在整个的交易范围中,“总账”的个数也可以为多个,这样区块链的链数也就可以为多个。因此,由一个区块链与另一个区块链进行交易时,这种交易类型,也就被称作为跨链交易事件。而交易起始链就为这种跨链交易事件的交易发起,或者交易请求的链条。
而本步骤中的中继链,可以是一种处理这种跨链交易事件的中间链,或者可以理解为一种第三方链,作为一种跨链交易事件的代理链条,以代理交易起始链对交易进行处理的工作。这样可以避免交易起始链在处理交易事务时,由于交易目的链(也就是交易的对象)自身的原因,处理进度慢时,交易起始链一直处于等待的状态,从而无法执行其他任务的问题。
其中,当交易起始链发出跨链交易事件时,将该跨链交易事件封装至一个中继链中即可。其中,封装过程不属于本申请的内容,具体此处不做赘述。
202、获取中继链中目标区块的第一区块高度,目标区块为中继链中处理跨链交易事件的区块。
由于根据上述步骤可得,中继链需要对交易起始链的交易进行代理工作,因此,需要通过中继链处理该跨链交易事件。因此,也就需要中继链中的一个区块对该跨链交易事件进行处理。故,当该跨链交易事件被封装至中继链之后,中继链中处理该跨链交易事件的区块就是该目标区块。
而区块高度是指区块的编号,换句话说,就是一个区块与创世区块之间的块数。创世区块,顾名思义,就是一条区块链上的第一个区块。我们查询某个区块信息的时候,除了通过它的哈希值,还可以通过它的区块高度进行查询。进而,区块高度也就代表的一个区块在一个区块链中的位置。因此,当中继链中出现一个区块开始处理该跨链交易事件时,可以根据这个区块的哈希值,确定该目标区块,当确定了具体的区块后,便可以获取到该目标区块在中继链中的位置,也就是该目标区块的高度。
为了更好的实现本申请实施例,在一个本申请实施例中,获取中继链的目标区块的第一区块高度,包括:
若中继链通过一个区块对跨链交易事件出块,将对跨链交易事件出块的区块确定为目标区块,目标区块在中继链的位置为第一区块高度。
在实际场景中,对该跨链交易事件进行处理,需要可能会出现多个区块对该跨链交易事件进行处理,例如中继链将该跨链交易事件发送至交易目的链时,可能为区块X,当交易目的链将交易结果返回至中继链时,中继链进行交易结果验证的区块可能为区块Y,此时区块X与区块Y均为处理该跨链交易事件的区块,此时目标区块可能出现两个,因此,需要确定该这两个区块中,具体哪一个为目标区块。
因此可以得出,在处理跨链交易事件时,中继链可能会通过使用两个区块对该跨链交易事件进行处理,故为了确定具体的哪一个区块为目标区块,此处将中继链把该跨链交易事件进行出块的区块作为目标区块。其中,出块的动作即可以定义为,中继链将跨链交易事件完成封装后,经过验证之后,将该跨链交易事件发送至交易目的链的过程。即该第一区块高度,则为该目标区块的区块高度。
203、根据第一区块高度,处理跨链交易事件。
由于根据上述实施例可得,随着时间的增加,区块高度也会增加,由于在中继链通过目标区块将跨链交易事件发送至交易目的链之后,若交易目的链处理交易的时间过长时,交易目的链将交易结果返回至中继链之后,再进行交易结果处理的中继链中的区块,就有极大的可能不为该目标区块,可能变为了该目标区块之后,区块高度更高的区块进行处理。当之后区块高度更高的区块进行处理时,若区块高度更高的区块与目标区块的区块高度差值过大时,就可以证明交易目的链的交易处理时间过大,进而可以反映交易时间的超时风险较高。例如:此时可以进行设定,若两者区块高度的差值大于10时,就可以确定该交易超时,从而在交易进行处理时,将该交易确定为超时交易,进而进行该交易的取消或者对交易起始链进行交易超时的提示等操作,具体此处不做限定。
为了更好的实现本申请实施例,在一个本申请实施例中,根据第一区块高度,处理跨链交易事件,包括:
获取跨链交易事件的等待区块数;获取中继链的第二区块高度,第二区块高度的数值为等待区块数的数值与第一区块高度的数值之和相同;根据第二区块高度,处理跨链交易事件。
根据上述实施例可得,可以根据区块高度更高的区块与目标区块的区块高度差值,来判断跨链交易事件是否超时。而本实施例需要可以解决如何确定该差值的问题。
首先,获取跨链交易事件的等待区块数可以直接通过该跨链交易事件中直接获取,由于该相应的跨链交易事务已经被封装为跨链交易事件并发送至中继链中,在跨链交易事件被封装完成时,跨链交易事件的等待区块数便完成了设置,因此可以直接通过跨链交易事件进行获取。而中继链在处理该跨链交易事件时,可能也会处理其他的交易事件。例如:将该跨链交易事件封装至了该中继链,且由目标区块的区块高度为5的区块进行该跨链交易事件的出块动作。但,该中继链可能会出现同时处理多个交易事件的情况,例如:同时有三个跨链交事务,将该三件跨链交易事务分别封装为三个跨链交易事件至该中继链,交易事件1,交易事件2,交易事件3,此时三个交易事件分别的包括可以容忍的等待区块个数,例如10个可以容忍的等待区块个数。假设该交易事件1为本申请的跨链交易事件,此时中继链假设先对交易事件1通过区块高度为5的区块进行出块,而交易事件2和交易事件3此时就为即将出块的交易事件,此时交易事件2与交易事件3就为等待状态,而当区块高度为5的区块将交易事件1出块成功后,此时中继链可能会通过另一个区块高度为6的区块对交易事件2或者交易事件3进行出块,此时对交易事件1而言,由于所处的区块高度为5,当前的区块高度为6,所以当前等待区块的数量为1,未超过交易1容忍的等待区块个数。这样就意味着,假设交易目的链将交易事件1的交易结果返回中继链时,便不会通过区块高度为5的区块进行处理,此时若交易目的链处理交易事件1不超时的情况下,将交易结果返回至中继链时,依旧会通过区块高度为6的区块处理该交易结果,若交易目的链处理交易事件1出现了超时情况时,交易目的链将交易结果返回中继链时,交易结果就可能会通过区块高度为7的区块进行处理。因此,等待区块数可以为上述实施例中的区块高度差值,而第一区块高度的数值与此等待区块数的数值相加之后,得到的区块高度所对应的区块,也就是第二区块高度所对应的区块,便为不超时情况下,正常处理返回的交易结果的区块。
假设等待区块数为H,第一区块高度为h,假设等待区块数就为5,即H为5,第一区块高度为5,则h为5,此时H+h=10,则第二区块高度为10,若交易未超时,则应该为区块高度为10的区块处理返回的交易结果;若超时,就为区块高度大于10的区块,处理该返回的交易结果。其中,具体的,本实施例中所列举的数据并不构成对本申请的限定。
为了更好的实现本申请实施例,在一个本申请实施例中,根据第二区块高度,处理跨链交易事件,包括:
建立第二区块高度的超时交易列表;根据超时交易列表,处理跨链交易事件。
当根据上述实施例得到在不超时情况下时,能够确定具体由哪一个区块,处理交易目的链对该跨链交易事件返回的交易结果。若依旧以上述实施例中的数据进行说明,假设可以确定区块高度为6的区块处理该返回的交易结果。此时,就对该区块高度为6的区块建立一个超时交易列表,用于记录该跨链交易事件是否超时。例如:若该跨链交易事件超时,就可以将该跨链交易事件放入该超时交易列表,当该跨链交易事件放入该超时交易列表之后,***就可以对交易起始链发出提示,提示该跨链交易事件超时,使得交易起始链方自行判断是否接受超时的交易,或者拒绝。该超时交易列表可以提供具体的出现超时的交易。
为了更好的实现本申请实施例,在一个本申请实施例中,根据超时交易列表,处理跨链交易事件,包括:
将跨链交易事件放入超时交易列表中;将跨链交易事件由中继链发送至交易目的链;若交易目的链将交易结果返回至中继链,判断是否将跨链交易事件从超时交易列表中删除。
而交易在进行的过程中,或者交易超时的情况下,均属于一种交易未完成的状态,因此,对于处于未完成状态时的交易,可以在跨链交易事件完成出块的同时,直接将该跨链交易事件放入该超时交易列表中,若有其他具有权限的用户希望查看该交易的状态时,可以提供当前的跨链交易事件为一种未完成的状态。
若交易按时完成,在将交易从超时交易列表中删除即可,若出现超时情况时,保留该跨链交易事件在该超时交易列表中即可。
其中,判断是否将跨链交易事件从超时交易列表中删除,包括:
获取中继链用于处理交易结果的实际区块的区块高度;根据实际区块的区块高度,判断是否将跨链交易事件从超时交易列表中删除。
根据上述实施例可得,第二区块高度所对应的区块,实质为在不超时的情况下,理论上应该处理该跨链交易事件的区块。假设出现超时情况时,实际处理由跨链目的链返回的交易结果的实际区块的区块高度,是大于该第二区块高度的,因此判断实际区块的区块高度与第二区块高度的大小,即可以判断是否需要将该跨链交易事件从超时交易列表中删除。
故,根据实际区块的区块高度,判断是否将跨链交易事件从超时交易列表中删除,便可以出现以下几种情况:
(1)、若实际区块的区块高度的数值大于等待区块数的数值与第一区块高度的数值的和,确定跨链交易事件超时失败,保留超时交易列表中的跨链交易事件。
(2)、若保留超时交易列表中的跨链交易事件,修改跨链交易事件的状态为开始回滚状态,同时,通知交易起始链进行回滚操作。
需要说明的是,回滚指代为交易返回或者交易撤销,当该跨链交易事件保留在超时交易列表时,证明该跨链交易事件为超时,需要撤销该交易,故将该跨链交易事件定义为开始回滚状态,即一种即将撤销的状态,此时通知交易起始链发起交易撤销的指令,待交易起始链发出交易撤销的指令之后,撤销该跨链交易事件即可。
(3)、若实际区块的区块高度的数值小于等于等待区块数的数值与第一区块高度的数值的和,确定跨链交易事件未超时,删除超时交易列表中的跨链交易事件。
当然,若出现上述情况(1),不仅可以提示用户交易超时,若为了减少超时率,若出现交易超时的情况时,为了保证用户的权益,可以在提示用户交易失败的时候,可以直接取消交易,避免用户在涉及一些即时交易时,出现损失。
本申请提供的区块链交易方法,可以通过中继链作为交易起始链与交易目的链的处理桥梁,避免了交易起始链和交易目的链在处理多个交易时,由于处理当前交易超时,而不能对其他交易进行处理的问题。同时,再根据中继链中处理当前交易的区块高度,对当前交易进行超时或者非超时的把控,可以将超时的交易均返还至交易起始链,减少了交易的超时率。
为了更好实施本申请实施例中的区块链交易方法,在区块链交易方法之上,本申请实施例中还提供了一种区块链交易装置,如图3所示,装置300包括:
封装模块301,用于若交易起始链发起跨链交易事务,将跨链交易事务封装为跨链交易事件并发送至预设的中继链。
获取模块302,用于获取中继链中目标区块的第一区块高度,目标区块为中继链中处理跨链交易事件的区块。
交易处理模块303,用于根据第一区块高度,处理跨链交易事件。
本申请提供的区块链交易装置,可以通过封装模块301将跨链交易事件封装至中继链,使得中继链作为交易起始链与交易目的链的处理桥梁,避免了交易起始链和交易目的链在处理多个交易时,由于处理当前交易超时,而不能对其他交易进行处理的问题。同时,再根据获取模块302获取中继链中处理当前交易的区块高度,通过交易处理模块303对当前交易进行超时或者非超时的把控,可以将超时的跨链事务均返还至交易起始链,减少了交易的超时率。
在本申请一些实施例中,获取模块302具体用于:
若中继链通过一个区块对跨链交易事件出块,将对跨链交易事件出块的区块确定为目标区块,目标区块在中继链的位置为第一区块高度。
在本申请一些实施例中,交易处理模块303具体用于:
获取跨链交易事件的等待区块数;
获取中继链的第二区块高度,第二区块高度的数值为等待区块数的数值与第一区块高度的数值之和相同;
根据第二区块高度,处理跨链交易事件。
在本申请一些实施例中,交易处理模块具体303还用于:
建立第二区块高度的超时交易列表;
根据超时交易列表,处理跨链交易事件。
在本申请一些实施例中,交易处理模块303具体还用于:
将跨链交易事件放入超时交易列表中;
将跨链交易事件由中继链发送至交易目的链;
若交易目的链将交易结果返回至中继链,判断是否将跨链交易事件从超时交易列表中删除。
在本申请一些实施例中,交易处理模块303具体还用于:
获取中继链用于处理交易结果的实际区块的区块高度;
根据实际区块的区块高度,判断是否将跨链交易事件从超时交易列表中删除。
在本申请一些实施例中,交易处理模块303具体还用于:
若实际区块的区块高度的数值大于等待区块数的数值与第一区块高度的数值的和,确定跨链交易事件超时失败,保留超时交易列表中的跨链交易事件;
若保留超时交易列表中的跨链交易事件,修改跨链交易事件的状态为开始回滚状态,同时,通知交易起始链进行回滚操作;
若实际区块的区块高度的数值小于等于等待区块数的数值与第一区块高度的数值的和,确定跨链交易事件未超时,删除超时交易列表中的跨链交易事件。
本申请实施例还提供一种终端设备,该终端设备包括处理器、存储器以及存储于存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序以实现本申请实施例中任一项的区块链交易方法中的步骤。其中,该终端设备,其集成了本申请实施例所提供的任一种区块链交易方法,如图4所示,其示出了本申请实施例所涉及的终端设备的结构示意图,具体来讲:
该终端设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;处理器401可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界是面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
终端设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该终端设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,终端设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,终端设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,例如:
若交易起始链发起跨链交易事务,将跨链交易事务封装为跨链交易事件并发送至预设的中继链;
获取中继链中目标区块的第一区块高度,目标区块为中继链中处理跨链交易事件的区块;
根据第一区块高度,处理跨链交易事件。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种区块链交易方法中的步骤。例如,计算机程序被处理器进行加载可以执行如下步骤:
若交易起始链发起跨链交易事务,将跨链交易事务封装为跨链交易事件并发送至预设的中继链;
获取中继链中目标区块的第一区块高度,目标区块为中继链中处理跨链交易事件的区块;
根据第一区块高度,处理跨链交易事件。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种区块链交易方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种区块链交易方法,其特征在于,所述方法包括:
若交易起始链发起跨链交易事务,将所述跨链交易事务封装为跨链交易事件并发送至预设的中继链;
获取所述中继链中目标区块的第一区块高度,所述目标区块为所述中继链中处理所述跨链交易事件的区块;
根据所述第一区块高度,处理所述跨链交易事件。
2.根据权利要求1所述的区块链交易方法,其特征在于,所述获取所述中继链的目标区块的第一区块高度,包括:
若所述中继链通过一个区块对所述跨链交易事件出块,将对所述跨链交易事件出块的区块确定为所述目标区块,所述目标区块在所述中继链的位置为所述第一区块高度。
3.根据权利要求1所述的区块链交易方法,其特征在于,所述根据所述第一区块高度,处理所述跨链交易事件,包括:
获取所述跨链交易事件的等待区块数;
获取所述中继链的第二区块高度,所述第二区块高度的数值为所述等待区块数的数值与所述第一区块高度的数值之和相同;
根据所述第二区块高度,处理所述跨链交易事件。
4.根据权利要求3所述的区块链交易方法,其特征在于,所述根据所述第二区块高度,处理所述跨链交易事件,包括:
建立所述第二区块高度的超时交易列表;
根据所述超时交易列表,处理所述跨链交易事件。
5.根据权利要求4所述的区块链交易方法,其特征在于,所述根据所述超时交易列表,处理所述跨链交易事件,包括:
将所述跨链交易事件放入所述超时交易列表中;
将所述跨链交易事件由所述中继链发送至交易目的链;
若所述交易目的链将交易结果返回至所述中继链,判断是否将所述跨链交易事件从所述超时交易列表中删除。
6.根据权利要求5所述的区块链交易方法,其特征在于,所述判断是否将所述跨链交易事件从所述超时交易列表中删除,包括:
获取所述中继链用于处理所述交易结果的实际区块的区块高度;
根据所述实际区块的区块高度,判断是否将所述跨链交易事件从所述超时交易列表中删除。
7.根据权利要求6所述的区块链交易方法,其特征在于,所述根据所述实际区块的区块高度,判断是否将所述跨链交易事件从所述超时交易列表中删除,包括:
若所述实际区块的区块高度的数值大于所述等待区块数的数值与所述第一区块高度的数值的和,确定所述跨链交易事件超时,保留所述超时交易列表中的所述跨链交易事件;
若保留所述超时交易列表中的所述跨链交易事件,修改所述跨链交易事件的状态为开始回滚状态,同时,通知所述交易起始链进行回滚操作;
若所述实际区块的区块高度的数值小于等于所述等待区块数的数值与所述第一区块高度的数值的和,确定所述跨链交易事件未超时,删除所述超时交易列表中的所述跨链交易事件。
8.一种区块链交易装置,其特征在于,所述装置包括:
封装模块,用于若交易起始链发起跨链交易事务,将所述跨链交易事务封装为跨链交易事件并发送至预设的中继链;
获取模块,用于获取所述中继链中目标区块的第一区块高度,所述目标区块为所述中继链中处理所述跨链交易事件的区块;
交易处理模块,用于根据所述第一区块高度,处理所述跨链交易事件。
9.一种终端设备,其特征在于,所述终端设备包括处理器、存储器以及存储于所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序以实现权利要求1至7任一项所述的区块链交易方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任一项所述的区块链交易方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111633305.2A CN114298700A (zh) | 2021-12-29 | 2021-12-29 | 区块链交易方法、装置、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111633305.2A CN114298700A (zh) | 2021-12-29 | 2021-12-29 | 区块链交易方法、装置、终端设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114298700A true CN114298700A (zh) | 2022-04-08 |
Family
ID=80971065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111633305.2A Pending CN114298700A (zh) | 2021-12-29 | 2021-12-29 | 区块链交易方法、装置、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114298700A (zh) |
-
2021
- 2021-12-29 CN CN202111633305.2A patent/CN114298700A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11966916B2 (en) | Resource transfer method and apparatus, storage medium, and computer device | |
CN110647580B (zh) | 分布式容器集群镜像管理主节点、从节点、***及方法 | |
US11336451B2 (en) | Cross-blockchain resource transmission | |
CN110413304B (zh) | 基于区块链网络的智能合约热升级方法及装置 | |
CN111080449B (zh) | 区块链的跨链交易方法、管理节点、区块链网络 | |
CN111861482B (zh) | 一种区块链对账方法和*** | |
CN108574593B (zh) | 一种nfv网络中许可证的管理***和管理方法 | |
CN110995473A (zh) | 一种业务节点的控制方法及相关设备 | |
EP3971809B1 (en) | Method and apparatus for starting smart contract, electronic device, and storage medium | |
CN110599177A (zh) | 一种交易验证方法及相关设备 | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN110601896B (zh) | 一种基于区块链节点的数据处理方法以及设备 | |
WO2021121407A1 (zh) | 一种虚拟机的容量更改方法及装置 | |
CN108881476A (zh) | 区块链部署方法与*** | |
CN107358526B (zh) | 一种紧急交易的方法和装置 | |
CN107797859A (zh) | 一种定时任务的调度方法及一种调度服务器 | |
CN113689216A (zh) | 跨链事务处理方法及装置、设备、存储介质、程序产品 | |
CN111311254A (zh) | 一种基于区块链的业务处理方法、装置和*** | |
WO2022206439A1 (zh) | 提供跨链消息的方法和装置 | |
CN115941171A (zh) | 网络密钥交换协商方法、装置及网络设备 | |
US11483158B2 (en) | Distributed ledger device, distributed ledger system, and distributed ledger management method | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
CN112181599A (zh) | 模型训练方法、装置及存储介质 | |
CN114298700A (zh) | 区块链交易方法、装置、终端设备及计算机可读存储介质 | |
CN112328414B (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 |