WASM智能合约开发套件及其开发方法与流程

专利2025-11-08  1


本发明涉及区块链领域,尤其涉及一种wasm智能合约开发套件及其开发方法。


背景技术:

1、随着区块链技术的快速发展,智能合约作为一种自动化执行合同条款的协议,已经在金融服务、供应链管理、医疗健康、政务服务等领域得到了广泛应用。智能合约的概念最开始是在1994年,由知名密码学家尼克·萨博(nick szabo)提出,直到以太坊(ethereum)平台的出现,智能合约才真正得到广泛应用。以太坊设计了一种高级编程语言solidity来编写智能合约,并设计了evm虚拟机来执行合约字节码。

2、随着wasm(webassembly)技术出现,它作为一种可移植、性能优越的虚拟机技术,已经在web应用领域得到广泛应用。近年来,很多国内外流行的区块链使用wasm技术实现了智能合约,常见的如fisco bcos的liquid、substrate的!ink等,它们使用rust强大的宏系统,通过元编程技术实现了专用的edsl来编写智能合约。

3、传统的智能合约开发主要使用如solidity(以太坊)等特定的智能合约编程语言,这些专用语言往往具有学习曲线陡峭、生态系统相对封闭等问题,使得开发者在使用中面临诸多挑战。wasm作为智能合约的底层技术能提供比evm更高的安全性与性能,还能支持多种常见开发语言编写智能合约,然而rust语言以其所有权系统、生命周期与复杂的类型系统等,使得学习曲线陡峭,开发成本较高。

4、因此,现在亟需一种简单通用、安全高效的wasm智能合约开发套件来解决上述问题。


技术实现思路

1、本发明主要目的在于提供一种简单通用、安全高效的wasm智能合约开发套件,降低开发门槛,简化开发流程,提升智能合约的开发效率。

2、本发明所采用的技术方案是:

3、提供一种wasm智能合约开发套件的开发方法,构建包括wasm接口、开发语言和开发工具的wasm智能合约开发套件以供开发者编写wasm智能合约;其中:

4、wasm接口包括合约接口和环境接口;节点与wasm虚拟机之间通过wasm接口进行交互,其中节点通过调用合约接口执行合约代码,wasm虚拟机通过调用环境接口获取节点的环境数据、返回合约执行数据;

5、开发语言为按照智能合约的特定场景进行模块化设计,各个模块均通过封装环境接口中的相应接口实现相应的功能,通过开发工具自动构建或者提供具体的语法给开发者使用;

6、开发工具为可视化的wasm智能合约集成开发环境,用于给开发者提供合约创建、代码编辑、合约编译功能。

7、接上述技术方案,环境接口包括获取输入数据的接口input api、返回输出数据的接口output api、获取合约执行的上下文信息的接口context api、合约状态数据的存储接口storage api、预言机数据获取接口oracle api、合约执行过程中的事件日志返回接口logs api、交易回滚、异常信息返回等接口other api。

8、接上述技术方案,合约接口包括合约部署接口deploy api和合约调用接口mainapi,输入参数的获取通过调用环境接口的input api实现,输出参数的返回通过调用环境接口的output api实现;deploy api通过调用合约的构造函数,实现合约部署时的数据初始化;main api是调用合约的入口,内部通过函数签名id判断执行相应的合约方法,该合约方法为智能合约中对外公开可被调用的一系列函数。

9、接上述技术方案,context api获取的上下文信息包括但不限于区块高度、时间戳、合约调用者、合约地址等。

10、接上述技术方案,函数签名id为合约方法签名哈希后的前n个字节。如前4个字节。

11、接上述技术方案,输入输出数据需要序列化后进行交互。

12、接上述技术方案,构建wasm智能合约开发套件过程中,按照智能合约的特定场景,对开发语言进行模块化设计,主要分为数据类型模块、合约执行模块、合约事件模块、异常处理模块、合约预言机模块与合约上下文模块;其中合约执行模块由开发工具自动构建,其他模块提供具体的语法给开发者使用。

13、接上述技术方案,数据类型模块提供基础数据类型、复合数据类型以及状态变量类型,基础数据类型包括无符号整数类型、有符号整数类型、字符串类型、地址类型与布尔类型;复合数据类型包括枚举、数组、结构体;状态变量类型包括单值变量、映射变量、向量变量。

14、接上述技术方案,开发者使用可视化的wasm智能合约集成开发环境,根据创建合约项目的功能,选择集成的智能合约场景模板,快速创建智能合约项目,并根据开发工具的代码编辑功能进行智能合约的代码编辑,最后通过合约编译功能生成最终的字节码与合约描述文件。

15、接上述技术方案,合约编译功能集成了合约预处理、合约编译及合约优化的核心功能;合约预处理用于结合wasm接口与合约开发语言,对开发者编写的简单合约代码进行解析及底层代码的重构;合约编译用于结合wasm技术的多语言支持特性,在开发工具中集成编译器,选择编译目标,对预处理后的智能合约代码进行编译;合约优化通过集成工具对编译后的wasm字节码进行优化,减小合约字节码的体积。

16、接上述技术方案,合约预处理主要包括语法解析、部署接口代码与执行接口代码的生成。

17、本发明还提供一种wasm智能合约开发套件,为使用接上述技术方案所述的wasm智能合约开发套件的开发方法实现的wasm智能合约开发套件,包括wasm接口、开发语言和开发工具。

18、本发明还提供一种利用wasm智能合约开发套件进行智能合约编写的方法,开发者利用上述技术方案所述的wasm智能合约开发套件来编写wasm智能合约。

