一种基于扩展的智能合约执行方法、装置和电子设备制造方法及图纸

技术编号:34630790 阅读:13 留言:0更新日期:2022-08-24 15:02
本说明书实施例提供一种基于扩展的智能合约执行方法,通过构建合约扩展库,并为虚拟机配置内置的扩展引擎,调用扩展引擎对合约扩展库中的智能合约进行编译,通过外置运行的方式创建外置合约对象,并利用外置合约对象处理虚拟机的合约任务,生成处理结果,将处理结果返回虚拟机的堆栈。通过为虚拟机内置扩展引擎的方式,在虚拟机外创建扩展的对象并提供对象支持实现处理虚拟机的合约任务,最后将处理结果返回虚拟机的堆栈,使得虚拟机能够处理内置合约之外的合约任务,实现了扩展,提高了合约运行灵活性。运行灵活性。运行灵活性。

【技术实现步骤摘要】
一种基于扩展的智能合约执行方法、装置和电子设备


[0001]本申请涉及计算机领域,尤其涉及一种基于扩展的智能合约执行方法、装置和电子设备。

技术介绍

[0002]区块链的智能合约执行指令集一般有数量的限制,比如说采用基于栈的虚拟机最多只有256个指令。同时,这种内置的指令,是面向栈的指令执行,无法提供底层的面向对象支撑,只能通过串行后者锁的机制,否则不支持事务等原子性操作,合约也无法并行执行;其次,所有的合约涉及到多层循环等统计类计算,灵活性差无法达到高性能的要求。在智能合约的状态存储中,一般存放在统一的状态树中,随着某类业务数据的增大,数据存储无法做到单一的隔离。即智能合约语言中,内置合约指令的方式无法让底层的分布式数据库提供类似于独立库或者建立二级索引的辅助信息,灵活性差。
[0003]因此,有必要提供一种灵活性的合约运行方法。

技术实现思路

