CN110096338A - 智能合约执行方法、装置、设备及介质 - Google Patents

智能合约执行方法、装置、设备及介质 Download PDF

Info

Publication number
CN110096338A
CN110096338A CN201910389177.8A CN201910389177A CN110096338A CN 110096338 A CN110096338 A CN 110096338A CN 201910389177 A CN201910389177 A CN 201910389177A CN 110096338 A CN110096338 A CN 110096338A
Authority
CN
China
Prior art keywords
contract
intelligent contract
file
intelligent
byte code
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.)
Granted
Application number
CN201910389177.8A
Other languages
English (en)
Other versions
CN110096338B (zh
Inventor
段兵
樊冰新
肖伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910389177.8A priority Critical patent/CN110096338B/zh
Publication of CN110096338A publication Critical patent/CN110096338A/zh
Application granted granted Critical
Publication of CN110096338B publication Critical patent/CN110096338B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种智能合约执行方法、装置、设备及介质。其中,该方法包括:获取基于智能合约发起的事务请求;在执行所述智能合约以处理所述事务请求的过程中,调用合约动态链接库文件;其中,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对所述合约源码文件进行编译得到所述合约动态链接库文件。通过本发明实施例提供的技术方案,可以提高智能合约的执行效率。

Description

智能合约执行方法、装置、设备及介质
技术领域
本发明实施例涉及信息安全技术领域,尤其涉及一种智能合约执行方法、装置、设备及介质。
背景技术
区块链中智能合约需要在虚拟机中运行,主要通过Wasm(WebAssembly,字节码文件)解释执行来实现智能合约。Wasm是一种可移植,安全的对象代码格式,是高级语言编译成为机器语言之前生成的一个中间代码格式,一个Wasm文件是一个module(单元),一个module包含9个section(段),包括导入段,导出段等。Wasm解释执行就是指将Wasm通过栈式虚拟机进行取指->翻译->执行->结果会写这个流程。
解释执行性能较差,主要来自2个方面:(1)解释执行本身需要利用栈式虚拟机进行配合,每次操作都需要跟栈进行交互,取操作数,执行操作,结果会写,导致性能降低;(2)相对AOT(Ahead of Time compile,事前编译),每次执行都需要进行代码的翻译,优化以及执行,翻译和优化的时间占比很大,导致整体耗时很长,AOT模式,一次编译,优化,多次运行。
发明内容
本发明实施例提供了一种智能合约执行方法、装置、设备及介质,可以提高智能合约的执行效率。
第一方面,本发明实施例提供了一种智能合约执行方法,该方法包括:
获取基于智能合约发起的事务请求;
在执行所述智能合约以处理所述事务请求的过程中,调用合约动态链接库文件;
其中,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对所述合约源码文件进行编译得到所述合约动态链接库文件。
第二方面,本发明实施例提供了一种智能合约执行装置,该装置包括:
事务请求获取模块,用于获取基于智能合约发起的事务请求;
事务请求执行模块,用于在执行所述智能合约以处理所述事务请求的过程中,调用合约动态链接库文件;
其中,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对所述合约源码文件进行编译得到所述合约动态链接库文件。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面所述的智能合约执行方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的智能合约执行方法。
本发明实施例提供的智能合约执行方法、装置、设备及介质,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并将合约源码文件进行编译得到合约动态链接库文件;在获取到基于智能合约发起的事务请求之后,在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件,以实现智能合约的执行。本方案通过执行合约动态链接库文件,实现了智能合约字节码文件的编译执行,相比于现有的智能合约字节码文件的解释执行方案,提高了智能合约的执行效率。同时,无需每次执行智能合约时都进行编译,减少了编译的时间。
附图说明
图1为本发明实施例一中提供的一种智能合约执行方法的流程图;
图2为本发明实施例二中提供的一种智能合约执行方法的流程图;
图3为本发明实施例三中提供的一种智能合约执行方法的流程图;
图4为本发明实施例四中提供的一种智能合约执行装置的结构示意图;
图5为本发明实施例五中提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
实施例一
图1为本发明实施例一中提供的一种智能合约执行方法的流程图,本实施例可适用于如何执行智能合约,以解决现有通过字节码解释执行来实现智能合约的方式,存在智能合约执行效率较低问题的情况。本发明实施例的方案由区块链节点来执行,进一步的,可由区块链节点设备中的合约虚拟机来执行。可选的,合约虚拟机可以为WebAssembly合约虚拟机。该方法可由智能合约执行装置来执行,该装置可以配置于承载区块链节点的计算设备中,以硬件和/或软件的方式来实现。参见图1,该方法具体可以包括:
S110,获取基于智能合约发起的事务请求。
智能合约是指在区块链节点中部署的、实现某些功能的代码集合。本实施例中,当用户具有事务处理需求时,可触发交互设备(如本机节点设备、可与区块链进行交互的终端设备或客户端)基于智能合约向用户展示交互界面,用户会基于该交互界面发起事务请求。
可选的,若用户是通过本机节点发起的事务请求,此时本机节点作为事务请求发起节点可以直接获取自身产生的事务请求;若用户是通过可与区块链进行交互的终端设备或客户端发起的事务请求,此时可与终端设备或客户端进行交互的区块链节点作为事务请求发起节点获取终端设备或客户端发送的事务请求并传输至区块链网络,若本机节点是当前区块生成节点,则可获取区块链网络中传输的其他区块链节点基于智能合约发起的事务请求。
S120,在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件。
其中,动态链接库文件(Dynamic Link Library,DLL)是一种可执行文件,其包含可由多个程序同时使用的代码和数据的库,可在多个语言环境下运行。本实施例中,合约动态链接库文件是通过对智能合约字节码进行反编译、编译等操作得到的一种动态链接库文件。具体的,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对合约源码文件进行编译得到合约动态链接库文件。
本实施例中,智能合约字节码文件是合约虚拟机编译器对采用编程语言编写的智能合约源码进行编译得到。可选的,编写智能合约的编程语言可以是高级语言。高级语言可以是合约虚拟机如WebAssembly合约虚拟机所能够支持的编写智能合约的语言,如可以包括但不限于GO语言、C/C++语言以及Java语言等,而目标高级语言可以是其中的任意一种,如可以是C语言。
合约源码文件是指将智能合约字节码文件反编译成目标高级语言得到的,具体可以是读入智能合约字节码文件的二进制格式,而后采用开源工具如wabt或wasm2c等,将智能合约字节码文件反编译成目标高级语言所得到的。由于智能合约字节码文件中可能存在冗余死代码等,进一步的,在将智能合约字节码文件反编译成目标高级语言得到合约源码文件之前还可以包括:采用SSA(Static Single Assignment,静态单赋值)、公共表达式消除以及活度分析等中的至少一种方式对智能合约字节码文件进行优化。
可选的,一个智能合约对应一个合约动态链接库文件。对于每个智能合约,可采用SSA等方式对该智能合约字节码文件进行优化,并采用开源工具将优化的智能合约字节码文件反编译成目标高级语言得到合约源码文件,而后可以通过编译器套件(GCC)等工具将合约源码文件编译成合约动态链接库文件。
需要说明的是,区块链节点可部署多个智能合约,不同的智能合约可对应不同的功能。本实施例,对于部署于区块链节点中的每个智能合约,可在该智能合约部署于区块链节点之后,对该智能合约字节码文件进行反编译、编译等操作得到该智能合约所对应的合约动态链接库文件,进一步的,可将每个智能合约的合约动态链接库文件存储于本机节点中预先设定的位置,以供合约虚拟机调用。也就是说本实施例中智能合约字节码文件可只需编译一次,无需每次执行智能合约时都进行编译,相比于现有的智能合约字节码文件解释执行方式,减少了编译时间。
具体的,本机节点在获取到基于智能合约发起的事务请求之后,可以调用合约虚拟机执行智能合约以处理事务请求,且在合约虚拟机执行智能合约以处理事务请求的过程中,调用该智能合约所对应的合约动态链接库文件,以使该合约动态链接库依据合约虚拟机的执行结果继续执行,进而实现该智能合约的执行。可以理解的是,本方案通过执行合约动态链接库文件,实现了一种智能合约字节码文件的编译执行方式,相比于现有的智能合约字节码文件的解释执行方式,降低了智能合约执行过程的复杂度,以及提高了智能合约的执行效率。
本发明实施例提供的技术方案,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并将合约源码文件进行编译得到合约动态链接库文件;在获取到基于智能合约发起的事务请求之后,在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件,以实现智能合约的执行。本方案通过执行合约动态链接库文件,实现了智能合约字节码文件的编译执行,相比于现有的智能合约字节码文件的解释执行方案,提高了智能合约的执行效率。同时,无需每次执行智能合约时都进行编译,减少了编译的时间。
示例性的,将智能合约字节码文件反编译成目标高级语言得到合约源码文件,可以包括如下至少一项:
1)将智能合约字节码文件的变量映射为目标高级语言的变量。本实施例中,变量可以为局部变量,可以为全局变量。示例性的,可以将智能合约字节码文件的局部变量/全局变量映射为目标高级语言的局部变量/全局变量。若智能合约字节码文件的变量为全局变量,且目标高级语言为C语言,示例性的,可以将智能合约字节码文件的全局变量映射为静态类型的变量名称,或者可以将全局变量的定义映射为C语言中的全局变量定义。
2)将智能合约字节码文件的数据类型映射为目标高级语言的数据类型。本实施例中,智能合约字节码文件的数据类型可以包括但不限于32位的整数型(int32)、64位的整数型(int64)、32位的浮点数型(f32)以及64位的浮点数型(f64)等。若目标高级语言具有与智能合约字节码文件的数据类型相同的数据类型,可选的,可以将智能合约字节码文件的数据类型映射为目标高级语言与之对应的数据类型。例如,可以将智能合约字节码文件的数据类型int32,映射为目标高级语言的数据类型int32等。若目标高级语言不具有与智能合约字节码文件的数据类型相同的数据类型,则可按照预设的映射规则,将智能合约字节码文件的数据类型映射为目标高级语言的数据类型。
3)将智能合约字节码文件的导入段中外部符号链接到外部变量或外部函数。本实施例中,导入段中外部符号可以包括但不限于外部变量和外部函数。具体的,可以将智能合约字节码文件的导入段中外部符号(如外部变量或外部函数)映射到目标高级语言的声明符号(如外部变量或外部函数)。例如,导入段中外部函数表述为:/*import:'env”abortOnCannotGrowMemory'*/,链接到的外部函数表述为:extern u32(*Z_envZ_abortOnCannotGrowMemoryZ_iv)(void)。
可选的,导入段中外部符号还可以包括外部表格,则可以将智能合约字节码文件的导入段中外部表格链接到外部函数指针。
4)将智能合约字节码文件的内存段映射为目标高级语言的数据指针二元组。本实施例中,智能合约字节码文件的内存段可以用于存放函数指针、数据、变量的定义、函数的类指针、声明以及代码等。
5)将智能合约字节码文件中的指令映射为目标高级语言的指令表达式。
6)将智能合约字节码文件中的表格映射为目标高级语言的函数指针。
实施例二
图2为本发明实施例二中提供的一种智能合约执行方法的流程图,本实施例在上述实施例的基础上,进一步的优化,提出了一种优化合约源码文件的方案。参见图2,该方法具体可以包括:
S210,将智能合约字节码文件反编译成目标高级语言,得到合约源码文件。
S220,在合约源码文件中插入调试钩子函数、资源消耗审计控制钩子函数以及代码注入钩子函数中至少一种钩子函数。
其中,钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。本实施例中,不同的钩子函数具有不同的功能,可根据实际需求选择在合约源码文件中插入的钩子函数。
示例性的,调试钩子函数用于对合约源码进行调试。具体的,在合约源码文件中插入调试钩子函数,进而在合约源码执行流程中,通过调试钩子函数即debug函数可输出调试信息,实现对合约源码的调试。
资源消耗审计控制钩子函数用于确定合约源码的资源消耗信息,并根据资源消耗信息控制合约源码运行。例如,通过在合约源码文件中插入资源消耗审计控制钩子函数,进而在合约源码执行流程中,若确定执行合约源码消耗的资源达到设定门限的上限值,则可以停止运行,并可继续对合约源码进行优化处理等;若确定执行合约源码消耗的资源达到设定门限的下限值,且低于设定门限的上限值,则可以进行预警运行等。本实施例中,通过在合约源码文件中插入资源消耗审计控制钩子函数,可用于控制合约源码执行消耗资源的数量,进而可实现合约源码可在低耗环境中执行。
代码注入钩子函数用于引入新业务源码。具体的,在需要加入新业务时,可以在合约源码文件中插入代码注入钩子函数,进而在合约源码执行流程中,通过代码注入钩子函数引入新业务源码。
需要说明的是,本实施例中,通过外部干预,可以灵活在合约源码文件中插入不同功能的钩子函数,进而使得合约源码文件具有调试源码、引入新业务源码等功能,增加了整个方案的灵活度。
S230,对插入钩子函数的合约源码文件进行编译得到合约动态链接库文件。
S240,获取基于智能合约发起的事务请求。
S250,在执行智能合约以处理事务请求的过程中,调用合约动态链接库文。
本发明实施例提供的技术方案,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并通过外部干预,在合约源码文件中插入不同钩子函数,使得合约源码文件具有调试源码、引入新业务源码等功能,且将插入钩子函数的合约源码文件进行编译得到合约动态链接库文件;在获取到基于智能合约发起的事务请求之后,在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件,以实现智能合约的执行。本方案通过执行合约动态链接库文件,实现了智能合约字节码文件的编译执行,相比于现有的智能合约字节码文件的解释执行方案,提高了智能合约的执行效率。同时,无需每次执行智能合约时都进行编译,减少了编译的时间。
实施例三
图3为本发明实施例三中提供的一种智能合约执行方法的流程图,本实施例在上述实施例的基础上,进一步的优化。参见图3,该方法具体可以包括:
S310,将智能合约字节码文件反编译成目标高级语言,得到合约源码文件。
S320,对合约源码文件进行编译,得到合约动态链接库文件。
S330,在合约动态链接库文件中插入统一的虚拟机调用代理接口和虚拟机写代理接口。
由于合约动态链接库文件本身没有读写接口,而后续在执行智能合约的过程中,合约动态链接库文件需要调用外部函数或外部变量等。基于此在对合约源码文件进行编译得到合约动态链接库文件之后,在合约动态链接库文件中插入统一的虚拟机调用代理接口,以及虚拟机写代理接口。
示例性的,虚拟机调用代理接口是一种可以访问虚拟机资源的功能函数接口,用于在智能合约执行过程中,调用链接的外部变量或外部函数,并将调用结果传入缓存,供合约动态链接库文件使用。示例性的,虚拟机调用代理接口可以以代码段的形式体现。进一步的,代码段中可以包括需要调用的外部函数名称、外部函数中的参数以及参数大小等。例如,int callMethod(char*methodName,char*args,int argSize)。其中,callMethod函数即为虚拟机调用代理接口的功能函数表示,用于发起函数名为methodName的函数调用,并解析函数参数args,执行函数名为methodName的函数实体,而后将调用结果(即执行函数名为methodName的函数实体的执行结果)写入缓存,供合约动态链接库文件使用。
例如,若链接到的外部函数表述为:extern u32(*Z_envZ_abortOnCannotGrowMemoryZ_iv)(void)。对于callMethod函数而言,函数名methodName为Z_envZ_abortOnCannotGrowMemoryZ_iv,由于Z_envZ_abortOnCannotGrowMemoryZ_iv函数的参数为void,进而参数args为空,参数大小argSize为0。因此,callMethod函数调用并执行Z_envZ_abortOnCannotGrowMemoryZ_iv函数实体,执行结果即调用结果为一个无符号的32位的整数。
在callMethod函数将调用结果写入缓存之后,可通过统一的虚拟机写代理接口从缓存中获取调用结果。示例性的,虚拟机写代理接口是一种可以访问缓存的功能函数接口,用于在智能合约执行过程中,从缓存中获取链接的外部变量或外部函数的调用结果。示例性的,虚拟机写代理接口可以以代码段的形式体现。进一步的,代码段中可以包括目标地址以及指定的要读取的调用结果的大小等。例如,int fetchResult(char*dest,int size)。其中,fetchResult函数即为虚拟机写代理接口的功能函数表示,参数dest用于根据调用结果的大小设置存储空间如内存段的地址,进一步的,该地址为内存段的首地址,参数size用于指定要读取的调用结果的大小。
需要说明的是,本实施例中,在对合约源码文件进行编译得到合约动态链接库文件之后,在合约动态链接库文件中插入统一的虚拟机调用代理接口,以及虚拟机写代理接口,以便合约动态链接库文件通过统一的虚拟机调用代理接口,以及虚拟机写代理接口之间的相互配合,获取调用结果以继续执行后续流程,进而实现智能合约的执行。
S340,获取基于智能合约发起的事务请求。
S350,在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件。
具体的,本机节点在获取到基于智能合约发起的事务请求之后,可以调用合约虚拟机执行智能合约以处理事务请求,且在合约虚拟机执行智能合约以处理事务请求的过程中,调用该智能合约所对应的合约动态链接库文件;合约动态链接库文件通过统一的虚拟机调用代理接口调用链接的外部变量或外部函数,并将调用结果传入缓存;之后,合约动态链接库文件通过统一的虚拟机写代理接口从缓存中获取链接的外部变量或外部函数的调用结果,并继续执行,以实现智能合约的执行。
本发明实施例提供的技术方案,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并将合约源码文件进行编译得到合约动态链接库文件,且在合约动态链接库文件中插入统一的虚拟机调用代理接口,以及虚拟机写代理接口,便于在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件后,合约动态链接库文件可通过统一的虚拟机调用代理接口,以及虚拟机写代理接口相互配合,获取调用结果以继续执行后续流程,进而实现智能合约的执行。本方案通过执行合约动态链接库文件,实现了智能合约字节码文件的编译执行,相比于现有的智能合约字节码文件的解释执行方案,提高了智能合约的执行效率。同时,无需每次执行智能合约时都进行编译,减少了编译的时间。
实施例四
图4为本发明实施例四中提供的一种智能合约执行装置的结构示意图,该装置可配置于区块链节点中,进一步可配置于区块链节点的合约虚拟机中,该装置可执行本发明任意实施例所提供的智能合约执行方法,具备执行方法相应的功能模块和有益效果。如图4所示,该装置可以包括:
事务请求获取模块410,用于获取基于智能合约发起的事务请求;
事务请求执行模块420,用于在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件;
其中,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对合约源码文件进行编译得到合约动态链接库文件。
本发明实施例提供的技术方案,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并将合约源码文件进行编译得到合约动态链接库文件;在获取到基于智能合约发起的事务请求之后,在执行智能合约以处理事务请求的过程中,调用合约动态链接库文件,以实现智能合约的执行。本方案通过执行合约动态链接库文件,实现了智能合约字节码文件的编译执行,相比于现有的智能合约字节码文件的解释执行方案,提高了智能合约的执行效率。同时,无需每次执行智能合约时都进行编译,减少了编译的时间。
示例性的,上述装置还可以包括:
反编译模块,用于将智能合约字节码文件反编译成目标高级语言得到合约源码文件时,具体可以执行如下至少一项:
将智能合约字节码文件的变量映射为目标高级语言的变量;
将智能合约字节码文件的数据类型映射为目标高级语言的数据类型;
将智能合约字节码文件的导入段中外部符号链接到外部变量或外部函数;
将所述智能合约字节码文件的内存段映射为数据指针二元组;
将智能合约字节码文件中的指令映射为目标高级语言的指令表达式;
将智能合约字节码文件中的表格映射为目标高级语言的函数指针。
示例性的,上述装置还可以包括:
钩子函数插入模块,用于将智能合约字节码文件反编译成目标高级语言,得到合约源码文件之后,在合约源码文件中插入如下至少一种钩子函数:
调试钩子函数,用于对合约源码进行调试;
资源消耗审计控制钩子函数,用于确定合约源码的资源消耗信息,并根据资源消耗信息控制合约源码运行;以及,
代码注入钩子函数,用于引入新业务源码。
示例性的,上述装置还可以包括:
接口插入模块,用于对合约源码文件进行编译得到合约动态链接库文件之后,在合约动态链接库文件中插入统一的虚拟机调用代理接口,用于在智能合约执行过程中,调用链接的外部变量或外部函数,并将调用结果传入缓存,供合约动态链接库文件使用。
示例性的,接口插入模块还可以用于:
对合约源码文件进行编译得到合约动态链接库文件之后,在合约动态链接库文件中插入统一的虚拟机写代理接口,用于在智能合约执行过程中,从缓存中获取链接的外部变量或外部函数的调用结果。
实施例五
图5为本发明实施例五提供的一种设备的结构示意图,图5示出了适于用来实现本发明实施例实施方式的示例性设备的框图。图5显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备典型可以是承载区块链节点功能的计算设备。
如图5所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同系统组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图5中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的智能合约执行方法。
实施例六
本发明实施例六还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种智能合约执行方法,该方法包括:
获取基于智能合约发起的事务请求;
在执行智能合约以处理所述事务请求的过程中,调用合约动态链接库文件;
其中,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对合约源码文件进行编译得到合约动态链接库文件。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LA至少一)或广域网(WA至少一)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种智能合约执行方法,其特征在于,包括:
获取基于智能合约发起的事务请求;
在执行所述智能合约以处理所述事务请求的过程中,调用合约动态链接库文件;
其中,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对所述合约源码文件进行编译得到所述合约动态链接库文件。
2.权利要求1所述的方法,其特征在于,将智能合约字节码文件反编译成目标高级语言得到合约源码文件,包括如下至少一项:
将所述智能合约字节码文件的变量映射为目标高级语言的变量;
将所述智能合约字节码文件的数据类型映射为目标高级语言的数据类型;
将所述智能合约字节码文件的导入段中外部符号链接到外部变量或外部函数;
将所述智能合约字节码文件的内存段映射为目标高级语言的数据指针二元组;
将所述智能合约字节码文件中的指令映射为目标高级语言的指令表达式;
将所述智能合约字节码文件中的表格映射为目标高级语言的函数指针。
3.根据权利要求1所述的方法,其特征在于,将智能合约字节码文件反编译成目标高级语言,得到合约源码文件之后,还包括:
在所述合约源码文件中插入如下至少一种钩子函数:
调试钩子函数,用于对合约源码进行调试;
资源消耗审计控制钩子函数,用于确定合约源码的资源消耗信息,并根据所述资源消耗信息控制合约源码运行;以及,
代码注入钩子函数,用于引入新业务源码。
4.根据权利要求1所述的方法,其特征在于,对所述合约源码文件进行编译得到所述合约动态链接库文件之后,还包括:
在所述合约动态链接库文件中插入统一的虚拟机调用代理接口,用于在智能合约执行过程中,调用链接的外部变量或外部函数,并将调用结果传入缓存,供所述合约动态链接库文件使用。
5.根据权利要求1所述的方法,其特征在于,对所述合约源码文件进行编译得到所述合约动态链接库文件之后,还包括:
在所述合约动态链接库文件中插入统一的虚拟机写代理接口,用于在智能合约执行过程中,从缓存中获取链接的外部变量或外部函数的调用结果。
6.一种智能合约执行装置,其特征在于,包括:
事务请求获取模块,用于获取基于智能合约发起的事务请求;
事务请求执行模块,用于在执行所述智能合约以处理所述事务请求的过程中,调用合约动态链接库文件;
其中,通过将智能合约字节码文件反编译成目标高级语言得到合约源码文件,并对所述合约源码文件进行编译得到所述合约动态链接库文件。
7.权利要求6所述的装置,其特征在于,还包括:
反编译模块,用于将智能合约字节码文件反编译成目标高级语言得到合约源码文件时,具体执行如下至少一项:
将所述智能合约字节码文件的变量映射为目标高级语言的变量;
将所述智能合约字节码文件的数据类型映射为目标高级语言的数据类型;
将所述智能合约字节码文件的导入段中外部符号链接到外部变量或外部函数;
将所述智能合约字节码文件的内存段映射为数据指针二元组;
将所述智能合约字节码文件中的指令映射为目标高级语言的指令表达式;
将所述智能合约字节码文件中的表格映射为目标高级语言的函数指针。
8.根据权利要求6所述的装置,其特征在于,还包括:
钩子函数插入模块,用于将智能合约字节码文件反编译成目标高级语言,得到合约源码文件之后,在所述合约编码文件中插入如下至少一种钩子函数:
调试钩子函数,用于对合约源码进行调试;
资源消耗审计控制钩子函数,用于确定合约源码的资源消耗信息,并根据所述资源消耗信息控制合约源码运行;以及,
代码注入钩子函数,用于引入新业务源码。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一项所述的智能合约执行方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的智能合约执行方法。
CN201910389177.8A 2019-05-10 2019-05-10 智能合约执行方法、装置、设备及介质 Active CN110096338B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910389177.8A CN110096338B (zh) 2019-05-10 2019-05-10 智能合约执行方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910389177.8A CN110096338B (zh) 2019-05-10 2019-05-10 智能合约执行方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN110096338A true CN110096338A (zh) 2019-08-06
CN110096338B CN110096338B (zh) 2021-12-14

Family

ID=67447722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910389177.8A Active CN110096338B (zh) 2019-05-10 2019-05-10 智能合约执行方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN110096338B (zh)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502241A (zh) * 2019-08-23 2019-11-26 深圳前海环融联易信息科技服务有限公司 智能合约在线编辑方法、装置、计算机设备及存储介质
CN110659907A (zh) * 2019-09-24 2020-01-07 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
CN110675256A (zh) * 2019-08-30 2020-01-10 阿里巴巴集团控股有限公司 部署和执行智能合约的方法及装置
CN110673851A (zh) * 2019-09-12 2020-01-10 广州蚁比特区块链科技有限公司 一种智能合约运行方法、装置及电子设备
CN110688122A (zh) * 2019-09-30 2020-01-14 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110704064A (zh) * 2019-09-30 2020-01-17 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110704063A (zh) * 2019-09-30 2020-01-17 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110825363A (zh) * 2019-11-01 2020-02-21 北京知道创宇信息技术股份有限公司 智能合约获取方法、装置、电子设备及存储介质
CN110874741A (zh) * 2019-10-10 2020-03-10 北京海益同展信息科技有限公司 一种合约管理方法、区块链系统及存储介质
CN111008067A (zh) * 2020-03-05 2020-04-14 支付宝(杭州)信息技术有限公司 一种在虚拟机中执行功能模块的方法和装置
CN111179086A (zh) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 一种基于WebAssembly的智能合约虚拟机
CN111324396A (zh) * 2020-03-19 2020-06-23 深圳市网心科技有限公司 一种区块链智能合约执行方法、装置及设备
US10783082B2 (en) 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
CN111770116A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点、存储介质
CN111768200A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN111770204A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111814202A (zh) * 2020-08-31 2020-10-23 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN112612482A (zh) * 2020-12-28 2021-04-06 杭州趣链科技有限公司 执行智能合约的方法、装置、设备及存储介质
KR20210046606A (ko) * 2020-07-15 2021-04-28 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 블록체인의 스마트 계약 구현 방법, 장치, 기기 및 매체
CN113238834A (zh) * 2021-05-31 2021-08-10 北京世冠金洋科技发展有限公司 仿真模型文件的处理方法、装置及电子设备
CN113472512A (zh) * 2021-06-10 2021-10-01 东软集团股份有限公司 智能合约执行方法、装置、存储介质及电子设备
EP3961976A1 (en) * 2020-08-31 2022-03-02 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes, systems and storage media for executing smart contract
US11327732B2 (en) 2020-08-31 2022-05-10 Alipay (Hangzhou) Information Technology Co., Ltd. Method for executing smart contract, blockchain node, and storage medium
US11379830B2 (en) 2020-08-31 2022-07-05 Alipay (Hangzhou) Information Technology Co., Ltd. Method for executing smart contract, blockchain node, and storage medium
WO2022140947A1 (zh) * 2020-12-28 2022-07-07 杭州趣链科技有限公司 智能合约的部署方法、执行方法、装置及终端设备
US11385917B2 (en) 2020-08-31 2022-07-12 Alipay (Hangzhou) Information Technology Co., Ltd. Method for executing smart contract and blockchain node
CN116501332A (zh) * 2023-06-30 2023-07-28 牛芯半导体(深圳)有限公司 语言转换方法、装置、设备及存储介质
WO2023220552A3 (en) * 2022-05-10 2024-02-15 The Pairwyse Foundation Smart contract compiler
CN117688564A (zh) * 2024-02-01 2024-03-12 山东大学 一种用于智能合约事件日志的检测方法、装置和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598809A (zh) * 2015-02-13 2015-05-06 北京奇虎科技有限公司 程序的监控方法及其防御方法以及相关装置
CN105608346A (zh) * 2015-12-25 2016-05-25 北京奇虎科技有限公司 基于arm指令虚拟化的elf文件保护方法及系统
CN107507005A (zh) * 2017-08-01 2017-12-22 众安信息技术服务有限公司 一种基于联盟链的链外数据访问方法和系统
CN108287722A (zh) * 2018-01-09 2018-07-17 北京大学 一种安卓应用的解耦方法
CN108345773A (zh) * 2017-07-27 2018-07-31 江苏通付盾信息安全技术有限公司 基于虚拟机的代码保护方法及装置、电子设备、存储介质
CN108965399A (zh) * 2018-06-25 2018-12-07 百度在线网络技术(北京)有限公司 智能合约的执行方法、装置、设备及存储介质
CN109032605A (zh) * 2018-07-05 2018-12-18 北京奇艺世纪科技有限公司 一种应用运行方法和装置
CN109032706A (zh) * 2018-07-16 2018-12-18 百度在线网络技术(北京)有限公司 智能合约执行方法、装置、设备和存储介质
CN109299587A (zh) * 2018-09-11 2019-02-01 平安科技(深圳)有限公司 基于go语言的算法保护方法、装置、设备及存储介质
US20190074962A1 (en) * 2017-09-01 2019-03-07 Accenture Global Solutions Limited Multiple-Phase Rewritable Blockchain

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598809A (zh) * 2015-02-13 2015-05-06 北京奇虎科技有限公司 程序的监控方法及其防御方法以及相关装置
CN105608346A (zh) * 2015-12-25 2016-05-25 北京奇虎科技有限公司 基于arm指令虚拟化的elf文件保护方法及系统
CN108345773A (zh) * 2017-07-27 2018-07-31 江苏通付盾信息安全技术有限公司 基于虚拟机的代码保护方法及装置、电子设备、存储介质
CN107507005A (zh) * 2017-08-01 2017-12-22 众安信息技术服务有限公司 一种基于联盟链的链外数据访问方法和系统
US20190074962A1 (en) * 2017-09-01 2019-03-07 Accenture Global Solutions Limited Multiple-Phase Rewritable Blockchain
CN108287722A (zh) * 2018-01-09 2018-07-17 北京大学 一种安卓应用的解耦方法
CN108965399A (zh) * 2018-06-25 2018-12-07 百度在线网络技术(北京)有限公司 智能合约的执行方法、装置、设备及存储介质
CN109032605A (zh) * 2018-07-05 2018-12-18 北京奇艺世纪科技有限公司 一种应用运行方法和装置
CN109032706A (zh) * 2018-07-16 2018-12-18 百度在线网络技术(北京)有限公司 智能合约执行方法、装置、设备和存储介质
CN109299587A (zh) * 2018-09-11 2019-02-01 平安科技(深圳)有限公司 基于go语言的算法保护方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
北城百科网: "动态链接库", 《HTTPS://WWW.BEICHENGJIU.COM/MATHEMATICS/176627.HTML》 *
王利楠: "基于 Android 的 Quick 编译技术分析与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502241A (zh) * 2019-08-23 2019-11-26 深圳前海环融联易信息科技服务有限公司 智能合约在线编辑方法、装置、计算机设备及存储介质
US11010303B2 (en) 2019-08-30 2021-05-18 Advanced New Technologies Co., Ltd. Deploying a smart contract
CN110675256A (zh) * 2019-08-30 2020-01-10 阿里巴巴集团控股有限公司 部署和执行智能合约的方法及装置
US10783082B2 (en) 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
US11307990B2 (en) 2019-08-30 2022-04-19 Advanced New Technologies Co., Ltd. Deploying a smart contract
CN110673851A (zh) * 2019-09-12 2020-01-10 广州蚁比特区块链科技有限公司 一种智能合约运行方法、装置及电子设备
CN110673851B (zh) * 2019-09-12 2023-01-06 广州蚁比特区块链科技有限公司 一种智能合约运行方法、装置及电子设备
CN110659907A (zh) * 2019-09-24 2020-01-07 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
US12008556B2 (en) 2019-09-24 2024-06-11 Jingdong Technology Information Technology Co., Ltd. Method and apparatus for executing smart contract
CN110688122A (zh) * 2019-09-30 2020-01-14 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110704064B (zh) * 2019-09-30 2021-09-14 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110704063A (zh) * 2019-09-30 2020-01-17 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110704064A (zh) * 2019-09-30 2020-01-17 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN110874741A (zh) * 2019-10-10 2020-03-10 北京海益同展信息科技有限公司 一种合约管理方法、区块链系统及存储介质
CN110825363A (zh) * 2019-11-01 2020-02-21 北京知道创宇信息技术股份有限公司 智能合约获取方法、装置、电子设备及存储介质
CN110825363B (zh) * 2019-11-01 2024-05-17 北京知道创宇信息技术股份有限公司 智能合约获取方法、装置、电子设备及存储介质
CN111179086A (zh) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 一种基于WebAssembly的智能合约虚拟机
CN111179086B (zh) * 2019-12-31 2024-01-02 杭州趣链科技有限公司 一种基于WebAssembly的智能合约虚拟机
WO2021175053A1 (zh) * 2020-03-05 2021-09-10 支付宝(杭州)信息技术有限公司 一种在虚拟机中执行功能模块的方法和装置
CN111008067A (zh) * 2020-03-05 2020-04-14 支付宝(杭州)信息技术有限公司 一种在虚拟机中执行功能模块的方法和装置
CN111324396B (zh) * 2020-03-19 2023-09-15 深圳市迅雷网络技术有限公司 一种区块链智能合约执行方法、装置及设备
CN111324396A (zh) * 2020-03-19 2020-06-23 深圳市网心科技有限公司 一种区块链智能合约执行方法、装置及设备
KR102485228B1 (ko) 2020-07-15 2023-01-06 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 블록체인의 스마트 계약 구현 방법, 장치, 기기 및 매체
EP3860043A3 (en) * 2020-07-15 2021-12-29 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for implementing smart contract based on blockchain
KR20210046606A (ko) * 2020-07-15 2021-04-28 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 블록체인의 스마트 계약 구현 방법, 장치, 기기 및 매체
CN111770204A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
US11385917B2 (en) 2020-08-31 2022-07-12 Alipay (Hangzhou) Information Technology Co., Ltd. Method for executing smart contract and blockchain node
EP3961976A1 (en) * 2020-08-31 2022-03-02 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes, systems and storage media for executing smart contract
CN111814202B (zh) * 2020-08-31 2020-12-11 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
US11327732B2 (en) 2020-08-31 2022-05-10 Alipay (Hangzhou) Information Technology Co., Ltd. Method for executing smart contract, blockchain node, and storage medium
US11379830B2 (en) 2020-08-31 2022-07-05 Alipay (Hangzhou) Information Technology Co., Ltd. Method for executing smart contract, blockchain node, and storage medium
US11513827B2 (en) 2020-08-31 2022-11-29 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes and storage media for executing smart contracts
CN111814202A (zh) * 2020-08-31 2020-10-23 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
US11416272B2 (en) 2020-08-31 2022-08-16 Alipay (Hangzhou) Information Technology Co., Ltd. Methods, blockchain nodes, systems and storage media for executing smart contract
CN111770116A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点、存储介质
US11301222B2 (en) 2020-08-31 2022-04-12 Alipay (Hangzhou) Information Technology Co., Ltd. Method for executing smart contract, blockchain node, and storage medium
CN111768200A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
WO2022140947A1 (zh) * 2020-12-28 2022-07-07 杭州趣链科技有限公司 智能合约的部署方法、执行方法、装置及终端设备
CN112612482A (zh) * 2020-12-28 2021-04-06 杭州趣链科技有限公司 执行智能合约的方法、装置、设备及存储介质
CN113238834A (zh) * 2021-05-31 2021-08-10 北京世冠金洋科技发展有限公司 仿真模型文件的处理方法、装置及电子设备
CN113238834B (zh) * 2021-05-31 2023-08-08 北京世冠金洋科技发展有限公司 仿真模型文件的处理方法、装置及电子设备
CN113472512A (zh) * 2021-06-10 2021-10-01 东软集团股份有限公司 智能合约执行方法、装置、存储介质及电子设备
WO2023220552A3 (en) * 2022-05-10 2024-02-15 The Pairwyse Foundation Smart contract compiler
US12008348B2 (en) 2022-05-10 2024-06-11 The Pairwyse Foundation Smart contract compiler
CN116501332B (zh) * 2023-06-30 2023-09-29 牛芯半导体(深圳)有限公司 语言转换方法、装置、设备及存储介质
CN116501332A (zh) * 2023-06-30 2023-07-28 牛芯半导体(深圳)有限公司 语言转换方法、装置、设备及存储介质
CN117688564A (zh) * 2024-02-01 2024-03-12 山东大学 一种用于智能合约事件日志的检测方法、装置和存储介质
CN117688564B (zh) * 2024-02-01 2024-05-03 山东大学 一种用于智能合约事件日志的检测方法、装置和存储介质

