CN113450225B - 跨链业务管理系统 - Google Patents
跨链业务管理系统 Download PDFInfo
- Publication number
- CN113450225B CN113450225B CN202110788262.9A CN202110788262A CN113450225B CN 113450225 B CN113450225 B CN 113450225B CN 202110788262 A CN202110788262 A CN 202110788262A CN 113450225 B CN113450225 B CN 113450225B
- Authority
- CN
- China
- Prior art keywords
- chain
- transaction
- service
- block
- previewing
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Abstract
本发明实施例提供一种跨链业务管理系统,旨在提高跨链业务的有效性。该跨链业务管理系统包括公链、第一业务链以及第二业务链。其中,第一业务链和第二业务链在处理跨链业务期间,两个业务链各自的排序节点均会打包两个连续的交易包,其中第二个交易包为空交易包;每个业务链的共识节点在处理第二个交易包时,会持续地检测公链是否根据确认交易携带的预演交易的交易标识确定出相应的区块高度;若是,共识节点才处理相应的跨链业务,然后再继续处理后续的交易包。可见,共识节点在处理完跨链业务之前,共识节点不会处理其他交易包,进而也不会处理其他业务,因此可以有效避免其他业务对跨链业务的影响,从而提升跨链业务的有效性。
Description
技术领域
本发明涉及信息技术领域,特别是涉及一种跨链业务管理系统。
背景技术
区块链技术基于区块链网络而实现,区块链网络中的共识节点(简称为节点)通过运行区块链程序,从而实现区块数据的生成、共识以及存储,最终达成了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。
区块链技术可应用至多种业务场景,例如金融领域、电子商务领域、商品或原材料溯源领域、电子存证领域等,由于区块链技术实现了数据防篡改机制,因此利用区块链技术开展业务,能解决业务参与各方之间的信任危机。
相关技术中,每个区块链网络通常对接有多个用户,对接于同一个区块链网络的多个用户之间,可以在该区块链网络内开展业务。然而随着业务需求的不断更新和提高,产生了跨区块链网络开展业务的需求。在开展跨链业务期间,区块链网络可能因处理了其他业务而导致跨链业务失败。为便于理解,例如某一跨链业务为第一业务链的用户a向第二业务链的用户b转账100元,用户a的余额为200元。然而在处理该跨链业务期间,第一业务链处理了另一笔业务,在该笔业务中,用户a向第一业务链的用户c转账150元。如此,在跨链业务还没有实际完成之前,用户a的余额仅剩50元,不足以完成跨链业务,导致跨链业务失败。可见相关技术中,跨链业务的有效性难以保证。
发明内容
本发明实施例的目的在于提供一种跨链业务管理系统,旨在提高跨链业务的有效性,具体技术方案如下:
本发明实施例提供一种跨链业务管理系统,该系统包括公链、第一业务链以及第二业务链;
所述第一业务链的指定节点或所述第二业务链的指定节点向所述公链提交预演交易,所述预演交易携带所述第一业务链和所述第二业务链各自对跨链业务的背书结果;
所述公链的共识节点根据所述预演交易携带的背书结果,确定所述预演交易是否执行成功,以生成相应的执行结果,并生成第一公链区块,以及建立所述预演交易的交易标识和所述第一公链区块的区块高度之间的关联关系;
在所述公链对所述预演交易执行成功的情况下,所述第一业务链的排序节点生成第一交易包和第一空交易包,并将所述第一交易包和所述第一空交易包发送给所述第一业务链的每个共识节点,所述第一交易包携带所述预演交易,所述第一空交易包携带所述第一公链区块的区块高度;所述第一业务链的共识节点针对所述第一交易包生成相应的区块,并针对所述预演交易对应的跨链业务进行预演操作,得到第一预演结果;
在所述公链对所述预演交易执行成功的情况下,所述第二业务链的排序节点生成第二交易包和第二空交易包,并将所述第二交易包和所述第二空交易包发送给所述第二业务链的每个共识节点,所述第二交易包携带所述预演交易,所述第二空交易包携带所述第一公链区块的区块高度;所述第二业务链的共识节点针对所述第二交易包生成相应的区块,并针对所述预演交易对应的跨链业务进行预演操作,得到第二预演结果;
所述第一业务链的指定节点或所述第二业务链的指定节点生成确认交易,并将所述确认交易提交给所述公链执行,所述确认交易携带所述预演交易的交易标识,所述确认交易还携带多个第一预演结果和多个第二预演结果;
所述公链响应于所述确认交易,根据所述确认交易携带的多个第一预演结果和多个第二预演结果,确定所述确认交易是否执行成功,以生成相应的执行结果;并根据所述确认交易携带的所述预演交易的交易标识,查询预先建立的关联关系,以确定该交易标识对应的区块高度;以及生成相应的第二公链区块,所述第二公链区块记录有确定出的区块高度;
在公链根据确认交易携带的预演交易的交易标识确定出区块高度的情况下,如果该区块高度等于所述第一空交易包携带的区块高度,则所述第一业务链的共识节点生成所述第一空交易包对应的区块,并继续处理排序节点发送的其他交易包;
在公链根据确认交易携带的预演交易的交易标识确定出区块高度的情况下,如果该区块高度等于所述第二空交易包携带的区块高度,则所述第二业务链的共识节点生成所述第二空交易包对应的区块,并继续处理排序节点发送的其他交易包。
本发明中,第一业务链和第二业务链均会对跨链业务进行背书,公链会根据第一业务链和第二业务链的背书结果确定预演交易是否执行成功,并且只有在预演交易执行成功的情况下,第一业务链和第二业务链才会继续处理跨链业务。简言之,本发明会同时根据第一业务链和第二业务链各自的背书情况确定是否继续处理跨链业务,使得跨链业务更具公平性,也有利于提升跨链业务的有效性。
此外,在公链对预演交易执行成功的情况下,第一业务链的排序节点会打包两个交易包,其中一个交易携带预演交易,另一个交易包不携带交易,但是携带第一公链区块的区块高度。第一业务链的共识节点在处理完第一个交易包后,会生成确认交易,并在处理第二个交易包时,由于第二个交易包是空包,共识节点会进入等待状态,并持续地检测公链是否根据确认交易携带的预演交易的交易标识确定出相应的区块高度。若是,共识节点才处理相应的跨链业务,并生成第二个交易包对应的区块,之后才继续处理后续的交易包。可见,共识节点在处理完跨链业务之前,共识节点不会处理其他交易包,进而也不会处理其他业务,相当于处于锁定状态。因此可以有效避免其他业务对跨链业务的影响,从而提升跨链业务的有效性。对于第二业务链,其运行原理与第一业务链相同,因此也可以有效避免其他业务对跨链业务的影响,从而提升跨链业务的有效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明一实施例提出的跨链业务管理系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链技术基于区块链网络而实现,区块链网络中的共识节点(简称为节点)通过运行区块链程序,从而实现区块数据的生成、共识以及存储,最终达成了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。区块链技术可应用至多种业务场景,例如金融领域、电子商务领域、商品或原材料溯源领域、电子存证领域等,由于区块链技术实现了数据防篡改机制,因此利用区块链技术开展业务,能解决业务参与各方之间的信任危机。
相关技术中,区块链网络包括多个节点(也即共识节点),多个节点中存在一些需要执行特定任务的节点,例如排序节点。具体地,当区块链网络的任一节点接收到交易后,可以将交易提交给区块链网络的排序节点。排序节点针对一段时间内接收到的若干交易进行排序和打包,从而生成交易包,该交易包中包含若干交易,并且该交易包具有高度值。排序节点将生成的交易包分发给区块链网络的每个节点,每个节点接收到交易包后,从交易包中读取出交易并执行。当节点执行完交易包的全部交易后,生成该交易包对应的区块,该区块的区块高度等于该交易包的高度值。此外,每个节点还可以针对自身生成的区块计算一个总的hash值,并将该hash值发送给区块链网络的所有其他节点。每个节点接收到其他节点发送的hash值后,将这些hash值与自身计算的hash值进行对比,如果超过预设数量的hash值与自身计算出的hash值相等,则确定自身生成的区块通过共识。
相关技术中,每个区块链网络通常对接有多个用户,对接于同一个区块链网络的多个用户之间,可以在该区块链网络内开展业务。然而随着业务需求的不断更新和提高,产生了跨区块链网络开展业务的需求。在开展跨链业务期间,区块链网络可能因处理了其他业务而导致跨链业务失败。为便于理解,例如某一跨链业务为第一业务链的用户a向第二业务链的用户b转账100元,用户a的余额为200元。然而在处理该跨链业务期间,第一业务链处理了另一笔业务,在该笔业务中,用户a向第一业务链的用户c转账150元。如此,在跨链业务还没有实际完成之前,用户a的余额仅剩50元,不足以完成跨链业务,导致跨链业务失败。可见相关技术中,跨链业务的有效性难以保证。
有鉴于此,本发明通过以下实施例提出跨链业务管理系统,旨在提高跨链业务的有效性。
参考图1,图1是本发明一实施例提出的跨链业务管理系统的示意图。如图1所示,该跨链业务系统包括公链、第一业务链以及第二业务链。其中,公链、第一业务链以及第二业务链均为区块链网络。第一业务链与第二业务链之间可以开展跨链业务,例如第一业务链中注册的账户a向第二业务链中注册的账户b转账。
优选地,第一业务链为联盟链或私有链,第二业务链为联盟链或私有链,公链也为联盟链或私有链。
为便于理解,示例地,银行A1的20台设备、银行A2的25台设备、以及银行A3的15台设备组建成第一业务链,第一业务链总共包括60个共识节点。银行B1的30台设备、银行B2的20台设备、以及银行B3的20台设备组建成第二业务链,第二业务链总共包括70个共识节点。银行A1的另外5台设备、银行A2的另外8台设备、银行A3的另外5台设备、银行B1的另外10台设备、银行B2的另外6台设备、银行B3的另外6台设备、以及监管机构的20台设备组建成公链,公链总共包括60个共识节点。
如图1所示,在第一业务链和第二业务链之间存在跨链业务时,所述第一业务链的指定节点或所述第二业务链的指定节点向所述公链提交预演交易,所述预演交易携带所述第一业务链和所述第二业务链各自对跨链业务的背书结果。为简化附图,图1中示意性地示出了第二业务链向公链提交预演交易的实施方式。
可选地,在一些具体实施方式中,所述第一业务链的背书节点对跨链业务进行背书,得到相应的背书结果;所述第一业务链的指定节点将填充了背书结果的跨链业务发送给第二业务链;第二业务链的背书节点对所述跨链业务进行背书,得到相应的背书结果;所述第二业务链的指定节点根据第一业务链的背书结果和第二业务链的背书结果生成预演交易,从而执行所述步骤:向所述公链提交预演交易。其中,第一业务链的背书节点和指定节点均属于第一业务链的多个共识节点中的节点,所述跨链业务具体是一个跨链交易。
为便于理解,示例地,第一业务链的某个节点接收到跨链交易后,可以将该跨链交易提交给第一业务链中的背书节点。第一业务链的每个背书节点接收到跨链交易后,对跨链交易进行背书,并将背书结果返回给上述节点。节点接收到各个背书节点的背书结果后,将全部背书结果填充至跨链交易中,然后将填充了背书结果的跨链交易提交给第一业务链中的指定节点。第一业务链的指定节点接收到填充了背书结果的跨链交易之后,可以将该跨链交易发送给第一业务链的网关(为便于说明,以下将第一业务链的网关简称为第一网关)。
第一网关接收到跨链交易后,可以根据该跨链交易携带的第二业务链的区块链标识,将该跨链交易路由至第二业务链的网关(为便于说明,以下将第二业务链的网关简称为第二网关)。第二网关接收到该跨链交易之后,将该跨链交易提交给第二业务链的指定节点。
第二业务链的指定节点接收到该跨链交易之后,将该跨链交易提交给第二业务链中的背书节点。第二业务链的每个背书节点接收到跨链交易后,对跨链交易进行背书,并将背书结果返回给第二业务链的指定节点。指定节点接收到各个背书节点的背书结果后,将全部背书结果填充至跨链交易中,然后通过第二网关,将该跨链交易提交给公链中的一个共识节点,该跨链交易携带第一业务链的背书结果和第二业务链的背书结果。
可选地,在另一些具体实施方式中,所述第一业务链的背书节点对跨链业务进行背书,得到相应的背书结果;所述第一业务链将所述跨链业务发送给所述第二业务链,所述第二业务链的背书节点对跨链业务进行背书,得到相应的背书结果;所述第一业务链的指定节点搜集第一业务链的背书结果和第二业务链的背书结果,并根据搜集的背书结果生成预演交易,从而执行所述步骤:向所述公链提交预演交易。
为便于理解,示例地,第一业务链的某个节点接收到跨链交易后,可以将该跨链交易提交给第一业务链中的背书节点。第一业务链的每个背书节点接收到跨链交易后,对跨链交易进行背书,并将背书结果发送给第一业务链的指定节点。此外,第一业务链还将跨链交易提交给第一业务链的指定节点,指定节点将该交易提交给第一网关。
第一网关接收到跨链交易后,可以根据该跨链交易携带的第二业务链的区块链标识,将该跨链交易路由至第二网关。第二网关接收到该跨链交易之后,将该跨链交易提交给第二业务链的指定节点。
第二业务链的指定节点接收到该跨链交易之后,将该跨链交易提交给第二业务链中的背书节点。第二业务链的每个背书节点接收到跨链交易后,对跨链交易进行背书,并将背书结果返回给第二业务链的指定节点。第二业务链的指定节点接收到背书结果后,通过第二网关,将第二业务链的背书结果发送给第一业务链的指定节点。如此,第一业务链的指定节点获得了第一业务链的背书结果和第二业务链的背书结果。第一业务链将这些背书结果填充至跨链交易中,然后通过第一网关,将填充了背书结果的跨链交易提交给公链中的一个共识节点。
可选地,在一些具体实施方式中,公链的一个共识节点接收到预演交易后,将该预演交易提交给公链中的排序节点。排序节点接收到预演交易后,打包生成一个交易包,并将该交易包分发给公链中的每个共识节点,该交易包中仅包含该预演交易。公链的每个共识节点接收到该交易包后,从交易包中读取出预演交易并处理。
如图1所示,公链的共识节点在处理预演交易时,根据所述预演交易携带的背书结果,确定所述预演交易是否执行成功,以生成相应的执行结果,并生成第一公链区块,以及建立所述预演交易的交易标识和所述第一公链区块的区块高度之间的关联关系。
可选地,在一些具体实施方式中,公链的共识节点根据第一业务链的背书结果,判断第一业务链是否允许执行所述跨链业务;根据第二业务链的背书结果,判断第二业务链是否允许执行所述跨链业务;如果所述第一业务链和所述第二业务链均允许执行所述跨链业务,则确定所述预演交易执行成功;否则,确定所述预演交易执行失败。
为便于理解,示例地,每个背书结果形如YES或NO。其中,形如YES的背书结果表征相应背书节点允许执行跨链业务,形如NO的背书结果表征相应背书节点不允许执行跨链业务。公链的共识节点对第一业务链的背书结果进行统计,以统计出其中形如YES的背书结果,如果形如YES的背书结果占第一业务链的全部背书结果的一半以上,则确定第一业务链允许执行跨链业务,否则确定第一业务链不允许执行跨链业务。按照同样的方式,公链的共识节点确定出第二业务链是否允许执行跨链业务。
在第一业务链和第二业务链均允许执行跨链业务的情况下,公链的共识节点生成形如YES的执行结果,表征预演交易执行成功。在第一业务链和第二业务链并非均允许执行跨链业务的情况下,公链的共识节点生成形如NO的执行结果,表征预演交易执行失败。此外,公链的共识节点还生成交易包对应的区块,为便于说明,以下将该区块称为第一公链区块。第一公链区块的区块体中包含预演交易和预演交易的执行结果,第一公链区块的区块头中至少包含第一公链区块的区块高度。此外,公链的共识节点还建立第一公链区块的区块高度和预演交易的交易标识之间的关联关系。
如图1所示,在所述公链对所述预演交易执行成功的情况下,所述第一业务链的排序节点生成第一交易包和第一空交易包,并将所述第一交易包和所述第一空交易包发送给所述第一业务链的每个共识节点,所述第一交易包携带所述预演交易,所述第一空交易包携带所述第一公链区块的区块高度;所述第一业务链的共识节点针对所述第一交易包生成相应的区块,并针对所述预演交易对应的跨链业务进行预演操作,得到第一预演结果。
如图1所示,在所述公链对所述预演交易执行成功的情况下,所述第二业务链的排序节点生成第二交易包和第二空交易包,并将所述第二交易包和所述第二空交易包发送给所述第二业务链的每个共识节点,所述第二交易包携带所述预演交易,所述第二空交易包携带所述第一公链区块的区块高度;所述第二业务链的共识节点针对所述第二交易包生成相应的区块,并针对所述预演交易对应的跨链业务进行预演操作,得到第二预演结果。
可选地,在一些具体实施方式中,第一业务链的第一网关会持续地同步公链生成的新区块。换言之,每当公链生成新的公链区块后,第一网关会同步这个公链区块。第一网关每同步到一个公链区块后,会记录该公链区块的区块高度、该公链区块包含的交易、以及每个交易的执行结果。第一业务链的每个共识节点会定期地读取第一网关记录的区块高度信息和交易标识信息等。当第一业务链中的排序节点根据读取的区块高度信息,判断出第一网关同步到新的公链区块后,如果该公链区块包含了预演交易,且预演交易的执行结果形如YES,则排序节点连续打包两个交易包,分别为第一交易包和第一空交易包,并将这两个交易包发送给第一业务链的每个共识节点。其中,第一交易包中仅携带了预演交易,第一空交易包不携带任何交易,但是携带了该公链区块的区块高度。
例如,预演交易的交易标识为tx3e88ad99,公链的共识节点执行完该预演交易后,生成了一个高度为2268的公链区块。则公链的共识节点建立了交易标识tx3e88ad99与区块高度2268之间的关联关系。第一网关同步到该公链区块后,记录该公链区块的区块高度,并记录该公链区块包含的预演交易。第一业务链的排序节点读取到第一网关记录的上述信息后,打包出第一交易包和第一空交易包。其中,第一交易包携带了预演交易,第一空交易包不携带交易,但是携带了公链区块的区块高度2268。
可选地,在一些具体实施方式中,第一业务链的每个共识节点接收到第一交易包和第一空交易包之后,首先处理第一交易包。共识节点在处理第一交易包时,直接生成第一交易包对应的区块,该区块的区块体中包含预演交易。此后,共识节点还根据预演交易查询到对应的跨链业务,然后在内存中执行该跨链业务(也即对跨链业务进行预演),得到跨链业务的第一预演结果。共识节点将第一预演结果存储至非账本数据。与此同时,共识节点正在处理第一空交易包。当共识节点检测到第一空交易包不携带任何交易时,根据预设逻辑,共识节点会暂时处于停滞状态(也可称为锁定状态),共识节点不会继续处理下一个交易包,直至跨链业务真正地处理完毕。
可选地,在一些具体实施方式中,第二业务链按照同样的方式,同步公链生成的公链区块。第二业务链按照同样的方式,打包出第二交易包和第二空交易包。第二业务链的共识节点按照同样的方式处理第二交易包和第二空交易包。
如图1所示,所述第一业务链的指定节点或所述第二业务链的指定节点生成确认交易,并将所述确认交易提交给所述公链执行,所述确认交易携带所述预演交易的交易标识,所述确认交易还携带多个第一预演结果和多个第二预演结果。为简化附图,图1中示意性地示出了第一业务链向公链提交确认交易的实施方式。
可选地,在一些具体实施方式中,第一业务链的每个共识节点生成第一预演结果后,将第一预演结果发送给第一业务链的指定节点。第二业务链的每个共识节点生成第二预演结果后,将第二预演结果发送给第二业务链的指定节点。第二业务链的指定节点接收到多个第二预演结果后,将这些第二预演结果发送给第一业务链的指定节点。如此,第一业务链的指定节点获得多个第一预演结果和多个第二预演结果。第一业务链的指定节点生成确认交易,并将该确认交易提交给公链。该确认交易携带多个第一预演结果和多个第二预演结果。该确认交易不仅携带自身的交易标识,还携带预演交易的交易标识tx3e88ad99。
可选地,在一些具体实施方式中,公链的一个共识节点接收到确认交易后,将该确认交易提交给公链中的排序节点。排序节点接收到确认交易后,打包生成一个交易包,并将该交易包分发给公链中的每个共识节点,该交易包中仅包含该确认交易。公链的每个共识节点接收到该交易包后,从交易包中读取出确认交易并处理。
如图1所示,公链的共识节点在处理确认交易时,根据所述确认交易携带的多个第一预演结果和多个第二预演结果,确定所述确认交易是否执行成功,以生成相应的执行结果;并根据所述确认交易携带的所述预演交易的交易标识,查询预先建立的关联关系,以确定该交易标识对应的区块高度;以及生成相应的第二公链区块,所述第二公链区块记录有确定出的区块高度。
可选地,在一些具体实施方式中,公链的共识节点根据所述确认交易携带的多个第一预演结果和多个第二预演结果,确定所述确认交易是否执行成功,包括:所述公链根据多个第一预演结果,判断第一业务链是否对所述跨链业务预演成功;根据多个第二预演结果,判断第二业务链是否对所述跨链业务预演成功;如果所述第一业务链和所述第二业务链均成功预演所述跨链业务,则确定所述确认交易执行成功;否则,确定所述确认交易执行失败。
为便于理解,示例地,第一预演结果形如YES或NO。其中,形如YES的第一预演结果表征第一业务链的相应共识节点成功预执行了跨链业务,形如NO的第一预演结果表征第一业务链的相应共识节点未成功预执行跨链业务。公链的共识节点对多个第一预演结果进行统计,以统计出其中形如YES的第一预演结果。根据预设的判断准则,如果形如YES的第一预演结果达到全部第一预演结果的一定比例(例如80%),则确定第一业务链对跨链业务预演成功。否则确定第一业务链对跨链业务预演失败。按照同样的方式,公链的共识节点确定出第二业务链是否成功预演跨链业务。
在第一业务链和第二业务链均成功预演跨链业务的情况下,公链的共识节点生成形如YES的执行结果,表征确认交易执行成功。在第一业务链和第二业务链并非均成功预演跨链业务的情况下,公链的共识节点生成形如NO的执行结果,表征确认交易执行失败。此外,公链的共识节点还根据确认交易携带的预演交易的交易标识tx3e88ad99,通过查询预先建立的关联关系,确定出交易标识tx3e88ad99对应的区块高度2268。此外,公链的共识节点还生成交易包对应的区块,为便于说明,以下将该区块称为第二公链区块。第二公链区块的区块体中包含确认交易和确认交易的执行结果。第一公链区块的区块头中至少包含第二公链区块的区块高度,还包含确定出的区块高度2268。
如图1所示,在公链根据确认交易携带的预演交易的交易标识确定出区块高度的情况下,如果该区块高度等于所述第一空交易包携带的区块高度,则所述第一业务链的共识节点生成所述第一空交易包对应的区块,并继续处理排序节点发送的其他交易包。
如图1所示,在公链根据确认交易携带的预演交易的交易标识确定出区块高度的情况下,如果该区块高度等于所述第二空交易包携带的区块高度,则所述第二业务链的共识节点生成所述第二空交易包对应的区块,并继续处理排序节点发送的其他交易包。
可选地,在一些具体实施方式中,所述第一业务链具有第一网关,所述第一网关持续地同步所述公链新生成的公链区块;所述第一网关每同步到新的公链区块后,记录该公链区块的区块高度,并判断该公链区块是否记录有其他公链区块的区块高度,如果该公链区块还记录有其他公链区块的区块高度,则所述第一网关还记录所述其他公链区块的区块高度。第一业务链的共识节点持续地从第一网关同步区块高度信息,在获取到所述其他公链区块的区块高度后,判断该区块高度是否等于所述第一空交易包携带的区块高度,若是,则执行所述步骤:生成所述第一空交易包对应的区块,并继续处理排序节点发送的其他交易包。
具体地,如前所述,第一网关会持续地同步公链生成的新区块。换言之,每当公链生成新的公链区块后,第一网关会同步这个公链区块。第一网关每同步到一个公链区块后,会记录该公链区块的区块高度、该公链区块包含的交易、以及每个交易的执行结果。此外,第一网关还判断该公链区块是否记录有其他公链区块的区块高度。若是,则该第一网关还记录其他公链区块的区块高度。
为便于理解,如下表所示。
区块高度 | 交易标识 | 执行结果 | 其他区块高度 |
2071 | tx7db20f80 | YES | / |
… | … | … | … |
2268 | tx3e88ad99 | YES | / |
2269 | tx9e9be71d | NO | / |
2270 | tx08e8424e | YES | / |
2271 | tx3e88ad98 | YES | 2268 |
上表中,每个公链区块中仅包含一个交易,例如区块高度为2270的公链区块仅包含交易标识为tx08e8424e的交易。上表中的每一行,代表第一网关记录的一条公链区块信息。其中,区块高度为2268的公链区块也即是上述第一公链区块,该公链区块的区块体中包含预演交易,如前所述,该预演交易的交易标识为tx3e88ad99。区块高度为2271的公链区块也即是上述第二公链区块,该公链区块的区块体中包含确认交易,确认交易的交易标识为tx3e88ad98,该公链区块的区块头中还包含第一公链区块的区块高度,也即其他区块高度2268。
具体地,当第一业务链的共识节点在处理第一空交易包时,如前所述,共识节点会根据预设逻辑,暂时处于停滞状态(也可称为锁定状态),并且持续不断去第一网关同步上表所示的信息。当同步到一条新的公链区块信息后,共识节点判断该条信息中是否包含其他公链区块的区块高度信息(也即上表所示的其他区块高度)。如上表所示,当第一业务链的共识节点从第一网关处同步到区块高度等于2271这条公链区块信息后,首先判断出该条公链区块信息中包含其他区块高度2268。然后进一步判断出该其他区块高度恰好等于第一空交易包中携带的区块高度。如此,共识节点生成第一空交易包对应的区块,并继续处理排序节点发送的其他交易包。
其中,第一业务链的共识节点为了生成第一空交易包对应的区块,可以从第一网关获得第二公链区块,并根据第二公链区块携带的执行结果,确定所述公链是否成功执行所述确认交易;若是,则执行所述跨链业务,以生成所述第一空交易包对应的区块,该区块中记录有该跨链业务的执行结果。
可选地,在一些具体实施方式中,所述第二业务链具有第二网关,所述第二网关持续地同步所述公链新生成的公链区块;所述第二网关每同步到新的公链区块后,记录该公链区块的区块高度,并判断该公链区块是否记录有其他公链区块的区块高度,如果该公链区块还记录有其他公链区块的区块高度,则所述第二网关还记录所述其他公链区块的区块高度。第二业务链的共识节点持续地从第二网关同步区块高度信息,在获取到所述其他公链区块的区块高度后,判断该区块高度是否等于所述第二空交易包携带的区块高度,若是,则执行所述步骤:生成所述第二空交易包对应的区块,并继续处理排序节点发送的其他交易包。
其中,第二业务链的共识节点为了生成第二空交易包对应的区块,可以从第二网关获得第二公链区块,并根据第二公链区块携带的执行结果,确定所述公链是否成功执行所述确认交易;若是,则执行所述跨链业务,以生成所述第二空交易包对应的区块,该区块中记录有该跨链业务的执行结果。
具体地,可参考前述第一业务链的运行原理,为简化说明书,此处不再对第二业务链进行赘述。
可选地,在一些具体实施方式中,第一业务链的共识节点在生成第一交易包的区块之后,以及生成第一空交易包的区块之前(也即第一业务链处于锁定状态期间),如果第一业务链的指定节点在预设时间段内未获得所述第二业务链的多个第二预演结果,则所述第一业务链的指定节点生成取消交易,并将该取消交易提交给所述公链,所述取消交易携带所述预演交易的交易标识。所述公链的共识节点根据所述取消交易携带的所述预演交易的交易标识,查询预先建立的关联关系,以确定该交易标识对应的区块高度;以及生成相应公链区块,该公链区块记录有确定出的区块高度。
如此,当第一业务链的指定节点不能从第二业务链获得第二预演结果,从而不能生成确认交易的情况下,为了使得第一业务链和第二业务链可以解除锁定状态,从而可以继续处理后续的交易包。本发明中,第一业务链的指定节点可以在为第一交易包生成区块之后,开启计时功能,在计时达到预设时间(例如20秒),但还没有接收到第二业务链的第二预演结果的情况下,第一业务链的指定节点可以生成取消交易,并将该取消交易提交给公链执行,该取消交易携带预演交易的交易标识tx3e88ad99。公链按照同样的方式,处理取消交易,从而生成相应的公链区块,该公链区块除了携带有自身的区块高度以外,还携带了其他区块高度2268。
如前所述,第一网关持续地同步公链的公链区块,并记录公链区块信息。第一业务链的共识节点持续地从第一网关处获取公链区块信息,当获取到包含其他区块高度2268的公链区块信息后,共识节点会生成第一空交易包的区块,从而相当于解除了锁定状态,然后继续处理其他交易包。
或者可选地,在另一些具体实施方式中,第二业务链的共识节点在生成第二交易包的区块之后,以及生成第二空交易包的区块之前(也即第二业务链处于锁定状态期间),如果所述第二业务链的指定节点在预设时间段内未获得所述第一业务链的多个第一预演结果,则所述第二业务链的指定节点生成取消交易,并将该取消交易提交给所述公链,所述取消交易携带所述预演交易的交易标识。所述公链的共识节点根据所述取消交易携带的所述预演交易的交易标识,查询预先建立的关联关系,以确定该交易标识对应的区块高度;以及生成相应的公链区块,该公链区块记录有确定出的区块高度。
具体地,可参考前述第一业务链的运行原理,为简化说明书,此处不再对第二业务链进行赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种跨链业务管理系统,其特征在于,所述系统包括公链、第一业务链以及第二业务链;
所述第一业务链的指定节点或所述第二业务链的指定节点向所述公链提交预演交易,所述预演交易携带所述第一业务链和所述第二业务链各自对跨链业务的背书结果;
所述公链的共识节点根据所述预演交易携带的背书结果,确定所述预演交易是否执行成功,以生成相应的执行结果,并生成第一公链区块,以及建立所述预演交易的交易标识和所述第一公链区块的区块高度之间的关联关系;
在所述公链对所述预演交易执行成功的情况下,所述第一业务链的排序节点生成第一交易包和第一空交易包,并将所述第一交易包和所述第一空交易包发送给所述第一业务链的每个共识节点,所述第一交易包携带所述预演交易,所述第一空交易包携带所述第一公链区块的区块高度;所述第一业务链的共识节点针对所述第一交易包生成相应的区块,并针对所述预演交易对应的跨链业务进行预演操作,得到第一预演结果;
在所述公链对所述预演交易执行成功的情况下,所述第二业务链的排序节点生成第二交易包和第二空交易包,并将所述第二交易包和所述第二空交易包发送给所述第二业务链的每个共识节点,所述第二交易包携带所述预演交易,所述第二空交易包携带所述第一公链区块的区块高度;所述第二业务链的共识节点针对所述第二交易包生成相应的区块,并针对所述预演交易对应的跨链业务进行预演操作,得到第二预演结果;
所述第一业务链的指定节点或所述第二业务链的指定节点生成确认交易,并将所述确认交易提交给所述公链执行,所述确认交易携带所述预演交易的交易标识,所述确认交易还携带多个第一预演结果和多个第二预演结果;
所述公链响应于所述确认交易,根据所述确认交易携带的多个第一预演结果和多个第二预演结果,确定所述确认交易是否执行成功,以生成相应的执行结果;并根据所述确认交易携带的所述预演交易的交易标识,查询预先建立的关联关系,以确定该交易标识对应的区块高度;以及生成相应的第二公链区块,所述第二公链区块记录有确定出的区块高度;
在公链根据确认交易携带的预演交易的交易标识确定出区块高度的情况下,如果该区块高度等于所述第一空交易包携带的区块高度,则所述第一业务链的共识节点生成所述第一空交易包对应的区块,并继续处理排序节点发送的其他交易包;
在公链根据确认交易携带的预演交易的交易标识确定出区块高度的情况下,如果该区块高度等于所述第二空交易包携带的区块高度,则所述第二业务链的共识节点生成所述第二空交易包对应的区块,并继续处理排序节点发送的其他交易包。
2.根据权利要求1所述的跨链业务管理系统,其特征在于,如果所述第一业务链的指定节点在预设时间段内未获得所述第二业务链的多个第二预演结果,则所述第一业务链的指定节点生成取消交易,并将该取消交易提交给所述公链,所述取消交易携带所述预演交易的交易标识;
所述公链的共识节点根据所述取消交易携带的所述预演交易的交易标识,查询预先建立的关联关系,以确定该交易标识对应的区块高度;以及生成相应公链区块,该公链区块记录有确定出的区块高度。
3.根据权利要求1所述的跨链业务管理系统,其特征在于,如果所述第二业务链的指定节点在预设时间段内未获得所述第一业务链的多个第一预演结果,则所述第二业务链的指定节点生成取消交易,并将该取消交易提交给所述公链,所述取消交易携带所述预演交易的交易标识;
所述公链的共识节点根据所述取消交易携带的所述预演交易的交易标识,查询预先建立的关联关系,以确定该交易标识对应的区块高度;以及生成相应的公链区块,该公链区块记录有确定出的区块高度。
4.根据权利要求1至3任一所述的跨链业务管理系统,其特征在于,所述第一业务链具有第一网关,所述第一网关持续地同步所述公链新生成的公链区块;所述第一网关每同步到新的公链区块后,记录该公链区块的区块高度,并判断该公链区块是否记录有其他公链区块的区块高度,如果该公链区块还记录有其他公链区块的区块高度,则所述第一网关还记录所述其他公链区块的区块高度;
第一业务链的共识节点持续地从第一网关同步区块高度信息,在获取到所述其他公链区块的区块高度后,判断该区块高度是否等于所述第一空交易包携带的区块高度,若是,则执行所述步骤:生成所述第一空交易包对应的区块,并继续处理排序节点发送的其他交易包。
5.根据权利要求1至3任一所述的跨链业务管理系统,其特征在于,所述第二业务链具有第二网关,所述第二网关持续地同步所述公链新生成的公链区块;所述第二网关每同步到新的公链区块后,记录该公链区块的区块高度,并判断该公链区块是否记录有其他公链区块的区块高度,如果该公链区块还记录有其他公链区块的区块高度,则所述第二网关还记录所述其他公链区块的区块高度;
第二业务链的共识节点持续地从第二网关同步区块高度信息,在获取到所述其他公链区块的区块高度后,判断该区块高度是否等于所述第二空交易包携带的区块高度,若是,则执行所述步骤:生成所述第二空交易包对应的区块,并继续处理排序节点发送的其他交易包。
6.根据权利要求4所述的跨链业务管理系统,其特征在于,所述第一业务链的共识节点从第一网关获得所述第二公链区块,并根据所述第二公链区块携带的执行结果,确定所述公链是否成功执行所述确认交易;若是,则执行所述跨链业务,以生成所述第一空交易包对应的区块,该区块中记录有该跨链业务的执行结果。
7.根据权利要求5所述的跨链业务管理系统,其特征在于,所述第二业务链的共识节点从第二网关获得所述第二公链区块,并根据所述第二公链区块携带的执行结果,确定所述公链是否成功执行所述确认交易;若是,则执行所述跨链业务,以生成所述第二空交易包对应的区块,该区块中记录有该跨链业务的执行结果。
8.根据权利要求1所述的跨链业务管理系统,其特征在于,所述第一业务链的背书节点对跨链业务进行背书,得到相应的背书结果;所述第一业务链的指定节点将填充了背书结果的跨链业务发送给第二业务链;第二业务链的背书节点对所述跨链业务进行背书,得到相应的背书结果;所述第二业务链的指定节点根据第一业务链的背书结果和第二业务链的背书结果生成预演交易,从而执行所述步骤:向所述公链提交预演交易。
9.根据权利要求1所述的跨链业务管理系统,其特征在于,所述第一业务链的背书节点对跨链业务进行背书,得到相应的背书结果;所述第一业务链将所述跨链业务发送给所述第二业务链,所述第二业务链的背书节点对跨链业务进行背书,得到相应的背书结果;所述第一业务链的指定节点搜集第一业务链的背书结果和第二业务链的背书结果,并根据搜集的背书结果生成预演交易,从而执行所述步骤:向所述公链提交预演交易。
10.根据权利要求1所述的跨链业务管理系统,其特征在于,所述公链的共识节点根据所述预演交易携带的背书结果,确定所述预演交易是否执行成功,包括:所述公链的共识节点根据第一业务链的背书结果,判断第一业务链是否允许执行所述跨链业务;根据第二业务链的背书结果,判断第二业务链是否允许执行所述跨链业务;如果所述第一业务链和所述第二业务链均允许执行所述跨链业务,则确定所述预演交易执行成功;否则,确定所述预演交易执行失败;
所述公链的共识节点根据所述确认交易携带的多个第一预演结果和多个第二预演结果,确定所述确认交易是否执行成功,包括:所述公链根据多个第一预演结果,判断第一业务链是否对所述跨链业务预演成功;根据多个第二预演结果,判断第二业务链是否对所述跨链业务预演成功;如果所述第一业务链和所述第二业务链均成功预演所述跨链业务,则确定所述确认交易执行成功;否则,确定所述确认交易执行失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788262.9A CN113450225B (zh) | 2021-07-13 | 2021-07-13 | 跨链业务管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788262.9A CN113450225B (zh) | 2021-07-13 | 2021-07-13 | 跨链业务管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113450225A CN113450225A (zh) | 2021-09-28 |
CN113450225B true CN113450225B (zh) | 2023-07-28 |
Family
ID=77815988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110788262.9A Active CN113450225B (zh) | 2021-07-13 | 2021-07-13 | 跨链业务管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113450225B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679857A (zh) * | 2017-10-10 | 2018-02-09 | 马晶瑶 | 区块链的跨链交易方法和存储介质 |
CN108805704A (zh) * | 2018-05-16 | 2018-11-13 | 深圳市网心科技有限公司 | 区块链业务实现方法、监听设备、存储介质及系统 |
CN112671908A (zh) * | 2020-12-25 | 2021-04-16 | 成都质数斯达克科技有限公司 | 网络管理方法、装置、电子设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3088712A1 (en) * | 2018-03-14 | 2019-09-19 | Jieqian ZHENG | Block chain data processing method, management end, user end, conversion apparatus and medium |
US11288280B2 (en) * | 2018-10-31 | 2022-03-29 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing consumer data validation, matching, and merging across tenants with optional verification prompts utilizing blockchain |
-
2021
- 2021-07-13 CN CN202110788262.9A patent/CN113450225B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679857A (zh) * | 2017-10-10 | 2018-02-09 | 马晶瑶 | 区块链的跨链交易方法和存储介质 |
CN108805704A (zh) * | 2018-05-16 | 2018-11-13 | 深圳市网心科技有限公司 | 区块链业务实现方法、监听设备、存储介质及系统 |
CN112671908A (zh) * | 2020-12-25 | 2021-04-16 | 成都质数斯达克科技有限公司 | 网络管理方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113450225A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI737165B (zh) | 跨鏈發送資源的方法和裝置 | |
CN109327459B (zh) | 一种联盟区块链网络的共识方法 | |
CN109447643A (zh) | 一种基于区块链的数据共享系统及数据共享方法 | |
CA1223372A (en) | Fault-tolerant atomic broadcast methods | |
CN107231299A (zh) | 一种链路由及实现区块链跨链通信的系统 | |
CN112488778A (zh) | 一种票据处理的方法及相关装置 | |
CN108710681A (zh) | 文件获取方法、装置、设备及存储介质 | |
CN112488777B (zh) | 一种票据处理的方法及相关装置 | |
CN112671908B (zh) | 网络管理方法、装置、电子设备及可读存储介质 | |
CN113886501A (zh) | 一种基于多链架构下的区块链业务模块扩展方法 | |
CN116611840A (zh) | 一种基于区块链的分布式数据资产流转追溯系统及方法 | |
CN113450225B (zh) | 跨链业务管理系统 | |
Cheng et al. | A protocol to maintain a minimum spanning tree in a dynamic topology | |
CN112488834B (zh) | 节点管理方法、装置、电子设备及可读存储介质 | |
CN113922996A (zh) | 一种基于跨区块链技术的电子学籍档案隐私保护方法 | |
CN111865983A (zh) | 一种基于区块链的数据安全追溯方法 | |
CN116827957A (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN113643032B (zh) | 一种基于区块链的信息处理方法、装置及数据管理系统 | |
CN114721749A (zh) | 基于区块链的投票表决方法、装置、存储介质及电子设备 | |
CN114925133A (zh) | 物流信息的协同处理方法、装置、设备及存储介质 | |
CN112398640A (zh) | 一种优化的区块链共识算法 | |
CN112581097A (zh) | 一种基于区块链的责任追溯方法 | |
CN112202581A (zh) | 群组加入方法、装置以及电子设备 | |
CN116633699B (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 |