CN114782045B - 跨链非事务性写入方法和装置、存储介质、电子设备 - Google Patents
跨链非事务性写入方法和装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN114782045B CN114782045B CN202210677253.7A CN202210677253A CN114782045B CN 114782045 B CN114782045 B CN 114782045B CN 202210677253 A CN202210677253 A CN 202210677253A CN 114782045 B CN114782045 B CN 114782045B
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- chain
- client
- contract
- 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
Images
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Debugging And Monitoring (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开实施例公开了一种跨链非事务性写入方法和装置、存储介质、电子设备,其中,方法包括:通过第一区块链中的预设监听节点监听所述第一区块链,响应于监听到所述第一区块链中生成第一区块,将第一区块的第一区块头发送到第二区块链;基于第一区块头在第二区块链中生成第二区块,将第二区块对应的第二区块头发送给第一客户端;在第一客户端,将第二区块头与第一交易对应的第一交易信息和第一交易对应的默克尔证明进行关联存储,得到第一交易对应的关联数据;通过第一客户端向第二区块链发起第二交易,并对第二交易对应的第二交易信息进行验证;响应于第二交易信息验证通过,执行第二交易,并向第一客户端反馈执行结果。
Description
技术领域
本公开涉及一种跨链非事务性写入方法和装置、存储介质、电子设备。
背景技术
区块链技术具有广泛地应用前景,目前已经在金融、保险、医疗、资产管理、供应链等诸多领域得以应用。然而由于区块链技术的天然特性,导致不同区块链网络之间难以互通,多个区块链网络形成了多个信息孤岛,从而限制了区块链技术的进一步发展。相关技术中,提出了跨链通信方法,基于该跨链通信方法,可实现跨链交易。然而现有的跨链交易方法还不成熟,安全性偏低。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种跨链非事务性写入方法和装置、存储介质、电子设备。
根据本公开实施例的一个方面,提供了一种跨链非事务性写入方法,包括:
通过第一区块链中的预设监听节点监听所述第一区块链,响应于监听到所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链;其中,所述第一区块基于在所述第一区块链中执行第一交易生成;
基于所述第一区块头在所述第二区块链中生成第二区块,将所述第二区块对应的第二区块头发送给第一客户端;
在所述第一客户端,将所述第二区块头与所述第一交易对应的第一交易信息和所述第一交易对应的默克尔证明进行关联存储,得到所述第一交易对应的关联数据;
通过所述第一客户端向所述第二区块链发起第二交易,并对所述第二交易对应的第二交易信息进行验证;其中,所述第二交易信息包括所述第一交易对应的关联数据;
响应于所述第二交易信息验证通过,执行所述第二交易,并向所述第一客户端反馈执行结果。
根据本公开实施例的另一方面,提供了一种跨链非事务性写入装置,包括:
第一区块模块,用于通过第一区块链中的预设监听节点监听所述第一区块链,响应于监听到所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链;其中,所述第一区块基于在所述第一区块链中执行第一交易生成;
第二区块模块,用于基于所述第一区块头在所述第二区块链中生成第二区块,将所述第二区块对应的第二区块头发送给第一客户端;
数据存储模块,用于在所述第一客户端将所述第二区块头与所述第一交易对应的第一交易信息和所述第一交易对应的默克尔证明进行关联存储,得到所述第一交易对应的关联数据;
信息验证模块,用于通过所述第一客户端向所述第二区块链发起第二交易,并对所述第二交易对应的第二交易信息进行验证;其中,所述第二交易信息包括所述第一交易对应的关联数据;
交易执行模块,用于响应于所述第二交易信息验证通过,执行所述第二交易,并向所述第一客户端反馈执行结果。
根据本公开实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的跨链非事务性写入方法。
根据本公开实施例的又一方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的跨链非事务性写入方法。
基于本公开上述实施例提供的一种跨链非事务性写入方法和装置、存储介质、电子设备,通过第一区块链中的预设监听节点监听所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链;其中,所述第一区块基于在所述第一区块链中执行第一交易生成;基于所述第一区块头在所述第二区块链中生成第二区块,将所述第二区块对应的第二区块头发送给第一客户端;在所述第一客户端,将所述第二区块头与所述第一交易对应的第一交易信息和所述第一交易对应的默克尔证明进行关联存储,得到所述第一交易对应的关联数据;通过所述第一客户端向所述第二区块链发起第二交易,并对所述第二交易对应的第二交易信息进行验证;其中,所述第二交易信息包括所述第一交易对应的关联数据;响应于所述第二交易信息验证通过,执行所述第二交易,并向所述第一客户端反馈执行结果;通过在第一客户端中存储第一交易的关联信息,并通过对第一交易的关联信息的验证来确定是否执行第二交易,提高了跨链互操作的安全性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开实施例涉及的一个示例性的跨链体系架构图;
图2是本公开一示例性实施例提供的跨链非事务性写入方法的流程示意图;
图3是本公开另一示例性实施例提供的跨链非事务性写入方法的流程示意图;
图4是本公开图2所示的实施例中步骤202的一流程示意图;
图5是本公开图2所示的实施例中步骤204的一流程示意图;
图6是本公开图2所示的实施例中步骤208的一流程示意图;
图7是本公开一示例性实施例中跨链互操作的交互示意图;
图8是本公开一示例性实施例提供的跨链非事务性写入装置的结构示意图;
图9示出了本申请实施例中跨链体系架构的示意图;
图10是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。本公开中所指数据可以包括文本、图像、视频等非结构化数据,也可以是结构化数据。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性架构
如图1所示,为本公开实施例涉及的一个示例性的跨链体系架构图,包括:主链、至少两条从链以及客户端,为简化附图,图1中未示出客户端,本申请中的第一区块链和第二区块链即是两条从链。此外,主链上还可以设置有监管节点以及至少一个超级节点,从链上设置有骨干节点以及至少一个服务节点;第一区块链和第二区块链为从链。
本申请实施例的跨链非事务写入系统可以包括一条主链、多条从链,主链上包括多个超级节点和一个监管节点,从链可以为基础从链、区域性从链、行业性从链等,基础从链和区域性从链可以为同构或异构。每条从链上可以包括一个骨干节点和多个服务节点。
其中,主链为整个链群提供公共服务,为各个从链提供跨链交互平台及规范。主链的监管节点负责对整个链群用户和节点的数据、行为进行合法合规监管并对违法违规行为进行处置,如关停服务、限制权限、不可信用户标记等,此外,监管节点对主链的超级节点和从链的骨干节点等具有管理权限的节点进行资质审核以及可信认证。主链的超级节点负责执行主链共识、跨链网关、资质审核、链群管理等功能,获取外部数据经过核验后对外提供可信数据服务。具体地,超级节点设置有验证引擎、执行引擎和交易路由,骨干节点包括事务管理模块、应用链管理模块、跨链网关、应用链适配器,从链上包括有跨链管理合约模块、事务管理模块、跨链网关、从链适配器。主链上的超级节点的验证引擎内注册有不同架构区块链的验证规则;想要加入从链的节点需要向该从链的服务节点发起注册请求,再由该服务节点通过骨干节点向主链节点注册。
示例性方法
图2是本公开一示例性实施例提供的跨链非事务性写入方法的流程示意图。本实施例可应用在电子设备上,如图2所示,包括如下步骤:
步骤202,通过第一区块链中的预设监听节点监听第一区块链,响应于监听到第一区块链中生成第一区块,将第一区块的第一区块头发送到第二区块链。
其中,第一区块基于在第一区块链中执行第一交易生成。
可选地,预设监听节点可以为第一区块链中的一个节点,例如,骨干节点等;通过预设监听节点可将监听到的第一区块链中新生成的第一区块的第一区块头发送给第二区块链,实现跨链信息发送;在一些具体实施方式中,第一交易可以包括交易所需要的信息,这些信息可以以统一的标识来表示该交易,例如:买方用户、卖方用户、转账金额等;第一交易可以是在第一区块链中注册的用户通过第一客户端提交的;可选地,在区块链注册的用户可以企业、个人等用户。
步骤204,基于第一区块头在第二区块链中生成第二区块,将第二区块对应的第二区块头发送给第一客户端。
在一实施例中,第一区块头中记录第一交易对应的默克尔树的根哈希(hash);将第一区块头作为区块数据生成第二区块,即,第二区块中的区块数据包括第一区块头;另外,第二区块中的区块数据除了包括第一区块头,还可以包括其他区块数据。
步骤206,在第一客户端,将第二区块头与第一交易对应的第一交易信息和第一交易对应的默克尔证明进行关联存储,得到第一交易对应的关联数据。
本实施例中,第一客户端即可以与第一区块链实现通信,还可以与第二区块链实现通信,即,通过第一客户端发起交易的用户在第一区块链和第二区块链中都拥有账户,第一交易携带的用户信息可以是用户在第一客户端上注册的具有唯一性的用户名,或者在第一客户端上预留的身份证号或者手机号码等。
步骤208,通过第一客户端向第二区块链发起第二交易,并对第二交易对应的第二交易信息进行验证。
其中,第二交易信息包括第一交易对应的关联数据。
可选地,第二交易与第一交易存在对应关系,可选地,第二交易与第一交易对应的处理对象是相同的,例如,第一交易为某些资产的购买交易,第二交易为对应这些资产的转移交易;第一客户端中可以保存有多个第一交易的关联数据,第一客户端响应于接收到的用户的选择指令,根据预设的生成规则,生成相应格式的第二交易。
可选地,对于第一交易的关联数据,还可以通过第一交易对应的加密方法(加密密钥等)进行加密,以保证该关联数据只能被发起该第一交易的用户或对应第一交易中的对象的第二交易所调用解密,其中,可通过第一交易中携带的用户信息和/或资产类型标识确定对应的加密方法,在接收到第二交易时,对第二交易信息进行验证之前,首先确认第二交易中携带的用户信息和/或资产类型标识对应的解密方法是否能对加密后的关联数据进行解密,以获得关联数据作为第二交易信息。
步骤210,响应于第二交易信息验证通过,执行第二交易,并向第一客户端反馈执行结果。
还可以包括,响应于第二交易信息验证不通过,终止对第二交易的处理,可选地,验证可以采用默克尔验证。
本公开上述实施例提供的一种跨链非事务性写入方法,通过第一区块链中的预设监听节点监听所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链;其中,所述第一区块基于在所述第一区块链中执行第一交易生成;基于所述第一区块头在所述第二区块链中生成第二区块,将所述第二区块对应的第二区块头发送给第一客户端;在所述第一客户端,将所述第二区块头与所述第一交易对应的第一交易信息和所述第一交易对应的默克尔证明进行关联存储,得到所述第一交易对应的关联数据;通过所述第一客户端向所述第二区块链发起第二交易,并对所述第二交易对应的第二交易信息进行验证;其中,所述第二交易信息包括所述第一交易对应的关联数据;响应于所述第二交易信息验证通过,执行所述第二交易,并向所述第一客户端反馈执行结果;通过在第一客户端中存储第一交易的关联信息,并通过对第一交易的关联信息的验证来确定是否执行第二交易,保证了第二交易的执行正确性,避免了交易的错误执行,提高了跨链互操作的安全性和可靠性。
图3是本公开另一示例性实施例提供的跨链非事务性写入方法的流程示意图。在该实施例中,在执行步骤202之前,还可以包括:
步骤301,通过第一客户端接收第一交易,在第一区块链中通过多个节点对第一交易进行处理,得到第一交易信息和默克尔证明。
可选地,第一客户端根据用户的操作,向第一区块链提交第一交易,其中,第一交易中可携带用户信息和资产类型标识等信息;资产类型标识用于表示交易(第一交易)所针对的资产类型;为便于理解,示例性地,如果第一交易携带的资产类型标识为“SG_Stock”,则表示第一交易针对的资产为“被收购上市公司的股票”;如果第一交易携带的资产类型标识为“House”,则表示第一交易针对的资产为“房产”。
步骤302,基于第一交易的处理结果生成第一区块,并将第一交易信息和默克尔证明发送给第一客户端。
本实施例中,对第一交易进行处理的过程可包括:基于共识机制进行共识,执行相关的智能合约代码,生成交易指定的状态数据,然后将交易打包到区块里,以生成新的区块(第一区块);本实施例通过将第一交易信息和默克尔证明发送给第一客户端,为第一客户端在后续操作中存储第一交易的关联数据提供基础,即,第一区块链中每执行一个交易都将该交易对应的交易信息和默克尔证明存储到第一客户端中,以便后续第二交易的验证。
可选地,上述步骤302中基于第一交易的处理结果生成第一区块的过程可包括:
基于第一交易执行后得到的交易哈希,和默克尔证明中包括的默克尔树的部分树节点哈希,确定默克尔树的根哈希;
将根哈希作为第一区块的区块哈希存入第一区块的第一区块头,生成第一区块。
其中,第一交易信息是指完整的第一交易。第一交易的默克尔证明包括默克尔树的部分树节点哈希(hash),通过第一交易的交易哈希和第一交易的默克尔证明包括的多个树节点哈希,可以得到默克尔树的根哈希;以该根哈希作为新区块头(第一区块头)生成新区块(第一区块)。
如图4所示,在上述图2所示实施例的基础上,步骤202可包括如下步骤:
步骤2021,通过预设监听节点对第一区块链进行监听。
可选地,预设监听节点可以为跨链体系架构中该第一区块链的骨干节点上,由第一区块链的骨干节点监听第一区块链的服务节点的区块更新,服务节点是第一区块链的多个节点中的一个节点,服务节点与第一区块链的骨干节点通信连接。
步骤2022,响应于监听到第一区块链中生成第一区块,将第一区块链中新增的第一区块的第一区块头,通过预设加密方法进行加密处理,得到加密后的第一区块头。
本实施例中,预设加密方法可以为现有技术中的任一加密方法,例如,密钥加密、编码或数据格式转换等;在一个可选示例中,通过第一交易中携带的用户信息或资产类型标识确定对应的加密方法,例如,对同一用户信息的交易采用相同的加密方法,在后续第二交易验证时,通过该用户信息对应的解密方法对第一区块头进行解密;通过对应第一交易信息的加密方法或预设密钥对待传输的第一区块头进行加密;还可以包括:响应于未监听到第一区块链中生成第一区块,不执行后续操作。
步骤2023,将加密后的第一区块头和预设加密方法通过主链发送到第二区块链。
本实施例中,第一区块链的预设监听节点通过跨链协议将跨链提案提交到主链的跨链合约上,消息中可以携带有第一区块链信息、第二区块链信息、第一交易、以及记录了第一交易的第一区块的第一区块头;主链上的跨链合约对跨链提案进行校验,并在投票统计达到共识算法要求的共识个数的情况下,达成提案成功的共识,表示提案成功;可选地,共识算法可以为拜占庭容错(Byzantine Fault Tolerance,BFT)算法;第二区块链的跨链网关对主链进行监听,当监听到第一交易相应区块头时,跨链网关将第一交易和第一区块头提交给第二区块链;第二区块链的跨链合约把反馈数据提交到主链的跨链合约,以更新跨链交易状态,表示第二区块链已收到第一区块头。
此外,第二区块链接收到第一交易和第一区块头后,将第一区块头作为区块数据,从而生成第二区块链的新区块(第二区块)。
如图5所示,在上述图2所示实施例的基础上,步骤204可包括如下步骤:
步骤2041,通过跨链协议将跨链提案提交到第二区块链中的跨链合约中。
其中,跨链提案中包括第一交易信息和第一区块的区块头。
步骤2042,基于跨链合约对跨链提案进行校验,通过校验后,基于第一区块头存入第二区块的区块体,将第二区块的区块高度值存入第二区块的第二区块头,得到所述第二区块。
步骤2043,将第二区块对应的第二区块头发送给第一客户端。
在一些具体实施方式中,第二区块链生成第二区块后,第二区块链的预设节点根据第一交易携带的身份信息,确定出该身份信息对应的客户端(第一客户端),从而将第一交易信息和第二区块的区块高度(height)发送给第一客户端;第一客户端接收到第二区块链发送的第一交易信息和区块高度后,根据该第一交易信息,查找到预先存储的第一交易信息和默克尔证明,继而存储区块高度,并建立第一交易信息、默克尔证明、以及区块高度等三者的关联关系,构成第一交易的关联数据;通过建立该关联关系,以说明第一区块头存储在该区块高度对应的第二区块链的第二区块中;本实施例中将区块高度存入第二区块的第二区块头中,再将第二区块头存入第一客户端中,使后续查找第二区块时,可通过区块高度实现快速查找定位,提升了处理效率。
如图6所示,在上述图2所示实施例的基础上,步骤208可包括如下步骤:
步骤2081,通过第一客户端向第二区块链发起第二交易。
可选地,第一客户端可以向用户显示第一客户端中存储的所有交易(例如,上述第一区块链中执行的第一交易),这些交易都是在第一区块链中执行过的交易,每个交易用于表征用户在第一区块链上的对象产生记录(例如,资产购买记录等);当用户需要转卖某一对象时,可以选中该对象对应的交易,并向第一客户端输入选择指令;第一客户端响应于用户输入的选择指令,根据预设的生成规则,生成相应交易格式的用于对象转移的第二交易,第二交易的交易格式符合第二区块链的要求,第二交易中包括被选中对象对应的第一交易、第一交易的默克尔证明、以及相关联的区块高度;第一客户端在产生第二交易后,将第二交易提交给第二区块链。
步骤2082,通过第二区块链中的执行合约调用监听合约。
其中,执行合约和监听合约是预先发布在第二区块链中的智能合约,执行合约用于主导执行第二交易(例如,资产转移等),监听合约用于被执行合约调用,从而对第二交易中包括的第一交易信息进行默克尔验证。
步骤2083,通过监听合约对第二交易信息进行验证。
在一些可选实施例中,当第二区块链的各个节点获得第二交易之后,根据第二交易携带的执行合约地址,对执行合约进行调用和执行。在对执行合约进行执行期间,根据执行合约中的跨合约调用逻辑,进一步调用并执行监听合约。
在执行监听合约期间,监听合约获得第二交易包括的第一交易和第一交易的默克尔证明。监听合约计算第一交易的哈希,并根据第一交易的哈希和第一交易的默克尔证明中包括的多个树节点哈希,计算出默克尔树的根哈希;之后,监听合约根据第二交易包括的区块高度,从相应高度区块的第二区块链区块的区块体中,查找是否存在相应的区块头,该区块头中需要包含上述计算出的根哈希值;如果查找到相应的区块头,则默克尔验证通过;如果没有查找到相应的区块头,则默克尔验证不通过;监听合约将默克尔验证是否通过的结果反馈给执行合约。响应于第二交易信息验证不通过,终止对第二交易的处理。
需要说明的是,本实施例中,通过记录区块高度,并使得第二交易携带区块高度,可以帮助监听合约直接从相应高度的第二区块链区块中快速查找第一区块链的区块头,而不需要针对第二区块链的所有区块依次进行查找,提高了区块的查找效率。
在一些可选的实施例中,在步骤2082之前,还可以包括:
通过执行合约确定第二交易是否存在交易限制时长;
响应于存在交易限制时长,确定当前时刻与时间戳之间的时间差值是否小于交易限制时长;其中,第二区块的区块头中还包括第二区块生成对应的时间戳。
此时,步骤2082可以包括:
响应于时间差值不小于交易限制时长,通过第二区块链中的执行合约调用监听合约。
执行合约根据第一交易携带的资产类型标识,查询该资产类型标识对应的资产类型是否存在相应的交易限制时长;其中,交易限制时长是指:资产从买入之日起,规定在一定时间内不得转卖;例如,资产类型标识“SG_Stock”对应的资产是“被收购上市公司的股票”,该资产的交易限制时长是18个月,因此该资产从买入之日起,18个月内不得转卖;又例如,资产类型标识“House”对应的资产是“房产”,该资产的交易限制时长是24个月,因此该资产从买入之日起,24个月内不得转卖。
如果执行合约没有查询到相应的交易限制时长,即,响应于第二交易不存在交易限制时长,则说明相应资产不限制交易时间;此时,执行合约需要进一步检验第一交易对应的资产是否已经被转卖;可选地,步骤2083可以包括:
计算第二交易信息中第一交易信息的哈希,根据第一交易信息的哈希和第一交易对应的默克尔证明,确定默克尔树的根哈希;
根据第二交易信息中的区块高度值,从第二区块链中确定区块高度的取值符合区块高度值的至少一个第三区块;
根据至少一个第三区块对应的第三区块头中是否存在包括默克尔树的根哈希的第三区块头,确定第二交易信息是否通过验证。
具体的检验方式为:执行合约根据第二交易携带的区块高度,从该区块高度对应的第二区块链区块开始,针对区块高度大于或等于该区块高度的每个第二区块链区块(上述第三区块),查询每个第二区块链区块(第三区块)的区块体中是否包含第一交易;如果某一第二区块链区块的区块体中包含第一交易,则说明第一交易对应的资产已经被卖出,该第二区块链区块记录了卖出行为,如此,执行合约终止对第二交易的处理;如果各个第二区块链区块的区块体均不包含第一交易,则说明第一交易对应的资产没有被卖出,如此,执行合约对第二交易进行处理。
本实施例中,执行合约从区块高度对应的第二区块链区块开始,仅对区块高度大于该区块高度的第二区块链区块进行查询,而不是针对第二区块链的所有区块依次进行查询,可以有效降低查询量,提高了查询效率。
如果执行合约查询到相应的交易限制时长,则执行合约根据第二交易携带的区块高度,获得相应区块高度的第二区块链区块,并从该第二区块链区块的区块头中读取时间戳。执行合约根据该时间戳和当前时间,确定两者的时间差值,并判断该时间差值是否超过查询到的交易限制时长;如果不超过,则说明第一交易对应的资产暂时还不能转卖,如此,执行合约终止对第二交易的处理。如果超过(即,响应于时间差值不小于交易限制时长),则说明第一交易对应的资产已经可以转卖了,即可以执行第二交易。
在第一交易对应的资产已经可以转卖的情况下,执行合约需要进一步检验第一交易对应的资产是否已经被转卖。在上述实施例的基础上,步骤210可以包括:
响应于存在包括默克尔树的根哈希的第三区块头,确定第三区块头对应的区块体中是否包括第一交易信息;
响应于第三区块头对应的区块体中包括第一交易信息,通过执行合约停止执行第二交易;
响应于第三区块头对应的区块体中不包括第一交易信息,通过执行合约执行第二交易。
具体的检验方式为:根据区块高度对应的第二区块链区块的时间戳,以及根据查询到的交易限制时长,确定最早可转卖时间;然后从第二区块链的多个区块中,确定最早可转卖时间后的第一个第二区块链区块。接着,从最早可转卖时间后的第一个第二区块链区块开始,针对后续的每个第二区块链区块,查询每个第二区块链区块的区块体中是否包含第一交易;如果某一第二区块链区块的区块体中包含第一交易,则说明第一交易对应的资产已经被卖出,该第二区块链区块记录了卖出行为,如此,执行合约终止对第二交易的处理;如果各个第二区块链区块的区块体均不包含第一交易,则说明第一交易对应的资产没有被卖出,如此,执行合约对第二交易进行处理。
为便于理解,示例性地,假设执行合约查询到相应的交易限制时长为18个月。则执行合约根据第二交易携带的区块高度(假设第二交易携带的区块高度等于1305),从区块高度等于1305的第二区块链区块中读取出区块头的时间戳,假设读取到的时间戳为2019/2/25/18/36/51(即2019年2月25日18点36分51秒),而当前时间为2021/8/3/10/57/55,则时间戳与当前时间的时间差超过了18个月,说明第二交易中包括的第一交易所对应的资产已经可以转卖了。
接着,执行合约在时间戳2019/2/25/18/36/51的基础上,加上18个月,得到最早可转卖时间2020/8/25/18/36/51。然后,执行合约从第二区块链的多个区块中,确定最早可转卖时间2020/8/25/18/36/51之后的第一个第二区块链区块。假设区块高度等于1852的第二区块链区块的区块头中记录的时间戳为2020/8/24/18/31/38,而区块高度等于1853的第二区块链区块的区块头中记录的时间戳为2020/8/25/18/41/09,则将区块高度等于1853的第二区块链区块作为最早可转卖时间2020/8/25/18/36/51之后的第一个第二区块链区块。
如此,针对区块高度等于1853、1854、1855...等后续每个第二区块链区块,查询每个第二区块链区块的区块体中是否包含第一交易;如果某一第二区块链区块的区块体中包含第一交易,则说明第一交易对应的资产已经被卖出,该第二区块链区块记录了卖出行为,如此,执行合约终止对第二交易的处理;如果各个第二区块链区块的区块体均不包含第一交易,则说明第一交易对应的资产没有被卖出,如此,执行合约对第二交易进行处理。
需要说明的是,本实施例中,执行合约通过确定最早可转卖时间,并从最早可转卖时间之后的第一个第二区块链区块开始,仅对后续第二区块链区块进行查询。而不是针对第二区块链的所有区块依次进行查询,也不是从区块高度对应的第二区块链区块开始对后续第二区块链区块进行查询;因此,本实施例进一步降低查询量,提高了查询效率。
此外,执行合约在处理第二交易之后,骨干节点将第二交易提交到主链的跨链合约上,主链的跨链合约对提交的交易进行校验,并进行投票统计达到BFT算法要求的共识个数达成提案成功的共识,表示第二交易成功;第二交易的目标地址所在的区块链监听到需要转发到自己的跨链第二交易,把第二交易提交到自己的跨链合约上,进行第二交易的资产转移等操作,并反馈数据提交到主链的跨链合约中更新跨链交易状态。例如,将交易的一方账户金额扣除、将金额增加至另一方账户,并在完成交易后向用户返回交易成功的结果。
具体实施时,源链和第一区块链可以是同构链、也可以是异构链。跨链时需要在主链注册登记、分配跨链ID等。
在交易共识和验证、跨链操作的过程中,主链的监管节点对所有区块链的节点和数据进行监管,每个从链的骨干节点监管对应从链的区块链节点和数据,由主链的监管节点授权审核。
图7示出了本申请实施例中跨链互操作的交互示意图。
如图7所示,跨链互操作的非事务写入过程可以包括:
步骤1、用户通过第一客户端在第一区块链提交第一交易;
步骤2、预设监听节点监听第一区块链的生成新区块的情况;
步骤3、预设监听节点将监听到的第一区块链的新生成的第一区块的第一区块头写入第二区块链;
步骤4、用户通过第一客户端向第二区块链提交第二交易和第二交易信息(包括第一交易对应的关联数据);
步骤5、第二区块链的执行合约对第一交易的第一区块头进行默克尔证明;
步骤6、验证通过后执行第二交易并向第一客户端返回执行结果。
例如,以下为一个具体实例,该具体实例仅为一个应用示例,不用于限制本申请的保护范围。
假设用户A为第一区块链上的注册用户,同时用户A也是第二区块链上的注册用户。
用户A向其所在的第一区块链发送购买某商品的交易(对应上述实施例中的第一交易);
第一区块链的服务节点对该交易进行共识,共识成功后,进行区块打包,生成最新区块(对应上述实施例中的第一区块);
预设监听节点持续监听第一区块链的区块情况,当监听到有新区块时,将最新区块的区块头写入到第二区块链中;
第二区块链存储该用户购买某商品的交易的区块头;
用户向其所在的第二区块链发送卖出该商品的交易(对应上述实施例中的第二交易);
第二区块链验证之前用户购买该商品的交易是否存在,即验证用户购买该商品的交易的区块头;
验证通过,第二区块链确定该用户合法持有该商品,可以执行卖出该商品的交易;
第二区块链的服务节点对该卖出该商品的交易进行共识,共识成功后,进行区块打包,生成最新区块写入账本;
第二区块链返回用户执行成功的消息,即该商品成功售出。
本申请实施例提出了一种交易存在性验证的方法,在不同链同时有注册账户的用户发起交易时,先向第一区块链发起第一交易,将第一交易的区块头写入源链,当用户在第二区块链发起第二交易时,第二区块链通过第一交易的区块头进行交易存在性验证,进一步确保交易的安全性。
本公开实施例提供的任一种跨链非事务性写入方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种跨链非事务性写入方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种跨链非事务性写入方法。下文不再赘述。
示例性装置
图8是本公开一示例性实施例提供的跨链非事务性写入装置的结构示意图。如图8所示,本实施例提供的装置包括:
第一区块模块81,用于通过第一区块链中的预设监听节点监听第一区块链,响应于监听到第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链。
其中,第一区块基于在第一区块链中执行第一交易生成。
第二区块模块82,用于基于第一区块头在第二区块链中生成第二区块,将第二区块对应的第二区块头发送给第一客户端。
数据存储模块83,用于在第一客户端将第二区块头与第一交易对应的第一交易信息和第一交易对应的默克尔证明进行关联存储,得到第一交易对应的关联数据。
信息验证模块84,用于通过第一客户端向第二区块链发起第二交易,并对第二交易对应的第二交易信息进行验证。
其中,第二交易信息包括第一交易对应的关联数据。
交易执行模块85,用于响应于第二交易信息验证通过,执行第二交易,并向第一客户端反馈执行结果。
本公开上述实施例提供的一种跨链非事务性写入装置,通过在第一客户端中存储第一交易的关联信息,并通过对第一交易的关联信息的验证来确定是否执行第二交易,提高了跨链互操作的安全性。
在一些可选的实施例中,本实施例中的装置还包括:
第一交易模块,用于通过第一客户端接收第一交易,在第一区块链中通过多个节点对第一交易进行处理,得到第一交易信息和默克尔证明;
第一处理结果模块,用于基于第一交易的处理结果生成第一区块,并将第一交易信息和默克尔证明发送给第一客户端。
可选地,第一处理结果模块,具体用于基于第一交易执行后得到的交易哈希,和默克尔证明中包括的默克尔树的部分树节点哈希,确定默克尔树的根哈希;将根哈希作为第一区块的区块哈希存入第一区块的第一区块头,生成第一区块。
在一些可选的实施例中,第一区块模块81,具体用于通过预设监听节点对第一区块链进行监听;响应于监听到第一区块链中生成第一区块,将第一区块链中新增的第一区块的第一区块头,通过预设加密方法进行加密处理,得到加密后的第一区块头;将加密后的第一区块头和预设加密方法通过主链发送到第二区块链。
在一些可选的实施例中,第二区块模块82,具体用于通过跨链协议将跨链提案提交到第二区块链中的跨链合约中;其中,跨链提案中包括第一交易信息和第一区块的区块头;基于跨链合约对跨链提案进行校验,通过校验后,基于第一区块头存入第二区块的区块体,将第二区块的区块高度值存入第二区块的第二区块头,得到第二区块;将第二区块对应的第二区块头发送给第一客户端。
在一些可选的实施例中,信息验证模块84,具体用于通过第一客户端向第二区块链发起第二交易;通过第二区块链中的执行合约调用监听合约;通过监听合约对第二交易信息进行验证。
可选地,第二区块的区块头中还包括第二区块生成对应的时间戳;
信息验证模块84还用于通过执行合约确定第二交易是否存在交易限制时长;响应于存在交易限制时长,确定当前时刻与时间戳之间的时间差值是否小于交易限制时长;响应于时间差值不小于交易限制时长,通过第二区块链中的执行合约调用监听合约。
可选地,信息验证模块84通过监听合约对第二交易信息进行验证时,用于计算第二交易信息中第一交易信息的哈希,根据第一交易信息的哈希和第一交易对应的默克尔证明,确定默克尔树的根哈希;根据第二交易信息中的区块高度值,从第二区块链中确定区块高度的取值符合区块高度值的至少一个第三区块;根据至少一个第三区块对应的第三区块头中是否存在包括默克尔树的根哈希的第三区块头,确定第二交易信息是否通过验证。
可选地,交易执行模块85,具体用于响应于存在包括默克尔树的根哈希的第三区块头,确定第三区块头对应的区块体中是否包括第一交易信息;响应于第三区块头对应的区块体中包括第一交易信息,通过执行合约停止执行第二交易;响应于第三区块头对应的区块体中不包括第一交易信息,通过执行合约执行第二交易。
在一些可选的实施例中,本实施例提供的装置还包括:
交易终止模块,用于响应于第二交易信息验证不通过,终止对第二交易的处理。
图9示出了本申请实施例中跨链体系架构的示意图。
如图9所示,本申请实施例所提供的跨链体系架构可以包括主链、源链(即第二区块链)、目标链(即第一区块链),源链和目标链为两条从链,在进行跨链互操作的非事务写入时,即,两个从链之间需要进行跨链互操作的非事务写入(包括:数据同步和交易存在性验证等)操作,假设某一用户既是源链上的用户又是目标链上的用户,当该用户想要在任一区块链上进行交易时,需要另一条链进行交易验证。
例如:用户想要在源链上进行交易,需要先向目标链提交用于验证的信息,然后源链在收到交易时,通过对用于验证的信息进行验证来实现目标链数据的交易存在性验证。
示例性电子设备
下面,参考图10来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图10图示了根据本公开实施例的电子设备的框图。
如图10所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本公开的各个实施例的跨链非事务性写入方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备或第二设备时,该输入装置13可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置13可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图10中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的跨链非事务性写入方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的跨链非事务性写入方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (13)
1.一种跨链非事务性写入方法,其特征在于,包括:
通过第一区块链中的预设监听节点监听所述第一区块链,响应于监听到所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链;其中,所述第一区块基于在所述第一区块链中执行第一交易生成;
基于所述第一区块头在所述第二区块链中生成第二区块,将所述第二区块对应的第二区块头发送给第一客户端;
在所述第一客户端,将所述第二区块头与所述第一交易对应的第一交易信息和所述第一交易对应的默克尔证明进行关联存储,得到所述第一交易对应的关联数据;
通过所述第一客户端向所述第二区块链发起第二交易,并对所述第二交易对应的第二交易信息进行验证;其中,所述第二交易信息包括所述第一交易对应的关联数据;
响应于所述第二交易信息验证通过,执行所述第二交易,并向所述第一客户端反馈执行结果。
2.根据权利要求1所述的方法,其特征在于,在通过第一区块链中的预设监听节点监听所述第一区块链,响应于监听到所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链之前,还包括:
通过所述第一客户端接收第一交易,在所述第一区块链中通过多个节点对所述第一交易进行处理,得到所述第一交易信息和所述默克尔证明;
基于所述第一交易的处理结果生成所述第一区块,并将所述第一交易信息和所述默克尔证明发送给所述第一客户端。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一交易的处理结果生成所述第一区块,包括:
基于所述第一交易执行后得到的交易哈希,和所述默克尔证明中包括的默克尔树的部分树节点哈希,确定所述默克尔树的根哈希;
将所述根哈希作为所述第一区块的区块哈希存入所述第一区块的第一区块头,生成所述第一区块。
4.根据权利要求1所述的方法,其特征在于,所述通过第一区块链中的预设监听节点监听所述第一区块链,响应于监听到所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链,包括:
通过所述预设监听节点对所述第一区块链进行监听;
响应于监听到所述第一区块链中生成第一区块,将所述第一区块链中新增的第一区块的第一区块头,通过预设加密方法进行加密处理,得到加密后的第一区块头;
将所述加密后的第一区块头和所述预设加密方法通过主链发送到所述第二区块链。
5.根据权利要求1-4任一所述的方法,其特征在于,所述基于所述第一区块头在所述第二区块链中生成第二区块,将所述第二区块对应的第二区块头发送给第一客户端,包括:
通过跨链协议将跨链提案提交到第二区块链中的跨链合约中;其中,所述跨链提案中包括所述第一交易信息和所述第一区块的区块头;
基于所述跨链合约对所述跨链提案进行校验,通过校验后,基于所述第一区块头存入所述第二区块的区块体,将所述第二区块的区块高度值存入所述第二区块的第二区块头,得到所述第二区块;
将所述第二区块对应的第二区块头发送给所述第一客户端。
6.根据权利要求5所述的方法,其特征在于,所述通过所述第一客户端向所述第二区块链发起第二交易,并对所述第二交易对应的第二交易信息进行验证,包括:
通过所述第一客户端向所述第二区块链发起第二交易;
通过所述第二区块链中的执行合约调用监听合约;
通过所述监听合约对所述第二交易信息进行验证。
7.根据权利要求6所述的方法,其特征在于,所述第二区块的区块头中还包括所述第二区块生成对应的时间戳;
在通过所述第二区块链中的执行合约调用监听合约之前,还包括:
通过执行合约确定所述第二交易是否存在交易限制时长;
响应于存在所述交易限制时长,确定当前时刻与所述时间戳之间的时间差值是否小于所述交易限制时长;
所述通过所述第二区块链中的执行合约调用监听合约,包括:
响应于所述时间差值不小于所述交易限制时长,通过所述第二区块链中的执行合约调用监听合约。
8.根据权利要求7所述的方法,其特征在于,所述通过所述监听合约对所述第二交易信息进行验证,包括:
计算所述第二交易信息中第一交易信息的哈希,根据所述第一交易信息的哈希和所述第一交易对应的默克尔证明,确定默克尔树的根哈希;
根据所述第二交易信息中的区块高度值,从所述第二区块链中确定区块高度的取值符合所述区块高度值的至少一个第三区块;
根据所述至少一个第三区块对应的第三区块头中是否存在包括所述默克尔树的根哈希的第三区块头,确定所述第二交易信息是否通过验证。
9.根据权利要求8所述的方法,其特征在于,所述响应于所述第二交易信息验证通过,执行所述第二交易,包括:
响应于存在包括所述默克尔树的根哈希的第三区块头,确定所述第三区块头对应的区块体中是否包括所述第一交易信息;
响应于所述第三区块头对应的区块体中包括所述第一交易信息,通过所述执行合约停止执行所述第二交易;
响应于所述第三区块头对应的区块体中不包括所述第一交易信息,通过所述执行合约执行所述第二交易。
10.根据权利要求1-4任一所述的方法,其特征在于,还包括:
响应于所述第二交易信息验证不通过,终止对所述第二交易的处理。
11.一种跨链非事务性写入装置,其特征在于,包括:
第一区块模块,用于通过第一区块链中的预设监听节点监听所述第一区块链,响应于监听到所述第一区块链中生成第一区块,将所述第一区块的第一区块头发送到第二区块链;其中,所述第一区块基于在所述第一区块链中执行第一交易生成;
第二区块模块,用于基于所述第一区块头在所述第二区块链中生成第二区块,将所述第二区块对应的第二区块头发送给第一客户端;
数据存储模块,用于在所述第一客户端将所述第二区块头与所述第一交易对应的第一交易信息和所述第一交易对应的默克尔证明进行关联存储,得到所述第一交易对应的关联数据;
信息验证模块,用于通过所述第一客户端向所述第二区块链发起第二交易,并对所述第二交易对应的第二交易信息进行验证;其中,所述第二交易信息包括所述第一交易对应的关联数据;
交易执行模块,用于响应于所述第二交易信息验证通过,执行所述第二交易,并向所述第一客户端反馈执行结果。
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-10任一所述的跨链非事务性写入方法。
13.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-10任一所述的跨链非事务性写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210677253.7A CN114782045B (zh) | 2022-06-16 | 2022-06-16 | 跨链非事务性写入方法和装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210677253.7A CN114782045B (zh) | 2022-06-16 | 2022-06-16 | 跨链非事务性写入方法和装置、存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114782045A CN114782045A (zh) | 2022-07-22 |
CN114782045B true CN114782045B (zh) | 2022-08-23 |
Family
ID=82421930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210677253.7A Active CN114782045B (zh) | 2022-06-16 | 2022-06-16 | 跨链非事务性写入方法和装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114782045B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401260B (zh) * | 2023-06-09 | 2023-09-01 | 深圳前海环融联易信息科技服务有限公司 | 物品的nft信息树构建方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159293A (zh) * | 2019-12-25 | 2020-05-15 | 杭州加密矩阵科技有限公司 | 一种基于轻节点技术的跨链信息验证方法 |
CN111914021A (zh) * | 2020-07-02 | 2020-11-10 | 连连智能科技有限公司 | 一种跨区块链的交互方法、系统、计算机设备及存储介质 |
CN113179273A (zh) * | 2021-04-29 | 2021-07-27 | 杭州丽冠科技有限公司 | 基于区块链侧链的区块头验证方法、装置和计算机可读存储介质 |
CN114579595A (zh) * | 2022-05-06 | 2022-06-03 | 中国信息通信研究院 | 数据写入方法和装置、计算机可读存储介质、电子设备 |
-
2022
- 2022-06-16 CN CN202210677253.7A patent/CN114782045B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159293A (zh) * | 2019-12-25 | 2020-05-15 | 杭州加密矩阵科技有限公司 | 一种基于轻节点技术的跨链信息验证方法 |
CN111914021A (zh) * | 2020-07-02 | 2020-11-10 | 连连智能科技有限公司 | 一种跨区块链的交互方法、系统、计算机设备及存储介质 |
CN113179273A (zh) * | 2021-04-29 | 2021-07-27 | 杭州丽冠科技有限公司 | 基于区块链侧链的区块头验证方法、装置和计算机可读存储介质 |
CN114579595A (zh) * | 2022-05-06 | 2022-06-03 | 中国信息通信研究院 | 数据写入方法和装置、计算机可读存储介质、电子设备 |
Non-Patent Citations (2)
Title |
---|
Horizon: A Gas-Efficient, Trustless Bridge for Cross-Chain Transactions;Rongjian Lan等;《arXiv:2101.06000v1[cs.CR]》;20210115;全文 * |
区块链跨链协议综述;孟博等;《计算机科学与探索》;20220429;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114782045A (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810006B (zh) | 资源访问方法、装置、设备及存储介质 | |
CN108665372B (zh) | 基于区块链的信息处理、查询、储存方法和装置 | |
CN109495592B (zh) | 数据协同方法及电子设备 | |
CN108923908B (zh) | 授权处理方法、装置、设备及存储介质 | |
TW202024944A (zh) | 資料共享方法、裝置及系統、電子設備 | |
CN110620810A (zh) | 在区块链上的连续资产转移的非链接所有权 | |
WO2021082340A1 (zh) | 数据处理方法、装置、系统和存储介质 | |
CN114579595B (zh) | 数据写入方法和装置、计算机可读存储介质、电子设备 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN114612103B (zh) | 跨区块链交易的方法、装置、系统、介质及电子设备 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
US20230325833A1 (en) | Blockchain-based data processing method and apparatus, device, storage medium, and program product | |
CN114567643A (zh) | 跨区块链的数据流转方法、装置及相关设备 | |
CN114782045B (zh) | 跨链非事务性写入方法和装置、存储介质、电子设备 | |
CN111475778A (zh) | 一种基于区块链的音乐数据处理方法及装置 | |
CN115589298B (zh) | 区块链的信息验证方法、装置和系统、设备、介质 | |
CN114329097B (zh) | 批量注册产品标识的方法和装置、电子设备和存储介质 | |
US10963889B2 (en) | Cross-system object tracking platform | |
KR20240128913A (ko) | 스마트 계약 이벤트를 저장하는 방법 및 시스템 | |
US20230009460A1 (en) | Trail recording system and data verification method | |
CN116028982A (zh) | 基于非同质化通证的处理方法、装置及系统 | |
CN112513908A (zh) | 数字资产转移系统 | |
CN112416981A (zh) | 基于区块链的数据处理方法、装置、电子设备及存储介质 | |
CN111626735B (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 |