CN111124631A - 一种基于区块链网络的任务处理方法及装置 - Google Patents
一种基于区块链网络的任务处理方法及装置 Download PDFInfo
- Publication number
- CN111124631A CN111124631A CN201911214223.7A CN201911214223A CN111124631A CN 111124631 A CN111124631 A CN 111124631A CN 201911214223 A CN201911214223 A CN 201911214223A CN 111124631 A CN111124631 A CN 111124631A
- Authority
- CN
- China
- Prior art keywords
- task
- timing task
- contract
- node
- timing
- 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.)
- Pending
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/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
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种基于区块链网络的任务处理方法及装置,任务发布节点根据待处理的定时任务和定时任务的触发条件,生成定时任务的任务处理请求,并将定时任务的任务处理请求发送给任务发布节点连接的区块链节点,区块链节点调用封装的各个任务执行节点在满足定时任务的触发条件时执行定时任务,并通过与区块链网络中的其它区块链节点的共识得到定时任务的执行结果。本发明实施例中,定时任务的发布和执行过程在独立于区块链网络的外部节点上执行,从而处理定时任务不会影响到区块链节点的链内任务的执行,且,通过将定时任务与区块链节点的链内任务解耦,还能提高区块链节点的链内任务的执行效率。
Description
技术领域
本发明涉及金融科技(Finetch)技术领域,尤其涉及一种基于区块链网络的任务处理方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,区块链技术也不例外,但由于金融行业的安全性、实时性要求,金融科技领域也对区块链技术提出了更高的要求。
现阶段,区块链网络通常采用即收即发的策略来处理任务,为了使区块链网络能够支持对定时任务的处理,在一种可能的方式中,可以在区块链网络中设置任务处理队列,将定时任务和定时任务的定时规则(比如触发条件、共识节点等)存储在任务处理队列中,当满足定时任务的触发条件后,定时任务可以经由共识节点处理和共识,从而得到定时任务的处理结果。然而,采用任务处理队列处理定时任务的方式会占用区块链节点的内部空间,还会占用区块链节点的计算资源,从而影响区块链节点的链内任务的执行。
综上,目前亟需一种基于区块链网络的任务处理方法,用以解决现有技术通过任务处理队列处理定时任务所导致的区块链节点的链内任务受影响的技术问题。
发明内容
本发明实施例提供一种基于区块链网络的任务处理方法及装置,用以解决现有技术通过任务处理队列处理定时任务所导致的区块链节点的链内任务受影响的技术问题。
第一方面,本发明实施例提供的一种基于区块链网络的任务处理方法,所述方法包括:
任务发布节点根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求,将所述定时任务的任务处理请求发送给所述任务发布节点连接的区块链节点,并接收所述区块链节点发送的所述定时任务的执行结果;所述区块链节点用于调用所述区块链节点封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,以及通过与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。
本发明实施例中,通过在区块链节点上封装任务发布节点和任务执行节点,并基于任务发布节点发布定时任务,基于任务执行节点执行定时任务,使得定时任务的发布和执行过程均在独立于区块链网络的外部节点上执行,从而处理定时任务时不会影响到区块链节点的链内任务的执行,同时,通过将定时任务与区块链节点的链内任务进行解耦,还可以避免任务阻塞,从而提高区块链节点的链内任务的执行效率。
在一种可能的实现方式中,所述任务发布节点根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求,包括:所述任务发布节点根据所述定时任务生成所述定时任务的执行合约,所述定时任务的执行合约发送给所述区块链节点,所述区块链节点还用于将所述定时任务的执行合约部署在所述区块链网络中,得到所述定时任务的执行合约的合约地址;进一步地,所述任务发布节点接收所述区块链节点发送的所述定时任务的执行合约的合约地址,并根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件,生成所述定时任务的任务处理请求。
在上述实现方式中,通过以执行合约的形式将定时任务发布到区块链网络中,可以保证定时任务能够部署在区块链网络中的每个区块链节点中,从而能够保证存在足够多的任务执行节点执行定时任务;且,执行合约的方式存储定时任务,使得后续调用定时任务时只需要使用定时任务的执行合约的地址和所需调用的合约接口即可实现,而无需再传输全量的定时任务数据,从而可以降低数据处理量,提高任务处理效率。
在一种可能的实现方式中,所述任务发布节点将所述定时任务的任务处理请求发送给所述任务发布节点连接的区块链节点,包括:所述任务发布节点根据所述定时任务的触发条件,确定所述定时任务对应的智能合约;所述定时任务对应的智能合约部署在所述区块链网络的各个区块链节点中;进一步地,所述任务发布节点根据所述定时任务的任务处理请求,调用所述定时任务对应的智能合约的第一接口,以在所述区块链节点中生成所述定时任务对应的日志信息;所述定时任务对应的日志信息用于所述区块链节点中封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件。
在上述实现方式中,通过在区块链网络的各个区块链节点中部署智能合约,并使用智能合约生成定时任务对应的日志信息,可以保证任务执行节点准确地检测到每个发布到区块链网络中的定时任务,提高区块链节点与任务执行节点交互任务的准确性。
在一种可能的实现方式中,所述定时任务的执行合约中包括有授权信息,所述授权信息是允许访问所述定时任务的执行合约的各个智能合约的合约地址;所述任务发布节点调用所述定时任务对应的智能合约的第一接口之前,还确定所述定时任务对应的智能合约的合约地址位于所述授权信息中。
在上述实现方式中,通过在定时任务的执行合约中设置授权信息,并使用授权信息对智能合约进行授权,能够在保证智能合约成功访问到定时任务的执行合约的同时,限定访问定时任务的执行合约的访问者,从而可以保护定时任务的执行合约的安全。
第二方面,本发明实施例提供的一种基于区块链网络的任务处理方法,所述方法包括:
任务执行节点检测到所述任务执行节点所封装的区块链节点中生成定时任务对应的日志信息后,获取所述定时任务的日志信息;所述任务执行节点根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,得到所述任务执行节点对所述定时任务的执行结果;所述任务执行节点对所述定时任务的执行结果用于所述区块链节点与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。
在一种可能的实现方式中,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件;所述任务执行节点根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,包括:所述任务执行节点根据所述定时任务的日志信息调用所述定时任务对应的智能合约的第二接口,所述第二接口用于在满足所述定时任务的触发条件时,根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数,调用所述定时任务的执行合约的所述合约接口执行所述定时任务。
在上述实现方式中,智能合约能够保证定时任务在设定的触发条件下被执行,而不会被提前执行或超时执行,从而能够保证定时任务执行的准确性;且,区块链网络中满足执行条件的各个任务执行节点均可以获取并执行定时任务,相比于现有技术仅分发给对应的区块链节点来执行定时任务的方式来说,可以提高定时任务执行的灵活性。
第三方面,本发明实施例提供的一种基于区块链网络的任务处理装置,所述装置包括:
生成模块,用于根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求;
收发模块,用于将所述定时任务的任务处理请求发送给任务发布节点连接的区块链节点;所述区块链节点用于调用所述区块链节点封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,以及通过与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果;
所述收发模块,还用于接收所述区块链节点发送的所述定时任务的执行结果。
在一种可能的实现方式中,所述生成模块还根据所述定时任务生成所述定时任务的执行合约;所述收发模块还将所述定时任务的执行合约发送给所述区块链节点,所述区块链节点还用于将所述定时任务的执行合约部署在所述区块链网络中,得到所述定时任务的执行合约的合约地址;以及,接收所述区块链节点发送的所述定时任务的执行合约的合约地址;相应地,所述生成模块还根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件,生成所述定时任务的任务处理请求。
在一种可能的实现方式中,所述收发模块具体用于:根据所述定时任务的触发条件,确定所述定时任务对应的智能合约;所述定时任务对应的智能合约部署在所述区块链网络的各个区块链节点中;进一步地,根据所述定时任务的任务处理请求,调用所述定时任务对应的智能合约的第一接口,以在所述区块链节点中生成所述定时任务对应的日志信息;所述定时任务对应的日志信息用于所述区块链节点中封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件。
在一种可能的实现方式中,所述定时任务的执行合约中包括有授权信息,所述授权信息是允许访问所述定时任务的执行合约的各个智能合约的合约地址;所述收发模块调用所述定时任务对应的智能合约的第一接口之前,还确定所述定时任务对应的智能合约的合约地址位于所述授权信息中。
第四方面,本发明实施例提供的一种基于区块链网络的任务处理装置,所述装置包括:
获取模块,用于检测到任务执行节点所封装的区块链节点中生成定时任务对应的日志信息后,获取所述定时任务的日志信息;
处理模块,用于根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,得到所述任务执行节点对所述定时任务的执行结果;所述任务执行节点对所述定时任务的执行结果用于所述区块链节点与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。
在一种可能的实现方式中,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件;具体实施中,所述处理模块具体用于:根据所述定时任务的日志信息调用所述定时任务对应的智能合约的第二接口,所述第二接口用于在满足所述定时任务的触发条件时,根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数,调用所述定时任务的执行合约的所述合约接口执行所述定时任务。
第五方面,本发明实施例提供的一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一或第二方面任意所述的基于区块链网络的任务处理方法。
第六方面,本发明实施例提供的一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一或第二方面任意所述的基于区块链网络的任务处理方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链网络的系统架构示意图;
图2为本发明实施例提供的一种基于区块链网络的任务处理方法对应的流程示意图;
图3为本发明实施例提供的一种基于区块链网络的任务处理装置的结构示意图;
图4为本发明实施例提供的又一种基于区块链网络的任务处理装置的结构示意图;
图5为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种区块链网络的系统架构示意图,如图1所示,区块链网络100中可以设置有一个或多个区块链节点,比如区块链节点101、区块链节点102、区块链节点103和区块链节点104;其中,任意两个区块链节点可以通过有线方式连接,或者也可以通过无线方式连接,从而共同维护区块链网络100。
本发明实施例中,区块链网络100中的每个区块链节点可以具有多种功能,比如,路由功能、交易功能、区块链功能和共识功能等,路由功能是指区块链节点可以将客户端传送过来的交易信息传送给区块链网络100中的其它区块链节点,以实现各个区块链节点之间的通信,交易功能和共识功能是指区块链节点可以通过共识支持与用户的交易或与其它区块链节点的交易,还可以记录在该区块链节点(或区块链网络100)中执行过的全部交易,区块链功能是指区块链节点可以基于交易的执行情况在区块链网络100中生成新区块。
其中,路由功能是区块链网络100中的每个区块链节点必须具有的功能,而其它功能可由本领域技术人员根据实际需要进行设置。
需要说明的是,区块链网络中的区块链节点可以部署在一台物理机(服务器)上,或者可以具体为物理机中运行的一个进程或者一系列进程;比如,区块链节点101可以为服务器上运行的一个进程,或者也可以是指服务器,具体不作限定。
基于图1所示意的区块链网络,图2为本发明实施例提供的一种任务处理方法的流程示意图,该方法包括:
步骤201,任务发布节点根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求。
如图1所示,本发明实施例中,区块链网络100中的每个区块链节点上均可以封装有对应的代理节点,代理节点可以为部署在区块链节点中的软件工具开发包(SoftwareDevelopment Kit,SDK)组件,或者也可以为独立于区块链节点以外的设备,通过远程过程调用(Remote Procedure Call,RPC)协议来实现与区块链节点的通信;且,代理节点虽然封装在区块链节点中,但是代理节点上运行的应用程序独立于区块链节点上运行的应用程序,区块链节点上运行的应用程序用于参与区块链网络中的交易执行和共识,代理节点上运行的应用程序用于发布定时任务或执行定时任务。
本发明实施例中,一个区块链节点上可以封装有一个代理节点,也可以封装有多个代理节点,多个代理节点可以通过不同的端口封装在区块链节点上;若一个区块链节点上封装有多个代理节点,则多个代理节点可以用于执行不同类型的任务。
以图1为例,表1为本发明实施例提供的一种代理节点与任务类型的对应关系的示意表。
表1:一种代理节点与任务类型的对应关系的示意
代理节点 | 区块链节点 | 任务类型 |
代理节点1011 | 区块链节点101 | 转账任务 |
代理节点1012 | 区块链节点101 | 清算任务 |
代理节点1021 | 区块链节点102 | 清算任务 |
代理节点1031 | 区块链节点103 | 积分任务 |
代理节点1041 | 区块链节点104 | 转账任务 |
代理节点1042 | 区块链节点104 | 清算任务 |
代理节点1043 | 区块链节点104 | 积分任务 |
如表1所示,区块链节点101中分别封装代理节点1011和代理节点1012,代理节点1011用于执行转账任务,代理节点1012用于执行清算任务;区块链节点102中仅封装代理节点1021,代理节点1021用于执行清算任务;区块链节点103中仅封装代理节点1031,代理节点1031用于执行积分任务;区块链节点104中分别封装代理节点1041、代理节点1042和代理节点1043,代理节点1041用于执行转账任务,代理节点1042用于执行清算任务,代理节点1043用于执行积分任务。
需要说明的是,表1仅是一种示例性的简单说明,并不构成对方案的限定,在具体实施中,区块链节点也可以按照其它方式划分各个代理节点所执行的任务,比如可以按照任务的执行时间定义各个代理节点所执行的任务,或者按照任务的执行区块划分定义各个代理节点所执行的任务;相应地,每个代理节点可以仅连接一个区块链节点,也可以同时连接多个区块链节点,具体不作限定。
本发明实施例的下列实施例中,将发布定时任务的代理节点称为任务发布节点,将执行任务发布节点发布的任务的代理节点称为任务执行节点。举例来说,若代理节点1012向区块链网络100发布了一个清算类型的定时任务a,则代理节点1012可以作为任务发布节点,由于能够执行清算任务的代理节点为代理节点1021和代理节点1042,因此,代理节点1021和代理节点1042可以作为定时任务a的任务执行节点。
在一种可能的实现方式中,任务发布节点可以通过如下步骤a至步骤c生成定时任务的任务处理请求:
步骤a,任务发布节点根据定时任务的需求生成定时任务的执行合约。
本发明实施例中,定时任务的需求可以由任务发布节点来定义,或者也可以由任务发布节点所连接的外部节点来定义;以后者为例,若外部节点存在定时任务的需求,则外部节点可以直接将定时任务的需求发送给任务发布节点,以使任务发布节点基于定时任务的需求生成定时任务的执行合约,或者外部节点也可以先根据定时任务的需求生成定时任务的执行合约,再将定时任务的执行合约发送给任务发布节点,具体不作限定。
具体实施中,任务发布节点可以先根据定时任务的需求确定定时任务的执行流程,再根据定时任务的执行流程生成定时任务的执行接口(即执行类函数);相应地,任务发布节点可以仅基于定时任务的执行接口生成定时任务的执行合约,或者也可以基于定时任务的执行接口和其它信息共同生成定时任务的执行合约。其中,其它信息可以为存在该定时任务的需求的节点的标识、执行合约的创建时间、执行合约的状态和执行合约的授权信息中的任意一项或任意多项;执行合约的状态可以为未执行状态、正在执行状态或已执行状态,未执行状态用于标识该定时任务还未被任务执行节点锁定,正在执行状态用于标识该定时任务已被任务执行节点锁定,当还未被任务执行节点执行完成,已执行状态用于标识该定时任务已被任务执行节点执行完成;执行合约的授权信息为允许访问该执行合约的智能合约的标识信息,比如允许访问该执行合约的智能合约的地址或名称等。
在一个示例中,若定时任务的执行合约仅基于定时任务的执行接口生成,则定时任务的执行合约可以具有如下格式:
其中,Process为定时任务的执行合约,Process合约中定义了定时任务的执行接口doAction1,args为doAction1执行接口的参数,且“public returns(bool)”定义了doAction1执行接口的返回值为布尔型,“……”定义了定时任务的具体执行流程。
在另一个示例中,若定时任务的执行合约基于定时任务的执行接口、存在该定时任务的需求的节点的标识、执行合约的创建时间、执行合约的状态和执行合约的授权访问者信息生成,则定时任务的执行合约可以具有如下格式:
其中,Process为定时任务的执行合约,Process合约中定义了定时任务的执行函数doAction1,还定义了如下变量:
address_owner变量,用于定义存在该定时任务的需求的节点的地址;
uint64_createTime变量:用于定义Process合约的创建时间;
uint8_status变量,用于定义Process合约的状态;
address[]_stakeHolders变量,用于定义允许访问Process合约的智能合约的地址。
为了保证仅允许address[]_stakeHolders变量中定义的智能合约的地址访问Process合约,而避免其它智能合约访问到Process合约,Process合约中还可以定义有权限鉴定修饰器,如下所示:
其中,onlyStakeHolders为权限鉴定修饰器,onlyStakeHolders修饰器限定了只有在address[]_stakeHolders变量中定义的智能合约的地址才能允许访问doAction1执行接口。
在一个示例中,定时任务的执行合约中还可以包括权限更新接口,权限更新接口用于对定时任务的执行合约中的授权信息进行更新,更新的方式可以包括在授权信息中新增一个或多个智能合约的地址,或者删除授权信息中原有的智能合约的地址,等等。
其中,新增智能合约的地址的权限更新接口可以设置为如下形式:
function addOwner(address owner)public returns(bool)onlyOwner{
ArrayUtils.put(_owners,owner);}
其中,addOwner权限更新接口用于任务发布节点或其它授权节点在address_owner变量中增加新的智能合约的地址。
步骤b,任务发布节点基于定时任务的执行合约生成合约部署请求,并将合约部署请求发送给任务发布节点连接的区块链节点。
为了便于理解,下面以任务发布节点为代理节点1012为例描述部署定时任务的执行合约的过程。
具体实施中,区块链节点101在接收到代理节点1012发送的定时任务的执行合约后,可以将定时任务的执行合约广播给区块链网络中的其它区块链节点,如此,区块链网络中的各个区块链节点通过共识过程为定时任务的执行合约分配一个随机的合约地址(比如0X01),若该合约地址共识成功,则区块链节点101可以将合约地址0X01发送回代理节点1012。且,在区块链网络中的每个区块链节点中,定时任务的执行合约存储在合约地址0X01处。
步骤c,任务发布节点基于定时任务的执行合约对应的合约地址和定时任务的触发条件生成任务处理请求。
其中,触发条件可以由本领域技术人员根据经验进行设置,或者也可以基于业务需求进行设置,比如可以设置为定时任务的执行时段信息,或者可以设置为定时任务的执行区块,不作限定。
举例来说,定时任务的触发条件可以为定时任务最早能执行的区块高度和最迟能执行的区块高度,或者可以为定时任务最早能执行的时间戳和最迟能执行的时间戳,等等。
在一个示例中,若定时任务的执行合约中设置有多个接口(比如执行接口、权限鉴定接口、权限更新接口等),则任务发布节点还可以基于定时任务的执行合约对应的合约地址、所调用的合约接口的标识、合约接口参数和定时任务的触发条件生成任务处理请求。
本发明实施例中,还可以在定时任务的执行合约中设置任务更新接口,任务更新接口可以用于对已发布的定时任务进行更新操作,更新操作包括提前触发条件或延迟触发条件、取消定时任务、修改定时任务的执行接口等。
相应地,还可以为更新接口设置有对应的权限节点,只有具有权限的节点方可以基于更新接口修改定时任务,权限节点可以是区块链节点,也可以是代理节点。
且,若定时任务的执行合约检测到定时任务被修改,则定时任务的执行合约还可以将修改信息主动推送给各个区块链节点,以使各个区块链节点对应推送给各个代理节点;相应地,代理节点中若存储有定时任务对应的日志信息,则代理节点可以根据修改信息对应修改定时任务对应的日志信息。
步骤202,所述任务发布节点将所述定时任务的任务处理请求发送给所述任务发布节点连接的区块链节点。
作为一种可能的实现方式,区块链网络中可以部署有第一智能合约,第一智能合约中设置有创建日志接口,任务发布节点在生成定时任务的任务处理请求后,可以根据任务处理请求和第一智能合约的创建日志接口生成调用请求,并将调用请求发送给任务发布节点连接的区块链节点。
相应地,若定时任务的执行合约中设置有授权信息,则任务发布者节点还可以将第一智能合约的合约地址添加到定时任务的执行合约的授权信息中(即address[]_stakeHolders变量中),从而保证区块链节点能够通过第一智能合约的创建日志接口调用定时任务的执行合约。
本发明实施例中,通过在定时任务的执行合约中限定授权信息,并在授权信息中对第一智能合约进行授权,能够在保证第一智能合约成功访问到定时任务的执行合约的同时,限定访问定时任务的执行合约的智能合约,从而可以保护执行合约的安全。
在一个示例中,第一智能合约(即下列所示的ScheduleTask)可以具有如下格式:
contract ScheduleTask{
event newScheduTask(address executeAddres,bytes32 methodName,stringparas,uint startBlockHeight,uint lastBlockHeight,address contractAddress);
//说明:newScheduTask接口用于生成定时任务对应的日志信息;若区块链节点中成功生成了定时任务对应的日志信息,则该区块链节点所连接的各个代理节点均可以通过监听和查询该日志信息,获取定时任务的详细内容;
modifier inTime(startBlockHeight,lastBlockHeight){
require(block.number>=startBlockHeight&&block.number<=
lastBlockHeight,"Only owner is authered");}
//说明:inTime修饰器用于限定定时任务的执行时间,inTime修饰器可以判断当前是否满足定时任务的触发条件startBlockHeight和lastBlockHeight,只有在满足定时任务的触发条件startBlockHeight和lastBlockHeight时,inTime修饰器才允许定时任务被执行;
//说明:registerTask接口用于获取任务发布节点发送的任务处理请求中的各个参数,并基于各个参数调用newScheduTask接口生成定时任务对应的日志信息;
//说明:execute接口为定时任务的执行接口,任务执行节点可以通过调用execute接口执行定时任务,而execute接口在接收到调用请求后,通过内部调用定时任务的执行合约中的调用接口process.doAction1(paras)来执行定时任务,同时,智能合约ScheduleTask中定义的inTime修饰器能够保证在满足定时任务的触发条件时执行定时任务,在不满足定时任务的触发条件时不执行定时任务。
具体实施中,任务发布节点在生成任务处理请求后,可以先根据任务处理请求中定时任务的执行合约的合约地址executeAddres、所调用的合约接口的标识bytes32methodName、合约接口参数string paras、定时任务的触发条件uint startBlockHeight和uint lastBlockHeight以及第一智能合约ScheduleTask的registerTask接口生成调用请求,然后把调用请求发送给任务发布节点连接的区块链节点。
作为另一种可能的实现方式,区块链网络中也可以部署有多个智能合约,每个智能合约中均设置有创建日志接口,任务发布节点在生成定时任务的任务处理请求后,可以先根据任务处理请求中定时任务的触发条件确定定时任务对应的智能合约,再根据任务处理请求和定时任务对应的智能合约的创建日志接口生成调用请求,并将调用请求发送给任务发布节点连接的区块链节点。
其中,每个智能合约设置有对应的触发条件,智能合约仅能够调用对应的触发条件的定时任务的执行合约,智能合约和触发条件的对应关系可以由本领域技术人员根据经验进行设置,也可以根据业务需求进行设置,不作限定。
举例来说,在一种可能的对应关系中,可以每隔N个区块部署一个对应的智能合约,并使用该智能合约调用触发条件属于N个区块内的定时任务的执行合约,比如,为区块1~区块5部署了智能合约1,为区块6~区块10部署了智能合约2,则若定时任务的触发条件为对第7区块上的数据执行定时任务,则该定时任务对应的智能合约为智能合约2;在另一种可能的对应关系中,可以部署T个智能合约,并将各个区块按照区块高度对T进行取模的余数划分到T个智能合约中,比如存在区块1~区块10和智能合约1~智能合约3,则区块1~区块3、区块10对应智能合约1,区块4~区块6对应智能合约2,区块7~区块9对应智能合约3;在其它可能的对应关系中,还可以按照执行时间、区块链节点的标识、定时任务的类型确定各个定时任务对应的智能合约,确定的方式可以参照区块高度进行设置,不再赘述。
步骤203,所述区块链节点根据所述定时任务的任务处理请求,在所述区块链节点中生成所述定时任务对应的日志信息。
具体实施中,当区块链节点接收到任务发布节点发送的调用请求后,可以根据调用请求调用第一智能合约ScheduleTask的registerTask接口,registerTask接口被调用后会在内部调用第一智能合约ScheduleTask的newScheduTask接口,从而在区块链节点上生成定时任务对应的日志信息。其中,定时任务对应的日志信息中可以包括定时任务的详细信息,比如定时任务的执行合约的合约地址、定时任务的触发条件、所调用的接口标识、接口参数,等等。
本发明实施例中,当某一个区块链节点接收到调用请求后,可以先将调用请求同步给区块链网络中的其他区块链节点,再根据调用请求在区块链节点中创建定时任务对应的日志信息,也可以先根据调用请求在区块链节点中创建定时任务对应的日志信息,再将调用请求同步给区块链网络中的其他区块链节点,具体不作限定。
需要说明的是,区块链网络中的每个区块链节点在接收到调用请求后,均可以根据调用请求在该区块链节点中创建定时任务对应的日志信息。
步骤204,任务执行节点检测到所述任务执行节点所封装的区块链节点中生成定时任务对应的日志信息后,获取所述定时任务的日志信息。
具体实施中,针对于每个区块链节点上封装的每个代理节点,该代理节点可以通过多种方式监听该区块链节点上是否生成了定时任务对应的日志信息,比如,代理节点可以轮询获取区块链节点上的最新区块高度,当确定最新区块高度发生变化后,可以从区块链节点中查询是否存在新生成的日志信息;或者,代理节点也可以通过SDK组件中的事件订阅功能订阅区块链节点上的日志信息,当区块链节点上新生成了一条日志信息后,代理节点会接收到SDK组件发送的报文通知,如此,代理节点则可以在每次收到报文通知时从区块链节点中获取新生成的日志信息。
本发明实施例中,在获取定时任务对应的日志信息之前,代理节点还可以确定自己是否满足定时任务的执行条件,比如可以判断定时任务的类型与代理节点能执行的任务的类型是否匹配,若不匹配,则代理节点可以不处理定时任务;若匹配,则代理节点可以作为一个任务执行节点,并可以将定时任务对应的日志信息添加在代理节点的任务处理队列中,依次执行任务处理队列中的各个任务。
步骤205,任务执行节点根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,得到所述任务执行节点对所述定时任务的执行结果。
下面以智能合约ScheduleTask为例描述任一任务执行节点执行定时任务的具体实现过程。
在一个示例中,当获取到定时任务对应的日志信息后,任务执行节点可以轮询调用智能合约ScheduleTask的execute接口,针对于每一次调用,execute接口会在内部调用定时任务的执行合约中的调用接口process.doAction1(paras)来执行定时任务,同时,智能合约ScheduleTask的inTime修饰器会检测当前时刻或当前区块是否满足定时任务的触发条件,若满足,则可以允许execute接口成功调用到定时任务的执行合约中的调用接口process.doAction1(paras),从而实现在满足定时任务的触发条件时执行定时任务,若不满足,则不允许execute接口调用到定时任务的执行合约中的调用接口process.doAction1(paras),从而实现在不满足定时任务的触发条件拒绝执行定时任务。
本发明实施例中,通过设定inTime修饰器,能够保证定时任务在设定的触发条件下被执行,而不会被提前执行或超时执行,从而能够保证定时任务执行的准确性;且,区块链网络中满足执行条件的各个代理节点均可以获取并执行定时任务,相比于现有技术仅分发给对应的节点来执行定时任务的方式来说,可以提高定时任务执行的灵活性。
作为一种可能的实现方式,为了提高各个任务执行节点的积极性,任务发布节点还可以设置定时任务对应的激励规则,定时任务对应的激励规则可以设置在智能合约ScheduleTask的execute接口中,定时任务对应的激励规则可以由本领域技术人员根据经验进行设置,比如可以设置多个不同的激励值,并在各个任务执行节点执行完定时任务后,按照执行的先后顺序将多个不同的激励值分发给先执行完的多个任务执行节点,或者也可以仅设置一个激励值,并将该激励值分发给最先执行完的任务执行节点,等等。通过设置激励规则,使得区块链网络中的各个代理节点均有动力来执行定时任务,从而定时任务能够被多个代理节点执行,保证了执行定时任务的节点的冗余性,确保能在设定的时间窗口内完成定时任务。
相应地,本发明实施例还可以设置对各个区块链节点的考核机制,比如可以根据设定时段内每个区块链节点上封装的代理节点执行定时任务的情况确定每个区块链节点的考核分值,并基于各个区块链节点的考核分值进行奖励或惩罚。
步骤206,任务执行节点将任务执行节点对定时任务的执行结果发送给任务执行节点所封装的区块链节点。
步骤207,区块链网络中的各个区块链节点对各个任务执行节点对定时任务的执行结果进行共识,得到定时任务的执行结果。
步骤208,与任务发布节点连接的区块链节点将定时任务的执行结果发送给任务发布节点。
本发明的上述实施例中,任务发布节点根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求,将所述定时任务的任务处理请求发送给所述任务发布节点连接的区块链节点,并接收所述区块链节点发送的所述定时任务的执行结果;所述区块链节点用于调用所述区块链节点封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,以及通过与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。本发明实施例中,通过在区块链节点上封装任务发布节点和任务执行节点,并基于任务发布节点发布定时任务,基于任务执行节点执行定时任务,使得定时任务的发布和执行过程均在独立于区块链网络的外部节点上执行,从而处理定时任务时不会影响到区块链节点的链内任务的执行,同时,通过将定时任务与区块链节点的链内任务进行解耦,还可以避免任务阻塞,从而提高区块链节点的链内任务的执行效率。
针对上述方法流程,本发明实施例还提供一种基于区块链网络的任务处理装置,该装置的具体内容可以参照上述方法实施。
图3为本发明实施例提供的一种基于区块链网络的任务处理装置的结构示意图,该装置包括:
生成模块301,用于根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求;
收发模块302,用于将所述定时任务的任务处理请求发送给任务发布节点连接的区块链节点;所述区块链节点用于调用所述区块链节点封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,以及通过与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果;
所述收发模块302,还用于接收所述区块链节点发送的所述定时任务的执行结果。
可选地,所述生成模块301还用于:根据所述定时任务生成所述定时任务的执行合约;
所述收发模块302还用于:将所述定时任务的执行合约发送给所述区块链节点,所述区块链节点还用于将所述定时任务的执行合约部署在所述区块链网络中,得到所述定时任务的执行合约的合约地址;以及,接收所述区块链节点发送的所述定时任务的执行合约的合约地址;
所述生成模块301还用于:根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件,生成所述定时任务的任务处理请求。
可选地,所述收发模块302具体用于:
根据所述定时任务的触发条件,确定所述定时任务对应的智能合约;所述定时任务对应的智能合约部署在所述区块链网络的各个区块链节点中;
根据所述定时任务的任务处理请求,调用所述定时任务对应的智能合约的第一接口,以在所述区块链节点中生成所述定时任务对应的日志信息;所述定时任务对应的日志信息用于所述区块链节点中封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件。
可选地,所述定时任务的执行合约中包括有授权信息,所述授权信息是允许访问所述定时任务的执行合约的各个智能合约的合约地址;
所述收发模块302调用所述定时任务对应的智能合约的第一接口之前,还用于:
确定所述定时任务对应的智能合约的合约地址位于所述授权信息中。
图4为本发明实施例提供的又一种基于区块链网络的任务处理装置的结构示意图,该装置包括:
获取模块401,用于检测到任务执行节点所封装的区块链节点中生成定时任务对应的日志信息后,获取所述定时任务的日志信息;
处理模块402,用于根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,得到所述任务执行节点对所述定时任务的执行结果;所述任务执行节点对所述定时任务的执行结果用于所述区块链节点与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。
可选地,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件;
所述处理模块402具体用于:
根据所述定时任务的日志信息调用所述定时任务对应的智能合约的第二接口,所述第二接口用于在满足所述定时任务的触发条件时,根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数,调用所述定时任务的执行合约的所述合约接口执行所述定时任务。
从上述内容可以看出:本发明的上述实施例中,任务发布节点根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求,将所述定时任务的任务处理请求发送给所述任务发布节点连接的区块链节点,并接收所述区块链节点发送的所述定时任务的执行结果;所述区块链节点用于调用所述区块链节点封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,以及通过与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。本发明实施例中,通过在区块链节点上封装任务发布节点和任务执行节点,并基于任务发布节点发布定时任务,基于任务执行节点执行定时任务,使得定时任务的发布和执行过程均在独立于区块链网络的外部节点上执行,从而处理定时任务时不会影响到区块链节点的链内任务的执行,同时,通过将定时任务与区块链节点的链内任务进行解耦,还可以避免任务阻塞,从而提高区块链节点的链内任务的执行效率。
基于同一发明构思,本发明实施例还提供了一种计算设备,如图5所示,包括至少一个处理器501,以及与至少一个处理器连接的存储器502,本发明实施例中不限定处理器501与存储器502之间的具体连接介质,图5中处理器501和存储器502之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,可以执行前述的基于区块链网络的任务处理方法中所包括的步骤。
其中,处理器501是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器502内的指令以及调用存储在存储器502内的数据,从而实现数据处理。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理运维人员下发的指令。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器501可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合基于区块链网络的任务处理实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述处理器执行上述图2任意所述的基于区块链网络的任务处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种基于区块链网络的任务处理方法,其特征在于,所述方法包括:
任务发布节点根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求;
所述任务发布节点将所述定时任务的任务处理请求发送给所述任务发布节点连接的区块链节点;所述区块链节点用于调用所述区块链节点封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,以及通过与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果;
所述任务发布节点接收所述区块链节点发送的所述定时任务的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述任务发布节点根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求,包括:
所述任务发布节点根据所述定时任务生成所述定时任务的执行合约;
所述任务发布节点将所述定时任务的执行合约发送给所述区块链节点,所述区块链节点还用于将所述定时任务的执行合约部署在所述区块链网络中,得到所述定时任务的执行合约的合约地址;
所述任务发布节点接收所述区块链节点发送的所述定时任务的执行合约的合约地址;
所述任务发布节点根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件,生成所述定时任务的任务处理请求。
3.根据权利要求2所述的方法,其特征在于,所述任务发布节点将所述定时任务的任务处理请求发送给所述任务发布节点连接的区块链节点,包括:
所述任务发布节点根据所述定时任务的触发条件,确定所述定时任务对应的智能合约;所述定时任务对应的智能合约部署在所述区块链网络的各个区块链节点中;
所述任务发布节点根据所述定时任务的任务处理请求,调用所述定时任务对应的智能合约的第一接口,以在所述区块链节点中生成所述定时任务对应的日志信息;所述定时任务对应的日志信息用于所述区块链节点中封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件。
4.根据权利要求3所述的方法,其特征在于,所述定时任务的执行合约中包括有授权信息,所述授权信息是允许访问所述定时任务的执行合约的各个智能合约的合约地址;
所述任务发布节点调用所述定时任务对应的智能合约的第一接口之前,还包括:
确定所述定时任务对应的智能合约的合约地址位于所述授权信息中。
5.一种基于区块链网络的任务处理方法,其特征在于,所述方法包括:
任务执行节点检测到所述任务执行节点所封装的区块链节点中生成定时任务对应的日志信息后,获取所述定时任务的日志信息;
所述任务执行节点根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,得到所述任务执行节点对所述定时任务的执行结果;所述任务执行节点对所述定时任务的执行结果用于所述区块链节点与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。
6.根据权利要求5所述的方法,其特征在于,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件;
所述任务执行节点根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,包括:
所述任务执行节点根据所述定时任务的日志信息调用所述定时任务对应的智能合约的第二接口,所述第二接口用于在满足所述定时任务的触发条件时,根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数,调用所述定时任务的执行合约的所述合约接口执行所述定时任务。
7.一种基于区块链网络的任务处理装置,其特征在于,所述装置包括:
生成模块,用于根据待处理的定时任务和所述定时任务的触发条件,生成所述定时任务的任务处理请求;
收发模块,用于将所述定时任务的任务处理请求发送给任务发布节点连接的区块链节点;所述区块链节点用于调用所述区块链节点封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,以及通过与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果;
所述收发模块,还用于接收所述区块链节点发送的所述定时任务的执行结果。
8.根据权利要求7所述的装置,其特征在于,所述生成模块还用于:根据所述定时任务生成所述定时任务的执行合约;
所述收发模块,还用于:将所述定时任务的执行合约发送给所述区块链节点,所述区块链节点还用于将所述定时任务的执行合约部署在所述区块链网络中,得到所述定时任务的执行合约的合约地址;以及,接收所述区块链节点发送的所述定时任务的执行合约的合约地址;
所述生成模块还用于:根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件,生成所述定时任务的任务处理请求。
9.根据权利要求7所述的装置,其特征在于,所述收发模块具体用于:
根据所述定时任务的触发条件,确定所述定时任务对应的智能合约;所述定时任务对应的智能合约部署在所述区块链网络的各个区块链节点中;
根据所述定时任务的任务处理请求,调用所述定时任务对应的智能合约的第一接口,以在所述区块链节点中生成所述定时任务对应的日志信息;所述定时任务对应的日志信息用于所述区块链节点中封装的各个任务执行节点在满足所述定时任务的触发条件时执行所述定时任务,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件。
10.根据权利要求9所述的装置,其特征在于,所述定时任务的执行合约中包括有授权信息,所述授权信息是允许访问所述定时任务的执行合约的各个智能合约的合约地址;
所述收发模块调用所述定时任务对应的智能合约的第一接口之前,还用于:
确定所述定时任务对应的智能合约的合约地址位于所述授权信息中。
11.一种基于区块链网络的任务处理装置,其特征在于,所述装置包括:
获取模块,用于检测到任务执行节点所封装的区块链节点中生成定时任务对应的日志信息后,获取所述定时任务的日志信息;
处理模块,用于根据所述定时任务的日志信息确定所述定时任务的触发条件,并在满足所述定时任务的触发条件时执行所述定时任务,得到所述任务执行节点对所述定时任务的执行结果;所述任务执行节点对所述定时任务的执行结果用于所述区块链节点与所述区块链网络中的其它区块链节点的共识得到所述定时任务的执行结果。
12.根据权利要求11所述的装置,其特征在于,所述定时任务对应的日志信息包括所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数和所述定时任务的触发条件;
所述处理模块具体用于:
根据所述定时任务的日志信息调用所述定时任务对应的智能合约的第二接口,所述第二接口用于在满足所述定时任务的触发条件时,根据所述定时任务的执行合约的合约地址、所述定时任务所需调用的合约接口、合约参数,调用所述定时任务的执行合约的所述合约接口执行所述定时任务。
13.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~4或5和6任一权利要求所述的方法。
14.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1~4或5和6任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911214223.7A CN111124631A (zh) | 2019-12-02 | 2019-12-02 | 一种基于区块链网络的任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911214223.7A CN111124631A (zh) | 2019-12-02 | 2019-12-02 | 一种基于区块链网络的任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111124631A true CN111124631A (zh) | 2020-05-08 |
Family
ID=70496819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911214223.7A Pending CN111124631A (zh) | 2019-12-02 | 2019-12-02 | 一种基于区块链网络的任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124631A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831745A (zh) * | 2020-06-05 | 2020-10-27 | 广东科学技术职业学院 | 定时智能合约的调度方法及装置 |
CN114268634A (zh) * | 2021-06-02 | 2022-04-01 | 支付宝(杭州)信息技术有限公司 | 基于链外的计算服务的业务执行方法 |
-
2019
- 2019-12-02 CN CN201911214223.7A patent/CN111124631A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831745A (zh) * | 2020-06-05 | 2020-10-27 | 广东科学技术职业学院 | 定时智能合约的调度方法及装置 |
CN111831745B (zh) * | 2020-06-05 | 2023-04-18 | 广东科学技术职业学院 | 定时智能合约的调度方法及装置 |
CN114268634A (zh) * | 2021-06-02 | 2022-04-01 | 支付宝(杭州)信息技术有限公司 | 基于链外的计算服务的业务执行方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111163129B (zh) | 一种基于跨链网络的资源处理方法及装置 | |
US20200177572A1 (en) | Sending cross-chain authenticatable messages | |
CN110569251A (zh) | 一种数据处理方法、相关设备及计算机可读存储介质 | |
CN109614209B (zh) | 一种任务处理方法、应用服务器及系统 | |
CN108512939B (zh) | 一种区块链共识方法、装置及相关设备 | |
CN111861482B (zh) | 一种区块链对账方法和系统 | |
CN110780870B (zh) | 一种业务执行方法、装置、设备及存储介质 | |
CN111614761B (zh) | 区块链消息传输方法、装置、计算机以及可读存储介质 | |
CN106844055B (zh) | 一种任务的执行方法和装置 | |
CN110222535B (zh) | 区块链配置文件的处理装置、方法及存储介质 | |
CN110597918A (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
WO2020238250A1 (zh) | 资金链信息追溯方法、系统、服务器和可读存储介质 | |
CN111985007A (zh) | 一种基于区块链的合同签署与执行方法及装置 | |
CN111124631A (zh) | 一种基于区块链网络的任务处理方法及装置 | |
CN111711526A (zh) | 一种区块链节点的共识方法及系统 | |
CN111506932A (zh) | 一种区块链算力上链实现方法 | |
CN115757611A (zh) | 大数据集群切换方法、装置、电子设备及存储介质 | |
CN111861481A (zh) | 一种区块链对账方法和系统 | |
CN111368008A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US11120513B2 (en) | Capital chain information traceability method, system, server and readable storage medium | |
CN113128998B (zh) | 一种区块链系统的业务处理方法、装置及系统 | |
CN111782378A (zh) | 自适应性的处理性能调整方法、服务器及可读存储介质 | |
CN109308219B (zh) | 任务处理方法、装置及分布式计算机系统 | |
CN116244062A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN110222016B (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 |