一种多通道交易凭证异步回调处理组件库、方法和系统技术方案

技术编号:33700797 阅读:15 留言:0更新日期:2022-06-06 08:09
本申请涉及区块链技术领域,提供了一种多通道交易凭证异步回调处理组件库、方法和系统,在第一个方面,本发明专利技术提出了一种通用的多通道交易凭证异步回调组件库,该协议组件库由多个组件组成,这些组件是交易回调整个生命周期不同阶段的抽象,具有灵活性和可组合性。在第二个方面,本发明专利技术基于该协议提出了一种高效解耦的多通道交易回调处理方法,可以稳定且自动化的对交易结果进行不同的业务处理。在第三方面,本发明专利技术提供了一种联盟链的多通道交易凭证回调处理系统。通过本发明专利技术的方法可以方便的操作机构下的所有通道,并且可以在向某个通道发送了交易之后,可以自动的根据交易哈希值来查询交易凭证结果,并根据交易凭证结果做出后续的业务处理。续的业务处理。续的业务处理。

【技术实现步骤摘要】
一种多通道交易凭证异步回调处理组件库、方法和系统


[0001]本申请涉及区块链
,尤其涉及一种多通道交易凭证异步回调处理组件库、方法和系统。

技术介绍

[0002]联盟链中,当机构对某个通道进行了操作,即向该通道发送了交易之后,会实时获取一个交易哈希值,该交易哈希值只是证明了交易进入到了通道的交易池中,并不代表该交易的操作已经写入了账本,所以还需要业务系统根据交易哈希值在等待一段时间之后获取链上交易凭证。只有拿到交易凭证才证明该交易已经上链成功,则该机构可以根据交易凭证的结构来进行后续的业务处理。
[0003]并且,由于区块链是一种P2P的对等网络,即在同一个通道中,发往每个节点的调用是等价的。即机构想要在自己加入的某个通道中发送交易的时候,并不是强制需要将交易发送往本机构的节点,而是发往该通道中的任意一个节点都可以。因此需要对链接节点进行选取,目前联盟链只提供了SDK来进行某个特定节点的连接,但是并不支持通道层面的连接,并且对于如何选取通道中的具体连接节点也没有特定的选取方法。
[0004]因此需要有一种方法可以方便的操作机构下的所有通道,并且可以在向某个通道发送了交易之后,可以自动的根据交易哈希值来查询交易凭证结果,并根据交易凭证结果做出后续的业务处理,并且对链接节点也需要有相应的选取策略。

技术实现思路

[0005]在实际的场景中,一个机构往往不止一条业务线,也就意味该机构的节点同时加入了多个通道中,当该机构在进行不同的业务处理时,需要在不同的通道中进行操作。因此,为解决交易过程中,用户端对所有通道都能进行操作的问题,本专利技术提出了一种应用于联盟链的多通道交易凭证异步回调处理方法及系统。
[0006]本申请实施例第一方面提供了一种多通道交易凭证异步回调处理组件库,包括:通道组件、回调消费管理组件和回调消费任务组件;其中,所述通道组件包括:阻塞队列、通道节点链接池和交易回调处理链。
[0007]所述阻塞队列,用于存放当前通道中所有待处理的交易哈希值。
[0008]所述通道节点链接池,用于存放当前通道下的所有节点链接实体;所述节点链接实体具有访问区块链网络相应节点,并对区块链网络进行操作的能力。
[0009]所述交易回调处理链,由多个根据不同交易凭证类型定义的处理逻辑类组装而成,所述处理逻辑类,用于实现对应的交易类型的具体业务处理流程。
[0010]所述回调消费管理组件,用于对所述回调消费任务组件进行统一管理,所述回调消费管理组件包含多个所述回调消费任务组件,所述回调消费管理组件是一个任务组容器。
[0011]所述回调消费任务组件,每个所述回调消费任务组件都绑定一个任务组线程,所
述任务组线程用于消费所述通道组件中的交易哈希值,并根据交易哈希值获取交易凭证,在拿到交易凭证之后,调用所述通道组件绑定的所述交易回调处理链进行后续业务处理。
[0012]本申请实施例第二方面提供了一种多通道交易凭证异步回调处理方法,应用于由用户端、业务系统以及多通道的区块链网络构成的系统,所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库;包括:初始化步骤、组装步骤和业务处理步骤。
[0013]所述初始化步骤包括:所述业务系统初始化通道节点链接池;所述业务系统按照不同的交易类型分别定义每种交易类型的处理逻辑类。
[0014]所述组装步骤包括:所述业务系统组装交易回调处理链;所述回调模块根据业务系统中通道列表,为每一个通道初始化一个通道组件,并将完成初始化的所述通道节点链接池、完成组装的所述交易回调处理链和阻塞队列与当前通道下的所述通道组件进行绑定;所述回调模块创建回调消费管理组件,并指定其中包括的回调消费任务组件数量,将所述通道组件注册到某一个所述回调消费任务组件中,一个所述回调消费任务组件允许多个所述通道组件进行注册。
[0015]所述业务处理步骤包括:所述业务系统完成所述初始化步骤及所述组装步骤后启动;所述用户端通过所述业务发起模块发起对某个通道的调用命令;所述区块链调用模块接收到所述调用命令后,首先构造合法的交易,然后根据当前通道ID查找到对应的所述通道组件,并从所述通道组件的所述通道节点链接池中,根据节点获取策略拿取节点链接实体,并将所述交易发送至所述区块链网络;所述区块链网络接收所述交易,并根据所述交易生成交易哈希值,将所述交易哈希值发送至所述回调模块;所述回调模块在接收到所述区块链网络返回的所述交易哈希值后,将所述交易哈希值放到对应的所述通道组件的所述阻塞队列中;所述回调模块的所述任务组线程循环扫描已注册在当前所述回调消费任务组件下的所述通道组件列表,如果任意所述通道组件下的所述阻塞队列中存在待消费的所述交易哈希值,则所述任务组线程从所述通道组件下的所述阻塞队列中拿取所述交易哈希值;所述任务组线程在所述通道组件下的所述通道节点链接池中,根据节点获取策略拿取节点链接实体;所述任务组线程通过所述节点链接实体访问区块链网络,并使用所述交易哈希值在所述区块链网络中查询对应的交易凭证,获取到所述交易凭证后,调用所述通道组件中的所述交易回调处理链进行处理,并将处理结果在业务系统数据库中更新。
[0016]进一步的,所述初始化通道节点链接池的方法为:所述业务系统在所述业务系统数据库中查询所述业务系统中使用的所有通道以及通道中所包含的节点信息,其中,所述节点信息包括节点id,节点调用地址、节点访问端口及用于访问的公私钥对;
根据所述节点信息,初始化节点链接实体,当前通道下的多个所述节点链接实体组成所述通道节点链接池。
[0017]进一步的,所述组装交易回调处理链的方法为:所述业务系统将自定义的处理逻辑类加入到所述交易回调处理链中,所述交易回调处理链允许加入的所述处理逻辑类的类型及数量不限,所述处理逻辑类在所述交易回调处理链中的位置、次序也不限。
[0018]进一步的,所述根据节点获取策略拿取节点链接实体的方法为随机策略:所述随机策略为:为列表中的每一个节点链接实体分配一个编号,在调用时使用随机数算法,随机抽取对应编号的节点实体链接。
[0019]进一步的,所述根据节点获取策略拿取节点链接实体的方法为顺序策略:所述顺序策略为:按照节点实体列表编号的顺序,拿取对应的节点链接实体进行使用。
[0020]进一步的,所述根据节点获取策略拿取节点链接实体的方法为可靠性策略:所述可靠性策略为:向每个节点定时发送心跳信号,根据信号的稳定性来选择最稳定的节点链接实体。
[0021]进一步的,所述根据节点获取策略拿取节点链接实体的方法为学习与探索策略:所述学习与探索策略为:每一个拿取节点链接实体进行调用的时候,记录本次调用的时间,在每次选择节点链接实体的时候,以ε的概率随机选择,以1

