CN111179086B - 一种基于WebAssembly的智能合约虚拟机 - Google Patents

一种基于WebAssembly的智能合约虚拟机 Download PDF

Info

Publication number
CN111179086B
CN111179086B CN201911418104.3A CN201911418104A CN111179086B CN 111179086 B CN111179086 B CN 111179086B CN 201911418104 A CN201911418104 A CN 201911418104A CN 111179086 B CN111179086 B CN 111179086B
Authority
CN
China
Prior art keywords
contract
module
execution
deployment
transaction
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.)
Active
Application number
CN201911418104.3A
Other languages
English (en)
Other versions
CN111179086A (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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian 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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN201911418104.3A priority Critical patent/CN111179086B/zh
Publication of CN111179086A publication Critical patent/CN111179086A/zh
Application granted granted Critical
Publication of CN111179086B publication Critical patent/CN111179086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-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的智能合约虚拟机。
背景技术
区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。
智能合约是由事件驱动的、具有状态的、获得多方承认的、运行在区块链之上的、且能够根据预设条件自动处理资产的程序,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。它是在区块链数据库上运行的计算机程序,可以在满足其源代码中写入的条件时自动执行。智能合约一旦编写好就可以被用户信赖,合约条款不能改变,因此合约是不可更改的。虚拟机是智能合约的运行环境,它不仅是沙盒封装的,而且是完全隔离的。
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 (5)

1.一种基于WebAssembly的智能合约虚拟机,其特征在于,该虚拟机包括合约编写与编译模块和合约的部署与执行模块两部分;
所述合约编写与编译模块;通过设计一系列的区块链交互接口EI,暴露出了智能合约编写所需的区块链API;所述EI包括:
account模块:用于获取发送者、接受者、合约地址、查询余额以及发起交易;
action模块:用于进行action执行权限判断、获取action数据、发起action以及返回action执行结果;
database模块:用于数据持久化的存储;
利用设计的EI进行智能合约的编写,并将编写好的智能合约利用编译器编译为WebAssembly字节码,从而在虚拟机部署与执行;
所述合约的部署与执行模块分为合约部署和执行两部分;用户申请一个合约账户,利用合约账户地址向自身发起一笔部署合约的交易完成合约的部署;在智能合约的执行过程中,需要先把EI的具体实现注入到编译好的WebAssembly字节码中,再进行进一步的合约执行;合约执行完成之后通过区块链查询合约执行结果;
EI的设计内容还包括如下模块:
chain模块:用于获取区块数据;
crypto模块:用于数据加密以及验证加密结果;
print模块:用于合约执行中数据的输出;
system模块:用于断言判断并获取时间以及创世时间;
transaction模块:用于获得交易哈希值以及签名。
2.如权利要求1所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约编写与编译模块中,编译器应当提供对EI接口的支持,即在合约中调用EI接口并正常编译。
3.如权利要求1所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约编写与编译模块中,合约中包含多个可被用户调用的方法,同时应当导出一个调用函数,其接受参数为方法名,函数内容为根据方法名调用对应的方法。
4.如权利要求1所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约的部署与执行模块中,合约部署的过程具体为:
(1)部署者申请合约地址及其私钥,私钥用于之后合约的升级更新操作;
(2)部署者发起一笔交易,交易的接受人为自身,即部署者,交易中有一个action,action中method字段指定为交易部署,payload字段为部署的合约代码以及abi信息;
(3)虚拟机从payload中解析出合约的abi信息以及合约代码,并进行验证;
(4)向合约地址写入合约代码以及abi信息,扣除部署者的gas,完成合约部署。
5.如权利要求3所述的基于WebAssembly的智能合约虚拟机,其特征在于,所述的合约编写与编译模块中,合约执行的过程具体为:
(1)对于交易中的每个action,根据调用的合约地址获取合约代码与abi信息;
(2)从action中的method字段获取调用的合约方法名,从action中的payload的字段获得调用合约的传入参数,并进行验证;
(3)在合约的WebAssembly字节码中注入统计gas消耗的函数,再将EI具体实现注入WebAssembly字节码中,通过合约中的调用函数,执行具体的方法。
CN201911418104.3A 2019-12-31 2019-12-31 一种基于WebAssembly的智能合约虚拟机 Active CN111179086B (zh)

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 CN111179086A (zh) 2020-05-19
CN111179086B true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111768183B (zh) 2020-08-31 2024-04-19 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111815310B (zh) 2020-08-31 2021-08-17 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111770204B (zh) 2020-08-31 2021-10-22 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111768200A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN111768184A (zh) 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法及区块链节点
CN111770202B (zh) 2020-08-31 2021-10-29 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN112527464A (zh) * 2020-12-18 2021-03-19 上海万向区块链股份公司 基于区块链的虚拟机内存自动扩容系统和方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 北京百度网讯科技有限公司 区块链协议处理装置、处理方法及区块链

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250524B2 (en) * 2007-12-21 2012-08-21 Microsoft Corporation Contract programming for code error reduction

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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)

* Cited by examiner, † Cited by third party
Title
基于区块链的投票系统的设计与实现;贾民政;北京工业职业技术学院学报;第17卷(第2期);第25-29页 *
范锦锋.智能合约和预言机初探.信息通信技术与政策.2018,(第7期),第36-38页. *

Also Published As

Publication number Publication date
CN111179086A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN111179086B (zh) 一种基于WebAssembly的智能合约虚拟机
CN108027722B (zh) 在编译和部署中动态更新应用
CN111095338B (zh) 用于执行不同类型区块链合约的系统和方法
CN112866412B (zh) 一种部署智能合约的方法、区块链节点和存储介质
CN111095198B (zh) 用于数据处理的系统和方法
KR20200083932A (ko) 블록체인 상의 네이티브 계약을 구현하기 위한 시스템 및 방법
CN111033468A (zh) 实施不同类型的区块链合约的系统和方法
US20160232017A1 (en) System and Method for Reloading Constructors
JPH0877117A (ja) デジタル署名を用いた進行オブジェクト指向型プログラムの有効利用方法および装置
CN112835975B (zh) 一种在区块链中部署、更新、调用智能合约的方法
US8621429B2 (en) Software development support apparatus, function extension method and storage medium for storing function extension program
US11544044B2 (en) Methods, blockchain nodes, and storage media for executing smart contract
EP3961438B1 (en) Method for executing smart contract, blockchain node, and storage medium
EP3961391B1 (en) Method for executing smart contract, blockchain node, and storage medium
EP3961390A1 (en) Method for executing smart contract and blockchain node
CN111815330A (zh) 一种部署智能合约的方法、区块链节点和存储介质
CN111768200A (zh) 一种部署智能合约的方法、区块链节点和存储介质
Kasampalis et al. IELE: A rigorously designed language and tool ecosystem for the blockchain
EP3961437B1 (en) Method for executing smart contract, blockchain node, and storage medium
US20070000995A1 (en) Imparting digital uniqueness to the types of a programming language using a unique digital sequence
CN107451050B (zh) 函数获取方法和装置、服务器
Bartoletti et al. A theory of transaction parallelism in blockchains
CN112925523A (zh) 对象比较方法、装置、设备及计算机可读介质
Zhang et al. Programming smart contract with solidity
CN114579135B (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