[0004]本说明书实施例提供一种基于扩展的智能合约执行方法、装置和电子设备,用以提高灵活性。
[0005]本说明书实施例提供一种基于扩展的智能合约执行方法,包括:
[0006]构建合约扩展库,并为虚拟机配置内置的扩展引擎;
[0007]调用所述扩展引擎对所述合约扩展库中的智能合约进行编译,通过外置运行的方式创建外置合约对象,并利用所述外置合约对象处理所述虚拟机的合约任务,生成处理结果,将所述处理结果返回所述虚拟机的堆栈。
[0008]可选地,还包括:
[0009]虚拟机在执行合约请求时,判断支持所述合约请求的对象是否为内置对象,若是,则调用所述内置对象执行合约请求,否则,触发调用扩展引擎。
[0010]可选地,所述通过外置运行的方式创建外置合约对象,包括:
[0011]创建整数型对象、浮点型对象和并行注解对象。
[0012]可选地,所述利用所述外置合约对象处理所述虚拟机的合约任务,包括:
[0013]若所述虚拟机具有多个待处理的合约任务,则运行多个外置合约对象以处理所述虚拟机的合约任务。
[0014]可选地,所述调用所述扩展引擎对所述合约扩展库中的智能合约进行编译,包括:
[0015]调用所述扩展引擎触发节约扩展,在所述虚拟机的原生编译环境中对所述合约扩展库中的智能合约进行编译。
[0016]可选地,所述利用所述外置合约对象处理所述虚拟机的合约任务,包括:
[0017]接收虚拟机传来的参数,利用所述外置合约对象对所所述参数进行处理。
[0018]可选地,还包括:
[0019]为不同的扩展引擎关联不同的合约标识集合;
[0020]所述调用所述扩展引擎对所述合约扩展库中的智能合约进行编译,包括:
[0021]调用所述扩展引擎,确定其对应的智能合约集合,在所述合约扩展库中搜索对应的多个合约,对其进行编译。
[0022]本说明书实施例还提供一种基于扩展的智能合约执行装置,包括:
[0023]构建模块,构建合约扩展库,并为虚拟机配置内置的扩展引擎;
[0024]扩展模块,调用所述扩展引擎对所述合约扩展库中的智能合约进行编译,通过外置运行的方式创建外置合约对象,并利用所述外置合约对象处理所述虚拟机的合约任务,生成处理结果,将所述处理结果返回所述虚拟机的堆栈。
[0025]本说明书实施例还提供一种电子设备,其中,该电子设备包括:
[0026]处理器;以及,
[0027]存储计算机可执行程序的存储器,所述可执行程序在被执行时使所述处理器执行上述任一项方法。
[0028]本说明书实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现上述任一项方法。
[0029]本说明书实施例提供的各种技术方案通过构建合约扩展库,并为虚拟机配置内置的扩展引擎,调用扩展引擎对合约扩展库中的智能合约进行编译,通过外置运行的方式创建外置合约对象,并利用外置合约对象处理虚拟机的合约任务,生成处理结果,将处理结果返回虚拟机的堆栈。通过为虚拟机内置扩展引擎的方式,在虚拟机外创建扩展的对象并提供对象支持实现处理虚拟机的合约任务,最后将处理结果返回虚拟机的堆栈,使得虚拟机能够处理内置合约之外的合约任务,实现了扩展,提高了合约运行灵活性。
附图说明
[0030]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0031]图1为本说明书实施例提供的一种基于扩展的智能合约执行方法的原理示意图;
[0032]图2为本说明书实施例提供的一种基于扩展的智能合约执行方法的原理示意图;
[0033]图3为本说明书实施例提供的一种基于扩展的智能合约执行方法的原理示意图;
[0034]图4为本说明书实施例提供的一种基于扩展的智能合约执行装置的结构示意图;
[0035]图5为本说明书实施例提供的一种电子设备的结构示意图;
[0036]图6为本说明书实施例提供的一种计算机可读介质的原理示意图。
具体实施方式
[0037]现在将参考附图更全面地描述本专利技术的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本专利技术仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本专利技术更加全面和完整,更加便于将专利技术构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
[0038]在符合本专利技术的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特
性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
[0039]在对于具体实施例的描述中,本专利技术描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本专利技术的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
[0040]附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0041]附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0042]术语“和/或”或者“及/或”包括相关联的列出项目中的任一个或多者的所有组合。
[0043]图1为本说明书实施例提供的一种基于扩展的智能合约执行方法的原理示意图,该方法可以包括:
[0044]S101:构建合约扩展库,并为虚拟机配置内置的扩展引擎。
[0045]在本说明书实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于扩展的智能合约执行方法,其特征在于,包括:构建合约扩展库,并为虚拟机配置内置的扩展引擎;调用所述扩展引擎对所述合约扩展库中的智能合约进行编译,通过外置运行的方式创建外置合约对象,并利用所述外置合约对象处理所述虚拟机的合约任务,生成处理结果,将所述处理结果返回所述虚拟机的堆栈。2.根据权利要求1所述的方法,其特征在于,还包括:虚拟机在执行合约请求时,判断支持所述合约请求的对象是否为内置对象,若是,则调用所述内置对象执行合约请求,否则,触发调用扩展引擎。3.根据权利要求1所述的方法,其特征在于,所述通过外置运行的方式创建外置合约对象,包括:创建整数型对象、浮点型对象和并行注解对象。4.根据权利要求1所述的方法,其特征在于,所述利用所述外置合约对象处理所述虚拟机的合约任务,包括:若所述虚拟机具有多个待处理的合约任务,则运行多个外置合约对象以处理所述虚拟机的合约任务。5.根据权利要求1所述的方法,其特征在于,所述调用所述扩展引擎对所述合约扩展库中的智能合约进行编译,包括:调用所述扩展引擎触发节约扩展,在所述虚拟机的原生编译环境中对所述合约扩展库中的智能合约进行编译。6.根据权利要求1所述的方法,其特征在于,所述利用所述外置合...

【专利技术属性】
技术研发人员:谭宜勇
申请(专利权)人:北京泛融科技有限公司
类型:发明
国别省市:

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

1