提供跨链消息的方法和装置制造方法及图纸

技术编号:28295534 阅读:12 留言:0更新日期:2021-04-30 16:19
本说明书实施例提供了一种提供跨链消息的方法和装置,所述方法由区块链的节点设备执行,包括:获取第一交易,所述第一交易中调用所述第一合约、并向所述第一合约提供第一跨链消息;执行第一交易,以在第一合约的账户状态中的消息队列中记录所述第一跨链消息;获取第二交易,所述第二交易中调用所述第一合约中的查询函数;执行第二交易,以从所述消息队列中读取所述第一跨链消息;生成与所述第二交易对应的第一数据,所述第一数据中包括所述第一跨链消息;将所述第一数据存储到所述区块链中。

【技术实现步骤摘要】
提供跨链消息的方法和装置
本说明书实施例涉及区块链
,更具体地,涉及一种提供跨链消息的方法和装置、以及获取跨链消息的方法和装置。
技术介绍
区块链技术也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。区块链的每笔数据,都会广播到全网的区块链节点,每个全节点都有全量的、一致的数据。随着区块链技术的火热,出现了许多不同类型的链,应用在金融、健康医疗、供应链、资产管理和溯源等领域。当前,如何能让不同类型的链协同合作实现价值的流通是一个重要的探索方向。在已有的跨链技术中,通常通过读取区块链账本中的区块数据而获取由该区块链中的账户向链外发送的跨链消息。因此,需要一种更有效的跨链传递消息的方案。
技术实现思路
本说明书实施例旨在提供一种更有效的传递跨链消息的方案,以解决现有技术中的不足。为实现上述目的,本说明书一个方面提供一种提供跨链消息的方法,所述方法由区块链的节点设备执行,包括:获取第一交易,所述第一交易中调用所述第一合约、并向所述第一合约提供第一跨链消息;执行第一交易,以在第一合约的账户状态中的消息队列中记录所述第一跨链消息;获取第二交易,所述第二交易中调用所述第一合约中的查询函数;执行第二交易,以从所述消息队列中读取所述第一跨链消息;生成与所述第二交易对应的第一数据,所述第一数据中包括所述第一跨链消息;将所述第一数据存储到所述区块链中。在一种实施方式中,执行第二交易还包括,在从所述消息队列中读取所述第一跨链消息之后,在所述消息队列中删除所述第一跨链消息。在一种实施方式中,执行第二交易还包括,验证所述第二交易的发送账户是否为预定账户,在所述第二交易的发送账户为预定账户的情况中,从所述消息队列中读取所述第一跨链消息。在一种实施方式中,所述第一数据为所述第二交易的收据。在一种实施方式中,所述区块链为Fabric链,所述第一数据为所述第二交易的读写集。本说明书另一方面提供一种获取跨链消息的方法,所述方法由链下设备执行,包括:向区块链发送第二交易,所述第二交易中调用第一合约中的查询函数,所述第一合约的账户状态中包括跨链消息的消息队列,所述查询函数用于读取所述消息队列中的跨链消息;从所述区块链中获取与所述第二交易对应的第一数据,所述第一数据中包括所述消息队列中的第一跨链消息。在一种实施方式中,所述方法还包括,在从所述区块链中获取所述第二交易的第一数据之后,从所述区块链获取所述第一数据的证明数据。在一种实施方式中,所述第二交易中以查询参数为传入参数调用第一合约中的查询函数,所述查询参数用于指示所述第一跨链消息。本说明书另一方面提供一种提供跨链消息的装置,所述装置部署于区块链的节点设备,包括:第一获取单元,配置为,获取第一交易,所述第一交易中调用所述第一合约、并向所述第一合约提供第一跨链消息;第一执行单元,配置为,执行第一交易,以在第一合约的账户状态中的消息队列中记录所述第一跨链消息;第二获取单元,配置为,获取第二交易,所述第二交易中调用所述第一合约中的查询函数;第二执行单元,配置为,执行第二交易,以从所述消息队列中读取所述第一跨链消息;生成单元,配置为,生成与所述第二交易对应的第一数据,所述第一数据中包括所述第一跨链消息;存储单元,配置为,将所述第一数据存储到所述区块链中。在一种实施方式中,所述第二执行单元还配置为,在从所述消息队列中读取所述第一跨链消息之后,在所述消息队列中删除所述第一跨链消息。在一种实施方式中,所述第二执行单元还配置为,验证所述第二交易的发送账户是否为预定账户,在所述第二交易的发送账户为预定账户的情况中,从所述消息队列中读取所述第一跨链消息。在一种实施方式中,所述第一数据为所述第二交易的收据。在一种实施方式中,所述区块链为Fabric链,所述第一数据为所述第二交易的读写集。本说明书另一方面提供一种获取跨链消息的装置,所述装置部署于链下设备,包括:发送单元,配置为,向区块链发送第二交易,所述第二交易中调用第一合约中的查询函数,所述第一合约的账户状态中包括跨链消息的消息队列,所述查询函数用于读取所述消息队列中的跨链消息;第一获取单元,配置为,从所述区块链中获取与所述第二交易对应的第一数据,所述第一数据中包括所述消息队列中的第一跨链消息。在一种实施方式中,所述装置还包括,第二获取单元,配置为,在从所述区块链中获取所述第二交易的第一数据之后,从所述区块链获取所述第一数据的证明数据。在一种实施方式中,所述第二交易中以查询参数为传入参数调用第一合约中的查询函数,所述查询参数用于指示所述第一跨链消息。本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述由区块链节点设备执行的任一种方法。本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述由区块链节点设备执行的任一种方法。本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述由链下设备执行的任一种方法。本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述由链下设备执行的任一种方法。在根据本说明书实施例的提供跨链消息的方案中,在消息发送合约的账户状态中保存跨链消息,并通过调用消息发送合约的查询函数来查询账户状态中的跨链消息,提供了一种新颖的查询区块链账本的方法,通过该方法,还可以通过在查询函数设置验证程序,还可以验证查询账户是否为允许的预设账户,从而提高了安全性。附图说明通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:图1示出根据本说明书实施例的跨链系统的示意图;图2示出根据本说明书实施例的提供跨链消息的方法流程图;图3示出交易m的示意图;图4示出收据m中包括的日志示意图;图5示出根据本说明书实施例的一种提供跨链消息的装置500;图6示出根据本说明书实施例的一种获取跨链消息的装置600。具体实施方式下面将结合附图描述本说明书实施例。图1示出根据本说明书实施例的跨链系统的示意图。如图1所示,所述跨链系统中包括区块链11和链下设备12。区块链11中部署有业务合约和消息发送合约,所述业务合约例如为跨链转账合约,并且所述业务合约中包括消息发送合约的调用,所述消息发送合约用于发送跨链消息。当区块链11中的用户希望进行跨链转账时,可通过其设备向区块链11中发送交易1,所述交易1中调用业务合约,并向业务合约传入与转账相关的参数,如接收转账的区块链标识、接收转账的账本文档来自技高网...

