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

技术编号:28300516 阅读:19 留言:0更新日期:2021-04-30 16:28
本说明书实施例提供了一种提供跨链消息的方法和装置,所述方法由Fabric区块链的背书节点执行,包括:从Fabric区块链中接收第一交易的交易信息,所述第一交易的交易提案中调用所述第一合约、并向所述第一合约提供第一跨链消息;确定所述第一交易的执行状态;在确定所述第一交易可成功执行的情况中,在所述第一合约的账户状态中的消息队列中记录所述第一跨链消息;从客户端节点接收第二交易的交易提案,所述第二交易中调用所述第一合约中的查询函数;预执行所述第二交易,以从所述消息队列中读取所述第一跨链消息;生成所述第二交易的读写集,所述读写集中包括所述第一跨链消息;将所述第二交易的读写集发送给所述客户端节点。

【技术实现步骤摘要】
提供跨链消息的方法和装置
本说明书实施例涉及区块链
,更具体地,涉及一种在Fabric区块链中提供跨链消息的方法和装置、以及在Fabric区块链中获取跨链消息的方法和装置。
技术介绍
区块链技术也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。随着区块链技术的火热,出现了许多不同类型的链,应用在金融、健康医疗、供应链、资产管理和溯源等领域。当前,如何能让不同类型的链协同合作实现价值的流通是一个重要的探索方向。在已有的跨链技术中,通常通过读取区块链账本中的区块数据而获取由该区块链中的账户向链外发送的跨链消息。例如,在HyperledgerFabric区块链(下文简称为Fabric区块链)中,每个对等节点都存储有全量的、一致的账本数据。对等节点具有系统自带的查询链码(QuerySystemChaincode,qscc),当对等节点需要查询账本数据时,可通过调用该qscc系统链码,查询本地区块数据。然而,当链下用户希望查询通道中的目标区块数据时,链下用户需要启动一个对等节点以用于查询Fabric区块链中的区块数据。因此,需要一种更有效的跨链传递消息的方案。
技术实现思路
本说明书实施例旨在提供一种更有效的跨链传递消息的方案,以解决现有技术中的不足。为实现上述目的,本说明书一个方面提供一种提供跨链消息的方法,所述方法由Fabric区块链的背书节点执行,包括:从Fabric区块链中接收第一交易的交易信息,所述交易信息中包括所述第一交易的交易提案和至少一个读写集,所述第一交易的交易提案中调用所述第一合约、并向所述第一合约提供第一跨链消息;确定所述第一交易的执行状态;在确定所述第一交易可成功执行的情况中,在所述第一合约的账户状态中的消息队列中记录所述第一跨链消息;从客户端节点接收第二交易的交易提案,所述第二交易中调用所述第一合约中的查询函数;预执行所述第二交易,以从所述消息队列中读取所述第一跨链消息;生成所述第二交易的读写集,所述读写集中包括所述第一跨链消息;将所述第二交易的读写集发送给所述客户端节点。在一种实施方式中,所述方法还包括,在将所述第二交易的读写集发送给所述客户端节点之后,从Fabric区块链中接收第二交易的交易信息,所述第二交易的交易信息中包括所述第二交易的交易提案和至少一个读写集;确定所述第二交易的执行状态;在确定所述第二交易可成功执行的情况中,在所述消息队列中更改所述第一跨链消息的状态。在一种实施方式中,所述第一合约中调用用于获取提案发起账户相关信息的预定链码,预执行第二交易还包括,通过预执行所述预定链码获取所述第二交易的提案发起账户,验证所述提案发起账户是否为预定账户,在所述提案发起账户为预定账户的情况中,从所述消息队列中读取所述第一跨链消息。本说明书另一方面提供一种获取跨链消息的方法,所述方法由Fabric区块链的客户端节点执行,包括:向Fabric区块链的至少一个背书节点发送第二交易的交易提案,所述第二交易的交易提案中调用第一合约中的查询函数,所述第一合约的账户状态中包括跨链消息的消息队列,所述查询函数用于读取所述消息队列中的跨链消息;从所述至少一个背书节点分别接收所述第二交易的读写集,各个所述读写集中包括所述消息队列中的第一跨链消息。在一种实施方式中,所述方法还包括,在从所述至少一个对等节点分别接收所述第二交易的读写集之后,基于预定背书策略对各个所述读写集进行验证;在验证通过之后,将第二交易的交易信息发送给所述Fabric区块链中的排序节点,所述第二交易的交易信息包括所述第二交易的交易提案和各个所述读写集。在一种实施方式中,所述第二交易中以查询参数为传入参数调用第一合约中的查询函数,所述查询参数用于指示所述第一跨链消息。在一种实施方式中,向Fabric区块链的至少一个背书节点发送第二交易的交易提案包括,向Fabric区块链的第一背书节点发送第二交易的交易提案,所述第一背书节点中包括TEE。本说明书另一方面提供一种提供跨链消息的装置,所述装置部署于Fabric区块链的背书节点,包括:第一接收单元,配置为,从Fabric区块链中接收第一交易的交易信息,所述交易信息中包括所述第一交易的交易提案和至少一个读写集,所述第一交易的交易提案中调用所述第一合约、并向所述第一合约提供第一跨链消息;第一确定单元,配置为,确定所述第一交易的执行状态;记录单元,配置为,在确定所述第一交易可成功执行的情况中,在所述第一合约的账户状态中的消息队列中记录所述第一跨链消息;第二接收单元,配置为,从客户端节点接收第二交易的交易提案,所述第二交易中调用所述第一合约中的查询函数;预执行单元,配置为,预执行所述第二交易,以从所述消息队列中读取所述第一跨链消息;生成单元,配置为,生成所述第二交易的读写集,所述读写集中包括所述第一跨链消息;发送单元,配置为,将所述第二交易的读写集发送给所述客户端节点。在一种实施方式中,所述装置还包括,第三接收单元,配置为,在将所述第二交易的读写集发送给所述客户端节点之后,从Fabric区块链中接收第二交易的交易信息,所述第二交易的交易信息中包括所述第二交易的交易提案和至少一个读写集;第二确定单元,配置为,确定所述第二交易的执行状态;更改单元,配置为,在确定所述第二交易可成功执行的情况中,在所述消息队列中更改所述第一跨链消息的状态。在一种实施方式中,所述第一合约中调用用于获取提案发起账户相关信息的预定链码,所述预执行单元包括,获取子单元,配置为,通过预执行所述预定链码获取所述第二交易的提案发起账户,验证子单元,配置为,验证所述提案发起账户是否为预定账户,读取子单元,配置为,在所述提案发起账户为预定账户的情况中,从所述消息队列中读取所述第一跨链消息。本说明书另一方面提供一种获取跨链消息的装置,所述装置部署于Fabric区块链的客户端节点,包括:第一发送单元,配置为,向Fabric区块链的至少一个背书节点发送第二交易的交易提案,所述第二交易的交易提案中调用第一合约中的查询函数,所述第一合约的账户状态中包括跨链消息的消息队列,所述查询函数用于读取所述消息队列中的跨链消息;接收单元,配置为,从所述至少一个背书节点分别接收所述第二交易的读写集,各个所述读写集中包括所述消息队列中的第一跨链消息。在一种实施方式中,所述装置还包括,验证单元,配置为,在从所述至少一个对等节点分别接收所述第二交易的读写集之后,基于预定背书策略对各个所述读写集进行验证;第二发送单元,配置为,在验证通过之后,将第二交易的交易信息发送给所述Fabric区块链中的排序节点,所述第二交易的交易信息包括所述第二交易的交易提案和各个所述读写集。在一种实施方式中,所述第二交易中以查询参数为传入参数调用第一合约中的查询函数,所述查询参数用于指示所述第一跨链消息。本文档来自技高网...

