CN108052392B - 一种基于区块链的业务处理方法及装置 - Google Patents
一种基于区块链的业务处理方法及装置 Download PDFInfo
- Publication number
- CN108052392B CN108052392B CN201711430190.0A CN201711430190A CN108052392B CN 108052392 B CN108052392 B CN 108052392B CN 201711430190 A CN201711430190 A CN 201711430190A CN 108052392 B CN108052392 B CN 108052392B
- Authority
- CN
- China
- Prior art keywords
- thread
- target
- computer
- target virtual
- virtual thread
- 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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种基于区块链的业务处理方法及装置,获取待处理交易业务对应的目标虚拟线程,如果检测到目标虚拟线程满足当前执行条件时,触发该目标虚拟线程;然后,确定执行该目标虚拟线程的目标计算机线程。并将目标虚拟线程与目标计算机线程进行绑定,以使该目标计算机线程执行该目标虚拟线程。在执行完目标虚拟线程的当前步骤后,更新该目标虚拟线程的执行状态,并将目标虚拟线程与目标计算机线程解绑,释放计算机资源。在区块链系统中使用虚拟线程,通过这种虚拟线程实现将要进行的操作分解到任意多步、任意长时间范围。最终使区块链系统能够支持长时间的业务共识处理,能够与外部金融业务系统相结合。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种基于区块链的业务处理方法及装置。
背景技术
区块链技术是一种互联网数据库技术,也被称之为分布式账本技术,是下一代金融交换技术的基础核心技术之一,将在账户系统清算、核算和资金结转方面发挥重要的作用。
在金融系统中,往往需要执行多步检查才能确定一笔交易是否可以投赞成票(即,可以执行该交易),这种多步检查的时间可能很长,例如,一笔远期合约交易可能需要几天才能确定成交。而现有的区块链技术本质上不需要和外界金融系统进行交互,因此没有支持较长时间投票的需求,因此,目前的区块链系统无法支持这种很长时间的业务校验。但是,当区块链和外界金融系统相结合时,区块链系统必须能够支持这种很长时间的票,最终决定交易业务的合法性。
发明内容
有鉴于此,本发明的目的在于提供一种基于区块链的业务处理方法及装置,以解决传统的区块链无法支持较长时间投票的业务校验的技术问题。
第一方面,本申请提供一种基于区块链的业务处理方法,包括:
获取待处理交易业务对应的目标虚拟线程,所述目标虚拟线程是所述待处理交易业务对应的业务共识状态机的线程上下文;
当所述目标虚拟线程满足当前执行条件时,触发所述目标虚拟线程;
确定执行所述目标虚拟线程的目标计算机线程;
将所述目标虚拟线程与所述目标计算机线程进行绑定,以使所述目标计算机线程执行所述目标虚拟线程;
当所述目标虚拟线程对应的当前执行目标被所述目标计算机执行完成后,更新所述目标虚拟线程的执行状态,并解绑所述目标虚拟线程与所述目标计算机线程。
可选地,所述当所述目标虚拟线程满足当前执行条件时,触发所述目标虚拟线程,包括:
当检测到所述目标虚拟线程满足所述当前执行条件时,确定执行所述目标虚拟线程的时间和可选交易节点;
从所述可选交易节点中确定出目标交易节点,并在所述目标交易节点上触发所述目标虚拟线程执行。
可选地,所述从所述可选交易节点中确定出目标交易节点,包括:
从所述可选交易节点中选取正常状态的可选交易节点作为所述目标交易节点。
可选地,确定执行所述目标虚拟线程的目标计算机线程,包括:
确定能够执行所述目标虚拟线程的各个可选计算机;
根据所述各个可选计算机的状态,确定出目标计算机;
获取在所述目标计算机上运行的各个计算机线程的运行状态;
根据所述各个计算机线程的运行状态,确定当前状态为待调度状态的计算机线程为所述目标计算机线程。
可选地,所述将所述目标虚拟线程与所述目标计算机线程进行绑定,以使所述目标计算机线程执行所述目标虚拟线程,包括:
获取所述目标虚拟线程的当前执行状态信息,所述当前执行状态信息包括所述目标虚拟线程的执行状态和执行目标;
编译所述当前执行状态信息得到目标执行指令;
触发所述目标计算机线程执行所述目标执行指令,并更新所述目标计算机线程的状态。
第二方面,本申请实施例还提供一种基于区块链的业务处理装置,包括:
获取模块,用于获取待处理交易业务对应的目标虚拟线程,所述目标虚拟线程是所述待处理交易业务对应的业务共识状态机的线程上下文;
触发模块,用于当所述目标虚拟线程满足当前执行条件时,触发所述目标虚拟线程;
确定模块,用于确定执行所述目标虚拟线程的目标计算机线程;
绑定模块,用于将所述目标虚拟线程与所述目标计算机线程进行绑定,以使所述目标计算机线程执行所述目标虚拟线程;
解绑模块,用于当所述目标虚拟线程对应的当前执行目标被所述目标计算机执行完成后,更新所述目标虚拟线程的执行状态,并解绑所述目标虚拟线程与所述目标计算机线程。
可选地,所述触发模块包括:
第一确定子模块,用于当检测到所述目标虚拟线程满足所述当前执行条件时,确定执行所述目标虚拟线程的时间和可选交易节点;
第二确定子模块,用于从所述可选交易节点中确定出目标交易节点,并在所述目标交易节点上触发所述目标虚拟线程执行。
可选地,所述第二确定子模块,具体用于:从所述可选交易节点中选取正常状态的可选交易节点作为所述目标交易节点。
可选地,所述确定模块包括:
第三确定子模块,用于确定能够执行所述目标虚拟线程的各个可选计算机;
第四确定子模块,用于根据所述各个可选计算机的状态,确定出目标计算机;
第一获取子模块,用于获取在所述目标计算机上运行的各个计算机线程的运行状态;
第五确定子模块,用于根据所述各个计算机线程的运行状态,确定当前状态为待调度状态的计算机线程为所述目标计算机线程。
可选地,所述绑定模块,包括:
第二获取子模块,用于获取所述目标虚拟线程的当前执行状态信息,所述当前执行状态信息包括所述目标虚拟线程的执行状态和执行目标;
编译子模块,用于编译所述当前执行状态信息得到目标执行指令;
触发子模块,用于触发所述目标计算机线程执行所述目标执行指令,并更新所述目标计算机线程的状态。
本申请提供的基于区块链的业务处理方法,获得待处理交易业务后,获取该待处理交易业务对应的目标虚拟线程,虚拟线程是指业务共识状态机的线程上下文。如果检测到目标虚拟线程满足当前执行条件时,触发该目标虚拟线程;然后,确定执行该目标虚拟线程的目标计算机线程。并将目标虚拟线程与目标计算机线程进行绑定,以使该目标计算机线程执行该目标虚拟线程。在目标计算机线程执行完目标虚拟线程的当前操作步骤后,更新该目标虚拟线程的执行状态,并将该目标虚拟线程挂起,即,将目标虚拟线程与目标计算机线程解绑,释放计算机资源。维护该目标线程的执行状态,当再次满足目标虚拟线程的执行条件时,再次触发执行该目标虚拟线程。由上述过程可见,在区块链系统中使用虚拟线程,通过这种虚拟线程实现将要进行的操作分解到任意多步、任意长时间范围。虚拟线程不满足当前执行条件时,进入休眠状态,待满足当前执行条件时被触发继而触发真正的计算机线程执行该虚拟线程。最终使区块链系统能够支持长时间的业务共识处理,能够与外部金融业务系统相结合。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例一种虚拟线程管理工具的原理框图;
图2示出了本申请实施例一种基于区块链的业务处理方法的流程图;
图3示出了本申请实施例一种触发目标虚拟线程过程的流程图;
图4示出了本申请实施例一种绑定目标虚拟线程与目标计算机线程的流程图;
图5示出了本申请实施例一种基于区块链的业务处理装置的框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在详细介绍本申请提供的基于区块链的业务处理方法流程之前,首先对本申请的区块链系统及相关内容进行说明。
区块链的共识机制是基于区块链内置机制,区块链系统中的共识分为业务共识和核心共识(又称,区块链共识);其中,业务共识被设计在整个共识机制的上层,业务共识发生且仅发生在多个业务关联方之间。例如,某笔交易试图从账户A转账给账户B,其对应的业务共识包括:需要验证账户A和账户B都是合法账户(例如,实际存在的银行账户、支付账户或其它合法的资金结算账户等)、账户转账能够通过外部金融系统(例如,银行系统)的系统校验,转账行为被认定为合法等等。
核心共识发生在所有业务共识完成之后,共识的主要参数和维度包括:交易信息的hash签名是否正确,交易的余额是否足够,是否存在双花(即,double spending)等问题,即,所有通过业务共识进入核心共识的数据,其本身已经在业务层面上保证了可执行性。
一个区块链系统中包括很多个交易节点(运行在业务关联方),每个交易节点都有多个业务共识状态机组成的集群。每个业务共识集群都各自处理与自己业务相关的交易业务共识。
本申请中的虚拟线程即业务共识状态机中的线程上下文,线程上下文,即线程执行参数、数据,以及执行过程中的数据快照等信息。该虚拟线程具有以下特点:该虚拟线程是超长可执行线程,是指一个业务共识状态机线程可以根据业务系统的业务属性,能够分步骤地与业务系统进行多次交互,并在每一次交互过程中修改业务共识状态机属性;该虚拟线程可以无限长时间的执行。宿主机器的重启、升级和维护并不影响超长线程的执行结果;单个节点上可以有大量的虚拟线程同时并发执行。
请参见图1,示出了本申请实施例一种虚拟线程管理工具的原理框图,区块链系统中的每个交易节点上都运行有该虚拟线程管理工具。其中,该虚拟线程管理工具主要包括三部分:分布式线程调度器1、线程管理器2和线程执行器3。
各个交易节点上的分布式线程调度器1构成一个全局调度集群;分布式线程调度器主要维护虚拟线程调度的以下重要信息:
1)哪些虚拟线程正在被调度,以及,哪些虚拟线程正在等待调度;
2)与这些虚拟线程相关联的业务共识状态机及关联属性;其中,所关联的业务共识状态机及关联属性由具体的交易业务属性确定。
3)这些虚拟线程的触发时间点及相应的交易节点;即,这些虚拟线程应该在哪个时间点,以及,在哪个交易节点上被触发。
分布式线程调度器之所以设计为分布式,是因为以下原因:
1)某些交易客户自身需要维护多个交易节点,因为交易客户只维护单一交易节点可能带来可用性的问题;
2)某些虚拟线程自身含有多个执行步骤,某些执行步骤需要在不同的交易节点上执行;
3)为了提高交易的可靠性,当个别交易节点出现问题时,被触发的虚拟线程可以在其它交易节点上执行。
各个分布式线程调度器自身通过一些通用中间件(例如,zookeeper等)实现相互通信和调度。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
线程管理器2用于管理虚拟线程,该虚拟线程并不是真正的计算机线程,而是业务共识状态机的线程可执行上下文。线程管理器2本质上是在管理很多持久化的执行状态和执行目标。
其中,线程管理器的主要功能如下:1)对目标虚拟线程进行跟踪,并将目标虚拟线程的当前线程状态持久化(即,将当前线程状态存储至数据库中);2)将虚拟线程与一个实际的计算机线程进行绑定管理;3)维护在宿主机节点上实现运行的计算机线程的状态;4)维护虚拟线程和运行时沙箱对金融业务系统的接口绑定关系。
线程执行器3的主要任务是将虚拟线程与真正的计算机线程相绑定,并最终触发计算机线程执行该虚拟线程的执行内容,从而实现虚拟线程的执行。
以上是虚拟线程管理工具的相关内容,下面将详细介绍利用该虚拟线程管理工具实现业务处理的过程。
请参见图2,示出了本申请实施例一种基于区块链的业务处理方法的流程图,该方法应用于区块链系统的交易节点中,交易节点是区块链系统网络中的逻辑概念,一个交易节点可以包含多个物理计算机;交易节点被业务关联方维护。如图2所示,该方法可以包括以下步骤:
S110,获取待处理交易业务对应的目标虚拟线程。
当交易节点获得待处理交易业务时,由业务共识状态机对该待处理交易业务进行业务共识,虚拟线程即业务共识状态机内的线程上下文。
根据待处理交易业务的交易业务属性确定关联的业务共识状态机,并从业务共识状态机中获取该待处理交易业务对应的目标虚拟线程,并由分布式线程调度器维护各个虚拟线程的重要信息。
S120,当目标虚拟线程满足当前执行条件时,触发目标虚拟线程。
上述的分布式线程调度器中维护该目标虚拟线程的触发时间点及相对应的交易节点。因此,当目标虚拟线程满足当前执行条件时,分布式线程调度器触发相应的目标虚拟线程。其中,触发时间点是指满足某个触发条件的时刻。
在本申请的一个实施例中,如图3所示,触发目标虚拟线程的过程可以包括:
S121,当检测到目标虚拟线程满足所述当前执行条件时,确定执行该目标虚拟线程的时间和可选交易节点。
S122,从该可选交易节点中确定出目标交易节点,并在目标交易节点上触发所述目标虚拟线程执行。
例如,可以从可选交易节点选取正常状态的交易节点为目标交易节点。从而,避免选取出现维护问题的交易节点导致目标虚拟线程无法执行的现象出现,从而提高了虚拟线程执行的概率,即,提高了虚拟线程的执行可靠性。
S130,确定执行目标虚拟线程的目标计算机线程。
分布式线程调度器在目标交易节点上触发目标虚拟线程后,由线程管理器确定执行该目标虚拟线程的目标计算机线程。并触发该目标计算机线程来执行该目标虚拟线程。
线程管理器内维护有交易节点对应的计算机上实际运行的计算机线程的线程状态。因此,线程管理器根据各个计算机线程的状态选取当前状态为待调度状态的计算机线程执行目标虚拟线程,当前处于待调度状态的计算机线程,即目标计算机线程。
如果目标交易节点包括多个可选计算机,则根据各个可选计算机的运行状态(例如,CPU资源占用情况、当前执行任务情况)确定出目标计算机,然后,再从目标计算机上运行的各个计算机线程中,选取线程状态为待调度状态的计算机线程为所述目标计算机线程。
线程管理器维护该交易节点上计算机线程与虚拟线程的绑定关系;为了保持虚拟线程可能存在的多个状态变化,为正在执行中的虚拟线程保存当前执行状态,并将当前执行状态持久化(即,存储到数据库中),以便后续对该虚拟线程进行跟踪。
在区块链系统中,不同的交易利用运行时沙箱进行隔离,因此,指定该虚拟线程应该响应哪个运行时沙箱的接口请求,以及该运行时沙箱的接口与哪个外部业务系统的接口绑定,即,该运行时沙箱与哪个外部业务系统进行交互。线程管理器需要维护这种虚拟线程和运行时沙箱对外部业务系统的接口绑定关系。从而使虚拟线程能够被正确执行。
目标虚拟线程在被执行时,需要调用外部业务系统的接口,而这些接口隐藏在标准接口之下,因此,线程管理器需要维护标准接口与外部业务系统接口之间的绑定关系。
S140,将目标虚拟线程与目标计算机线程进行绑定,以使目标计算机线程执行目标虚拟线程。
线程管理器本质是管理很多持久化的执行状态和执行目标,但是,最终由线程执行器将执行目标执行完成。该步骤是由线程执行器将目标虚拟线程与确定出的目标计算机线程进行绑定,由目标计算机线程执行该目标虚拟线程的执行内容,以达到执行目的。在触发目标计算机线程执行目标虚拟线程时,需要指定该目标虚拟线程应当响应哪个运行时沙箱的接口请求。
在本申请的一个实施例中,如图4所示,绑定目标虚拟线程与目标计算机线程的过程可以包括:
S141,获取目标虚拟线程的当前执行状态信息,所述当前执行状态信息包括所述目标虚拟线程的执行内容和执行目标。
线程执行器从线程管理器持久化的虚拟线程执行状态信息中获取目标虚拟线程的当前执行状态信息。
S142,编译所述执行内容得到目标执行指令。
利用线程编译器编译目标虚拟线程的执行内容得到目标执行指令。线程编译器的作用是将线程上下文编译成计算机可执行的机器语言。
S143,触发目标计算机线程执行所述目标执行指令,并更新目标计算机线程的状态。
触发目标计算机线程执行编译器编译得到的目标执行指令,并更新目标计算机线程的状态,即,将该目标计算机线程的状态由可调度状态更新为正在调度状态。
同时,由线程执行器更新本地维护当前交易节点对应计算机的计算机线程的状态。
S150,当目标虚拟线程对应的当前执行内容被目标计算机执行完成后,更新目标虚拟线程的执行状态,并解绑目标虚拟线程与目标计算机线程。
当目标计算机线程执行完目标虚拟线程的当前执行内容达到当前执行目标后,线程管理器会更新该目标虚拟线程对应的当前执行状态,以便分布式线程调度器根据该目标虚拟线程的当前执行状态确定下一步骤的执行任务,并根据该执行任务确定下一步骤的触发时间,以及,在哪个交易节点上触发该目标虚拟线程。同时,解绑目标虚拟线程与目标计算机线程,即释放计算机的CPU资源,从而使其它虚拟线程该计算机的CPU资源。
本申请提供的基于区块链的业务处理方法,获得待处理交易业务后,获取该待处理交易业务对应的目标虚拟线程,虚拟线程是指业务共识状态机的线程上下文。如果检测到目标虚拟线程满足当前执行条件时,触发该目标虚拟线程;然后,确定执行该目标虚拟线程的目标计算机线程。并将目标虚拟线程与目标计算机线程进行绑定,以使该目标计算机线程执行该目标虚拟线程。在目标计算机线程执行完目标虚拟线程的当前操作步骤后,更新该目标虚拟线程的执行状态,并将该目标虚拟线程挂起,即,将目标虚拟线程与目标计算机线程解绑,释放计算机资源。维护该目标线程的执行状态,当再次满足目标虚拟线程的执行条件时,再次触发执行该目标虚拟线程。由上述过程可见,在区块链系统中使用虚拟线程,通过这种虚拟线程实现将要进行的操作分解到任意多步、任意长时间范围。虚拟线程不满足当前执行条件时,进入休眠状态,待满足当前执行条件时被触发继而触发真正的计算机线程执行该虚拟线程。最终使区块链系统能够支持长时间的业务共识处理,能够与外部金融业务系统相结合。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
相应于上述的基于区块链的业务处理方法实施例,本申请还提供了基于区块链的业务处理装置实施例。
请参见图5,示出了本申请实施例一种基于区块链的业务处理装置的框图,该装置应用于区块链系统的交易节点中。如图5所示,该装置包括:获取模块110、触发模块120、确定模块130、绑定模块140和解绑模块150。
获取模块110,用于获取待处理交易业务对应的目标虚拟线程。
所述目标虚拟线程是所述待处理交易业务对应的业务共识状态机的线程上下文。
获取模块110运行于图1所示的分布式线程调度器中,根据待处理交易业务的交易业务属性确定关联的业务共识状态机,并从业务共识状态机中获取该待处理交易业务对应的目标虚拟线程,并由分布式线程调度器维护各个虚拟线程的重要信息。
触发模块120,用于当目标虚拟线程满足当前执行条件时,触发所述目标虚拟线程。
该触发模块120运行于分布式线程调度器中,分布式线程调度器中维护该目标虚拟线程的触发时间点及相对应的交易节点。因此,当目标虚拟线程满足当前执行条件时,分布式线程调度器触发相应的目标虚拟线程。其中,触发时间点是指满足某个触发条件的时刻。
在本申请的一个实施例中,该触发模块120可以包括:第一确定子模块和第二确定子模块。
该第一确定子模块,用于当检测到目标虚拟线程满足当前执行条件时,确定执行目标虚拟线程的时间和可选交易节点。
该第二确定子模块,用于从可选交易节点中确定出目标交易节点,并在目标交易节点上触发目标虚拟线程执行。所述第二确定子模块具体用于:从可选交易节点中选取正常状态的可选交易节点作为目标交易节点。
确定模块130,用于确定执行目标虚拟线程的目标计算机线程。
其中,该确定模块130运行于图1所示的线程管理器中,线程管理器确定执行该目标虚拟线程的目标计算机线程。并触发该目标计算机线程来执行该目标虚拟线程。
线程管理器内维护有交易节点对应的计算机上实际运行的计算机线程的线程状态。因此,线程管理器根据各个计算机线程的状态选取当前状态为待调度状态的计算机线程执行目标虚拟线程,当前处于待调度状态的计算机线程,即目标计算机线程。
如果目标交易节点包括多个可选计算机,则根据各个可选计算机的运行状态(例如,CPU资源占用情况、当前执行任务情况)确定出目标计算机,然后,再从目标计算机上运行的各个计算机线程中,选取线程状态为待调度状态的计算机线程为所述目标计算机线程。
线程管理器维护该交易节点上计算机线程与虚拟线程的绑定关系;为了保持虚拟线程可能存在的多个状态变化,为正在执行中的虚拟线程保存当前执行状态,并将当前执行状态持久化(即,存储到数据库中),以便后续对该虚拟线程进行跟踪。
在区块链系统中,不同的交易利用运行时沙箱进行隔离,因此,指定该虚拟线程应该响应哪个运行时沙箱的接口请求,以及该运行时沙箱的接口与哪个外部业务系统的接口绑定,即,该运行时沙箱与哪个外部业务系统进行交互。线程管理器需要维护这种虚拟线程和运行时沙箱对外部业务系统的接口绑定关系。从而使虚拟线程能够被正确执行。
目标虚拟线程在被执行时,需要调用外部业务系统的接口,而这些接口隐藏在标准接口之下,因此,线程管理器需要维护标准接口与外部业务系统接口之间的绑定关系。
所述确定模块130包括:第三确定子模块、第四确定子模块、第一获取子模块、第五确定子模块;
该第三确定子模块,用于确定能够执行目标虚拟线程的各个可选计算机。
该第四确定子模块,用于根据各个可选计算机的状态,确定出目标计算机。
该第一获取子模块,用于获取在目标计算机上运行的各个计算机线程的运行状态。
该第五确定子模块,用于根据各个计算机线程的运行状态,确定当前状态为待调度状态的计算机线程为目标计算机线程。
绑定模块140,用于将目标虚拟线程与所述目标计算机线程进行绑定,以使目标计算机线程执行目标虚拟线程。
该绑定模块140运行于图1所示的线程执行器中。该绑定模块将目标虚拟线程与确定出的目标计算机线程进行绑定,由目标计算机线程执行该目标虚拟线程的执行内容,以达到执行目的。在触发目标计算机线程执行目标虚拟线程时,需要指定该目标虚拟线程应当响应哪个运行时沙箱的接口请求。
在本申请的一个实施例中,该绑定模块140可以包括:第二获取子模块、编译子模块和触发子模块。
第二获取子模块,用于获取目标虚拟线程的当前执行状态信息,当前执行状态信息包括目标虚拟线程的执行状态和执行目标。
编译子模块,用于编译当前执行状态信息得到目标执行指令。
触发子模块,用于触发目标计算机线程执行目标执行指令,并更新目标计算机线程的状态。
解绑模块150,用于当所述目标虚拟线程对应的当前执行目标被所述目标计算机执行完成后,更新所述目标虚拟线程的执行状态,并解绑所述目标虚拟线程与所述目标计算机线程。
当目标计算机线程执行完目标虚拟线程的当前执行内容达到当前执行目标后,线程管理器会更新该目标虚拟线程对应的当前执行状态,以便分布式线程调度器根据该目标虚拟线程的当前执行状态确定下一步骤的执行任务,并根据该执行任务确定下一步骤的触发时间,以及,在哪个交易节点上触发该目标虚拟线程。同时,该解绑模块将解绑目标虚拟线程与目标计算机线程,即释放计算机的CPU资源,从而使其它虚拟线程该计算机的CPU资源。
本申请提供的基于区块链的业务处理装置,获得待处理交易业务后,获取该待处理交易业务对应的目标虚拟线程,虚拟线程是指业务共识状态机的线程上下文。如果检测到目标虚拟线程满足当前执行条件时,触发该目标虚拟线程;然后,确定执行该目标虚拟线程的目标计算机线程。并将目标虚拟线程与目标计算机线程进行绑定,以使该目标计算机线程执行该目标虚拟线程。在目标计算机线程执行完目标虚拟线程的当前操作步骤后,更新该目标虚拟线程的执行状态,并将该目标虚拟线程挂起,即,将目标虚拟线程与目标计算机线程解绑,释放计算机资源。维护该目标线程的执行状态,当再次满足目标虚拟线程的执行条件时,再次触发执行该目标虚拟线程。由上述过程可见,在区块链系统中使用虚拟线程,通过这种虚拟线程实现将要进行的操作分解到任意多步、任意长时间范围。虚拟线程不满足当前执行条件时,进入休眠状态,待满足当前执行条件时被触发继而触发真正的计算机线程执行该虚拟线程。最终使区块链系统能够支持长时间的业务共识处理,能够与外部金融业务系统相结合。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于区块链的业务处理方法,其特征在于,包括:
获取待处理交易业务对应的目标虚拟线程,所述目标虚拟线程是所述待处理交易业务对应的业务共识状态机的线程上下文;
当所述目标虚拟线程满足当前执行条件时,获取所述目标虚拟线程对应的交易节点,并在所述交易节点上触发所述目标虚拟线程;
确定执行所述目标虚拟线程的目标计算机线程;
将所述目标虚拟线程与所述目标计算机线程进行绑定,以使所述目标计算机线程执行所述目标虚拟线程;
当所述目标虚拟线程对应的当前执行目标被所述目标计算机执行完成后,更新所述目标虚拟线程的执行状态,并解绑所述目标虚拟线程与所述目标计算机线程。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标虚拟线程对应的交易节点,并在所述交易节点上触发所述目标虚拟线程,包括:
当检测到所述目标虚拟线程满足所述当前执行条件时,确定执行所述目标虚拟线程的时间和可选交易节点;
从所述可选交易节点中确定出目标交易节点,并在所述目标交易节点上触发所述目标虚拟线程执行。
3.根据权利要求2所述的方法,其特征在于,所述从所述可选交易节点中确定出目标交易节点,包括:
从所述可选交易节点中选取正常状态的可选交易节点作为所述目标交易节点。
4.根据权利要求1所述的方法,其特征在于,确定执行所述目标虚拟线程的目标计算机线程,包括:
确定能够执行所述目标虚拟线程的各个可选计算机;
根据所述各个可选计算机的状态,确定出目标计算机;
获取在所述目标计算机上运行的各个计算机线程的运行状态;
根据所述各个计算机线程的运行状态,确定当前状态为待调度状态的计算机线程为所述目标计算机线程。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述目标虚拟线程与所述目标计算机线程进行绑定,以使所述目标计算机线程执行所述目标虚拟线程,包括:
获取所述目标虚拟线程的当前执行状态信息,所述当前执行状态信息包括所述目标虚拟线程的执行状态和执行目标;
编译所述当前执行状态信息得到目标执行指令;
触发所述目标计算机线程执行所述目标执行指令,并更新所述目标计算机线程的状态。
6.一种基于区块链的业务处理装置,其特征在于,包括:
获取模块,用于获取待处理交易业务对应的目标虚拟线程,所述目标虚拟线程是所述待处理交易业务对应的业务共识状态机的线程上下文;
触发模块,用于当所述目标虚拟线程满足当前执行条件时,从多个交易节点中确定出目标交易节点,并在所述目标交易节点上触发所述目标虚拟线程;
确定模块,用于确定执行所述目标虚拟线程的目标计算机线程;
绑定模块,用于将所述目标虚拟线程与所述目标计算机线程进行绑定,以使所述目标计算机线程执行所述目标虚拟线程;
解绑模块,用于当所述目标虚拟线程对应的当前执行目标被所述目标计算机执行完成后,更新所述目标虚拟线程的执行状态,并解绑所述目标虚拟线程与所述目标计算机线程。
7.根据权利要求6所述的装置,其特征在于,所述触发模块包括:
第一确定子模块,用于当检测到所述目标虚拟线程满足所述当前执行条件时,确定执行所述目标虚拟线程的时间和可选交易节点;
第二确定子模块,用于从所述可选交易节点中确定出目标交易节点,并在所述目标交易节点上触发所述目标虚拟线程执行。
8.根据权利要求7所述的装置,其特征在于,所述第二确定子模块,具体用于:从所述可选交易节点中选取正常状态的可选交易节点作为所述目标交易节点。
9.根据权利要求6所述的装置,其特征在于,所述确定模块包括:
第三确定子模块,用于确定能够执行所述目标虚拟线程的各个可选计算机;
第四确定子模块,用于根据所述各个可选计算机的状态,确定出目标计算机;
第一获取子模块,用于获取在所述目标计算机上运行的各个计算机线程的运行状态;
第五确定子模块,用于根据所述各个计算机线程的运行状态,确定当前状态为待调度状态的计算机线程为所述目标计算机线程。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述绑定模块,包括:
第二获取子模块,用于获取所述目标虚拟线程的当前执行状态信息,所述当前执行状态信息包括所述目标虚拟线程的执行状态和执行目标;
编译子模块,用于编译所述当前执行状态信息得到目标执行指令;
触发子模块,用于触发所述目标计算机线程执行所述目标执行指令,并更新所述目标计算机线程的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711430190.0A CN108052392B (zh) | 2017-12-26 | 2017-12-26 | 一种基于区块链的业务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711430190.0A CN108052392B (zh) | 2017-12-26 | 2017-12-26 | 一种基于区块链的业务处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108052392A CN108052392A (zh) | 2018-05-18 |
CN108052392B true CN108052392B (zh) | 2020-12-25 |
Family
ID=62131902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711430190.0A Active CN108052392B (zh) | 2017-12-26 | 2017-12-26 | 一种基于区块链的业务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108052392B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324438B (zh) * | 2020-02-18 | 2023-09-19 | 北京嘀嘀无限科技发展有限公司 | 请求的调度方法、装置、存储介质及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1328877C (zh) * | 2001-12-03 | 2007-07-25 | 中兴通讯股份有限公司 | 共享线程实现和调度方法 |
CN101201753B (zh) * | 2007-12-13 | 2012-12-26 | 浪潮通信信息系统有限公司 | 一种多状态机管理引擎的配置管理方法 |
CN102664934B (zh) * | 2012-04-06 | 2015-04-15 | 北京华夏电通科技股份有限公司 | 一种用于服务器自适应自反馈的多线程控制方法及系统 |
US20170032365A1 (en) * | 2015-07-31 | 2017-02-02 | Mozido, Inc. | Crypto-currency-based accrued value interoperability |
CN105700938B (zh) * | 2016-01-15 | 2019-02-19 | 浪潮通用软件有限公司 | 一种多线程处理数据的方法及装置 |
CN107196772B (zh) * | 2017-03-24 | 2020-03-13 | 创新先进技术有限公司 | 一种广播消息的方法及装置 |
-
2017
- 2017-12-26 CN CN201711430190.0A patent/CN108052392B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108052392A (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190392118A1 (en) | Blockchain Version Control | |
US9904585B1 (en) | Error handling in executing workflow state machines | |
US9766927B1 (en) | Data flow management in processing workflows | |
US10360523B2 (en) | System and method for executing business services and enhancing business performance through a business process modeling notation | |
US9235409B1 (en) | Deployment version management | |
JP4283328B2 (ja) | 部分的に順序付けられたトランザクションをスケジューリングしてイベントを関連付けるための方法 | |
US10871918B2 (en) | Writing composite objects to a data store | |
US20170093988A1 (en) | Workflow service using state transfer | |
US8046733B2 (en) | Method and system for process composition | |
US8561010B2 (en) | Software approval process using service governance | |
CN108829506A (zh) | 批量任务处理方法、装置及服务系统 | |
JP2017514218A (ja) | サードパーティアプリケーションの実行 | |
US10803413B1 (en) | Workflow service with translator | |
CN113568981B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
JP2022545422A (ja) | スマートコントラクトの並行実行の方法、装置、機器、及び媒体 | |
US20150100968A1 (en) | Operating Programs on a Computer Cluster | |
CN102007756A (zh) | 用于数据处理环境中的动态供应的方法和装置 | |
CN108052392B (zh) | 一种基于区块链的业务处理方法及装置 | |
US9047144B2 (en) | System and method for providing Quality-of-Services in a multi-event processing environment | |
US10839387B2 (en) | Blockchain based action and billing | |
CN116755719A (zh) | 应用组件的数据处理方法、装置和数据处理系统 | |
WO2023242820A1 (en) | Future conditional blockchain transaction techniques | |
CN113298513A (zh) | 代付请求处理方法及系统 | |
US9286112B2 (en) | Determining and dispatching processing agent for transaction processing | |
US9672083B2 (en) | Operating a program code object in conjunction with an application context |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200526 Address after: 610000 South Tianfu Avenue 888, Huayang Street, Tianfu New District, Chengdu City, Sichuan Province Applicant after: Chengdu quality starker Technology Co., Ltd Address before: 610093 No. 205, No. 996, No. 996, north section of Tianfu Avenue, Wuhou District, Sichuan Applicant before: ZHISHU LINK NETWORK TECHNOLOGY CHENGDU Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |