CN111179086A - 一种基于WebAssembly的智能合约虚拟机 - Google Patents
一种基于WebAssembly的智能合约虚拟机 Download PDFInfo
- Publication number
- CN111179086A CN111179086A CN201911418104.3A CN201911418104A CN111179086A CN 111179086 A CN111179086 A CN 111179086A CN 201911418104 A CN201911418104 A CN 201911418104A CN 111179086 A CN111179086 A CN 111179086A
- Authority
- CN
- China
- Prior art keywords
- contract
- module
- webassembly
- compiling
- execution
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000008569 process Effects 0.000 claims abstract description 10
- 230000002452 interceptive effect Effects 0.000 claims abstract description 5
- 239000008186 active pharmaceutical agent Substances 0.000 claims abstract 2
- 230000009471 action Effects 0.000 claims description 28
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于WebAssembly的智能合约虚拟机,该虚拟机包括合约编写与编译模块和合约的部署与执行模块,所述合约编写与编译模块;通过设计一系列的区块链交互接口EI,暴露出了智能合约编写所需的区块链API。利用设计的EI进行智能合约的编写,并将编写好的智能合约利用编译器编译为WebAssembly字节码。所述合约的部署与执行模块分为合约部署和执行两部分。用户申请一个合约账户,利用合约账户地址向自身发起一笔部署合约的交易完成合约的部署。在智能合约的执行过程中,需要先把EI的具体实现注入到编译好的WebAssembly字节码中,再进行进一步的合约执行。本发明可以针对字节码进行优化,以提升合约执行性能,且加强了合约语言的扩展性与虚拟机的灵活性。
Description
技术领域
本发明涉及区块链领域,尤其涉及执行智能合约的执行环境:一种基于WebAssembly的智能合约虚拟机。
背景技术
区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。
智能合约是由事件驱动的、具有状态的、获得多方承认的、运行在区块链之上的、且能够根据预设条件自动处理资产的程序,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。它是在区块链数据库上运行的计算机程序,可以在满足其源代码中写入的条件时自动执行。智能合约一旦编写好就可以被用户信赖,合约条款不能改变,因此合约是不可更改的。虚拟机是智能合约的运行环境,它不仅是沙盒封装的,而且是完全隔离的。
WebAssembly是一套可移植、体积小、加载快且兼容Web的二进制字节码格式。它专为栈式虚拟机设计,开发者能够将高阶语言如C/C++,Rust编译成WebAssembly,从而可以部署在Web客户端或虚拟机中。WebAssembly字节码即可以编译成机器码后执行,也可以使用解释器直接执行,保证了兼容性和性能,且其作为一种中间代码,任何高级语言只要能编译为WebAssembly字节码均可在虚拟机中执行,扩展性高。
发明内容
针对现有技术的不足,本发明提出一种基于WebAssembly的智能合约虚拟机,增强了智能合约的可扩展性与灵活性。
本发明的目的是通过以下技术方案来实现的:一种基于WebAssembly的智能合约虚拟机,该虚拟机包括合约编写与编译模块和合约的部署与执行模块两部分:
所述合约编写与编译模块;通过设计一系列的区块链交互接口EI,暴露出了智能合约编写所需的区块链API。所述EI包括:
account模块:用于获取发送者、接受者、合约地址、查询余额以及发起交易等;
action模块:用于进行action执行权限判断、获取action数据、发起action以及返回action执行结果等;
database模块:用于数据持久化的存储。
利用设计的EI进行智能合约的编写,并将编写好的智能合约利用编译器编译为WebAssembly字节码,从而可以在虚拟机部署与执行。
所述合约的部署与执行模块分为合约部署和执行两部分。用户申请一个合约账户,利用合约账户地址向自身发起一笔部署合约的交易完成合约的部署。在智能合约的执行过程中,需要先把EI的具体实现注入到编译好的WebAssembly字节码中,再进行进一步的合约执行。合约执行完成之后可以通过区块链查询合约执行结果。
进一步地,所述的合约编写与编译模块中,EI的设计内容还可包括如下模块:
chain模块:用于获取区块数据。
crypto模块:用于数据加密以及验证加密结果。
print模块:用于合约执行中数据的输出。
system模块:用于断言判断并获取时间以及创世时间等。
transaction模块:用于获得交易哈希值以及签名。
进一步地,所述的合约编写与编译模块中,编译器应当提供对EI接口的支持,即可以在合约中调用EI接口并正常编译。
进一步地,所述的合约编写与编译模块中,合约中包含多个可被用户调用的方法,同时应当导出一个调用函数,其接受参数为方法名,函数内容为根据方法名调用对应的方法。
进一步地,所述的合约的部署与执行模块中,合约部署的过程具体为:
(1)部署者申请合约地址及其私钥,私钥可用于之后合约的升级更新等操作。
(2)部署者发起一笔交易,交易的接受人为自身,即部署者,交易中有一个action,action中method字段指定为交易部署,payload字段为部署的合约代码以及abi信息。
(3)虚拟机从payload中解析出合约的abi信息以及合约代码,并进行验证。
(4)向合约地址写入合约代码以及abi信息,扣除部署者的gas,完成合约部署。
进一步地,所述的合约编写与编译模块中,合约执行的过程具体为:
(1)对于交易中的每个action,根据调用的合约地址获取合约代码与abi信息。
(2)从action中的method字段获取调用的合约方法名,从action中的payload的字段获得调用合约的传入参数,并进行验证。
(3)在合约的WebAssembly字节码中注入统计gas消耗的函数,再将EI具体实现注入WebAssembly字节码中,通过合约中的调用函数,执行具体的方法。
本发明的有益效果在于:设计的区块链交互接口EI方便了智能合约的开发,将EI的具体实现放到了虚拟机后端,从而搭建了虚拟机前后端之间的桥梁,使得智能合约可以通过EI和区块链进行交互。WebAssembly作为一种中间代码,大大增强了智能合约的扩展性,同时WebAssembly字节码既可以编译成机器码后执行,也可以使用解释器直接执行,保证了兼容性和性能。
附图说明
图1是基于WebAssembly的智能合约虚拟机的框架图;
图2是智能合约的部署流程;
图3是调用合约的交易内部结构图;
图4是智能合约的执行流程。
具体实施方式
下面根据附图和具体实施例详细描述本发明,本发明的目的和效果将变得更加明显。
如图1所示,本发明提供一种基于WebAssembly的智能合约虚拟机,该虚拟机包括合约编写与编译模块和合约的部署与执行模块两部分:
所述合约编写与编译模块;通过设计一系列的EI(Enviroment Interface,给虚拟机模块使用的区块链交互接口),暴露出了智能合约编写所需的区块链API。
EI在合约中只是一个声明,其具体实现位于虚拟机后端。EI构成了智能合约前后端的一个桥梁,使得智能合约可以与区块链进行交互。EI的具体设计如下:
account模块:用于获取发送者、接受者、合约地址,查询余额以及发起交易等。
action模块:用于进行action执行权限判断、获取action数据、发起action以及返回action执行结果等。
chain模块:用于获取区块数据,包括区块哈希以及区块高度等。
crypto模块:用于提供数据加密的相关方法以及验证加密结果的方法,包括sha256、sha512、ripemd160等等。
database模块:用于提供数据持久化存储的方法。其中数据的存储采用了key-value对的形式,支持数据的存储、查询、更新、删除、检索、迭代等交互方式。
print模块:用于提供合约执行中数据的输出方法,包括字符串、整数以及字节十六进制形式输出等。
system模块:用于断言判断并获取时间以及创世时间等。
transaction模块:用于获得交易哈希以及签名。
利用EI可以进行智能合约的编写,并通过能够提供对EI接口的支持(可以在合约中调用EI接口并正常编译)编译器将其编译为WebAssembly字节码,从而可以部署与执行。
所述合约的部署与执行模块分为合约部署和执行两部分,其中,智能合约的部署具体步骤如图2所示,包括:
(1)部署者申请获取合约地址及其对应私钥等。私钥可用于之后合约的升级更新等操作,是合约部署者身份的唯一标识符。合约地址对应的私钥丢失,则没有权限对该地址所对应的合约做任何操作。合约中包含多个可被用户调用的方法,同时应当导出一个调用函数,其接受参数为方法名,函数内容为根据方法名调用对应的方法。
(2)部署者发起一笔交易,交易的接受人为自身,如果交易的sender与receiver不一样,则合约部署失败。交易的具体结构如图3所示,其中有一个action,action中method字段指定为交易部署,表示该action是用于部署合约而不是调用合约。payload字段为要部署的合约代码以及abi信息,abi信息用于表示如何对智能合约进行调用。
(3)虚拟机从payload字节数组中分别解析出合约的abi信息以及合约代码,如果解析失败,则合约部署失败。之后验证读取出的abi信息能否反序列化到一个abi JSON结构中,如果不能,说明abi信息有错,合约部署失败。
(4)向合约地址写入合约代码以及abi信息,扣除部署者的gas,完成合约部署。如果部署者,即这笔交易的发送者gas耗尽,则交易回滚,同样合约部署也会失败。
在智能合约的执行过程中,对于EI中设计的模块,其具体实现位于虚拟机后端,因此在执行中需要先把EI中的具体实现实现注入到WebAssembly字节码中,再进行进一步的合约执行。合约执行的具体操作流程如图4所示,其步骤包括如下:
(1)从指定的合约地址中获取合约代码以及abi信息,如果获取失败,例如该合约地址上并无智能合约部署,则返回错误信息。同时对于获取的abi信息,将其反序列化到一个abi JSON结构体中,方便之后对智能合约的调用,若反序列化失败,则返回错误信息。
(2)获取所调用合约的方法名与传入参数,利用之前解析好的abi信息,将方法名与方法调用参数进行解析,如果解析失败,则说明调用的方法或参数与abi信息不匹配,即与合约不符,返回错误信息。
(3)从合约的WebAssembly字节码中每个关键块注入消耗gas的函数,同时本发明采用wagon解释器对合约WebAssembly字节码进行解析,与其他解释器相比,wagon解释器更加成熟稳定,对于其中每一个EI,在解析好的WebAssembly字节码中将其具体实现链接进去,实现EI的注入。如果注入失败,例如在合约中声明了一个虚拟机后端模块不存在的EI,则返回错误信息。之后对WebAssembly字节码进行有效性验证并获取apply函数即合约条约函数的位置,如果验证失败则返回错误信息。最后通过apply函数去调用合约内具体方法,完成智能合约的执行。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
Claims (6)
1.一种基于WebAssembly的智能合约虚拟机,其特征在于,该虚拟机包括合约编写与编译模块和合约的部署与执行模块两部分;
所述合约编写与编译模块;通过设计一系列的区块链交互接口EI,暴露出了智能合约编写所需的区块链API。所述EI包括:
account模块:用于获取发送者、接受者、合约地址、查询余额以及发起交易等;
action模块:用于进行action执行权限判断、获取action数据、发起action以及返回action执行结果等;
database模块:用于数据持久化的存储。
利用设计的EI进行智能合约的编写,并将编写好的智能合约利用编译器编译为WebAssembly字节码,从而可以在虚拟机部署与执行。
所述合约的部署与执行模块分为合约部署和执行两部分。用户申请一个合约账户,利用合约账户地址向自身发起一笔部署合约的交易完成合约的部署。在智能合约的执行过程中,需要先把EI的具体实现注入到编译好的WebAssembly字节码中,再进行进一步的合约执行。合约执行完成之后可以通过区块链查询合约执行结果。
2.如权利要求1所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约编写与编译模块中,EI的设计内容还可包括如下模块:
chain模块:用于获取区块数据。
crypto模块:用于数据加密以及验证加密结果。
print模块:用于合约执行中数据的输出。
system模块:用于断言判断并获取时间以及创世时间等。
transaction模块:用于获得交易哈希值以及签名。
3.如权利要求1所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约编写与编译模块中,编译器应当提供对EI接口的支持,即可以在合约中调用EI接口并正常编译。
4.如权利要求1所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约编写与编译模块中,合约中包含多个可被用户调用的方法,同时应当导出一个调用函数,其接受参数为方法名,函数内容为根据方法名调用对应的方法。
5.如权利要求1所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约的部署与执行模块中,合约部署的过程具体为:
(1)部署者申请合约地址及其私钥,私钥可用于之后合约的升级更新等操作。
(2)部署者发起一笔交易,交易的接受人为自身,即部署者,交易中有一个action,action中method字段指定为交易部署,payload字段为部署的合约代码以及abi信息。
(3)虚拟机从payload中解析出合约的abi信息以及合约代码,并进行验证。
(4)向合约地址写入合约代码以及abi信息,扣除部署者的gas,完成合约部署。
6.如权利要求4所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约编写与编译模块中,合约执行的过程具体为:
(1)对于交易中的每个action,根据调用的合约地址获取合约代码与abi信息。
(2)从action中的method字段获取调用的合约方法名,从action中的payload的字段获得调用合约的传入参数,并进行验证。
(3)在合约的WebAssembly字节码中注入统计gas消耗的函数,再将EI具体实现注入WebAssembly字节码中,通过合约中的调用函数,执行具体的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911418104.3A CN111179086B (zh) | 2019-12-31 | 2019-12-31 | 一种基于WebAssembly的智能合约虚拟机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911418104.3A CN111179086B (zh) | 2019-12-31 | 2019-12-31 | 一种基于WebAssembly的智能合约虚拟机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111179086A true CN111179086A (zh) | 2020-05-19 |
CN111179086B CN111179086B (zh) | 2024-01-02 |
Family
ID=70649099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911418104.3A Active CN111179086B (zh) | 2019-12-31 | 2019-12-31 | 一种基于WebAssembly的智能合约虚拟机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111179086B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770202A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和存储介质 |
CN111768200A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CN111815310A (zh) * | 2020-08-31 | 2020-10-23 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和存储介质 |
CN112527464A (zh) * | 2020-12-18 | 2021-03-19 | 上海万向区块链股份公司 | 基于区块链的虚拟机内存自动扩容系统和方法 |
US11301222B2 (en) | 2020-08-31 | 2022-04-12 | 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 |
US11385917B2 (en) | 2020-08-31 | 2022-07-12 | Alipay (Hangzhou) Information Technology Co., Ltd. | Method for executing smart contract and blockchain node |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164973A1 (en) * | 2007-12-21 | 2009-06-25 | Microsoft Corporation | Contract programming for code error reduction |
CN109032706A (zh) * | 2018-07-16 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备和存储介质 |
CN109508968A (zh) * | 2018-10-25 | 2019-03-22 | 常州唯康信息科技有限公司 | 区块链系统以及其控制方法 |
CN109710385A (zh) * | 2018-12-29 | 2019-05-03 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约复杂度限制方法 |
CN109840429A (zh) * | 2019-01-08 | 2019-06-04 | 北京众享比特科技有限公司 | 智能合约部署、调用方法和装置 |
CN110084594A (zh) * | 2019-04-01 | 2019-08-02 | 杜晓楠 | 一种通过闪电网络的区块链交易方法和装置 |
CN110096338A (zh) * | 2019-05-10 | 2019-08-06 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
CN110249307A (zh) * | 2018-12-29 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 用于在区块链上执行原生合约的系统和方法 |
CN110297689A (zh) * | 2019-05-06 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
GB201911866D0 (en) * | 2019-08-19 | 2019-10-02 | Pira Frank Joseph | Systems and methods for generating smart contracts to manage escrow transactions |
WO2019186282A1 (en) * | 2018-03-29 | 2019-10-03 | Dlt Labs, Inc. | Updateable smart contracts |
CN110417857A (zh) * | 2019-06-19 | 2019-11-05 | 北京百度网讯科技有限公司 | 区块链协议处理装置、处理方法及区块链 |
-
2019
- 2019-12-31 CN CN201911418104.3A patent/CN111179086B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164973A1 (en) * | 2007-12-21 | 2009-06-25 | Microsoft Corporation | Contract programming for code error reduction |
WO2019186282A1 (en) * | 2018-03-29 | 2019-10-03 | Dlt Labs, Inc. | Updateable smart contracts |
CN109032706A (zh) * | 2018-07-16 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备和存储介质 |
CN109508968A (zh) * | 2018-10-25 | 2019-03-22 | 常州唯康信息科技有限公司 | 区块链系统以及其控制方法 |
CN109710385A (zh) * | 2018-12-29 | 2019-05-03 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约复杂度限制方法 |
CN110249307A (zh) * | 2018-12-29 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 用于在区块链上执行原生合约的系统和方法 |
CN109840429A (zh) * | 2019-01-08 | 2019-06-04 | 北京众享比特科技有限公司 | 智能合约部署、调用方法和装置 |
CN110084594A (zh) * | 2019-04-01 | 2019-08-02 | 杜晓楠 | 一种通过闪电网络的区块链交易方法和装置 |
CN110297689A (zh) * | 2019-05-06 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
CN110096338A (zh) * | 2019-05-10 | 2019-08-06 | 百度在线网络技术(北京)有限公司 | 智能合约执行方法、装置、设备及介质 |
CN110417857A (zh) * | 2019-06-19 | 2019-11-05 | 北京百度网讯科技有限公司 | 区块链协议处理装置、处理方法及区块链 |
GB201911866D0 (en) * | 2019-08-19 | 2019-10-02 | Pira Frank Joseph | Systems and methods for generating smart contracts to manage escrow transactions |
Non-Patent Citations (2)
Title |
---|
范锦锋: "智能合约和预言机初探", no. 7, pages 36 - 38 * |
贾民政: "基于区块链的投票系统的设计与实现", 北京工业职业技术学院学报, vol. 17, no. 2, pages 25 - 29 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770202A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和存储介质 |
CN111768200A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CN111815310A (zh) * | 2020-08-31 | 2020-10-23 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和存储介质 |
CN111770202B (zh) * | 2020-08-31 | 2021-10-29 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和存储介质 |
US11301222B2 (en) | 2020-08-31 | 2022-04-12 | Alipay (Hangzhou) Information Technology Co., Ltd. | Method for executing smart contract, blockchain node, and storage medium |
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 |
US11385917B2 (en) | 2020-08-31 | 2022-07-12 | Alipay (Hangzhou) Information Technology Co., Ltd. | Method for executing smart contract and blockchain node |
US11544044B2 (en) | 2020-08-31 | 2023-01-03 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods, blockchain nodes, and storage media for executing smart contract |
CN112527464A (zh) * | 2020-12-18 | 2021-03-19 | 上海万向区块链股份公司 | 基于区块链的虚拟机内存自动扩容系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111179086B (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111179086B (zh) | 一种基于WebAssembly的智能合约虚拟机 | |
CN110249307B (zh) | 用于在区块链上执行原生合约的系统和方法 | |
CN111033468B (zh) | 实施不同类型的区块链合约的系统和方法 | |
CN112866412B (zh) | 一种部署智能合约的方法、区块链节点和存储介质 | |
CN111095338B (zh) | 用于执行不同类型区块链合约的系统和方法 | |
CN111386523B (zh) | 用于基于区块链的去中心化应用开发的系统和方法 | |
US10733152B2 (en) | System and method for implementing native contract on blockchain | |
CN111095198B (zh) | 用于数据处理的系统和方法 | |
US20240020109A1 (en) | Method and system for supporting smart contracts in a blockchain network | |
US8924944B2 (en) | Implementation of distributed methods that support generic functions | |
CN112835975B (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
US11816458B2 (en) | Method and system for packaging infrastructure as code | |
US11893367B2 (en) | Source code conversion from application program interface to policy document | |
CN111880801A (zh) | 应用程序动态化方法、装置、电子设备 | |
WO2021175053A1 (zh) | 一种在虚拟机中执行功能模块的方法和装置 | |
CN111290801A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Annenkov et al. | Extracting smart contracts tested and verified in Coq | |
CN112667352A (zh) | 一种多cpu指令交叉编译统一构建方法、设备及介质 | |
CN112925523B (zh) | 对象比较方法、装置、设备及计算机可读介质 | |
CN110659022B (zh) | 一种基于Java自动调用Python脚本的方法 | |
CN112631613A (zh) | 基于区块链平台的智能合约部署和调用方法及相关设备 | |
CN113778564B (zh) | 一种高效执行evm智能合约的方法、设备及储存介质 | |
CN107451050A (zh) | 函数获取方法和装置、服务器 | |
CN114579135B (zh) | 一种安装包生成方法及装置 | |
CN117591087B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |