一种智能合约运行方法、装置、设备及存储介质制造方法及图纸

技术编号:28147880 阅读:28 留言:0更新日期:2021-04-21 19:35
本申请公开了一种智能合约运行方法、装置、设备及存储介质,涉及区块链技术领域,所述方法包括:接收目标智能合约的运行请求,运行请求包括目标智能合约的目标合约类型;从预先构建的虚拟机池中确定处于空闲状态的初选虚拟机;从初选虚拟机中选取与目标合约类型对应的目标虚拟机;将目标虚拟机的状态设置为工作状态;利用处于工作状态的目标虚拟机运行目标智能合约。利用本申请实施例提供的技术方案可以实现虚拟机的有效复用,进而提升区块链平台的整体运行效率和系统性能。的整体运行效率和系统性能。的整体运行效率和系统性能。

【技术实现步骤摘要】
一种智能合约运行方法、装置、设备及存储介质


[0001]本申请涉及区块链
,尤其涉及一种智能合约运行方法、装置、设备及存储介质。

技术介绍

[0002]随着区块链技术的发展,基于区块链网络的业务模式愈发常见,部署在区块链上的智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议;相关技术中,智能合约运行时,通常创建一个临时的虚拟机用于执行智能合约代码,运行完毕后该虚拟机将不再使用,直到被系统回收销毁。但上述相关技术中在运行智能合约时创建虚拟机会有较大的时间开销,也会消耗CPU资源,且重复创建销毁虚拟机,增加了系统垃圾回收负担,严重影响了智能合约运行过程中的系统性能。因此,需要提供更可靠或更有效的方案。

技术实现思路

[0003]本申请提供了一种智能合约运行方法、装置、设备及存储介质,可以实现运行智能合约的虚拟机的有效复用,进而提升区块链平台的整体运行效率和系统性能。
[0004]一方面,本申请提供了一种智能合约运行方法,所述方法包括:
[0005]接收目标智能合约的运行请求,所述运行请求包括所述目标智能合约的目标合约类型;
[0006]从预先构建的虚拟机池中确定处于空闲状态的初选虚拟机;
[0007]从所述初选虚拟机中选取与所述目标合约类型对应的目标虚拟机;
[0008]将所述目标虚拟机的状态设置为工作状态;
[0009]利用处于工作状态的所述目标虚拟机运行所述目标智能合约。
[0010]另一方面提供了一种智能合约运行装置,所述装置包括:
[0011]运行请求接收模块,被配置为执行接收目标智能合约的运行请求,所述运行请求包括所述目标智能合约的目标合约类型;
[0012]初选虚拟机确定模块,被配置为执行从预先构建的虚拟机池中确定处于空闲状态的初选虚拟机;
[0013]目标虚拟机确定模块,被配置为执行从所述初选虚拟机中选取与所述目标合约类型对应的目标虚拟机;
[0014]第一状态设置模块,被配置为执行将所述目标虚拟机的状态设置为工作状态;
[0015]智能合约运行模块,被配置为执行利用处于工作状态的所述目标虚拟机运行所述目标智能合约。
[0016]另一方面提供了一种智能合约运行设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的智能合约运行方法。
[0017]另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令
或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的智能合约运行方法。
[0018]本申请提供的智能合约运行方法、装置、设备及存储介质,具有如下技术效果:
[0019]本申请通过预先构建虚拟机池,在接收到目标智能合约的运行请求时,可以直接选取该与目标智能合约的目标合约类型对应的处于空闲状态的目标虚拟机来进行目标智能合约的运行,可以实现虚拟机的有效复用,大大节约后续智能合约运行时的系统开销,提升智能合约的运行效率,进而提升整个区块链网络的吞吐量。
附图说明
[0020]为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0021]图1是本申请实施例提供的一种应用环境的示意图;
[0022]图2是本申请实施例提供的一种智能合约运行方法的流程示意图;
[0023]图3是本申请实施例提供的一种预先构建虚拟机池的流程示意图;
[0024]图4是本申请实施例提供的一种确定初始化容量的流程示意图;
[0025]图5是本申请实施例提供的一种在所述空虚拟机池中,创建所述初始化容量个空闲状态的虚拟机,得到所述虚拟机池的流程示意图;
[0026]图6是本申请实施例提供的一种虚拟机池更新方法的流程示意图;
[0027]图7是本申请实施例提供的另一种智能合约运行方法的流程示意图;
[0028]图8是本申请实施例提供的一种智能合约运行装置的结构示意图;
[0029]图9是本申请实施例提供的另一种智能合约运行装置的结构示意图;
[0030]图10是本申请实施例提供的一种实现智能合约运行方法的服务器的硬件结构框图。
具体实施方式
[0031]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0032]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0033]区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型
应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
[0034]区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能合约运行方法,其特征在于,所述方法包括:接收目标智能合约的运行请求,所述运行请求包括所述目标智能合约的目标合约类型;从预先构建的虚拟机池中确定处于空闲状态的初选虚拟机;从所述初选虚拟机中选取与所述目标合约类型对应的目标虚拟机;将所述目标虚拟机的状态设置为工作状态;利用处于工作状态的所述目标虚拟机运行所述目标智能合约。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:生成预设容量的空虚拟机池,所述预设容量表征所述空虚拟机池容纳虚拟机的数量上限;确定初始化容量,所述初始化容量小于等于所述预设容量;在所述空虚拟机池中,创建所述初始化容量个空闲状态的虚拟机,得到所述虚拟机池。3.根据权利要求2所述的方法,其特征在于,所述确定初始化容量包括:确定部署的智能合约的合约类型;当所述合约类型包括至少两种合约类型时,确定每个合约类型的智能合约数量;根据所述每个合约类型的智能合约数量,设置所述每个合约类型对应的虚拟机数量;将所述至少两种的合约类型对应的虚拟机数量之和,作为所述初始化容量。4.根据权利要求3所述的方法,其特征在于,所述在所述空虚拟机池中,创建所述初始化容量个空闲状态的虚拟机,得到所述虚拟机池包括:为所述每个合约类型的智能合约创建对应的虚拟机数量个对应类型的虚拟机;将创建的虚拟机的状态设置为空闲状态,得到所述初始化容量个空闲状态的虚拟机;在所述空虚拟机池中,添加所述初始化容量个空闲状态的虚拟机,得到所述虚拟机池。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:响应于智能合约更新指令,确定更新的智能合约的更新合约类型;当所述虚拟机池中不存在与所述更新合约类型相匹配的空闲状态的虚拟机时,根据所述预设容量和所述初始化容量确定所述更新合约类型对应的虚拟机数量;创建与所述更新合约类型对应的虚拟...

【专利技术属性】
技术研发人员:付博孔利种衍雪崔嘉辉石巍李茂材
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1