ε的概率选择调用时间最短的节点链接实体。
[0022]进一步的,所述任务组线程使用交易哈希值在所述区块链网络中查询对应的所述交易凭证,如果没有获取所述交易凭证,则将所述交易哈希值重新放入本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多通道交易凭证异步回调处理组件库,其特征在于,包括:通道组件、回调消费管理组件和回调消费任务组件;其中,所述通道组件包括:阻塞队列、通道节点链接池和交易回调处理链;所述阻塞队列,用于存放当前通道中所有待处理的交易哈希值;所述通道节点链接池,用于存放当前通道下的所有节点链接实体;所述节点链接实体具有访问区块链网络相应节点,并对区块链网络进行操作的能力;所述交易回调处理链,由多个根据不同交易凭证类型定义的处理逻辑类组装而成,所述处理逻辑类,用于实现对应的交易类型的具体业务处理流程;所述回调消费管理组件,用于对所述回调消费任务组件进行统一管理,所述回调消费管理组件包含多个所述回调消费任务组件,所述回调消费管理组件是一个任务组容器;所述回调消费任务组件,每个所述回调消费任务组件都绑定一个任务组线程,所述任务组线程用于消费所述通道组件中的交易哈希值,并根据交易哈希值获取交易凭证,在拿到交易凭证之后,调用所述通道组件绑定的所述交易回调处理链进行后续业务处理。2.一种多通道交易凭证异步回调处理方法,应用于由用户端、业务系统以及多通道的区块链网络构成的系统,所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库;其特征在于,包括:初始化步骤、组装步骤和业务处理步骤;所述初始化步骤包括:所述业务系统初始化通道节点链接池;所述业务系统按照不同的交易类型分别定义每种交易类型的处理逻辑类;所述组装步骤包括:所述业务系统组装交易回调处理链;所述回调模块根据业务系统中通道列表,为每一个通道初始化一个通道组件,并将完成初始化的所述通道节点链接池、完成组装的所述交易回调处理链和阻塞队列,与当前通道下的所述通道组件进行绑定;所述回调模块创建回调消费管理组件,并指定其中包括的回调消费任务组件数量,将所述通道组件注册到某一个所述回调消费任务组件中,一个所述回调消费任务组件允许多个所述通道组件进行注册;所述业务处理步骤包括:所述业务系统完成所述初始化步骤及所述组装步骤后启动;所述用户端通过所述业务发起模块发起对某个通道的调用命令;所述区块链调用模块接收到所述调用命令后,首先构造合法的交易,然后根据当前通道ID查找到对应的所述通道组件,并从所述通道组件的所述通道节点链接池中,根据节点获取策略拿取节点链接实体,并将所述交易发送至所述区块链网络;所述区块链网络接收所述交易,并根据所述交易生成交易哈希值,将所述交易哈希值发送至所述回调模块;所述回调模块在接收到所述区块链网络返回的所述交易哈希值后,将所述交易哈希值放到对应的所述通道组件的所述阻塞队列中;所述回调模块的所述任务组线程循环扫描已注册在当前所述回调消费任务组件下的所述通道组件列表,如果任意所述通道组件下的所述阻塞队列中存在待消费的所述交易哈
希值,则所述任务组线程从所述通道组件下的所述阻塞队列中拿取所述交易哈希值;所述任务组线程在所述通道组件下的所述通道节点链接池中,根据节点获取策略拿取节点链接实体;所述任务组线程通过所述节点链接实体访问区块链网络,并使用所述交易哈希值在所述区块链网络中查询对应的交易凭证,获取到所述交易凭证后,调用所述通道组件中的所述交易回调处理链进行处理,并将处理结果在业务系统数...

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

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

1