【技术保护点】
1.一种提供跨链消息的方法,所述方法由Fabric区块链的背书节点执行,包括:/n从Fabric区块链中接收第一交易的交易信息,所述交易信息中包括所述第一交易的交易提案和至少一个读写集,所述第一交易的交易提案中调用第一合约、并向所述第一合约提供第一跨链消息;/n确定所述第一交易的执行状态;/n在确定所述第一交易可成功执行的情况中,在所述第一合约的账户状态中的消息队列中记录所述第一跨链消息;/n从客户端节点接收第二交易的交易提案,所述第二交易中调用所述第一合约中的查询函数;/n预执行所述第二交易,以从所述消息队列中读取所述第一跨链消息;/n生成所述第二交易的读写集,所述读写集中包括所述第一跨链消息;/n将所述第二交易的读写集发送给所述客户端节点。/n

【技术特征摘要】
1.一种提供跨链消息的方法,所述方法由Fabric区块链的背书节点执行,包括:
从Fabric区块链中接收第一交易的交易信息,所述交易信息中包括所述第一交易的交易提案和至少一个读写集,所述第一交易的交易提案中调用第一合约、并向所述第一合约提供第一跨链消息;
确定所述第一交易的执行状态;
在确定所述第一交易可成功执行的情况中,在所述第一合约的账户状态中的消息队列中记录所述第一跨链消息;
从客户端节点接收第二交易的交易提案,所述第二交易中调用所述第一合约中的查询函数;
预执行所述第二交易,以从所述消息队列中读取所述第一跨链消息;
生成所述第二交易的读写集,所述读写集中包括所述第一跨链消息;
将所述第二交易的读写集发送给所述客户端节点。