19、本发明产生的有益效果是:本发明通过设计一套wasm智能合约开发套件,合约字节码使用wasm,以简单通用的编程语言为基础,结合智能合约的特定场景,设计了wasm接口,并提供简洁易用的开发语言与开发工具;该开发套件简单通用、安全高效,可降低开发者在编写智能合约时开发门槛,简化开发流程,提升智能合约的开发效率;且开发语言按照智能合约的特定场景进行了模块化设计,各个模块均通过封装环境接口中的相应接口实现相应的功能,可实现智能合约开发过程中所需的如各种数据类型、入口函数、合约特性相关数据结构及api等语法。

20、进一步地,wasm智能合约ide中合约编译功能集成了合约预处理、编译及优化的核心功能,合约预处理结合wasm接口与合约开发语言,对开发者编写的简单合约代码进行解析及底层代码的重构,这样做的好处是开发者不用关心复杂的wasm接口以及底层逻辑代码如何实现,可以大大减少开发工作量,并杜绝了底层代码编写时出错的可能;合约编译结合了wasm技术的多语言支持特性,简化了开发者通过配置编译环境,使用命令编译合约的复杂过程,实现了一键可视化的自动编译功能,隐藏了编译细节,进一步简化了开发流程。

21、当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。


技术特征:

1.一种wasm智能合约开发套件的开发方法,其特征在于,构建包括wasm接口、开发语言和开发工具的wasm智能合约开发套件以供开发者编写wasm智能合约;其中:

2.根据权利要求1所述的wasm智能合约开发套件的开发方法,其特征在于,环境接口包括获取输入数据的接口input api、返回输出数据的接口output api、获取合约执行的上下文信息的接口context api、合约状态数据的存储接口storage api、预言机数据获取接口oracle api、合约执行过程中的事件日志返回接口logs api、交易回滚、异常信息返回等接口other api。

3.根据权利要求2所述的wasm智能合约开发套件的开发方法,其特征在于,合约接口包括合约部署接口deploy api和合约调用接口main api,输入参数的获取通过调用环境接口的input api实现,输出参数的返回通过调用环境接口的output api实现;deploy api通过调用合约的构造函数,实现合约部署时的数据初始化;main api是调用合约的入口,内部通过函数签名id判断执行相应的合约方法,该合约方法为智能合约中对外公开可被调用的一系列函数。

4.根据权利要求1所述的wasm智能合约开发套件的开发方法,其特征在于,contextapi获取的上下文信息包括区块高度、时间戳、合约调用者、合约地址。

5.根据权利要求3所述的wasm智能合约开发套件的开发方法,其特征在于,函数签名id为合约方法签名哈希后的前n个字节。

6.根据权利要求2所述的wasm智能合约开发套件的开发方法,其特征在于,构建wasm智能合约开发套件过程中,按照智能合约的特定场景,对开发语言进行模块化设计,主要分为数据类型模块、合约执行模块、合约事件模块、异常处理模块、合约预言机模块与合约上下文模块;其中合约执行模块由开发工具自动构建,其他模块提供具体的语法给开发者使用。

7.根据权利要求1所述的wasm智能合约开发套件的开发方法,其特征在于,数据类型模块提供基础数据类型、复合数据类型以及状态变量类型,基础数据类型包括无符号整数类型、有符号整数类型、字符串类型、地址类型与布尔类型;复合数据类型包括枚举、数组、结构体;状态变量类型包括单值变量、映射变量、向量变量。

8.根据权利要求1所述的wasm智能合约开发套件的开发方法,其特征在于,开发者使用可视化的wasm智能合约集成开发环境,根据创建合约项目的功能,选择集成的智能合约场景模板,快速创建智能合约项目,并根据开发工具的代码编辑功能进行智能合约的代码编辑,最后通过合约编译功能生成最终的字节码与合约描述文件。

9.根据权利要求1所述的wasm智能合约开发套件的开发方法,其特征在于,合约编译功能集成了合约预处理、合约编译及合约优化的核心功能;合约预处理用于结合wasm接口与合约开发语言,对开发者编写的简单合约代码进行解析及底层代码的重构;合约编译用于结合wasm技术的多语言支持特性,在开发工具中集成编译器,选择编译目标,对预处理后的智能合约代码进行编译;合约优化通过集成工具对编译后的wasm字节码进行优化,减小合约字节码的体积。

10.根据权利要求9所述的wasm智能合约开发套件的开发方法,其特征在于,合约预处理主要包括语法解析、部署接口代码与执行接口代码的生成。

11.一种wasm智能合约开发套件,其特征在于,为使用权利要求1-10中任一项所述的wasm智能合约开发套件的开发方法实现的wasm智能合约开发套件,包括wasm接口、开发语言和开发工具。

12.一种利用wasm智能合约开发套件进行智能合约编写的方法,其特征在于,开发者利用权利要求11所述的wasm智能合约开发套件来编写wasm智能合约。


技术总结
本发明公开了一种WASM智能合约开发套件及其开发方法,具体通过构建包括WASM接口、开发语言和开发工具的WASM智能合约开发套件以供开发者编写WASM智能合约。其中WASM接口包括合约接口和环境接口;开发语言为按照智能合约的特定场景进行模块化设计,各个模块均通过封装环境接口中的相应接口实现相应的功能,通过开发工具自动构建或者提供具体的语法给开发者使用;开发工具为可视化的WASM智能合约集成开发环境,用于给开发者提供合约创建、代码编辑、合约编译功能。本发明旨在简化智能合约开发过程,提升智能合约的开发效率。

技术研发人员:祁良辉,白甜,李超,匡翌婕,董逢华
受保护的技术使用者:武汉天喻信息产业股份有限公司
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-27632.html