CN111045892A - 一种智能合约执行的过程状态检测方法及装置 - Google Patents
一种智能合约执行的过程状态检测方法及装置 Download PDFInfo
- Publication number
- CN111045892A CN111045892A CN201911269565.9A CN201911269565A CN111045892A CN 111045892 A CN111045892 A CN 111045892A CN 201911269565 A CN201911269565 A CN 201911269565A CN 111045892 A CN111045892 A CN 111045892A
- Authority
- CN
- China
- Prior art keywords
- process state
- intelligent contract
- transaction
- block
- monitoring
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种智能合约执行的过程状态检测方法及装置,所述方法包括:根据预设关系依次确定与业务逻辑相对应的监控API接口;所述过程状态包括智能合约信息及监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头。所述装置执行上述方法。本发明实施例提供的方法及装置,能够增强对智能合约的风险检查能力。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种智能合约执行的过程状态检测方法及装置。
背景技术
区块链(Block chain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执行。现有的区块链技术方案只能保证智能合约执行结果状态的一致性,但结果状态一致并不代表智能合约执行过程状态的一致性。在某些场景下,在智能合约执行过程状态不一致的情况下,也可能导致执行结果状态一致,但是,此时的智能合约执行已经发生异常,存在极高的安全风险。
发明内容
针对现有技术存在的问题,本发明实施例提供一种智能合约执行的过程状态检测方法及装置。
本发明实施例提供一种智能合约执行的过程状态检测方法,包括:
获取区块内的交易,并确定与所述交易相对应的智能合约;
在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;
确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;
根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;
根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
其中,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,包括:
根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。
其中,所述根据所述所有交易过程状态哈希,确定区块过程状态哈希,包括:
将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。
其中,所述智能合约执行的过程状态检测方法,还包括:
将所述默克尔树的树根节点作为所述区块过程状态哈希。
其中,所述智能合约执行的过程状态检测方法还包括:
对与检测结果为异常的过程状态相对应的过程状态数据进行标记。
本发明实施例提供一种智能合约执行的过程状态检测装置,包括:
第一确定单元,用于获取区块内的交易,并确定与所述交易相对应的智能合约;
第二确定单元,用于在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;
第三确定单元,用于确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;
第四确定单元,用于根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;
检测单元,用于根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
其中,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述第四确定单元具体用于:
根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。
其中,所述检测单元具体用于:
将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。
本发明实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,
所述处理器执行所述程序时实现如下方法步骤:
获取区块内的交易,并确定与所述交易相对应的智能合约;
在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;
确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;
根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;
根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
获取区块内的交易,并确定与所述交易相对应的智能合约;
在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;
确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;
根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;
根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
本发明实施例提供的智能合约执行的过程状态检测方法及装置,通过确定与智能合约的执行过程的业务逻辑相对应的监控API接口,并使其监控智能合约执行的过程状态,确定交易过程状态哈希和区块过程状态哈希,并广播包含区块过程状态哈希的区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头检测智能合约执行的过程状态,能够增强对智能合约的风险检查能力,有助于及时发现并解决智能合约中的风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明智能合约执行的过程状态检测方法实施例流程图;
图2为本发明智能合约执行的过程状态检测方法另一实施例流程图;
图3为本发明智能合约执行的过程状态检测装置实施例结构示意图;
图4为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明智能合约执行的过程状态检测方法实施例流程图,如图1所示,本发明实施例提供的一种智能合约执行的过程状态检测方法,包括以下步骤:
S101:获取区块内的交易,并确定与所述交易相对应的智能合约。
具体的,获取区块内的交易,并确定与所述交易相对应的智能合约。执行该方法步骤的可以是计算机设备,具体可以是终端。图2为本发明智能合约执行的过程状态检测方法另一实施例流程图,如图2所示(图2中将智能合约简写为合约),可以解析区块内的所有交易,并将所有交易依次送入智能合约中执行。
S102:在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系。
具体的,在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系。监控API接口(对应图2中的监控API)用于为区块链平台提供合约执行过程监控,可以预先将所有预设监控API接口组成API集合,每个预设监控API接口可以包括与其相关的监控参数,监控参数可以具体包括监控API接口编号、参数函数和监控变量值函数。预设监控API接口对应有预设业务逻辑,举例说明如下:
对于预设监控API接口编号为Num1,有SetMethod(Name,arg0,arg1…),其中,SetMethod为与预设监控API接口编号Num1相对应的预设业务逻辑、Name为参数函数、arg0,arg1…为监控变量值函数。
对于预设监控API接口编号为Num2,有SetField(Name,value),其中,SetField为与预设监控API接口编号Num2相对应的预设业务逻辑、Name为参数函数、value为监控变量值函数。
对于预设监控API接口编号为Num3,有SetSQL(Name,sqlValue),其中,SetSQL为与预设监控API接口编号Num3相对应的预设业务逻辑、Name为参数函数、sqlValue为监控变量值函数。
交易触发智能合约调用,在智能合约的执行过程中,例如先经过的执行过程的业务逻辑为SetField,则确定监控API接口编号为Num2。
例如:可以从如下代码中解析出业务逻辑SetField:
如果在此之后,经过的执行过程的业务逻辑为SetMethod,则确定监控API接口编号为Num1。
S103:确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数。
具体的,确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数。与交易相关的智能合约信息可以具体包括智能合约的摘要信息和智能合约被执行API的方法声明信息,与监控API接口相关的监控参数可以参照上述说明。参照上述举例,以该交易包括两个过程状态为例,可以按照如下顺序排列过程状态:
过程状态1=a_b_Num2_Name_value
过程状态2=a_b_Num1_Name_arg0_arg1
其中,a对应摘要信息、b对应方法声明信息、Num2和Num1对应监控API接口编号、Name对应参数函数、value和arg0_arg1对应监控变量值函数。参照图2,即记录的API调用顺序为Num2、Num1。
进一步地,可以对所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数进行有序组装,以生成组装信息;有序组装可以使用“_”进行连接,即“a_b_Num2_Name_value”或者“a_b_Num1_Name_arg0_arg1”对应两条组装信息。
S104:根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希。
具体的,根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希。
进一步地,根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,可以包括:根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。默克尔树是一种二叉树,包含了一组节点,它们的含有基础信息的树根有大量的叶子节点,一组中间节点,每一个节点都是它的2个子节点的哈希,然后,最终的一个根节点,也是由它的2个子节点的哈希形成,代表着这树的“顶端”。具体生成默克尔树的方法为本领域常规技术,不再赘述。参照上述举例,可以根据过程状态1和过程状态2构造默克尔树,将默克尔树的叶子节点作为交易过程状态哈希txHash(对应图2中的唯一过程状态哈希h)。
参照图2,重复上述合约调用监控API到生成唯一过程状态哈希之间的步骤,直到所有交易执行完成,得到所有交易过程状态哈希。
S105:根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
具体的,根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。根据所述所有交易过程状态哈希,确定区块过程状态哈希,可以具体包括:
将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希(对应图2中的块唯一过程状态哈希)。具体变换处理的方法为本领域成熟技术,不再赘述。可以将默克尔树的树根节点作为区块过程状态哈希(对应图2中的块唯一过程状态哈希h)。
需要说明的是,由于区块链的去中心化的特性,区块链中的每个终端都可以执行上述相同的方法步骤,例如终端A执行了上述方法步骤,该区块链中所有终端,例如终端B~终端D也都执行了与终端A相同的方法步骤,即终端A获取了已写入区块过程状态哈希的区块头a、终端B~终端D分别也获取了已写入区块过程状态哈希的区块头b~区块头d。具体的根据区块头a和区块头b~区块头d检测智能合约执行的过程状态的方法为本领域成熟技术,例如,终端A将区块头a在该区块链中进行广播,终端B~终端D分别将各自获取本地的区块头中的区块过程状态哈希与区块头a中的区块过程状态哈希进行比较。如果哈希不同则认为区块异常或自身节点异常,上报监控系统、打印状态信息等相关异常处理操作。
本发明实施例提供的智能合约执行的过程状态检测方法,通过确定与智能合约的执行过程的业务逻辑相对应的监控API接口,并使其监控智能合约执行的过程状态,确定交易过程状态哈希和区块过程状态哈希,并广播包含区块过程状态哈希的区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头检测智能合约执行的过程状态,能够增强对智能合约的风险检查能力,有助于及时发现并解决智能合约中的风险。
在上述实施例的基础上,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,包括:
具体的,根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。可参照上述说明,不再赘述。
本发明实施例提供的智能合约执行的过程状态检测方法,通过默克尔树确定交易过程状态哈希,能够方便和快速地确定交易过程状态哈希,提高了该技术方案的执行速度。
在上述实施例的基础上,所述根据所述所有交易过程状态哈希,确定区块过程状态哈希,包括:
具体的,将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。可参照上述说明,不再赘述。
本发明实施例提供的智能合约执行的过程状态检测方法,能够方便和快速地生成区块过程状态哈希,进一步提高了该技术方案的执行速度。
在上述实施例的基础上,所述智能合约执行的过程状态检测方法,还包括:
具体的,将所述默克尔树的树根节点作为所述区块过程状态哈希。可参照上述说明,不再赘述。
本发明实施例提供的智能合约执行的过程状态检测方法,进一步提高了该技术方案的执行速度。
在上述实施例的基础上,所述智能合约执行的过程状态检测方法还包括:
具体的,对与检测结果为异常的过程状态相对应的过程状态数据进行标记。本发明实施例对标记的方式不作具体限定,例如,可以采用红色字体标记上述过程状态数据。参照上述举例,如果其中一个交易中的过程状态1的检测结果为异常,则可以将a、b、Num2、Name和value分别对应的具体数据标记为红色。生成的标记后的过程状态数据有助于调速人员方便、及时地对上述异常进行分析,并采用相应的应对方式。
本发明实施例提供的智能合约执行的过程状态检测方法,进一步有助于调速人员及时发现并解决智能合约中的风险。
图3为本发明智能合约执行的过程状态检测装置实施例结构示意图,如图3所示,本发明实施例提供了一种智能合约执行的过程状态检测装置,包括第一确定单元301、第二确定单元302、第三确定单元303、第四确定单元304和检测单元305,其中:
第一确定单元301用于获取区块内的交易,并确定与所述交易相对应的智能合约;第二确定单元302用于在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;第三确定单元303用于确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;第四确定单元304用于根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;检测单元305用于根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
具体的,第一确定单元301用于获取区块内的交易,并确定与所述交易相对应的智能合约;第二确定单元302用于在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;第三确定单元303用于确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;第四确定单元304用于根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;检测单元305用于根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
本发明实施例提供的智能合约执行的过程状态检测装置,通过确定与智能合约的执行过程的业务逻辑相对应的监控API接口,并使其监控智能合约执行的过程状态,确定交易过程状态哈希和区块过程状态哈希,并广播包含区块过程状态哈希的区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头检测智能合约执行的过程状态,能够增强对智能合约的风险检查能力,有助于及时发现并解决智能合约中的风险。
在上述实施例的基础上,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述第四确定单元304具体用于:
根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。
本发明实施例提供的智能合约执行的过程状态检测装置,通过默克尔树确定交易过程状态哈希,能够方便和快速地确定交易过程状态哈希,提高了该技术方案的执行速度。
在上述实施例的基础上,所述检测单元305具体用于:
将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。
本发明实施例提供的智能合约执行的过程状态检测装置,能够方便和快速地生成区块过程状态哈希,进一步提高了该技术方案的执行速度。
本发明实施例提供的智能合约执行的过程状态检测装置具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图4为本发明实施例提供的电子设备实体结构示意图,如图4所示,所述电子设备包括:处理器(processor)401、存储器(memory)402和总线403;
其中,所述处理器401、存储器402通过总线403完成相互间的通信;
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取区块内的交易,并确定与所述交易相对应的智能合约;在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取区块内的交易,并确定与所述交易相对应的智能合约;在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取区块内的交易,并确定与所述交易相对应的智能合约;在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种智能合约执行的过程状态检测方法,其特征在于,包括:
获取区块内的交易,并确定与所述交易相对应的智能合约;
在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;
确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;
根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;
根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
2.根据权利要求1所述的智能合约执行的过程状态检测方法,其特征在于,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,包括:
根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。
3.根据权利要求2所述的智能合约执行的过程状态检测方法,其特征在于,所述根据所述所有交易过程状态哈希,确定区块过程状态哈希,包括:
将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。
4.根据权利要求3所述的智能合约执行的过程状态检测方法,其特征在于,所述智能合约执行的过程状态检测方法,还包括:
将所述默克尔树的树根节点作为所述区块过程状态哈希。
5.根据权利要求1至4任一所述的智能合约执行的过程状态检测方法,其特征在于,所述智能合约执行的过程状态检测方法还包括:
对与检测结果为异常的过程状态相对应的过程状态数据进行标记。
6.一种智能合约执行的过程状态检测装置,其特征在于,包括:
第一确定单元,用于获取区块内的交易,并确定与所述交易相对应的智能合约;
第二确定单元,用于在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;
第三确定单元,用于确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;
第四确定单元,用于根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;
检测单元,用于根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。
7.根据权利要求6所述的智能合约执行的过程状态检测装置,其特征在于,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述第四确定单元具体用于:
根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。
8.根据权利要求7所述的智能合约执行的过程状态检测装置,其特征在于,所述检测单元具体用于:
将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911269565.9A CN111045892A (zh) | 2019-12-11 | 2019-12-11 | 一种智能合约执行的过程状态检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911269565.9A CN111045892A (zh) | 2019-12-11 | 2019-12-11 | 一种智能合约执行的过程状态检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111045892A true CN111045892A (zh) | 2020-04-21 |
Family
ID=70235779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911269565.9A Pending CN111045892A (zh) | 2019-12-11 | 2019-12-11 | 一种智能合约执行的过程状态检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045892A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861465A (zh) * | 2020-07-21 | 2020-10-30 | 国家计算机网络与信息安全管理中心 | 基于智能合约的检测方法及装置、存储介质、电子装置 |
CN113505138A (zh) * | 2021-09-06 | 2021-10-15 | 支付宝(杭州)信息技术有限公司 | 区块链系统中状态证明及执行区块的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180183600A1 (en) * | 2016-12-28 | 2018-06-28 | Mastercard International Incorporated | Method and system for providing validated, auditable, and immutable inputs to a smart contract |
CN109409889A (zh) * | 2018-11-13 | 2019-03-01 | 杭州秘猿科技有限公司 | 一种区块链中的区块确定方法、装置及电子设备 |
CN109446211A (zh) * | 2018-10-08 | 2019-03-08 | 联动优势科技有限公司 | 一种一致性校验方法及装置 |
CN109583896A (zh) * | 2018-11-30 | 2019-04-05 | 元灵通智能科技(深圳)有限公司 | 交易验证方法、区块链节点及存储介质 |
-
2019
- 2019-12-11 CN CN201911269565.9A patent/CN111045892A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180183600A1 (en) * | 2016-12-28 | 2018-06-28 | Mastercard International Incorporated | Method and system for providing validated, auditable, and immutable inputs to a smart contract |
CN109446211A (zh) * | 2018-10-08 | 2019-03-08 | 联动优势科技有限公司 | 一种一致性校验方法及装置 |
CN109409889A (zh) * | 2018-11-13 | 2019-03-01 | 杭州秘猿科技有限公司 | 一种区块链中的区块确定方法、装置及电子设备 |
CN109583896A (zh) * | 2018-11-30 | 2019-04-05 | 元灵通智能科技(深圳)有限公司 | 交易验证方法、区块链节点及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861465A (zh) * | 2020-07-21 | 2020-10-30 | 国家计算机网络与信息安全管理中心 | 基于智能合约的检测方法及装置、存储介质、电子装置 |
CN113505138A (zh) * | 2021-09-06 | 2021-10-15 | 支付宝(杭州)信息技术有限公司 | 区块链系统中状态证明及执行区块的方法及装置 |
WO2023029731A1 (zh) * | 2021-09-06 | 2023-03-09 | 支付宝(杭州)信息技术有限公司 | 区块链系统中状态证明及执行区块的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034809B (zh) | 区块链的生成方法、装置、区块链节点及存储介质 | |
CN110177108B (zh) | 一种异常行为检测方法、装置及验证系统 | |
CN109255056B (zh) | 区块链的数据引用处理方法、装置、设备及存储介质 | |
CN107832062B (zh) | 一种程序更新方法及终端设备 | |
CN112734045B (zh) | 一种联邦学习的异常处理方法、装置及电子设备 | |
CN109213758B (zh) | 数据存取方法、装置、设备及计算机可读存储介质 | |
CN109582655B (zh) | 系统日志的定位方法及装置、计算机可读存储介质 | |
CN112163412B (zh) | 数据校验方法、装置、电子设备及存储介质 | |
CN111045892A (zh) | 一种智能合约执行的过程状态检测方法及装置 | |
CN110830500B (zh) | 网络攻击追踪方法、装置、电子设备及可读存储介质 | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN103440460A (zh) | 一种应用系统变更验证方法及验证系统 | |
CN108090364B (zh) | 一种数据泄漏源的定位方法及系统 | |
CN112528323A (zh) | 一种数据处理方法和装置 | |
CN111722998B (zh) | 代码的质量控制方法、系统、设备及存储介质 | |
CN116185296A (zh) | 一种基于多媒体远程会议信息的分布式安全储存系统 | |
CN116128525A (zh) | 一种基于模式前缀共享的多模式图匹配查询方法及装置 | |
CN111026705B (zh) | 建筑工程文件管理方法、系统及终端设备 | |
CN113313615A (zh) | 一种对企业司法风险进行量化评分定级的方法及装置 | |
CN110196793B (zh) | 针对插件数据库的日志分析方法及设备 | |
CN113157934A (zh) | 知识图谱起源处理方法和系统、电子设备和存储介质 | |
CN110517010A (zh) | 一种数据处理方法、系统及存储介质 | |
CN113792800B (zh) | 特征生成方法及装置、电子设备、存储介质 | |
CN114760236B (zh) | 接口检查方法、装置、存储介质和设备 | |
CN113992334B (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 |