基于智能合约的任务执行方法及装置制造方法及图纸

技术编号:29205435 阅读:27 留言:0更新日期:2021-07-10 00:40
本说明书一个或多个实施例提供一种基于智能合约的任务执行方法及装置。该方法应用于部署有区块链节点实例和业务实例的第一节点设备,包括:所述区块链节点实例响应于调用智能合约中定义的工作流的第一交易,在所述工作流的处理进度处于第一任务结点之前且第一交易提供的入参使第一任务结点的执行条件被满足的情况下,生成对应于第一任务结点的任务分配事件;所述业务实例在监听到所述任务分配事件且确定所述任务分配事件所含的第一合约任务被分配至第一节点设备所属的第一区块链成员的情况下,执行第一合约任务。执行第一合约任务。执行第一合约任务。

【技术实现步骤摘要】
基于智能合约的任务执行方法及装置


[0001]本说明书一个或多个实施例涉及区块链
,尤其涉及一种基于智能合约的任务执行方法及装置。

技术介绍

[0002]区块链技术构建在传输网络(例如点对点网络)之上。区块链网络中的节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。在一些区块链网络中,部分节点有时存在实现小范围交易的需求,以避免其他节点获得这些交易及其相关数据,因此可以在区块链主网的基础上进一步建立区块链子网。
[0003]区块链主网或区块链子网中部署的智能合约可以定义有工作流,从而区块链节点在执行智能合约的过程中,即可执行该工作流中对应于各个任务结点的合约任务。但是,同一智能合约对应的多个合约任务可能分别需要不同的区块链成员参与执行,所以在上述智能合约被调用的情况下,如何分配区块链成员有序参与执行相应的合约任务,是智能合约执行过程中亟待解决的问题。

技术实现思路

[0004]有鉴于此,本说明书一个或多个实施例提供一种基于智能合约的任务执行方法及装置。
[0005]为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种基于智能合约的任务执行方法,应用于部署有区块链节点实例和业务实例的第一节点设备,所述方法包括:所述区块链节点实例响应于调用智能合约中定义的工作流的第一交易,在所述工作流的处理进度处于第一任务结点之前且第一交易提供的入参使第一任务结点的执行条件被满足的情况下,生成对应于第一任务结点的任务分配事件;所述业务实例在监听到所述任务分配事件且确定所述任务分配事件所含的第一合约任务被分配至第一节点设备所属的第一区块链成员的情况下,执行第一合约任务。
[0006]根据本说明书一个或多个实施例的第二方面,提出了一种基于智能合约的任务执行装置,应用于部署有区块链节点实例和业务实例的第一节点设备,所述装置包括:事件生成单元,使所述区块链节点实例响应于调用智能合约中定义的工作流的第一交易,在所述工作流的处理进度处于第一任务结点之前且第一交易提供的入参使第一任务结点的执行条件被满足的情况下,生成对应于第一任务结点的任务分配事件;任务执行单元,使所述业务实例在监听到所述任务分配事件且确定所述任务分配事件所含的第一合约任务被分配至第一节点设备所属的第一区块链成员的情况下,执行第一合约任务。
[0007]根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:处理器;
用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
[0008]根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
[0009]图1是一示例性实施例提供的一种创建智能合约的示意图。
[0010]图2是一示例性实施例提供的一种调用智能合约的示意图。
[0011]图3是一示例性实施例提供的一种创建和调用智能合约的示意图。
[0012]图4是一示例性实施例提供的一种基于区块链主网组建区块链子网的示意图。
[0013]图5是一示例性实施例提供的一种基于智能合约的任务执行方法的流程图。
[0014]图6是一示例性实施例提供的一种智能合约的工作流示意图。
[0015]图7是一示例性实施例提供的一种智能合约的工作流状态迁移图。
[0016]图8是一示例性实施例提供的一种设备的结构示意图。
[0017]图9是一示例性实施例提供的一种基于智能合约的任务执行装置的框图。
具体实施方式
[0018]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
[0019]需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
[0020]区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
[0021]不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
[0022]以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。
[0023]例如图1所示,Bob将一个包含创建智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图1中的“0x6f8ae93
…”
代表了这个合约的地址,交易的data字段保存的可以是字节码,交易的to字段为空。节点间通过共识机制达成一致后,这个合约成功创建,并且可以在后续过程中被调用。合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码将保存在该合约账户中。智能合约的行为由合约代码控制。换句话说,智能合约使得区块链上产生包含合约代码和账户存储(Storage)的虚拟账户。
[0024]如图2所示,仍以以太坊为例,Bob将一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于智能合约的任务执行方法,应用于部署有区块链节点实例和业务实例的第一节点设备,所述方法包括:所述区块链节点实例响应于调用智能合约中定义的工作流的第一交易,在所述工作流的处理进度处于第一任务结点之前且第一交易提供的入参使第一任务结点的执行条件被满足的情况下,生成对应于第一任务结点的任务分配事件;所述业务实例在监听到所述任务分配事件且确定所述任务分配事件所含的第一合约任务被分配至第一节点设备所属的第一区块链成员的情况下,执行第一合约任务。2.根据权利要求1所述的方法,所述执行条件包括下述至少之一:第一交易提供的入参的数据格式符合要求;第一交易提供的入参为所述工作流中处于第一任务结点之前的第二任务结点所对应的第二合约任务的执行结果。3.根据权利要求2所述的方法,当第一交易调用所述智能合约中用于推进工作流的方法时,表明所述入参与第二任务结点无关;当第一交易调用所述智能合约中的任务回调方法时,表明所述入参为第二合约任务的执行结果;其中,所述任务回调方法被调用后,自动触发用于推进工作流的方法。4.根据权利要求1所述的方法,所述第一任务结点的执行条件包含多个执行子条件,所述方法还包括:在第一交易提供的入参满足第一任务结点的全部执行子条件,或者满足第一任务结点的部分执行子条件且其余执行子条件已被所述区块链节点实例记录的第二交易提供的入参满足的情况下,所述区块链节点实例确定执行条件被满足;在第一交易提供的入参满足所述第一任务结点的部分执行子条件且存在尚未被满足的执行子条件的情况下,所述区块链节点实例记录第一交易提供的入参并等待。5.根据权利要求1所述的方法,在下述任一情况下,确定所述任务分配事件所含的第一合约任务被分配至第一节点设备所属的第一区块链成员:所述任务分配事件中包含所述第一区块链成员的身份信息;第一合约任务的任务内容匹配于所述第一区块链成员对应的任务分配条件。6.根据权利要求1所述的方法,还包括:在所述工作流的处理进度处于第一任务结点之前且第一交易提供的入参使第一任务结点的执行条件被满足的情况下,所述区块链节点实例将所述工作流的处理进度更新至第一任务结点之后。7.根据权利要求1所述的方法,所述业务实例执行所述第一合约任务,包括:所...

【专利技术属性】
技术研发人员:赵博然
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1