应用于联盟链的交易回执查询方法及系统技术方案

技术编号:33895776 阅读:63 留言:0更新日期:2022-06-22 17:32
本申请提供了一种应用于联盟链的交易回执查询方法及系统。所述交易回执查询方法根据目标通道的通道参数构造交易回执查询体,将交易回执查询体放入至延迟队列;当系统时间大于等于查询触发时间,从延迟队列中拿取交易回执查询体,并从目标通道中获取对应的上链结果。若未查询到上链结果,则查询次数自增一次,并根据预设时间更新模型计算下一次的查询触发时间,将更新后的交易回执查询体放入延迟队列,等待下一次查询触发。所述交易回执查询方法根据不同通道的通道参数以及实时交易吞吐量等因素来动态灵活调整交易查询的间隔时间,达到自动化确认交易上链结果的目的,同时节省了系统资源。了系统资源。了系统资源。

【技术实现步骤摘要】
应用于联盟链的交易回执查询方法及系统


[0001]本申请涉及区块链
,特别涉及应用于联盟链的交易回执查询方法及系统。

技术介绍

[0002]联盟链作为区块链3.0的代表,通过引入节点准入机制以及使用效率更高的BFT(Byzantine Fault Tolerance,拜占庭容错)类算法,提高了链的吞吐量以及处理效率。在联盟链中,根据涉及业务场景的不同,各个节点会被划分至不同的通道中,每个通道对应一项业务场景。
[0003]当用户端向某条通道发送交易的时候,该交易首先会被放入到该通道的交易池中,并返回一个可供客户端查询交易执行结果的交易哈希值。当该交易被通道上的某个节点打包进区块,并且经过通道上至少2/3节点的共识确认,该交易才可以被写入到共享账本,成为区块链上的一条不可篡改的记录。这意味着在联盟链中交易的执行和确认是异步的,从交易的发送到交易执行和上链需要经过至少一个出块间隔的等待时间。
[0004]在目前的联盟链系统中,比较关注业务的上链操作是否拿到交易哈希值。而在拿到交易哈希值后,往往没有对交易是否被成功执行以及是否被及时上链进行确认。在查询交易是否成功上链时,目前一般采用轮询的方式进行查询。但在高吞吐量的情况下,上述查询方法会占用联盟链系统的很多资源,严重影响联盟链系统的性能。

技术实现思路

[0005]为了解决目前采用的轮询的查询方法在高吞吐量的情况下,会占用联盟链系统的很多资源,严重影响联盟链系统性能的问题,本申请通过以下方面提供一种应用于联盟链的交易回执查询方法及系统
[0006]本申请的第一方面提供了一种应用于联盟链的交易回执查询方法。所述交易回执查询方法应用于交易回执查询系统中,所述交易回执查询系统用于根据目标交易的交易哈希值获取所述目标交易的上链结果;所述交易回执查询方法包括:获取目标通道的通道参数,其中,目标通道为目标交易所在的通道,通道参数包括通道标识、以及出块时间间隔;根据目标交易的交易哈希值和通道参数,生成交易回执查询体,并将交易回执查询体放入延迟队列;其中,交易回执查询体包括通道标识、交易哈希值、出块时间间隔、查询触发时间、查询次数,延迟队列中按照查询触发时间的先后对至少一个目标交易对应的至少一个交易回执查询体排序,查询触发时间根据出块时间间隔和查询次数按照预设时间更新模型计算得到;当系统时间大于或者等于查询触发时间时,从延迟队列中拿取交易回执查询体;根据交易回执查询体从目标通道中获取目标交易的上链结果;若没有查询到上链结果,则将交易回执查询体中的查询次数增加一次,并更新交
易回执查询体中的查询触发时间,将更新后的交易回执查询体放入延迟队列。
[0007]在一些实施例中,交易回执查询体还包括最大查询次数;若查询次数大于最大查询次数,则终止执行当前交易回执查询方法,并在延迟队列中删除交易回执查询体。
[0008]在一些实施例中,预设时间更新模型为:triggerTime=nowTime+a
×
delayInterval
×
(2^n)+b,其中,triggerTime为查询触发时间,nowTime为当前系统时间,delayInterval为出块时间间隔,a、b为常数,n为查询次数。
[0009]在一些实施例中,预设时间更新模型为:triggerTime=nowTime+a
×
delayInterval
×
(n+1)+b,其中,triggerTime为查询触发时间,nowTime为当前系统时间,delayInterval为出块时间间隔,a、b为常数,n为查询次数。
[0010]在一些实施例中,预设时间更新模型为:triggerTime=nowTime+a
×
delayInterval
×
log2(n+2)+b,其中,triggerTime为查询触发时间,nowTime为当前系统时间,delayInterval为出块时间间隔,a、b为常数,n为查询次数。
[0011]在一些实施例中,根据交易回执查询体从目标通道中获取目标交易的上链结果,包括:根据交易回执查询体中的通道标识获取目标通道的可用节点列表,其中,可用节点列表根据目标通道中的所有节点连接实体去除节点黑名单中的所有节点连接实体得到,节点连接实体用于调用对应的节点对通道进行操作;从可用节点列表中获取第一节点连接实体,其中,第一节点连接实体是可用节点列表中的任一个节点连接实体;使用第一节点连接实体调用对应的节点向目标通道发送交易回执查询请求,获取目标交易的上链结果;若目标通道在预设时间内没有返回目标交易的上链结果,则将第一节点连接实体加入到节点黑名单,更新可用节点列表,并继续执行从可用节点列表中获取第一节点连接实体的步骤。
[0012]在一些实施例中,若上链结果为对应的节点被冻结或者移除,则将第一节点连接实体加入到节点黑名单,更新可用节点列表,并继续执行从可用节点列表中获取第一节点连接实体的步骤。
[0013]在一些实施例中,使用节点黑名单中的第二节点连接实体向目标通道发送连接请求,其中,第二节点连接实体是节点黑名单的任一个节点连接实体;若目标通道反馈对应于连接请求的信息,则将第二节点连接实体从节点黑名单中删除。
[0014]本申请第二方面提供一种应用于联盟链的交易回执查询系统。所述交易回执查询系统用于执行本申请第一方面提供的应用于联盟链的交易回执查询方法;所述回执查询系统包括:参数获取模块,用于获取目标通道的通道参数,其中,目标通道为目标交易所在的
通道,通道参数包括通道标识、以及出块时间间隔;查询体生成模块,用于根据目标交易的交易哈希值和通道参数,生成交易回执查询体,并将交易回执查询体放入延迟队列模块;其中,交易回执查询体包括通道标识、交易哈希值、出块时间间隔、查询触发时间、查询次数,查询触发时间根据出块时间间隔和查询次数按照预设时间更新模型计算得到;延迟队列模块用于存放交易回执查询体,并按照查询触发时间的先后对至少一个目标交易对应的至少一个交易回执查询体排序;查询执行模块,用于执行以下操作:当系统时间大于或者等于查询触发时间时,从延迟队列模块中拿取交易回执查询体;根据交易回执查询体从目标通道中获取目标交易的上链结果;若没有查询到上链结果,则将交易回执查询体中的查询次数增加一次,并更新交易回执查询体中的查询触发时间,将更新后的交易回执查询体放入延迟队列模块。
[0015]在一些实施例中,查询执行模块还用于执行以下操作:根据交易回执查询体中的通道标识获取目标通道的可用节点列表,其中,可用节点列表根据目标通道中的所有节点连接实体去除节点黑名单中的所有节点连接实体得到,节点连接实体用于调用对应的节点对通道进行操作;从可用节点列表中获取第一节点连接实体,其中,第一节点连接实体是可用节点列表中的任一个节点连接实体;使用第一节点连接实体调用对应的节点向目标通道发送交易回执查询请求,获取目标交易的上链结果;若目标通道在预设时间内没有返回目标交易的上本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于联盟链的交易回执查询方法,其特征在于,所述交易回执查询方法应用于交易回执查询系统中,所述交易回执查询系统用于根据目标交易的交易哈希值获取所述目标交易的上链结果;所述交易回执查询方法包括:获取目标通道的通道参数,其中,所述目标通道为所述目标交易所在的通道,所述通道参数包括通道标识、以及出块时间间隔;根据所述目标交易的交易哈希值和所述通道参数,生成交易回执查询体,并将交易回执查询体放入延迟队列;其中,所述交易回执查询体包括所述通道标识、所述交易哈希值、所述出块时间间隔、查询触发时间、查询次数,所述延迟队列中按照查询触发时间的先后对至少一个目标交易对应的至少一个交易回执查询体排序,所述查询触发时间根据所述出块时间间隔和所述查询次数按照预设时间更新模型计算得到;当系统时间大于或者等于所述查询触发时间时,从所述延迟队列中拿取所述交易回执查询体;根据所述交易回执查询体从所述目标通道中获取所述目标交易的上链结果;若没有查询到所述上链结果,则将交易回执查询体中的查询次数增加一次,并更新交易回执查询体中的查询触发时间,将更新后的交易回执查询体放入所述延迟队列。2.根据权利要求1所述的交易回执查询方法,其特征在于,所述交易回执查询体还包括最大查询次数;若所述查询次数大于所述最大查询次数,则终止执行当前所述交易回执查询方法,并在所述延迟队列中删除所述交易回执查询体。3.根据权利要求1所述的交易回执查询方法,其特征在于,所述预设时间更新模型为:triggerTime=nowTime+a
×
delayInterval
×
(2^n)+b,其中,triggerTime为所述查询触发时间,nowTime为当前系统时间,delayInterval为所述出块时间间隔,a、b为常数,n为查询次数。4.根据权利要求1所述的交易回执查询方法,其特征在于,所述预设时间更新模型为:triggerTime=nowTime+a
×
delayInterval
×
(n+1)+b,其中,triggerTime为所述查询触发时间,nowTime为当前系统时间,delayInterval为所述出块时间间隔,a、b为常数,n为查询次数。5.根据权利要求1所述的交易回执查询方法,其特征在于,所述预设时间更新模型为:triggerTime=nowTime+a
×
delayInterval
×
log2(n+2) + b,其中,triggerTime为所述查询触发时间,nowTime为当前系统时间,delayInterval为所述出块时间间隔,a、b为常数,n为查询次数。6.根据权利要求1所述的交易回执查询方法,其特征在于,根据所述交易回执查询体从所述目标通道中获取所述目标交易的上链结果,包括:根据所述交易回执查询体中的所述通道标识获取所述目标通道的可用节点列表,其中,所述可用节点列表根据所述目标通道中的所有节点连接实体去除节点黑名单中的所有节点连接实体得到,所述节点连接实体用于调用对应的节点对通道进行操作;从所述可用节点列表中获取第一节点连接实体,其中,...

【专利技术属性】
技术研发人员:石宁吴怀江甘子荣李达
申请(专利权)人:南京金宁汇科技有限公司
类型:发明
国别省市:

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

1