2.根据权利要求1所述的方法,还包括,在将所述第二交易的读写集发送给所述客户端节点之后,从Fabric区块链中接收第二交易的交易信息,所述第二交易的交易信息中包括所述第二交易的交易提案和至少一个读写集;确定所述第二交易的执行状态;在确定所述第二交易可成功执行的情况中,在所述消息队列中更改所述第一跨链消息的状态。


3.根据权利要求1或2所述的方法,其中,所述第一合约中调用用于获取提案发起账户相关信息的预定链码,预执行第二交易还包括,通过预执行所述预定链码获取所述第二交易的提案发起账户,验证所述提案发起账户是否为预定账户,在所述提案发起账户为预定账户的情况中,从所述消息队列中读取所述第一跨链消息。


4.一种获取跨链消息的方法,所述方法由Fabric区块链的客户端节点执行,包括:
向Fabric区块链的至少一个背书节点发送第二交易的交易提案,所述第二交易的交易提案中调用第一合约中的查询函数,所述第一合约的账户状态中包括跨链消息的消息队列,所述查询函数用于读取所述消息队列中的跨链消息;
从所述至少一个背书节点分别接收所述第二交易的读写集,各个所述读写集中包括所述消息队列中的第一跨链消息。


5.根据权利要求4所述的方法,还包括,在从所述至少一个对等节点分别接收所述第二交易的读写集之后,基于预定背书策略对各个所述读写集进行验证;在验证通过之后,将第二交易的交易信息发送给所述Fabric区块链中的排序节点,所述第二交易的交易信息包括所述第二交易的交易提案和各个所述读写集。


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


7.根据权利要求4或5所述的方法,其中,向Fabric区块链的至少一个背书节点发送第二交易的交易提案包括,向Fabric区块链的第一背书节点发送第二交易的交易提案,所述第一背书节点中包括TEE。


8.一种提供跨链消息的装置,所述装置部署于Fabric区块链的背书节点,包括:
第一接收单元,配置为,从Fabric区块链中接收第一交易的交易信息,所述交易信息中包括所述第一交易的交易提案和至少一个读写集,所述第一交易的交易提案中调用所述第一合约、并向所述第一合约提供第一跨链消息;
第一确定单元,配置为,确定所述第一交易的执行状态;
记录单元,配置为,在确定所述第一交易可成功执行的情况中,在所述第一合约的账户状态中的消息队列中记录所述第一跨链消息;<...

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

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

1