CN114581243B - 一种多通道交易凭证异步回调处理方法和系统 - Google Patents
一种多通道交易凭证异步回调处理方法和系统 Download PDFInfo
- Publication number
- CN114581243B CN114581243B CN202210495585.3A CN202210495585A CN114581243B CN 114581243 B CN114581243 B CN 114581243B CN 202210495585 A CN202210495585 A CN 202210495585A CN 114581243 B CN114581243 B CN 114581243B
- Authority
- CN
- China
- Prior art keywords
- transaction
- channel
- callback
- node
- processing
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及区块链技术领域,提供了一种多通道交易凭证异步回调处理方法和系统,在第一个方面,本发明提出了一种高效解耦的多通道交易回调处理方法,可以稳定且自动化的对交易结果进行不同的业务处理。在第二方面,本发明提供了一种联盟链的多通道交易凭证回调处理系统。通过本发明的方法可以方便的操作机构下的所有通道,并且可以在向某个通道发送了交易之后,可以自动的根据交易哈希值来查询交易凭证结果,并根据交易凭证结果做出后续的业务处理。在第三个方面,本发明还提出了一种通用的多通道交易系统,该交易系统由多个组件组成,这些组件是交易回调整个生命周期不同阶段的抽象,具有灵活性和可组合性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种多通道交易凭证异步回调处理方法和系统。
背景技术
联盟链中,当机构对某个通道进行了操作,即向该通道发送了交易之后,会实时获取一个交易哈希值,该交易哈希值只是证明了交易进入到了通道的交易池中,并不代表该交易的操作已经写入了账本,所以还需要业务系统根据交易哈希值在等待一段时间之后获取链上交易凭证。只有拿到交易凭证才证明该交易已经上链成功,则该机构可以根据交易凭证的结构来进行后续的业务处理。
并且,由于区块链是一种P2P的对等网络,即在同一个通道中,发往每个节点的调用是等价的。即机构想要在自己加入的某个通道中发送交易的时候,并不是强制需要将交易发送往本机构的节点,而是发往该通道中的任意一个节点都可以。因此需要对链接节点进行选取,目前联盟链只提供了SDK来进行某个特定节点的连接,但是并不支持通道层面的连接,并且对于如何选取通道中的具体连接节点也没有特定的选取方法。
因此需要有一种方法可以方便的操作机构下的所有通道,并且可以在向某个通道发送了交易之后,可以自动的根据交易哈希值来查询交易凭证结果,并根据交易凭证结果做出后续的业务处理,并且对链接节点也需要有相应的选取策略。
发明内容
在实际的场景中,一个机构往往不止一条业务线,也就意味该机构的节点同时加入了多个通道中,当该机构在进行不同的业务处理时,需要在不同的通道中进行操作。因此,为解决交易过程中,用户端对所有通道都能进行操作的问题,本发明提出了一种应用于联盟链的多通道交易凭证异步回调处理方法及系统。
本申请实施例第一方面提供了一种多通道交易凭证异步回调处理方法,应用于由用户端、业务系统以及多通道的区块链网络构成的系统,所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库;包括:初始化步骤、组装步骤和业务处理步骤。
所述初始化步骤包括:
所述业务系统初始化通道节点链接池;
所述业务系统按照不同的交易类型分别定义每种交易类型的处理逻辑类。
所述组装步骤包括:
所述业务系统组装交易回调处理链;
所述回调模块根据业务系统中通道列表,为每一个通道初始化一个通道组件,并将完成初始化的所述通道节点链接池、完成组装的所述交易回调处理链和阻塞队列与当前通道下的所述通道组件进行绑定;
所述回调模块创建回调消费管理组件,并指定其中包括的回调消费任务组件数量,将所述通道组件注册到某一个所述回调消费任务组件中,一个所述回调消费任务组件允许多个所述通道组件进行注册。
所述业务处理步骤包括:
所述业务系统完成所述初始化步骤及所述组装步骤后启动;
所述用户端通过所述业务发起模块发起对某个通道的调用命令;
所述区块链调用模块接收到所述调用命令后,首先构造合法的交易,然后根据当前通道ID查找到对应的所述通道组件,并从所述通道组件的所述通道节点链接池中,根据节点获取策略拿取节点链接实体,并将所述交易发送至所述区块链网络;
所述区块链网络接收所述交易,并根据所述交易生成交易哈希值,将所述交易哈希值发送至所述回调模块;
所述回调模块在接收到所述区块链网络返回的所述交易哈希值后,将所述交易哈希值放到对应的所述通道组件的所述阻塞队列中;
所述回调模块的任务组线程循环扫描已注册在当前所述回调消费任务组件下的所述通道组件列表,如果任意所述通道组件下的所述阻塞队列中存在待消费的所述交易哈希值,则所述任务组线程从所述通道组件下的所述阻塞队列中拿取所述交易哈希值;
所述任务组线程在所述通道组件下的所述通道节点链接池中,根据节点获取策略拿取节点链接实体;
所述任务组线程通过所述节点链接实体访问区块链网络,并使用所述交易哈希值在所述区块链网络中查询对应的交易凭证,获取到所述交易凭证后,调用所述通道组件中的所述交易回调处理链进行处理,并将处理结果在业务系统数据库中更新。
进一步的,所述初始化通道节点链接池的方法为:
所述业务系统在所述业务系统数据库中查询所述业务系统中使用的所有通道以及通道中所包含的节点信息,其中,所述节点信息包括节点id,节点调用地址、节点访问端口及用于访问的公私钥对;
根据所述节点信息,初始化节点链接实体,当前通道下的多个所述节点链接实体组成所述通道节点链接池。
进一步的,所述组装交易回调处理链的方法为:
所述业务系统将自定义的处理逻辑类加入到所述交易回调处理链中,所述交易回调处理链允许加入的所述处理逻辑类的类型及数量不限,所述处理逻辑类在所述交易回调处理链中的位置、次序也不限。
进一步的,所述根据节点获取策略拿取节点链接实体的方法为随机策略:
所述随机策略为:为列表中的每一个节点链接实体分配一个编号,在调用时使用随机数算法,随机抽取对应编号的节点实体链接。
进一步的,所述根据节点获取策略拿取节点链接实体的方法为顺序策略:
所述顺序策略为:按照节点实体列表编号的顺序,拿取对应的节点链接实体进行使用。
进一步的,所述根据节点获取策略拿取节点链接实体的方法为可靠性策略:
所述可靠性策略为:向每个节点定时发送心跳信号,根据信号的稳定性来选择最稳定的节点链接实体。
进一步的,所述根据节点获取策略拿取节点链接实体的方法为学习与探索策略:
所述学习与探索策略为:每一个拿取节点链接实体进行调用的时候,记录本次调用的时间,在每次选择节点链接实体的时候,以ε的概率随机选择,以1-ε的概率选择调用时间最短的节点链接实体。
进一步的,所述任务组线程使用交易哈希值在所述区块链网络中查询对应的所述交易凭证,如果没有获取所述交易凭证,则将所述交易哈希值重新放入所述阻塞队列。
本申请实施例的第二方面提供一种多通道交易凭证异步回调处理系统,由用户端、业务系统以及多通道的区块链网络构成,其中所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库。
所述业务发起模块:用于在所述业务系统发起对不同通道的调用命令。
所述区块链调用模块:用于连接所述区块链网络,去进行相应的区块链操作。
所述回调模块:包括消息队列和若干任务组线程。
所述消息队列用于存放交易哈希值,所述任务组线程用于消费所述消息队列中的交易哈希值,并拿到交易回执,在拿到交易回执之后,根据交易回执的类型,来对所述业务系统的相关数据进行更新。
所述业务系统数据库:用于存储业务系统的交易调用信息,在所述业务发起模块发起交易后,相关的状态为处理中,之后根据所述回调模块中的所述交易回调处理链对交易状态进行更新。
所述多通道交易凭证异步回调处理系统被配置为执行上述任意一项所述的方法。
本申请实施例第三方面提供了一种多通道交易凭证异步回调处理组件库,包括:通道组件、回调消费管理组件和回调消费任务组件;其中,所述通道组件包括:阻塞队列、通道节点链接池和交易回调处理链。
所述阻塞队列,用于存放当前通道中所有待处理的交易哈希值。
所述通道节点链接池,用于存放当前通道下的所有节点链接实体;所述节点链接实体具有访问区块链网络相应节点,并对区块链网络进行操作的能力。
所述交易回调处理链,由多个根据不同交易凭证类型定义的处理逻辑类组装而成,所述处理逻辑类,用于实现对应的交易类型的具体业务处理流程。
所述回调消费管理组件,用于对所述回调消费任务组件进行统一管理,所述回调消费管理组件包含多个所述回调消费任务组件,所述回调消费管理组件是一个任务组容器。
所述回调消费任务组件,每个所述回调消费任务组件都绑定一个任务组线程,所述任务组线程用于消费所述通道组件中的交易哈希值,并根据交易哈希值获取交易凭证,在拿到交易凭证之后,调用所述通道组件绑定的所述交易回调处理链进行后续业务处理。本发明提出了一种多通道交易凭证异步回调处理组件库、方法以及系统。其优势在于:提出了基于多通道回调处理协议,定义了一系列组件,实现了不同通道进行交易回调处理解耦,并且在每个通道中使用单线程,不需要进行线程同步操作;提出了通道中节点的获取策略,可以灵活的进行适配,防止区块链网络中某些节点宕机造成业务系统无法访问的损失;提出了一种适用于该协议的方法,使用单线程去消费多个通道组件中的交易数据,并根据交易凭证类型对交易进行具体的业务回调处理,在提出协议和方法的基础上,还开发了适配的多通道交易凭证回调处理系统。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明实施例的实施例,并与说明书一起用于解释本发明实施例的原理。显而易见地,下面描述中的附图仅仅是本发明实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的通道组件示意图;
图2为本申请的交易回调处理链示意图;
图3为本申请的应用于联盟链的多通道交易凭证异步回调处理协议的组件关系图;
图4为本申请的一种基于多通道交易凭证回调处理方法初始化步骤的流程示意图;
图5为本申请的一种基于多通道交易凭证回调处理方法组装步骤的流程示意图;
图6为本申请的一种基于多通道交易凭证回调处理方法业务处理步骤的流程示意图;
图7为本申请的交易回调处理链调用流程示意图;
图8为本申请的一种多通道的交易凭证回调处理系统示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。在下面的描述中,提供许多具体细节从而给出对本发明实施例的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明实施例的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明实施例的各方面变得模糊。
联盟链是具有节点准入机制的区块链网络,在联盟链中,出于服务不同业务的需要可以搭建多条通道,每条通道由该业务涉及到的机构的节点组成。在实际的场景中,一个机构往往不止一条业务线,也就意味该机构的节点同时加入了多个通道中,当该机构在进行不同的业务处理时,需要在不同的通道中进行操作。当机构对某个通道进行了操作,即向该通道发送了交易之后,会实时获取一个交易哈希值,该交易哈希值只是证明了交易进入到了通道的交易池中,并不代表该交易的操作已经写入了账本,所以还需要业务系统根据交易哈希值在等待一段时间之后获取链上交易凭证。只有拿到交易凭证才证明该交易已经上链成功,则该机构可以根据交易凭证的结构来进行后续的业务处理。因此需要有一种方法可以方便的操作机构下的所有通道,并且可以在向某个通道发送了交易之后,可以自动的根据交易哈希值来查询交易凭证结果,并根据交易凭证结果做出后续的业务处理。
本申请的方法是应用在由多通道构成的区块链网络中的,其中,区块链底层平台是为系统提供分布式存储、信息可追溯、上链不可篡改的基础平台,系统中的所有操作都需要通过区块链底层平台建立的共识机制才可以执行。本系统中的区块链底层平台是一种联盟链。
在本实施例中,用户可以是各种需要进行交易处理的机构或个人。
本申请实施例提供了一种应用于联盟链的多通道交易处理系统,包括:通道组件、回调消费管理组件和回调消费任务组件。
如图1所示,所述通道组件包括:
所述阻塞队列,用于存放当前通道中所有待处理的交易哈希值。
所述通道节点链接池,用于存放当前通道下的所有节点链接实体;所述节点链接实体具有访问区块链网络相应节点,并对区块链网络进行操作的能力。
所述交易回调处理链,由多个根据不同交易凭证类型定义的处理逻辑类组装而成,所述处理逻辑类,用于实现对应的交易类型的具体业务处理流程。
其中的所述交易回调处理链也可称交易处理回调组件,该组件具有非常好的灵活性和可组合性。如图2所示,在所述交易回调处理链中可以实现对于节点类、合约类、应用类交易的处理逻辑,也可以根据交易的具体类型来自定义处理逻辑类型,并添加到交易回调处理链中。因为区块链中,每个通道的业务不同,所以通道的交易类型也不尽相同。每一个通道都可以绑定一个唯一的所述交易回调处理链来适配该通道进行交易处理。所述交易回调处理链在使用过程中,需要处理的交易类型经过每个所述处理逻辑类型,所述处理逻辑类型自行捕获对应的交易类型并进行业务处理,交易类型不需要与所述处理逻辑类型一一进行匹配确认,使得业务处理效率有显著提高;如果交易类型没有匹配的所述处理逻辑类型就继续保存在通道中,经用户反馈,系统维护人员可随时根据交易类型编写所述处理逻辑类型,并添加到所述交易回调处理链中,所述交易回调处理链中允许加入的所述处理逻辑类型不限,并且可以灵活组装。
所述回调消费管理组件,用于对所述回调消费任务组件进行统一管理,所述回调消费管理组件包含多个所述回调消费任务组件,所述回调消费管理组件是一个任务组容器。其中,每个所述回调消费任务组件都绑定一个任务组线程,所述任务组线程用于消费所述通道组件中的交易哈希值,并根据交易哈希值获取交易凭证,在拿到交易凭证之后,调用所述通道组件绑定的所述交易回调处理链进行后续业务处理。
如图3所示,各组件间的协议关系是:一个回调消费管理组件(Call Back CustomGroup)可以包含多个回调消费任务组件(Call Back Custom Job);一个回调消费任务组件(Call Back Custom Job)在它的生命周期内只和一个任务组线程(Thread)进行绑定;一个交易回调处理链(Call Back Handler)只能绑定到一个通道组件(Channel)中;一个通道组件(Channel)只能注册到一个回调消费任务组件(Call Back Custom Job)中,一个回调消费任务组件(Call Back Custom Job)允许多个通道组件(Channel)进行注册。
本申请实施例第一方面提供了一种多通道交易凭证异步回调处理方法,应用于由用户端、业务系统以及多通道的区块链网络构成的系统,所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库;其特征在于,包括:初始化步骤、组装步骤和业务处理步骤;
如图4所示,所述初始化步骤包括:
S110:所述业务系统初始化通道节点链接池;
S120:所述业务系统按照不同的交易类型分别定义每种交易类型的处理逻辑类。
优选的,所述初始化通道节点链接池的方法为:
S111:所述业务系统在所述业务系统数据库中查询所述业务系统中使用的所有通道以及通道中所包含的节点信息,其中,所述节点信息包括节点id,节点调用地址、节点访问端口及用于访问的公私钥对;
S112:根据所述节点信息,初始化节点链接实体,当前通道下的多个节点链接实体组成所述通道节点链接池。
如图5所示,所述业务处理步骤包括:
S210:所述业务系统组装交易回调处理链;
S220: 所述回调模块根据业务系统中通道列表,为每一个通道初始化一个通道组件,并将完成初始化的所述通道节点链接池、完成组装的所述交易回调处理链和阻塞队列与当前通道下的所述通道组件进行绑定;
S230:所述回调模块创建回调消费管理组件,并指定其中包括的回调消费任务组件数量,将所述通道组件注册到某一个所述回调消费任务组件中,一个所述回调消费任务组件允许多个所述通道组件进行注册;
优选的,所述组装交易回调处理链的方法为:
所述业务系统将自定义的处理逻辑类加入到所述交易回调处理链中,所述交易回调处理链允许加入的所述处理逻辑类的类型及数量不限,所述处理逻辑类在所述交易回调处理链中的位置、次序也不限。
如图6所示,所述业务处理步骤包括:
S310:所述业务系统完成所述初始化步骤及所述组装步骤后启动。
S320:所述用户端通过所述业务发起模块发起对某个通道的调用命令。
S330:所述区块链调用模块接收到所述调用命令后,首先构造合法的交易,然后根据当前通道ID查找到对应的所述通道组件,并从所述通道组件的所述通道节点链接池中,根据节点获取策略拿取节点链接实体,并将所述交易发送往所述区块链网络。
S340:所述区块链网络接收所述交易,并根据所述交易生成交易哈希值,将所述交易哈希值发送至所述回调模块。
S350:所述回调模块在接收到所述区块链网络返回的所述交易哈希值后,将所述交易哈希值放到对应的所述通道组件的所述阻塞队列中。
S360:所述回调模块的任务组线程循环扫描注册在当前所述回调消费任务组件下的所述通道组件列表,如果任意所述通道组件下的所述阻塞队列中存在待消费的所述交易哈希值,则所述任务组线程从所述通道组件下的所述阻塞队列中拿取所述交易哈希值。
S370:所述任务组线程在所述通道组件下的所述通道节点链接池中,根据节点获取策略拿取节点链接实体。
S380:所述任务组线程通过所述节点链接实体访问区块链网络,并使用所述交易哈希值在所述区块链网络中查询对应的交易凭证,获取到所述交易凭证后,调用所述通道组件中的所述交易回调处理链进行处理,并将处理结果在业务系统数据库中更新。
如图7所示,本实施例中,在业务处理阶段,主要由任务组线程去遍历通道组件列表,从通道组件的阻塞队列中获取交易哈希值,从通道节点链接池中获取节点链接实体,节点链接实体可以访问区块链网络,还可以对区块链网络中的具体节点进操作,任务组线程访问到区块链网络后,用获取的交易哈希值查询对应的交易凭证,在获取交易凭证后,就可以调用交易处理回调链去进行相应的业务处理,并把处理结果在业务系统数据库中更新。
进一步的,所述任务组线程使用交易哈希值在所述区块链网络中查询对应的所述交易凭证,如果没有获取所述交易凭证,则将所述交易哈希值重新放入所述阻塞队列。
进一步的,步骤S330和步骤S370中所述的根据节点获取策略拿取节点链接实体,是由于区块链是一种P2P的对等网络,即在同一个通道中,发往每个节点的调用是等价的。即机构想要在自己加入的某个通道中发送交易的时候,并不是强制需要将交易发送往本机构的节点,而是发往该通道中的任意一个节点都可以。目前联盟链提供了SDK来进行某个特定节点的连接,但是并不支持通道层面的连接,并且对于如何选取通道中的具体连接节点也没有特定的选取方法。因此,本申请中为解决选取通道中的具体连接节点的问题,提供四种策略,在实际操作中可以任意选择其中一种,包括:随机策略、顺序策略、可靠性策略、学习与探索策略。
所述随机策略为:为列表中的每一个实体链接分配一个编号,在调用时使用随机数算法,随机抽取对应编号的节点链接实体。
所述顺序策略为:按照节点实体列表编号的顺序,拿取对应的节点链接实体进行使用。
本实施例中的所述随机策略和所述顺序策略可以简化抽取的繁琐程序,缩短了选取的时间,提高效率。
所述可靠性策略为:向每个节点定时发送心跳信号,根据信号的稳定性来选择最稳定的节点链接实体。这种方式是在各节点中择优进行实体链接,可以保证后续业务处理的稳定性。
所述学习与探索策略为:每一个拿取节点链接实体进行调用的时候,记录本次调用的时间,在每次选择节点链接实体的时候,以ε的概率随机选择,以1-ε的概率选择调用时间最短的节点链接实体。(ε大于0,且远小于1),该方法在每次选取的过程中积累数据,在接下来的选取过程就会逐渐提高选取效率。
如图8所示,本申请实施例第二个方面提供了一种多通道交易凭证异步回调处理系统,由用户端、业务系统以及多通道的区块链网络构成,其中所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库,其特征在于:
所述业务发起模块:用于在所述业务系统发起对不同通道的调用命令。
所述区块链调用模块:用于连接所述区块链网络,去进行相应的区块链操作。
所述回调模块:包括消息队列和若干任务组线程。
所述消息队列用于存放交易哈希值,所述任务组线程用于消费所述消息队列中的交易哈希值,并拿到交易回执,在拿到交易回执之后,根据交易回执的类型,来对所述业务系统的相关数据进行更新。
所述业务系统数据库:用于存储业务系统的交易调用信息,在所述业务发起模块发起交易后,相关的状态为处理中,之后根据所述回调模块中的所述交易回调处理链对交易状态进行更新。
所述多通道的交易凭证回调处理系统被配置为执行上述方法的实施例。
本发明提出了一种应用于联盟链的多通道交易凭证异步回调处理组件库、方法及系统。在第一个方面,本发明提出了一种高效解耦的多通道交易回调处理方法,可以稳定且自动化的对交易结果进行不同的业务处理。在第二方面,本发明提供了一种联盟链的多通道交易凭证回调处理系统。通过本发明的方法可以方便的操作机构下的所有通道,并且可以在向某个通道发送了交易之后,可以自动的根据交易哈希值来查询交易凭证结果,并根据交易凭证结果做出后续的业务处理。在第三个方面,本发明提出了一种通用的多通道交易系统,该交易系统由多个组件组成,这些组件是交易回调整个生命周期不同阶段的抽象,具有灵活性和可组合性。
Claims (10)
1.一种多通道交易凭证异步回调处理方法,应用于由用户端、业务系统以及多通道的区块链网络构成的系统,所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库;其特征在于,包括:初始化步骤、组装步骤和业务处理步骤;
所述初始化步骤包括:
所述业务系统初始化通道节点链接池;
所述业务系统按照不同的交易类型分别定义每种交易类型的处理逻辑类;
所述组装步骤包括:
所述业务系统组装交易回调处理链;
所述回调模块根据业务系统中通道列表,为每一个通道初始化一个通道组件,并将完成初始化的所述通道节点链接池、完成组装的所述交易回调处理链和阻塞队列,与当前通道下的所述通道组件进行绑定;
所述回调模块创建回调消费管理组件,并指定其中包括的回调消费任务组件数量,将所述通道组件注册到某一个所述回调消费任务组件中,一个所述回调消费任务组件允许多个所述通道组件进行注册;
所述业务处理步骤包括:
所述业务系统完成所述初始化步骤及所述组装步骤后启动;
所述用户端通过所述业务发起模块发起对某个通道的调用命令;
所述区块链调用模块接收到所述调用命令后,首先构造合法的交易,然后根据当前通道ID查找到对应的所述通道组件,并从所述通道组件的所述通道节点链接池中,根据节点获取策略拿取节点链接实体,并将所述交易发送至所述区块链网络;
所述区块链网络接收所述交易,并根据所述交易生成交易哈希值,将所述交易哈希值发送至所述回调模块;
所述回调模块在接收到所述区块链网络返回的所述交易哈希值后,将所述交易哈希值放到对应的所述通道组件的所述阻塞队列中;
所述回调模块的任务组线程循环扫描已注册在当前所述回调消费任务组件下的所述通道组件列表,如果任意所述通道组件下的所述阻塞队列中存在待消费的所述交易哈希值,则所述任务组线程从所述通道组件下的所述阻塞队列中拿取所述交易哈希值;
所述任务组线程在所述通道组件下的所述通道节点链接池中,根据节点获取策略拿取节点链接实体;
所述任务组线程通过所述节点链接实体访问区块链网络,并使用所述交易哈希值在所述区块链网络中查询对应的交易凭证,获取到所述交易凭证后,调用所述通道组件中的所述交易回调处理链进行处理,并将处理结果在业务系统数据库中更新。
2.根据权利要求1所述的一种多通道交易凭证异步回调处理方法,其特征在于,所述初始化通道节点链接池的方法为:
所述业务系统在所述业务系统数据库中查询所述业务系统中使用的所有通道以及通道中所包含的节点信息,其中,所述节点信息包括节点id,节点调用地址、节点访问端口及用于访问的公私钥对;
根据所述节点信息,初始化节点链接实体,当前通道下的多个所述节点链接实体组成所述通道节点链接池。
3.根据权利要求1所述的一种多通道交易凭证异步回调处理方法,其特征在于,所述组装交易回调处理链的方法为:
所述业务系统将自定义的处理逻辑类加入到所述交易回调处理链中,所述交易回调处理链允许加入的所述处理逻辑类的类型及数量不限,所述处理逻辑类在所述交易回调处理链中的位置、次序也不限。
4.根据权利要求1所述的一种多通道交易凭证异步回调处理方法,其特征在于,所述根据节点获取策略拿取节点链接实体的方法为随机策略:
所述随机策略为:为列表中的每一个节点链接实体分配一个编号,在调用时使用随机数算法,随机抽取对应编号的节点实体链接。
5.根据权利要求1所述的一种多通道交易凭证异步回调处理方法,其特征在于,所述根据节点获取策略拿取节点链接实体的方法为顺序策略:
所述顺序策略为:按照节点实体列表编号的顺序,拿取对应的节点链接实体进行使用。
6.根据权利要求1所述的一种多通道交易凭证异步回调处理方法,其特征在于,所述根据节点获取策略拿取节点链接实体的方法为可靠性策略:
所述可靠性策略为:向每个节点定时发送心跳信号,根据信号的稳定性来选择最稳定的节点链接实体。
7.根据权利要求1所述的一种多通道交易凭证异步回调处理方法,其特征在于,所述根据节点获取策略拿取节点链接实体的方法为学习与探索策略:
所述学习与探索策略为:每一个拿取节点链接实体进行调用的时候,记录本次调用的时间,在每次选择节点链接实体的时候,以ε的概率随机选择,以1-ε的概率选择调用时间最短的节点链接实体。
8.根据权利要求1所述的一种多通道交易凭证异步回调处理方法,其特征在于,所述任务组线程使用交易哈希值在所述区块链网络中查询对应的所述交易凭证,如果没有获取所述交易凭证,则将所述交易哈希值重新放入所述阻塞队列。
9.一种多通道交易凭证异步回调处理系统,由用户端、业务系统以及多通道的区块链网络构成,其中所述业务系统配置有业务发起模块、区块链调用模块、回调模块及业务系统数据库,其特征在于:
所述业务发起模块:用于在所述业务系统发起对不同通道的调用命令;
所述区块链调用模块:用于连接所述区块链网络,去进行相应的区块链操作;
所述回调模块:包括消息队列和若干任务组线程;
所述消息队列用于存放交易哈希值, 所述任务组线程用于消费所述消息队列中的交易哈希值,并拿到交易回执,在拿到交易回执之后,根据交易回执的类型,来对所述业务系统的相关数据进行更新;
所述业务系统数据库:用于存储业务系统的交易调用信息,在所述业务发起模块发起交易后,相关的状态为处理中,之后根据所述回调模块中的所述交易回调处理链对交易状态进行更新;
所述多通道交易凭证异步回调处理系统被配置为执行权利要求1-8中任意一项所述的方法。
10.一种多通道交易处理系统,其特征在于,包括:通道组件、回调消费管理组件和回调消费任务组件;其中,所述通道组件包括:阻塞队列、通道节点链接池和交易回调处理链;
所述阻塞队列,用于存放当前通道中所有待处理的交易哈希值;
所述通道节点链接池,用于存放当前通道下的所有节点链接实体;所述节点链接实体具有访问区块链网络相应节点,并对区块链网络进行操作的能力;
所述交易回调处理链,由多个根据不同交易凭证类型定义的处理逻辑类组装而成,所述处理逻辑类,用于实现对应的交易类型的具体业务处理流程;
所述回调消费管理组件,用于对所述回调消费任务组件进行统一管理,所述回调消费管理组件包含多个所述回调消费任务组件,所述回调消费管理组件是一个任务组容器;
所述回调消费任务组件,每个所述回调消费任务组件都绑定一个任务组线程,所述任务组线程用于消费所述通道组件中的交易哈希值,并根据交易哈希值获取交易凭证,在拿到交易凭证之后,调用所述通道组件绑定的所述交易回调处理链进行后续业务处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210495585.3A CN114581243B (zh) | 2022-05-09 | 2022-05-09 | 一种多通道交易凭证异步回调处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210495585.3A CN114581243B (zh) | 2022-05-09 | 2022-05-09 | 一种多通道交易凭证异步回调处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114581243A CN114581243A (zh) | 2022-06-03 |
CN114581243B true CN114581243B (zh) | 2022-09-23 |
Family
ID=81767610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210495585.3A Active CN114581243B (zh) | 2022-05-09 | 2022-05-09 | 一种多通道交易凭证异步回调处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114581243B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389398A (zh) * | 2018-09-30 | 2019-02-26 | 真相网络科技(北京)有限公司 | 一种交易凭证的生成方法及系统 |
CN111262929A (zh) * | 2020-01-15 | 2020-06-09 | 重庆邮电大学 | 基于Fabric区块链的物联网数据存储和设备访问控制方法 |
CN111598436A (zh) * | 2020-05-14 | 2020-08-28 | 云账户技术(天津)有限公司 | 一种凭证管理系统、方法及介质 |
CN112308561A (zh) * | 2020-10-16 | 2021-02-02 | 浙江甲骨文超级码科技股份有限公司 | 基于区块链的存证方法、系统、计算机设备和存储介质 |
CN113159682A (zh) * | 2021-04-22 | 2021-07-23 | 上海卓钢链科技有限公司 | 一种电子仓单信息联盟链系统 |
CN113222606A (zh) * | 2021-07-07 | 2021-08-06 | 中企链信(北京)科技有限公司 | 一种基于智能合约的安全交易执行方法 |
WO2021239070A1 (zh) * | 2020-05-28 | 2021-12-02 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
CN113781216A (zh) * | 2021-08-27 | 2021-12-10 | 浙商银行股份有限公司 | 基于回调合约机制的异步跨链交易查询方法及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11341457B2 (en) * | 2019-10-17 | 2022-05-24 | International Business Machines Corporation | Upstream visibility in supply-chain |
US20210184863A1 (en) * | 2019-12-11 | 2021-06-17 | Mastercard Asia/Pacific Pte. Ltd. | Method and system for regulation of blockchain-based payments |
-
2022
- 2022-05-09 CN CN202210495585.3A patent/CN114581243B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389398A (zh) * | 2018-09-30 | 2019-02-26 | 真相网络科技(北京)有限公司 | 一种交易凭证的生成方法及系统 |
CN111262929A (zh) * | 2020-01-15 | 2020-06-09 | 重庆邮电大学 | 基于Fabric区块链的物联网数据存储和设备访问控制方法 |
CN111598436A (zh) * | 2020-05-14 | 2020-08-28 | 云账户技术(天津)有限公司 | 一种凭证管理系统、方法及介质 |
WO2021239070A1 (zh) * | 2020-05-28 | 2021-12-02 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
CN112308561A (zh) * | 2020-10-16 | 2021-02-02 | 浙江甲骨文超级码科技股份有限公司 | 基于区块链的存证方法、系统、计算机设备和存储介质 |
CN113159682A (zh) * | 2021-04-22 | 2021-07-23 | 上海卓钢链科技有限公司 | 一种电子仓单信息联盟链系统 |
CN113222606A (zh) * | 2021-07-07 | 2021-08-06 | 中企链信(北京)科技有限公司 | 一种基于智能合约的安全交易执行方法 |
CN113781216A (zh) * | 2021-08-27 | 2021-12-10 | 浙商银行股份有限公司 | 基于回调合约机制的异步跨链交易查询方法及设备 |
Non-Patent Citations (2)
Title |
---|
基于原子交换的跨链技术研究与应用;宋博;《中国优秀硕士学位论文全文数据库信息科技辑》;20220315(第03期);I138-789 * |
面向区块链数据隐私保护的可搜索加密研究;赵锦波;《中国优秀硕士学位论文全文数据库信息科技辑》;20200215(第02期);I138-119 * |
Also Published As
Publication number | Publication date |
---|---|
CN114581243A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510389A (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
CN103404111B (zh) | 用于在异构环境中提供会话的方法与系统 | |
CN107169083A (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
CN106648903B (zh) | 调用分布式文件系统的方法和装置 | |
CN108509523A (zh) | 区块链数据的结构化处理方法、设备及可读存储介质 | |
CN101583939A (zh) | 用于松耦合设备的同步协议 | |
CN107247758B (zh) | 基于银行核心系统的数据处理方法 | |
CN113014666B (zh) | 一种区块链协议栈架构方法、系统、设备及存储介质 | |
CN107766393A (zh) | 基于数据库的信息处理方法、客户端及服务器 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
WO2022033290A1 (zh) | 强一致存储系统、数据强一致存储方法、服务器及介质 | |
CN103229480B (zh) | 分布式存储系统中的数据处理方法及设备、客户端 | |
CN108881476A (zh) | 区块链部署方法与系统 | |
CN104281488A (zh) | 服务器引擎的实现方法和系统 | |
US20240275559A1 (en) | Method for operating relation server and system using the same | |
CN114581243B (zh) | 一种多通道交易凭证异步回调处理方法和系统 | |
US11120513B2 (en) | Capital chain information traceability method, system, server and readable storage medium | |
CN101789963A (zh) | 数据同步系统 | |
CN109583615A (zh) | 会议室的预订方法、系统及服务器、计算机可读存储介质 | |
CN113177843A (zh) | 基于区块链的跨行贷款业务处理方法及装置 | |
CN110069506A (zh) | 业务数据的维护方法、装置及服务器 | |
CN111400266B (zh) | 数据处理方法和系统、操作事件的诊断处理方法和装置 | |
CN110309185A (zh) | 数据查询方法、系统、计算机设备和存储介质 | |
CN114205233B (zh) | 一种面向数据管控的智能合约自适应配置与执行的系统 | |
CN110378680A (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 |