Also Published As

Publication number Publication date
CN110096338B (zh) 2021-12-14

Similar Documents

Publication Publication Date Title
CN110096338A (zh) 智能合约执行方法、装置、设备及介质
EP3971706A2 (en) Method, apparatus and electronic device for deploying operator in deep learning frame work
US20120159444A1 (en) Fusing debug information from different compiler stages
US8997066B2 (en) Emulating pointers
US8402450B2 (en) Map transformation in data parallel code
US8881123B2 (en) Enabling symbol resolution of private symbols in legacy programs and optimizing access to the private symbols
US8930923B2 (en) Generating debugging extension source code utilizing debugging information
US20120304154A1 (en) Software application fine-tuning method, system, and corresponding computer program product
US9886251B2 (en) Optimized compiling of a template function
CN109408057B (zh) 自动生成代码的方法、装置、介质和计算设备
KR101349631B1 (ko) 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체
CN110673834A (zh) 一种源码调用方法、装置、计算机设备及存储介质
KR101277145B1 (ko) 공통 표현을 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체
EP4394601A1 (en) Systems, methods, and apparatus for intermediary representations of workflows for computational devices
CN117075912B (zh) 用于程序语言转换的方法、编译方法及相关设备
US20240220266A1 (en) Systems, methods, and apparatus for intermediary representations of workflows for computational devices
WO2022057743A1 (zh) 一种代码处理方法、装置及存储介质
CN118151934A (zh) 代码编译方法、装置、电子设备及计算机可读存储介质
KR20230027890A (ko) Evm 바이트코드 분석 방법 및 evm 바이트코드 분석 도구
CN115145627A (zh) 插件本地运行环境的搭建方法、装置、设备及存储介质
CN114924766A (zh) 基于构建工具的脚本构建方法、装置、计算机设备及介质
CN110688110A (zh) 快速生成实体模型的方法以及装置
KR20140109066A (ko) 연산자의 값의 범위를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체
CN117369781A (zh) 日志采集方法、装置和设备
KR20180052919A (ko) 프로그램 코드 통합 처리를 위한 장치 및 방법

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
GR01 Patent grant
GR01 Patent grant