欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 跨链交易方法、电子设备及可读存储介质独创技术75119字

跨链交易方法、电子设备及可读存储介质

2021-02-16 19:45:06

跨链交易方法、电子设备及可读存储介质

  技术领域

  本发明涉及通信技术领域,特别是涉及一种跨链交易方法、电子设备及可读存储介质。

  背景技术

  区块链技术构建在传输网络(例如点对点网络)之上,传输网络中的分布式节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据,实现了防止数据篡改的机制。

  区块链技术具有广泛地应用前景,目前已经在金融、保险、医疗、资产管理、供应链等诸多领域得以应用。然而由于区块链技术的天然特性,导致不同区块链网络之间难以互通,多个区块链网络形成了多个信息孤岛,从而限制了区块链技术的进一步发展。相关技术中,提出了跨链通信方法,基于该跨链通信方法,可实现跨链交易。然而现有的跨链交易方法还不成熟,容易产生交易错误,交易过程的可靠性偏低。

  发明内容

  本发明实施例的目的在于提供一种跨链交易方法、电子设备及可读存储介质,旨在提高跨链交易的可靠性。具体技术方案如下:

  在本发明实施例的第一方面,提供一种跨链交易方法,应用于区块链网络系统,所述区块链网络系统包括公链网络、第一专链网络以及第二专链网络,所述方法包括:

  所述公链网络获得所述第一专链网络对目标交易的第一共识投票和所述第二专链网络对所述目标交易的第二共识投票,并根据所述第一共识投票和所述第二共识投票,判断所述第一专链网络和所述第二专链网络是否均同意执行所述目标交易,若是,则生成执行提示,所述执行提示用于表征允许执行所述目标交易;

  所述第一专链网络获得所述执行提示后,预执行所述目标交易,得到第一预执行结果,所述第二专链网络获得所述执行提示后,预执行所述目标交易,得到第二预执行结果;

  所述公链网络获得所述第一预执行结果和所述第二预执行结果,并根据所述第一预执行结果和所述第二预执行结果,判断所述第一专链网络和所述第二专链网络是否均成功预执行所述目标交易,若是,则执行所述目标交易,获得执行结果;

  所述第一专链网络获得所述执行结果,并在所述执行结果表征所述公链网络成功执行所述目标交易的情况下,通过所述第一专链网络的区块链记录所述第一预执行结果,所述第二专链网络获得所述执行结果,并在所述执行结果表征所述公链网络成功执行所述目标交易的情况下,通过所述第二专链网络的区块链记录所述第二预执行结果。

  可选地,所述执行提示被记录在所述公链网络的新区块中;所述方法还包括:

  所述第一专链网络按照区块高度递增的顺序,同步所述公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有所述执行提示,以获取所述执行提示;

  当所述第一专链网络从一个新区块中获得所述执行提示后,所述第一专链网络将所述目标交易对应的第一目标账本锁定;

  在所述第一专链网络通过其区块链记录所述第一预执行结果之后,所述第一专链网络对所述第一目标账本进行解锁;

  所述第二专链网络按照区块高度递增的顺序,同步所述公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有所述执行提示,以获取所述执行提示;

  当所述第二专链网络从一个新区块中获得所述执行提示后,所述第二专链网络将所述目标交易对应的第二目标账本锁定;

  在所述第二专链网络通过其区块链记录所述第二预执行结果之后,所述第二专链网络对所述第二目标账本进行解锁。

  在本发明实施例的第二方面,提供另一种跨链交易方法,应用于第一专链网络中的节点,所述第一专链网络属于区块链网络系统,所述区块链网络系统还包括公链网络和第二专链网络,所述方法包括:

  将针对目标交易的第一共识投票发送给所述公链网络,所述第一共识投票表征所述第一专链网络是否同意执行所述目标交易;

  获得所述公链网络的执行提示,所述执行提示是在所述第一专链网络和所述第二专链网络均同意执行所述目标交易的情况下,由所述公链网络生成的;

  响应于所述执行提示,预执行所述目标交易,得到第一预执行结果,并将所述第一预执行结果发送给所述公链网络;

  获得所述公链网络的执行结果,所述执行结果是在所述第一专链网络和所述第二专链网络均成功预执行所述目标交易的情况下,所述公链网络执行所述目标交易后得到的结果;

  响应于所述执行结果,将所述第一预执行结果记入区块,以通过区块链记录所述第一预执行结果。

  可选地,所述执行提示被记录在所述公链网络的新区块中;所述获得所述公链网络的执行提示,包括:

  按照区块高度递增的顺序,同步所述公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有所述执行提示,以从新区块中获取所述执行提示。

  可选地,所述方法还包括:

  当从一个新区块中获得执行提示后,将所述目标交易对应的第一目标账本锁定;

  在将所述第一预执行结果记入区块之后,对所述第一目标账本进行解锁。

  可选地,所述方法还包括:

  检测所述第一目标账本的锁定是否超时,并在锁定超时的情况下,向所述公链网络发送解锁交易;

  获得所述公链网络针对所述解锁交易的执行结果,并响应于该执行结果,对所述第一目标账本进行解锁。

  可选地,在将所述第一共识投票发送给所述公链网络之前,所述方法还包括:

  将所述目标交易发送给所述第二专链网络;

  获得所述第一专链网络对所述目标交易的所述第一共识投票,并接收所述第二专链网络发送的所述第二专链网络对所述目标交易的第二共识投票,所述第二共识投票表征所述第二专链网络是否同意执行所述目标交易;

  所述将针对目标交易的第一共识投票发送给所述公链网络,包括:

  将所述第一共识投票、所述第二共识投票以及所述目标交易一并发送给所述公链网络。

  可选地,在将所述第一预执行结果发送给所述公链网络之前,所述方法还包括:

  接收所述第二专链网络发送的所述第二专链网络预执行所述目标交易后得到的第二预执行结果;

  所述将所述第一预执行结果发送给所述公链网络,包括:

  将所述第一预执行结果和所述第二预执行结果发送给所述公链网络。

  在本发明实施例的第三方面,提供又一种跨链交易方法,应用于第二专链网络中的节点,所述第二专链网络属于区块链网络系统,所述区块链网络系统还包括公链网络和第一专链网络,所述方法包括:

  将针对目标交易的第二共识投票发送给所述第一专链网络,所述第二共识投票表征所述第二专链网络是否同意执行所述目标交易;

  获得所述公链网络的执行提示,所述执行提示是在所述第一专链网络和所述第二专链网络均同意执行所述目标交易的情况下,由所述公链网络生成的;

  响应于所述执行提示,预执行所述目标交易,得到第二预执行结果,并将所述第二预执行结果发送给所述第一专链网络;

  获得所述公链网络的执行结果,所述执行结果是在所述第一专链网络和所述第二专链网络均成功预执行所述目标交易的情况下,所述公链网络执行所述目标交易后得到的结果;

  响应于所述执行结果,将所述第二预执行结果记入区块,以通过区块链记录所述第二预执行结果。

  可选地,所述执行提示被记录在所述公链网络的新区块中;所述获得所述公链网络的执行提示,包括:

  按照区块高度递增的顺序,同步所述公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有所述执行提示,以从新区块中获取所述执行提示;

  所述方法还包括:

  当从一个新区块中获得执行提示后,将所述目标交易对应的第二目标账本锁定;

  在将所述第二预执行结果记入区块之后,对所述第二目标账本进行解锁。

  可选地,所述方法还包括:

  获得所述公链网络针对解锁交易的执行结果,并响应于该执行结果,对所述第二目标账本进行解锁;

  其中,所述解锁交易是所述第一专链网络检测在到所述目标交易对应的第一目标账本的锁定超时后,向所述公链网络发出的交易。

  在本发明实施例的第四方面,提供再一种跨链交易方法,应用于公链网络中的节点,所述公链网络属于区块链网络系统,所述区块链网络系统还包括第一专链网络和第二专链网络,所述方法包括:

  获得所述第一专链网络对目标交易的第一共识投票和所述第二专链网络对所述目标交易的第二共识投票;

  根据所述第一共识投票和所述第二共识投票,判断所述第一专链网络和所述第二专链网络是否均同意执行所述目标交易,若是,则生成执行提示,所述执行提示用于表征允许执行所述目标交易;

  获得第一预执行结果和第二预执行结果,所述第一预执行结果是所述第一专链网络在获得所述执行提示后预执行所述目标交易后的执行结果,所述第二预执行结果是所述第二专链网络在获得所述执行提示后预执行所述目标交易后的执行结果;

  根据所述第一预执行结果和所述第二预执行结果,判断所述第一专链网络和所述第二专链网络是否均成功预执行所述目标交易,若是,则执行所述目标交易,获得执行结果,并将所述执行结果发送给所述第一专链网络和所述第二专链网络。

  可选地,执行提示被记录在所述公链网络的新区块中;所述方法还包括:

  按照区块高度递增的顺序,向所述第一专链网络同步新区块;

  按照区块高度递增的顺序,向所述第二专链网络同步新区块。

  可选地,所述获得所述第一专链网络对目标交易的第一共识投票和所述第二专链网络对所述目标交易的第二共识投票,包括:

  接收所述第一专链网络发送的所述第一专链网络对目标交易的第一共识投票、所述第二专链网络对所述目标交易的第二共识投票、以及所述目标交易;

  所述获得第一预执行结果和第二预执行结果,包括:

  接收所述第一专链网络发送的所述第一预执行结果和所述第二预执行结果。

  可选地,所述方法还包括:

  获得所述第一专链网络发送的解锁交易,所述解锁交易是所述第一专链网络在检测到所述目标交易对应的第一目标账本的锁定超时后,所述第一专链网络生成的交易;

  对所述解锁交易和所述公链网络接收到的其他交易进行排序,并按照所述排序,依次执行各个交易;

  在执行所述解锁交易后,获得该解锁交易的执行结果,并将该执行结果发送给所述第一专链网络和所述第二专链网络。

  在本发明实施例的第五方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

  所述存储器,用于存放计算机程序;

  所述处理器,用于在执行存储器上所存放的程序时,实现本发明任一实施例所提供的跨链交易方法。

  在本发明实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的跨链交易方法。

  应用本发明提供的跨链交易方法,公链网络会获得第一专链网络的第一共识投票和第二专链网络的第二共识投票,其中第一共识投票表征第一专链网络是否同意执行目标交易,第二共识投票表征第二专链网络是否同意执行目标交易。公链网络可以根据第一共识投票和第二共识投票,判断第一专链网络和第二专链网络是否均同意执行该目标交易,若是,则公链网络生成执行提示,也即确定允许执行该目标交易。如此,公链网络作为见证者,在第一专链网络和第二专链网络均同意执行该目标交易的情况下,确定允许执行该目标交易,从而可以避免在双方意见不合时错误地执行目标交易,进而可避免交易错误。

  此外,第一专链网络获得执行提示后,也即第一专链网络得知公链网络允许执行目标交易后,第一专链网络采用预执行的策略执行目标交易。同样地,第二专链网络获得执行提示后,也即第二专链网络得知公链网络允许执行目标交易后,第二专链网络采用预执行的策略执行目标交易。第一专链网络和第二专链网络将各自的预执行结果发送给公链网络,公链网络在判断第一专链网络和第二专链网络均预执行成功的情况下,执行目标交易,并将执行结果发送给第一专链网络和第二专链网络。各专链网络在确定公链网络执行成功的情况下,才将各自的预执行结果上链保存。

  如此,由于公链网络在确定第一专链网络和第二专链网络均预执行成功的情况下,才执行目标交易,并且第一专链网络和第二专链网络在公链网络执行目标交易成功的情况下,才将各自的预执行结果上链保存。因此可以避免在一个专链网络执行交易失败、另一个专链执行交易成功的情况下,交易执行结果被上链保存。如此,可以进一步避免交易错误,提高了跨链交易的可靠性。

  附图说明

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

  图1是本发明一实施例提出的区块链网络系统的示意图;

  图2是本发明一实施例提出的预提交目标交易阶段的示意图;

  图3是本发明一实施例提出的预执行目标交易阶段的示意图;

  图4是本发明一实施例提出的交易结果提交上链阶段的示意图;

  图5是本发明一实施例提出的超时解锁示意图;

  图6是本发明一实施例提出的跨链交易方法的流程图;

  图7是本发明一实施例提出的跨链交易方法的流程图;

  图8是本发明一实施例提出的跨链交易方法的流程图;

  图9是本发明一实施例提出的跨链交易方法的流程图;

  图10是本发明一实施例提出的电子设备的示意图。

  具体实施方式

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

  区块链技术构建在传输网络(例如点对点网络)之上,传输网络中的分布式节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据,实现了防止数据篡改的机制。然而由于区块链技术的天然特性,导致不同区块链网络之间难以互通,多个区块链网络形成了多个信息孤岛,从而限制了区块链技术的进一步发展。

  相关技术中,提出了跨链通信方法,基于该跨链通信方法,可实现跨链交易。然而现有的跨链交易方法还不成熟,容易产生交易错误,交易过程的可靠性偏低。

  为此,本发明通过以下实施例,提出跨链交易方法、电子设备及可读存储介质,通过公链网络对第一专链网络和第二专链网络之间的跨链交易进行控制和见证,以提高跨链交易的可靠性。

  参考图1,图1是本发明一实施例提出的区块链网络系统的示意图。如图1所示,该区块链网络系统包括:公链网络和多个专链网络,每个专链网络与公链网络通信连接。在两个专链网络之间,可以进行跨链交易。为便于理解,将进行跨链交易的两个专属网络分别称为第一专链网络和第二专链网络,将跨链交易称为目标交易。

  本发明中,所谓“专链”,并不限定专链网络必须专属于某个人或专属于某个组织。而是说,与公链网络连接的区块链网络,可以被称为专链网络。

  如图1所示,公链网络中包括多个分布式节点(以下简称为节点),每个专链网络中同样包括多个分布式节点(以下简称为节点)。在本发明的一些具体实施方式中,多个专链网络各自配置有对应的网关,每个专链网络通过其网关与公链网络通信连接,两个专链网络也可以通过各自的网关实现相互通信。具体地,一个专链网络的网关通过与该专链网络内的一个或多个节点通信,从而实现与该专链网络的通信。一个专链网络对应的网关通过与公链网络中的一个或多个节点通信,从而实现与公共区块链网络的通信。两个专链网络各自的网关之间通信,从而实现两个专链网络之间的通信。

  本发明中,第一专链网络和第二专链网络之间的跨链交易(以下将跨链交易称为目标交易),主要可以分为三个阶段,分别为:预提交目标交易、预执行目标交易、以及交易结果提交上链。

  其中,预提交目标交易阶段主要实现以下过程:第一专链网络针对目标交易进行共识投票,第一专链网络的共识投票结果(以下简称为第一共识投票)用于反映第一专链网络是否同意执行目标交易;第一专链网络将目标交易提交给第二专链网络,使第二专链网络针对目标交易进行共识投票,第二专链网络的共识投票结果(以下简称为第二共识投票)用于反映第二专链网络是否同意执行目标交易。

  预执行目标交易阶段主要实现以下过程:公链网络获得第一共识投票和第二共识投票,并根据第一共识投票和第二共识投票,判断第一专链网络和第二专链网络是否均同意执行目标交易;若是,则确定允许执行目标交易;若否,则确定不执行目标交易。此外,在允许执行目标交易的情况下,第一专链网络和第二专链网络预执行目标交易。

  交易结果提交上链阶段主要实现以下过程:公链网络获得第一专链网络的预执行结果和第二专链网络的预执行结果,并根据第一预执行结果和第二预执行结果,判断第一专链网络和第二专链网络是否均成功预执行目标交易;若是,则执行目标交易,获得执行结果,以及将执行结果保存至公链网络的区块链;若否,则不执行目标交易,或者还可以直接将交易结果标识为失败,并记录失败原因。此外,如果公链网络执行了目标交易并获得了执行结果,还需要将执行结果反馈给第一专链网络,使得第一专链网络根据公链网络的执行结果,对其预执行结果进行提交以保存至其区块链,或者对目标交易进行回滚。同样地,公链网络还需要将执行结果反馈给第二专链网络,使得第二专链网络根据公链网络的执行结果,对其预执行结果进行提交以保存至其区块链,或者对目标交易进行回滚。

  参考图2,图2是本发明一实施例提出的预提交目标交易阶段的示意图。如图2所示,上层应用(例如去中心化应用DAPP或浏览器)向第一专链网络发送目标交易TX。第一专链网络响应于目标交易TX,一方面,第一专链网络根据预设的跨链交易策略,采用部分或全部节点对目标交易TX进行投票,每个节点的投票用于表征该节点所在的维护主体是否同意执行该目标交易TX。另一方面,目标交易TX被分发到第一专链网络中的各节点,各节点存储该目标交易TX,以便在下述预执行目标交易阶段执行该目标交易TX。其中,节点所在的维护主体是用于运维该节点的组织和机构,第一专链网络的多个节点可以由多个维护主体分别运维。为便于理解,假设第一专链网络包括21个节点,这20个节点分别由三个维护主体所运维,其中第一个维护主体运维8个节点,第二个维护主体运维9个节点,第三个维护主体运维4个节点。

  此外,第一专链网络还将目标交易TX发送给第二专链网络,第二专链网络响应于目标交易TX,一方面,第二专链网络根据预设的跨链交易策略,采用部分或全部节点对目标交易TX进行投票,每个节点的投票用于表征该节点所在的维护主体是否同意执行该目标交易TX。另一方面,目标交易TX被分发到第二专链网络中的各节点,各节点存储该目标交易TX,以便在下述预执行目标交易阶段执行该目标交易TX。

  具体实现时,如图2所示,上层应用(例如去中心化应用DAPP或浏览器)向第一专链网络中的一个节点(例如节点node1-1)发送了目标交易TX。节点node1-1响应于目标交易TX,一方面,根据第一专链网络中预设的跨链交易策略,请求第一专链网络中的相应节点(即跨链交易策略中限定的节点)针对目标交易进行投票,每个节点的投票用于表征该节点所在的维护主体是否同意执行该目标交易TX。另一方面,节点node1-1收集各节点的投票,得到第一专链网络的第一共识投票,节点node1-1将目标交易TX和第一共识投票发送给节点node1-2,节点node1-2是第一专链网络中的主节点(主节点也称为master节点,是从区块链网络的各节点中选举出的一个节点)。

  节点node1-2接收到目标交易TX后,将目标交易TX分发给第一专链网络中的其他节点。此外,节点node1-2通过网关1和网关2,将目标交易TX提交给第二专链网络中的一个节点(例如节点node2-4)。

  节点node2-4响应于目标交易TX,一方面,根据第二专链网络中预设的第二投票规则,请求第二专链网络中的相应节点(即第二投票规则中限定的节点)针对目标交易进行投票,每个节点的投票用于表征该节点是否同意执行该目标交易TX。另一方面,节点node2-4收集各节点的投票,得到第二专链网络的第二共识投票,节点node2-4将目标交易TX和第二共识投票发送给节点node2-2,节点node2-2是第二专链网络中的主节点。

  节点node2-2接收到目标交易TX和第二共识投票后,将目标交易TX分发给第二专链网络中的其他节点。此外,节点node2-2通过网关2和网关1,将第二共识投票发送给第一专链网络中的主节点(即节点node1-2),已通过节点node1-2将第二专链网络的第二共识投票发送给公链网络。

  需要说明的是,图2所示的具体实现方式仅作为本发明多种可选实施方式中的一种示例,本发明的实现方式并不限定为图2所示的具体实现方式。例如,专链网络中的节点在接收到上层应用或网关发来的目标交易TX后,可以不通过主节点将目标交易TX分发给其他节点,而是直接将目标交易TX分发给其他节点。或者例如,第二专链网络的主节点不必将第二共识投票发送给第一专链网络,而是直接将第二共识投票发送给公链网络。

  参考图3,图3是本发明一实施例提出的预执行目标交易阶段的示意图。如图3所示,公链网络获得第一共识投票和第二共识投票,并根据第一共识投票和第二共识投票,以及根据公链网络中预设的判断条件,判断第一专链网络和第二专链网络是否均同意执行目标交易TX。若是,则公链网络确定允许执行目标交易TX。此外,第一专链网络得知允许执行目标交易TX之后,预执行目标交易TX,得到第一预执行结果。第二专链网络得到允许执行目标交易TX之后,预执行目标交易TX,得到第二预执行结果。

  具体实现时,如图3所示,第一专链网络中的主节点(即节点node1-2)接收到第二专链网络返回的第二共识投票后,将第一共识投票、第二共识投票以及目标交易TX封装成交易tx1,并通过网关1将交易tx1提交给公链网络中的一个节点(例如节点nodeP-6)。

  节点nodeP-6响应于交易tx1,将交易tx1分发给公链网络中的各个节点。每个节点在接收到交易tx1之后,需要从交易tx1中提取出第一共识投票和第二共识投票,并根据预设的第一判断条件,判断第一专链网络和第二专链网络是否均同意执行目标交易TX。例如,预设的第一判断条件可能是:仅当第一专链网络的所有节点均投出赞成票时,才确定第一专链网络同意执行目标交易TX;仅当第二专链网络的所有节点均投出赞成票时,才确定第二专链网络同意执行目标交易TX。

  或者例如,如前所述,在一些具体实施方式中,专链网络的多个节点可以由多个维护主体运维,每个维护主体用于运维一个或多个节点。预设的第一判断条件可能是:仅当第一专链网络中参与投票的全部维护主体均同意执行目标交易TX时,才确定第一专链网络同意执行目标交易TX;仅当第二专链网络中参与投票的全部维护主体均同意执行目标交易TX时,才确定第二专链网络同意执行目标交易TX。其中,只要每个维护主体中有一个节点投出赞成票,则表示该维护主体同意执行目标交易TX。

  如果一个节点判断出第一专链网络和第二专链网络均同意执行目标交易TX,则该节点确定允许执行目标交易TX。否则,该节点确定不允许执行目标交易TX,或者也可以直接将执行结果标记为失败。

  为了使得第一专链网络和第二专链网络能准确且安全地得知:公链网络已经允许执行目标交易TX。公链网络中的每个节点在确定允许执行目标交易TX之后,可以生成执行提示,该执行提示用于表征允许执行目标交易TX。如此,第一专链网络和第二专链网络只要获得执行提示,就能得知目标交易TX允许被执行,进而开始执行目标交易TX。

  需要说明的是,执行提示的形式可以有多种选择,本发明对执行提示的具体形式不做限定。例如,公链网络中的每个节点在确定允许执行目标交易TX之后,可以将目标交易TX存入新产生的区块,以通过公链网络的区块链存储目标交易TX。如此,可以将新区块中的目标交易TX,视为执行提示。此外各个专链网络还持续地同步公链网络所产生的新区块,当第一专链网络同步到公链网络的新区块,且检测到该新区块中记录有目标交易TX时,则相当于接收到公链网络的执行提示,从而得知目标交易TX允许被执行。同样地,当第二专链网络同步到公链网络的新区块,且检测到该新区块中记录有目标交易TX时,则相当于接收到公链网络的执行提示,从而得知目标交易TX允许被执行。

  当第一专链网络得知目标交易TX允许被执行时,第一专链网络中的各个节点开始预执行目标交易TX,并获得第一预执行结果。同样地,第二专链网络得知目标交易TX允许被执行时,第二专链网络中的各个节点开始预执行目标交易TX,并获得第二预执行结果。其中,所谓预执行,是指:执行目标交易TX,但暂时不将执行结果上链保存。相应地,所谓预执行结果,是指:暂时未上链保存的执行结果。

  此外,第一专链网络中的主节点(即节点node1-2)收集第一专链网络中各节点的第一预执行结果。第二专链网络中的主节点(即节点node2-2)收集第二专链网络中各节点的第二预执行结果,节点node2-2通过网关2和网关1,将收集的第二预执行结果发送给第一专链网络中的主节点(即节点node1-2),已通过节点node1-2将第二专链网络的第二预执行结果发送给公链网络。

  需要说明的是,图3所示的具体实现方式仅作为本发明多种可选实施方式中的一种示例,本发明的实现方式并不限定为图3所示的具体实现方式。例如,公链网络为了向专链网络发送执行提示,不必将执行提示存入新区块,使得专链网络通过同步新区块的方式获得执行提示,而可以直接向专链网络发送执行提示。或者例如,第二专链网络的主节点不必将第二预执行结果发送给第一专链网络,而是直接将第二预执行结果发送给公链网络。

  参考图4,图4是本发明一实施例提出的交易结果提交上链阶段的示意图。如图4所示,公链网络获得第一预执行结果和第二预执行结果。公链网络根据第一预执行结果和第二预执行结果,判断第一专链网络和第二专链网络是否均成功预执行目标交易TX。若是,则公链网络执行目标交易TX,获得执行结果。若否,公链网络不执行目标交易TX,并可以直接将执行结果标记为失败。

  此外,公链网络获得执行结果后,将执行结果发送给第一专链网络和第二专链网络。第一专链网络获得执行结果之后,根据执行结果判断公链网络是否成功执行目标交易TX。若是,则将第一预执行结果上链保存,若否,则不将第一预执行结果上链保存,并且还可以对目标交易TX进行回滚,同时还可以标记交易执行失败及失败原因。同样地,第二专链网络获得执行结果之后,根据执行结果判断公链网络是否成功执行目标交易TX,若是,则将第二预执行结果上链保存,若否,则不将第二预执行结果上链保存,并且还可以对目标交易TX进行回滚,同时还可以标记交易执行失败及失败原因。

  具体实现时,如图4所示,节点node1-2收集到第一预执行结果和第二预执行结果之后,将前述第一共识结果、第一预执行结果、前述第二共识结果、第二预执行结果封装成交易tx2,并通过网关1将交易tx2发送给公链网络中的一个节点(例如节点nodeP-6)。需要说明的是,此时的交易tx2的交易ID,与前述交易tx1的交易ID相同,以便于公链网络将交易tx2与交易tx1关联,公链网络可以得知交易tx2与交易tx1是同一系列的交易。

  节点nodeP-6响应于交易tx2,将交易tx2分发给公链网络中的各个节点。每个节点在接收到交易tx2之后,需要从交易tx2中提取出第一预执行结果和第二预执行结果,并根据预设的第二判断条件,判断第一专链网络和第二专链网络是否均成功预执行目标交易TX。

  例如,预设的第二判断条件可能是:仅当第一专链网络的全部节点的第一预执行结果均为执行成功时,才确定第一专链网络成功预执行目标交易TX;仅当第二专链网络的全部节点的第二预执行结果均为执行成功时,才确定第二专链网络成功预执行目标交易TX。

  或者例如,预设的第二判断条件可能是:仅当第一专链网络超过一半的第一预执行结果为执行成功时,才确定第一专链网络成功预执行目标交易TX;仅当第二专链网络超过一半的第二预执行结果为执行成功时,才确定第二专链网络成功预执行目标交易TX。

  此外,为了进一步避免作恶者进行网络攻击,如前所述,交易tx2中还可以封装有前述第一共识结果和第二共识结果。第一共识结果由第一专链网络的相应私钥所签名,第二共识结果由第二专链网络的相应私钥所签名。每个节点在接收到交易tx2之后,还可以从交易tx2中提取出第一共识结果和第二共识结果。然后首先利用第一专链网络和第二专链网络各自的相应公钥,分别对第一共识结果和第二共识结果进行签名验证。在通过签名验证的情况下,则再次基于前述第一判断条件,判断第一专链网络和第二专链网络是否均同意执行目标交易TX。

  如果一个节点经过上述各判断各验证步骤后,得到以下判断和验证结果,则该节点开始执行目标交易TX。否则,该节点不执行目标交易TX。

  判断和验证结果:(1)判断出第一专链网络和第二专链网络均成功预执行目标交易TX;且(2)第一共识结果和第二共识结果均通过签名验证验证;且(3)判断出第一专链网络和第二专链网络均同意执行目标交易TX。

  此外,当公链网络中的各个节点执行目标交易TX以获得执行结果之后,公链网络将执行结果回调给第一专链网络和第二专链网络。第一专链网络的主节点(即节点node1-2)接收到公链网络的执行结果后,将该执行结果通知给第一专链网络的各个节点。每个节点接收到该执行结果后,首先根据该执行结果验证公链网络是否成功执行目标交易TX,如果该节点确定公链网络已经成功执行了目标交易TX,则该节点确定第一预执行结果可以上链保存。如此,当第一专链网络的多个节点均确定第一预执行结果可以上链保存后,多个节点基于预设的共识算法,将第一预执行结果上链保存。

  同样地,第二专链网络的主节点(即节点node2-2)接收到公链网络的执行结果后,将该执行结果分发给第二专链网络的各个节点。每个节点接收到该执行结果后,首先根据该执行结果判断公链网络是否成功执行目标交易TX,如果该节点确定公链网络已经成功执行了目标交易TX,则该节点确定第二预执行结果可以上链保存。如此,当第二专链网络的多个节点均确定第二预执行结果可以上链保存后,多个节点基于预设的共识算法,将第二预执行结果上链保存。

  需要说明的是,图4所示的具体实现方式仅作为本发明多种可选实施方式中的一种示例,本发明的实现方式并不限定为图4所示的具体实现方式。例如,公链网络为了向专链网络反馈执行结果,也可以将执行结果存入新产生的区块,专链网络通过同步公链网络的新区块,以获得公链网络的执行结果。

  应用本发明提供的跨链交易方法,公链网络会获得第一专链网络的第一共识投票和第二专链网络的第二共识投票,其中第一共识投票表征第一专链网络是否同意执行目标交易,第二共识投票表征第二专链网络是否同意执行目标交易。公链网络可以根据第一共识投票和第二共识投票,判断第一专链网络和第二专链网络是否均同意执行该目标交易,若是,则公链确定允许执行该目标交易。如此,公链网络作为见证者,在第一专链网络和第二专链网络均同意执行该目标交易的情况下,确定允许执行该目标交易,从而可以避免在双方意见不合时错误地执行目标交易,进而可避免交易错误。

  此外,第一专链网络获得执行提示后,也即第一专链网络得知公链网络允许执行目标交易后,第一专链网络采用预执行的策略执行目标交易。同样地,第二专链网络获得执行提示后,也即第二专链网络得知公链网络允许执行目标交易后,第二专链网络采用预执行的策略执行目标交易。第一专链网络和第二专链网络将各自的预执行结果发送给公链网络,公链网络在判断第一专链网络和第二专链网络均预执行成功的情况下,执行目标交易,并将执行结果发送给第一专链网络和第二专链网络。各专链网络在确定公链网络执行成功的情况下,才将各自的预执行结果上链保存。

  如此,由于公链网络在确定第一专链网络和第二专链网络均预执行成功的情况下,才执行目标交易,并且第一专链网络和第二专链网络在公链网络执行目标交易成功的情况下,才将各自的预执行结果上链保存。因此可以避免在一个专链网络执行交易失败、另一个专链执行交易成功的情况下,交易执行结果被上链保存。如此,可以进一步避免交易错误,提高了跨链交易的可靠性。

  此外,考虑到:第一专链网络和第二专链网络均需要同步公链网络的新区块,由于各种原因(例如网络时延和网络的不稳定性),在同一时刻,第一专链网络同步的区块和第二专链网络同步的区块,可能是不同的区块。例如在某一时刻,第一专链网络同步的区块是:区块高度为1851的区块(以下简称为区块1851),也即公链网络的第1851个区块。而第二专链网络同步的区块是:区块高度为1853的区块(以下简称为区块1853),也即公链网络的第1853个区块。然而通常情况下,不同区块各自记录的数据状态互不相同,例如在区块1851中,某一账户数据被冻结,而在区块1853中,该账户数据已经被解冻。

  由于不同区块的数据状态不同,因此如果第一专链网络和第二专链网络分别基于不同的区块预执行目标交易,则可能导致如下情况:一个专链网络成功预执行目标交易,另一个专链网络未能成功预执行目标交易。

  或者,考虑到:本发明在应用期间,可能存在短时间内(例如2秒)针对同一账本的多笔交易。为便于理解,假设第一专链网络中的某账本中记录的余额为1000。在第一时刻,第一专链网络接收到针对该账本的跨链交易1,跨链交易1用于从该账本中转出800。假设第一专链网络在执行跨链交易1期间,又接收到内部交易2,内部交易2用于从该账本中转出500。如果第一专链网络在未执行完跨链交易1的时候,率先执行完内部交易2,则此时该账本记录的余额变更为500。如此,由于该账本记录的余额为500,小于跨链交易1所需的800,则第一专链网络将不能针对该账本成功执行跨链交易1。然后,在某些情况下,参与跨链交易1的第二专链网络可能已经成功预执行了跨链交易1。如此,第二专链网络后续需要进行交易回滚。可见,在这种情况下,不仅导致跨链交易失败,还导致第二专链网络需要回滚交易,徒增第二专链网络的数据处理压力。

  为了避免上述情况发生,提高目标交易的执行成功率,本发明考虑在合适的时机,对相关账本进行锁定。

  具体地,如图3所示,当第一专链网络得知目标交易TX允许被执行时,也即当第一专链网络从公链网络的新区块中检测到执行提示时,第一专链网络将目标交易TX对应的第一目标账本锁定,所述第一目标账本是用于参与该目标交易TX的账本,第一目标账本存在于第一专链网络中。同样地,当第二专链网络得知目标交易TX允许被执行时,也即当第二专链网络从公链网络的新区块中检测到执行提示时,第二专链网络将目标交易TX对应的第二目标账本锁定,所述第二目标账本是用于参与该目标交易TX的账本,第二目标账本存在于第二专链网络中。

  第一目标账本被锁定后,能达到以下效果:在针对第一目标账本执行目标交易TX之前,第一目标账本不能参与执行其他交易。同样地,第二目标账本被锁定后,能达到以下效果:在针对第二目标账本执行目标交易TX之前,第二目标账本不能参与执行其他交易。

  需要补充的是,为了达到上述效果,第一专链网络除了可以单独锁定第一目标账本,第一专链网络也可以锁定整个第一专链网络,也即锁定第一专链网络中的所有账本(其中包括第一目标账本)。

  为便于理解,假设公链网络确定目标交易TX允许被执行,并将目标交易TX存入新产生的区块,该区块的区块高度为1851(以下将该区块简称为区块1851)。则当第一专链网络同步到区块1851之后,检测到其中的目标交易TX(相当于执行提示),则第一专链网络将目标交易TX对应的第一目标账本锁定。同样地,当第二专链网络同步到区块1851之后,检测到其中的目标交易TX(相当于执行提示),则第二专链网络将其目标交易TX对应的第二目标账本锁定。如此,第一专链网络和第二专链网络在预执行目标交易TX时,基于相同的区块(即区块1851)预执行目标交易TX,因此有利于提高目标交易的执行成功率。

  此外,如图4所示,当第一专链网络通过其区块链记录第一预执行结果之后(也即第一预执行结果上链保存后),第一专链网络对第一目标账本进行解锁。如此,第一专链网络可以针对第一目标账本,继续处理其他交易。同样地,如图4所示,当第二专链网络通过其区块链记录第二预执行结果之后(也即第二预执行结果上链保存后),第二专链网络对第二目标账本进行解锁。如此,第二专链网络可以针对第二目标账本,继续处理其他交易。

  此外,又考虑到某些情况下,公链网络可能长时间未能向专链网络返回执行结果,导致专链网络既不能将预执行结果上链保存,也不能解锁账本。为此,本发明考虑通过解锁交易,以寻求主动解锁。

  参考图5,图5是本发明一实施例提出的超时解锁示意图。如图5所示,在第一目标账本被锁定后,第一专链网络中的主节点开始进行超时检测,在检测到锁定超时后,生成解锁交易tx,并通过网关1将解锁交易tx提交给公链网络的一个节点(例如节点nodeP-6)。

  节点nodeP-6响应于解锁交易tx,将解锁交易tx分发给公链网络中的各个节点。每个节点执行解锁交易tx,并对执行结果进行共识确认。最后公链网络将解锁交易tx的执行结果回调给第一专链网络和第二专链网络。第一专链网络的主节点(即节点node1-2)接收到解锁交易tx的执行结果后,通知第一专链网络的各节点解锁,以使得第一目标账本解锁。同样地,第二专链网络的主节点(即节点node2-2)接收到解锁交易tx的执行结果后,通知第二专链网络的各节点解锁,以使得第二目标账本解锁。

  此外,再考虑到在某些情况下,公链网络接收到解锁交易tx之后,不仅执行了解锁交易tx,获得了解锁交易tx的执行结果A,也可能还执行了原本的目标交易TX,并获得了目标交易TX的执行结果B。公链网络有可能按照以下顺序,向第一专链网络返回交易结果:首先返回解锁交易tx的执行结果A、再返回目标交易TX的执行结果B。而公链网络有可能按照以下顺序,向第二专链网络返回交易结果:首先返回目标交易TX的执行结果B、再返回解锁交易tx的执行结果A。如此,当第一专链网络首先接收到解锁交易tx的执行结果A时,会执行解锁操作,并且第一专链网络会对目标交易TX进行回滚,以及避免将目标交易TX的第一预执行结果上链保存。而当第二专链网络首先接收到目标交易TX的执行结果B时,会将目标交易TX的第二预执行结果上链保存,并执行解锁操作。可见,第一专链网络未上链保存预执行结果,而第二专链网络上链保存了预执行结果,相当于第一专链网络最终未执行目标交易TX,而第二专链网络最终执行了目标交易TX。如此,导致跨链交易错误。

  为了进一步避免上述情况发生,本发明考虑对交易进行排序。具体地,公链网络在接收到多个交易时(例如多个交易中包括:目标交易TX和解锁交易tx),会对多个交易进行排序,并按照交易的排序,依次执行交易,并依次返回交易结果。如此,可以确保各个专链网络依次接收的多个交易结果,具有相同的顺序,从而避免上述情况发生,从而进一步降低跨链交易发生错误的可能性,提高跨链交易可靠性。

  以上,本发明通过图2至图5,详细提出了跨链交易方法的较佳实施例。以下,本发明再通过多个实施例,提出多种基于同一发明构思的跨链交易方法,这些跨链交易方法包括上述较佳实施例中的部分技术特征。

  参考图6,图6是本发明一实施例提出的跨链交易方法的流程图,该跨链交易方法应用于区块链网络系统(如图1所示),该区块链网络系统包括公链网络、第一专链网络以及第二专链网络。如图6所示,该跨链交易方法包括以下步骤:

  步骤S61:所述公链网络获得所述第一专链网络对目标交易的第一共识投票和所述第二专链网络对所述目标交易的第二共识投票,并根据所述第一共识投票和所述第二共识投票,判断所述第一专链网络和所述第二专链网络是否均同意执行所述目标交易,若是,则生成执行提示,所述执行提示用于表征允许执行所述目标交易。

  如前所述,第一共识投票用于表征:第一专链网络是否同意执行目标交易。第二共识投票用于表征:第二专链网络是否同意执行目标交易。

  如前所述,在本发明的一些具体实施方式中,公链网络获得第一共识投票和第二共识投票后,根据公链网络中预设的判断条件,判断第一专链网络和第二专链网络是否均同意执行目标交易。若是,则公链网络确定允许执行目标交易。若否,则公链网络确定不允许执行目标交易。如此,公链网络作为见证者,在第一专链网络和第二专链网络均同意执行目标交易的情况下,确定允许执行目标交易,从而可以避免在双方意见不合时错误地执行目标交易,进而可避免交易错误。

  如前所述,在本发明的一些具体实施方式中,所述执行提示被记录在公链网络的新区块中。具体地,公链网络在确定目标交易允许被执行的情况下,可以将目标交易记入新产生的区块。如此,新区块中记录的目标交易相当于执行提示。专链网络同步到公链网络的新区块,且检测到该新区块中记录有目标交易时,则相当于专链网络接收到公链网络的执行提示。

  步骤S62:所述第一专链网络获得所述执行提示,并预执行所述目标交易,得到第一预执行结果,所述第二专链网络获得所述执行提示,并预执行所述目标交易,得到第二预执行结果。

  如前所述,所谓预执行,是指:执行目标交易,但暂时不将执行结果上链保存。相应地,所谓预执行结果,是指:暂时未上链保存的执行结果。

  如前所述,在本发明的一些具体实施方式中,第一专链网络会按照区块高度递增的顺序,同步公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有所述执行提示,以获取所述执行提示。同样地,第二专链网络也会按照区块高度递增的顺序,同步公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有所述执行提示,以获取所述执行提示。

  具体地,当第一专链网络同步到公链网络的新区块,且检测到该新区块中记录有目标交易时,则相当于接收到公链网络的执行提示,从而得知目标交易允许被执行。同样地,当第二专链网络同步到公链网络的新区块,且检测到该新区块中记录有目标交易时,则相当于接收到公链网络的执行提示,从而得知目标交易允许被执行。

  步骤S63:所述公链网络获得所述第一预执行结果和所述第二预执行结果,并根据所述第一预执行结果和所述第二预执行结果,判断所述第一专链网络和所述第二专链网络是否均成功预执行所述目标交易,若是,则执行所述目标交易,获得执行结果。

  如前所述,在本发明的一些具体实施方式中,公链网络获得第一预执行结果和所述第二预执行结果后,根据公链网络中预设的判断条件,判断第一专链网络和第二专链网络是否均成功预执行目标交易。若是,则公链网络执行目标交易,获得执行结果。若否,则公链网络不执行目标交易。

  步骤S64:所述第一专链网络获得所述执行结果,并在所述执行结果表征所述公链网络成功执行所述目标交易的情况下,通过所述第一专链网络的区块链记录所述第一预执行结果,所述第二专链网络获得所述执行结果,并在所述执行结果表征所述公链网络成功执行所述目标交易的情况下,通过所述第二专链网络的区块链记录所述第二预执行结果。

  如前所述,在本发明的一些具体实施方式中,如果公链网络执行目标交易并获得执行结果,则公链网络将执行结果发送给第一专链网络和第二专链网络。第一专链网络获得执行结果之后,根据执行结果判断公链网络是否成功执行目标交易。若是,则将第一预执行结果上链保存,若否,则不将第一预执行结果上链保存。同样地,第二专链网络获得执行结果之后,根据执行结果判断公链网络是否成功执行目标交易,若是,则将第二预执行结果上链保存,若否,则不将第二预执行结果上链保存。

  为避免重复,针对上述步骤S61至步骤S64的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  此外,基于与上述较佳实施例相同的考虑,当第一专链网络从一个新区块中获得执行提示后,第一专链网络将目标交易对应的第一目标账本锁定。同样地,当第二专链网络从一个新区块中获得执行提示后,第二专链网络将其目标交易对应的第二目标账本锁定锁定。如此,可以有效提高跨链交易的成功率。并且,在第一专链网络通过其区块链记录第一预执行结果之后,第一专链网络对第一目标账本进行解锁。同样地,在第二专链网络通过其区块链记录第二预执行结果之后,第二专链网络对第二目标账本进行解锁。

  为避免重复,针对上述锁定步骤和解锁步骤的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  参考图7,图7是本发明一实施例提出的跨链交易方法的流程图,该跨链交易方法应用于第一专链网络中的节点。该第一专链网络属于区块链网络系统(如图1所示),该区块链网络系统除了包括第一专链网络,还包括公链网络和第二专链网络。如图7所示,该跨链交易方法包括以下步骤:

  步骤S71:将针对目标交易的第一共识投票发送给所述公链网络,所述第一共识投票表征所述第一专链网络是否同意执行所述目标交易。

  步骤S72:获得所述公链网络的执行提示,所述执行提示是在所述第一专链网络和所述第二专链网络均同意执行所述目标交易的情况下,由所述公链网络生成的。

  如前所述,在本发明的一些具体实施方式中,执行提示被记录在公链网络的新区块中。第一专链网络为了获得公链网络的执行提示,第一专链网络按照区块高度递增的顺序,同步公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有执行提示,以从新区块中获取执行提示。

  步骤S73:响应于所述执行提示,预执行所述目标交易,得到第一预执行结果,并将所述第一预执行结果发送给所述公链网络。

  如前所述,所谓预执行,是指:执行目标交易,但暂时不将执行结果上链保存。相应地,所谓预执行结果,是指:暂时未上链保存的执行结果。

  步骤S74:获得所述公链网络的执行结果,所述执行结果是在所述第一专链网络和所述第二专链网络均成功预执行所述目标交易的情况下,所述公链网络执行所述目标交易后得到的结果。

  步骤S75:响应于所述执行结果,将所述第一预执行结果记入区块,以通过区块链记录所述第一预执行结果。

  为避免重复,针对步骤S71至步骤S75的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  此外,基于与上述较佳实施例相同的考虑,当第一专链网络从一个新区块中获得执行提示后,第一专链网络将目标交易对应的第一目标账本锁定;在第一专链网络将其第一预执行结果记入区块之后,对第一目标账本进行解锁。如此,可以有效提高跨链交易的成功率。此外,第一专链网络还会检测第一目标账本的锁定是否超时,并在锁定超时的情况下,向公链网络发送解锁交易;第一专链网络还会接收公链网络针对该解锁交易的执行结果,并响应于该执行结果,对第一目标账本进行解锁。

  为避免重复,针对上述锁定步骤和解锁步骤的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  如前所述,在本发明的一些具体实施方式中,第一专链网络在将第一共识投票发送给公链网络之前,还可以将目标交易发送给第二专链网络;第一专链网络获得所述第一专链网络对所述目标交易的所述第一共识投票,并接收所述第二专链网络发送的所述第二专链网络对所述目标交易的第二共识投票,所述第二共识投票表征所述第二专链网络是否同意执行所述目标交易。

  其中,第一专链网络获得所述第一专链网络对所述目标交易的所述第一共识投票,具体是指,第一专链网络中用于收集投票的节点(例如主节点),获得第一专链网络的各节点针对目标交易的投票。

  第一专链网络在向公链网络发送第一共识投票时,具体地,第一专链网络将收集的第一共识投票、第二共识投票以及目标交易一并发送给公链网络。

  该具体实施方式中,通过第一专链网络收集第二专链网络的第二共识投票,并将第一共识投票和第二共识投票作为一笔交易,发送给公链网络。如此,公链网络可以基于该笔交易中的第一共识投票和第二共识投票,判断第一专链网络和第二专链网络是否均同意执行目标交易。可见,公链网络的操作较简单,节点的数据处理压力较小。相反,如果第一专链网络和第二专链网络各自通过不同的交易(共两笔交易),分别将各自的共识投票发送给公链网络,则公链网络首先需要匹配这两笔交易,然后再从两笔交易中提取出共识投票,最后执行相应的判断。如此,公链网络的操作较复杂,节点的数据处理压力较大。

  如前所述,在本发明的一些具体实施方式中,第一专链网络在将所述第一预执行结果发送给所述公链网络之前,还可以接收所述第二专链网络发送的所述第二专链网络预执行所述目标交易后得到的第二预执行结果。

  第一专链网络在将第一预执行结果发送给公链网络时,具体地,第一专链网络将第一预执行结果和第二预执行结果一并发送给公链网络。

  该具体实施方式中,通过第一专链网络收集第二专链网络的第二预执行结果,并将第一预执行结果和第二预执行结果作为一笔交易,发送给公链网络。如此,公链网络可以基于该笔交易中的第一预执行结果和第二预执行结果,判断第一专链网络和第二专链网络是否均成功预执行目标交易。可见,公链网络的操作较简单,节点的数据处理压力较小。相反,如果第一专链网络和第二专链网络各自通过不同的交易(共两笔交易),分别将各自的预执行结果发送给公链网络,则公链网络首先需要匹配这两笔交易,然后再从两笔交易中提取出预执行结果,最后执行相应的判断。如此,公链网络的操作较复杂,节点的数据处理压力较大。

  参考图8,图8是本发明一实施例提出的跨链交易方法的流程图,该跨链交易方法应用于第二专链网络中的节点。该第二专链网络属于区块链网络系统(如图1所示),该区块链网络系统除了包括第二专链网络,还包括公链网络和第一专链网络。如图8所示,该跨链交易方法包括以下步骤:

  步骤S81:将针对目标交易的第二共识投票发送给所述第一专链网络,所述第二共识投票表征所述第二专链网络是否同意执行所述目标交易。

  步骤S82:获得所述公链网络的执行提示,所述执行提示是在所述第一专链网络和所述第二专链网络均同意执行所述目标交易的情况下,由所述公链网络生成的。

  如前所述,在本发明的一些具体实施方式中,执行提示被记录在公链网络的新区块中。第二专链网络为了获得公链网络的执行提示,第二专链网络按照区块高度递增的顺序,同步公链网络产生的新区块,并针对同步到的每个新区块,检测该新区块中是否记录有执行提示,以从新区块中获取执行提示。

  步骤S83:响应于所述执行提示,预执行所述目标交易,得到第二预执行结果,并将所述第二预执行结果发送给所述第一专链网络。

  如前所述,所谓预执行,是指:执行目标交易,但暂时不将执行结果上链保存。相应地,所谓预执行结果,是指:暂时未上链保存的执行结果。

  步骤S84:获得所述公链网络的执行结果,所述执行结果是在所述第一专链网络和所述第二专链网络均成功预执行所述目标交易的情况下,所述公链网络执行所述目标交易后得到的结果。

  步骤S85:响应于所述执行结果,将所述第二预执行结果记入区块,以通过区块链记录所述第二预执行结果。

  为避免重复,针对步骤S81至步骤S85的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  此外,基于与上述较佳实施例相同的考虑,当第二专链网络从一个新区块中获得执行提示后,第二专链网络将目标交易对应的第二目标账本锁定;在第二专链网络将第二预执行结果记入区块之后,第二专链网络对第二目标账本进行解锁。如此,可以有效提高跨链交易的成功率。此外,第二专链网络还可能获得公链网络针对解锁交易的执行结果,并响应于该执行结果,对第二目标账本进行解锁。其中,所述解锁交易是第一专链网络检测在到目标交易对应的第一目标账本的锁定超时后,向公链网络发出的交易。

  为避免重复,针对上述锁定步骤和解锁步骤的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  参考图9,图9是本发明一实施例提出的跨链交易方法的流程图,该跨链交易方法应用于公链网络中的节点。该公链网络属于区块链网络系统(如图1所示),该区块链网络系统除了包括公链网络,还包括第一专链网络和第二专链网络。如图9所示,该跨链交易方法包括以下步骤:

  步骤S91:获得所述第一专链网络对目标交易的第一共识投票和所述第二专链网络对所述目标交易的第二共识投票。

  如前所述,所述第一共识投票用于表征所述第一专链网络是否同意执行所述目标交易,所述第二共识投票表征所述第二专链网络是否同意执行所述目标交易。

  步骤S92:根据所述第一共识投票和所述第二共识投票,判断所述第一专链网络和所述第二专链网络是否均同意执行所述目标交易,若是,则生成执行提示,所述执行提示用于表征允许执行所述目标交易。

  如前所述,在本发明的一些具体实施方式中,链网络获得第一共识投票和第二共识投票后,根据公链网络中预设的判断条件,判断第一专链网络和第二专链网络是否均同意执行目标交易。若是,则公链网络确定允许执行目标交易,并生成相应的执行提示。若否,则公链网络确定不允许执行目标交易。如此,公链网络作为见证者,在第一专链网络和第二专链网络均同意执行目标交易的情况下,确定允许执行目标交易,从而可以避免在双方意见不合时错误地执行目标交易,进而可避免交易错误。

  步骤S93:获得第一预执行结果和第二预执行结果,所述第一预执行结果是所述第一专链网络在获得所述执行提示后预执行所述目标交易后的执行结果,所述第二预执行结果是所述第二专链网络在获得所述执行提示后预执行所述目标交易后的执行结果。

  如前所述,所谓预执行,是指:执行目标交易,但暂时不将执行结果上链保存。相应地,所谓预执行结果,是指:暂时未上链保存的执行结果。

  步骤S94:根据所述第一预执行结果和所述第二预执行结果,判断所述第一专链网络和所述第二专链网络是否均成功预执行所述目标交易,若是,则执行所述目标交易,获得执行结果,并将所述执行结果发送给所述第一专链网络和所述第二专链网络。

  如前所述,在本发明的一些具体实施方式中,公链网络获得第一预执行结果和所述第二预执行结果后,根据公链网络中预设的判断条件,判断第一专链网络和第二专链网络是否均成功预执行目标交易。若是,则公链网络执行目标交易,获得执行结果。若否,则公链网络不执行目标交易。

  为避免重复,针对步骤S91至步骤S94的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  此外,如前所述,在本发明的一些具体实施方式中,执行提示被记录在所述公链网络的新区块中,公链网络按照区块高度递增的顺序,向所述第一专链网络同步新区块。同样地,公链网络按照区块高度递增的顺序,向所述第二专链网络同步新区块。

  此外,如前所述,在本发明的一些具体实施方式中,公链网络在获得第一共识投票和第二共识投票时,具体地,公链网络接收第一专链网络发送的:所述第一专链网络对目标交易的第一共识投票、所述第二专链网络对所述目标交易的第二共识投票、以及所述目标交易。

  此外,如前所述,在本发明的一些具体实施方式中,公链网络在获得第一预执行结果和第二预执行结果时,具体地,公链网络接收所述第一专链网络发送的所述第一预执行结果和所述第二预执行结果。

  此外,如前所述,在本发明的一些具体实施方式中,公链网络还可以获得所述第一专链网络发送的解锁交易,所述解锁交易是所述第一专链网络检测在到目标交易对应的第一目标账本的锁定超时后,所述第一专链网络生成的交易。

  公链网络对所述解锁交易和所述公链网络接收到的其他交易进行排序,并按照所述排序,依次执行各个交易。

  公链网络在执行所述解锁交易后,获得该解锁交易的执行结果,并将该执行结果发送给所述第一专链网络和所述第二专链网络。

  为避免重复,针对上述解锁交易的具体实现方式,可参见上述较佳实施例,本发明在此不做赘述。

  基于同一发明构思,本发明实施例还提供了一种电子设备,如图10所示,包括处理器101、通信接口102、存储器103和通信总线104,其中,处理器101,通信接口102,存储器103通过通信总线104完成相互间的通信。

  所述存储器103,用于存放计算机程序;

  所述处理器101,用于在执行存储器103上所存放的程序时,实现如下步骤:

  将针对目标交易的第一共识投票发送给所述公链网络,所述第一共识投票表征所述第一专链网络是否同意执行所述目标交易;

  获得所述公链网络的执行提示,所述执行提示是在所述第一专链网络和所述第二专链网络均同意执行所述目标交易的情况下,由所述公链网络生成的;

  响应于所述执行提示,预执行所述目标交易,得到第一预执行结果,并将所述第一预执行结果发送给所述公链网络;

  获得所述公链网络的执行结果,所述执行结果是在所述第一专链网络和所述第二专链网络均成功预执行所述目标交易的情况下,所述公链网络执行所述目标交易后得到的结果;

  响应于所述执行结果,将所述第一预执行结果记入区块,以通过区块链记录所述第一预执行结果。

  或者,实现如下步骤:

  将针对目标交易的第二共识投票发送给所述第一专链网络,所述第二共识投票表征所述第二专链网络是否同意执行所述目标交易;

  获得所述公链网络的执行提示,所述执行提示是在所述第一专链网络和所述第二专链网络均同意执行所述目标交易的情况下,由所述公链网络生成的;

  响应于所述执行提示,预执行所述目标交易,得到第二预执行结果,并将所述第二预执行结果发送给所述第一专链网络;

  获得所述公链网络的执行结果,所述执行结果是在所述第一专链网络和所述第二专链网络均成功预执行所述目标交易的情况下,所述公链网络执行所述目标交易后得到的结果;

  响应于所述执行结果,将所述第二预执行结果记入区块,以通过区块链记录所述第二预执行结果。

  或者,实现如下步骤:

  获得所述第一专链网络对目标交易的第一共识投票和所述第二专链网络对所述目标交易的第二共识投票;

  根据所述第一共识投票和所述第二共识投票,判断所述第一专链网络和所述第二专链网络是否均同意执行所述目标交易,若是,则生成执行提示,所述执行提示用于表征允许执行所述目标交易;

  获得第一预执行结果和第二预执行结果,所述第一预执行结果是所述第一专链网络在获得所述执行提示后预执行所述目标交易后的执行结果,所述第二预执行结果是所述第二专链网络在获得所述执行提示后预执行所述目标交易后的执行结果;

  根据所述第一预执行结果和所述第二预执行结果,判断所述第一专链网络和所述第二专链网络是否均成功预执行所述目标交易,若是,则执行所述目标交易,获得执行结果,并将所述执行结果发送给所述第一专链网络和所述第二专链网络。

  或者,实现本发明以上其他方法实施例所提供的跨链交易方法步骤。

  上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

  通信接口用于上述电子设备与其他设备之间的通信。

  存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

  上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

  在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的跨链交易方法。

  在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的跨链交易方法。

  在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

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

  本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

  以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

《跨链交易方法、电子设备及可读存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)