【技术保护点】
1.一种提供跨链消息的方法,所述方法由区块链的节点设备执行,包括:/n获取第一交易,所述第一交易中调用第一合约、并向所述第一合约提供第一跨链消息;/n执行第一交易,以在第一合约的账户状态中的消息队列中记录所述第一跨链消息;/n获取第二交易,所述第二交易中调用所述第一合约中的查询函数;/n执行第二交易,以从所述消息队列中读取所述第一跨链消息;/n生成与所述第二交易对应的第一数据,所述第一数据中包括所述第一跨链消息;/n将所述第一数据存储到所述区块链中。/n

【技术特征摘要】
1.一种提供跨链消息的方法,所述方法由区块链的节点设备执行,包括:
获取第一交易,所述第一交易中调用第一合约、并向所述第一合约提供第一跨链消息;
执行第一交易,以在第一合约的账户状态中的消息队列中记录所述第一跨链消息;
获取第二交易,所述第二交易中调用所述第一合约中的查询函数;
执行第二交易,以从所述消息队列中读取所述第一跨链消息;
生成与所述第二交易对应的第一数据,所述第一数据中包括所述第一跨链消息;
将所述第一数据存储到所述区块链中。


2.根据权利要求1所述的方法,执行第二交易还包括,在从所述消息队列中读取所述第一跨链消息之后,在所述消息队列中删除所述第一跨链消息。


3.根据权利要求1所述的方法,其中,执行第二交易还包括,验证所述第二交易的发送账户是否为预定账户,在所述第二交易的发送账户为预定账户的情况中,从所述消息队列中读取所述第一跨链消息。


4.根据权利要求1-3中任一项所述的方法,其中,所述第一数据为所述第二交易的收据。


5.根据权利要求1-3中任一项所述的方法,其中,所述区块链为Fabric链,所述第一数据为所述第二交易的读写集。


6.一种获取跨链消息的方法,所述方法由链下设备执行,包括:
向区块链发送第二交易,所述第二交易中调用第一合约中的查询函数,所述第一合约的账户状态中包括跨链消息的消息队列,所述查询函数用于读取所述消息队列中的跨链消息;
从所述区块链中获取与所述第二交易对应的第一数据,所述第一数据中包括所述消息队列中的第一跨链消息。


7.根据权利要求6所述的方法,还包括,在从所述区块链中获取所述第二交易的第一数据之后,从所述区块链获取所述第一数据的证明数据。


8.根据权利要求6所述的方法,其中,所述第二交易中以查询参数为传入参数调用第一合约中的查询函数,所述查询参数用于指示所述第一跨链消息。


9.一种提供跨链消息的装置,所述装置部署于区块链的节点设备,包括:
第一获取单元,配置为,获取第一交易,所述第一交易中调用所述第一合约、并向所述第一合约提供第一跨链消息;
第一执行单元,配置为,执行第一交易,以在第一合约的账户状态中的消息队列中记录所述第一跨链消息;
第二获取单元,配置为,获取第二交易,所述第二交易中调用所述第一合约中的查询函数;
第二执行单元,配置为,执行第二交易,以从所述消息队列中读取所述第一跨链消息...

【专利技术属性】
技术研发人员:余逸荣
申请(专利权)人:支付宝杭州信息技术有限公司蚂蚁区块链科技上海有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1