首页> 中国专利> 一种智能合约一站式开发系统及方法

一种智能合约一站式开发系统及方法

摘要

本发明提供了一种智能合约一站式开发系统及方法,包括:智能合约模板管理模块、智能合约测试框架模块以及智能合约自动化编译及部署模块;所述智能合约模板管理模块包括:接收命令行指令,对智能合约模板进行管理,包括智能合约模板的上传、下载以及删除;所述智能合约测试框架模块包括:生成智能合约测试文件,基于生成的智能合约测试文件对智能合约代码进行调试和测试;所述智能合约自动化编译及部署模块包括:根据预先配置好指定区块链的IP、端口号、网络号信息,基于需要部署的智能合约名称按照合约的部署顺序进行编译和部署。

著录项

  • 公开/公告号CN113254054A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 上海万向区块链股份公司;

    申请/专利号CN202110644053.7

  • 发明设计人 曾梦露;

    申请日2021-06-09

  • 分类号G06F8/70(20180101);G06F8/60(20180101);G06F8/41(20180101);G06F11/36(20060101);

  • 代理机构31334 上海段和段律师事务所;

  • 代理人李佳俊;郭国中

  • 地址 200086 上海市虹口区塘沽路463号1201室

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明涉及区块链技术领域,具体地,涉及一种智能合约一站式开发系统及方法,更为具体地,涉及一种智能合约一站式开发的系统和方案。

背景技术

目前智能合约的开发未实现模板化,导致每一个新的智能合约的开发均需要从零开始,开发效率低。而目前对智能合约的测试,则需要将待测试的智能合约部署上区块链之后,通过调用区块链上智能合约相应的接口进行测试。如发现智能合约漏洞并尝试修复,再次测试时,需将智能合约重新部署上区块链,导致整个智能合约的测试周期长,测试低效。目前对智能合约的部署,则需要通过构造区块链交易数据,通过将交易数据发布上区块链来完成智能合约的部署。

如果采用智能合约模板,基于智能合约模板进行开发,则可以提高智能合约的开发效率,减少重复代码工作量。且如果智能合约支持通过测试文件进行测试,且智能合约及其测试文件可以在模拟测试环境中运行,而无需部署在正式区块链上,则可以大大提高智能合约测试效率。对于智能合约的部署,如果可以通过工具来完成这一过程,则可以大大简化智能合约的部署过程。

专利文献CN111427555A(申请号:202010236371.5)公开了一种轻量化的智能合约框架及合约开发方法,其中合约框架包括智能合约生成器,用户根据智能合约生成器提示创建工程,选择应用模板,并根据业务逻辑编写合约;智能合约编译器容器组,部署不同编译工具链版本,用于编译合约;区块链测试网络容器组,根据预置的区块链网络模型,建立测试网络拓扑对智能合约进行测试。

本发明提供了一种一站式智能合约开发、测试、部署的系统和方案。难点在于,智能合约的测试框架实现、测试区块链的实现以及智能合约单步调试功能的实现。具体内容包括如下:本智能合约一站式开发系统提供了智能合约模板,使得开发智能合约时可复用模板,减少重复工作量;同时本系统提供测试区块链网络,使得可以无需手动部署区块链对合约进行测试,为合约测试提供便捷;另外本系统可以一键部署智能合约至指定区块链上。本系统和方法提升了智能合约的开发效率。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种智能合约一站式开发系统及方法。

根据本发明提供的一种智能合约一站式开发系统,包括:智能合约模板管理模块、智能合约测试框架模块以及智能合约自动化编译及部署模块;

所述智能合约模板管理模块包括:接收命令行指令,对智能合约模板进行管理,包括智能合约模板的上传、下载以及删除;

所述智能合约测试框架模块包括:生成智能合约测试文件,基于生成的智能合约测试文件对智能合约代码进行调试和测试;

所述智能合约自动化编译及部署模块包括:根据预先配置好指定区块链的IP、端口号、网络号信息,基于需要部署的智能合约名称按照合约的部署顺序进行编译和部署。

优选地,所述智能合约模板管理模块包括:在云端服务器预置智能合约模板,并根据需要对智能合约模板进行下载、上传、删除管理。

优选地,所述根据需要对智能合约模板进行增删管理包括:

当执行上传指令并指定智能合约模板文件所在路径时,智能合约模板管理模块将智能合约模板上传到云端服务器,并对智能合约模板进行签名,记录并保存智能合约模板的所有权;

当执行删除指令时,鉴权通过后,将在云端服务器删除指定的智能合约模板;

当执行下载指令时,指定智能合约模板名称,自动拼接出相应智能合约模板的下载地址,通过yarn包管理器下载指定智能合约模板到本地系统中。

优选地,所述智能合约测试框架模块包括:

智能合约测试框架模块M1:利用测试文件生成指令解析智能合约接口定义文件,生成智能合约测试文件;

智能合约测试框架模块M2:利用智能合约测试运行指令通过测试区块链运行智能合约的测试文件,完成对智能合约的验证;

智能合约测试框架模块M3:利用智能合约调试指令对智能合约进行单步调试,定位智能合约代码漏洞。

优选地,所述测试文件生成指令包括:读取智能合约的接口定义文件,获取智能合约的接口方法名、参数数量和类型,生成相应的随机参数,并生成调用当前接口方法的测试函数,重复执行,直至将全部接口的测试函数写入文件,生成智能合约的测试文件。

优选地,所述智能合约测试运行指令包括:启动一条轻量级的测试区块链,并将智能合约测试文件在测试区块链上执行,获取测试结果,并与预期结果进行比较,完成智能合约的测试功能。

优选地,所述智能合约调试指令包括:执行测试文件,并利用Redux-saga中间件将运行过程状态以状态树的形式存储下来,当运行执行智能合约调试指令时,将状态树存储的状态映射到对应智能合约的代码行上,实现智能合约的单步调试功能。

优选地,所述智能合约自动化编译及部署模块包括:

智能合约自动化编译及部署模块M1:通过智能合约自动化编译及部署模块识别智能合约文件后缀,选择相应的智能合约编译器对智能合约进行编译;

智能合约自动化编译及部署模块M2:读取区块链信息以及智能合约名称,将预设个智能合约部署到指定区块链上。

根据本发明提供的一种智能合约一站式开发方法,包括:

步骤S1:智能合约模板管理模块接收命令行指令,对智能合约模板进行管理,包括智能合约模板的上传、下载以及删除;

步骤S2:智能合约测试框架模块生成智能合约测试文件,基于生成的智能合约测试文件对智能合约代码进行调试和测试;

步骤S3:智能合约自动化编译及部署模块根据预先配置好指定区块链的IP、端口号、网络号信息,基于需要部署的智能合约名称按照合约的部署顺序进行编译和部署。

优选地,所述智能合约模板管理模块包括:在云端服务器预置智能合约模板,并根据需要对智能合约模板进行下载、上传、删除管理;

所述智能合约测试框架模块包括:

智能合约测试框架模块M1:利用测试文件生成指令解析智能合约接口定义文件,生成智能合约测试文件;

智能合约测试框架模块M2:利用智能合约测试运行指令通过测试区块链运行智能合约的测试文件,完成对智能合约的验证;

智能合约测试框架模块M3:利用智能合约调试指令对智能合约进行单步调试,定位智能合约代码漏洞;

所述智能合约自动化编译及部署模块包括:

智能合约自动化编译及部署模块M1:通过智能合约自动化编译及部署模块识别智能合约文件后缀,选择相应的智能合约编译器对智能合约进行编译;

智能合约自动化编译及部署模块M2:读取区块链信息以及智能合约名称,将预设个智能合约部署到指定区块链上。

与现有技术相比,本发明具有如下的有益效果:

1、本发明提供了一种智能合约一站式开发系统和方法,解决了智能合约在开发过程中开发、测试、部署过程中操作复杂的问题,提升智能合约的开发效率;

2、本发明通过智能合约模板管理模块可以获取智能合约模板,基于智能合约模板进行二次合约开发可减少开发工作量,提高开发效率;

3、本发明通过智能合约测试框架模块可实现智能合约的高效便捷测试;

4、本发明通过智能合约自动化编译及部署模块可实现智能合约一键式部署上链的功能。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为一种智能合约一站式开发系统示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种智能合约一站式开发系统,如图1所示,包括:智能合约模板管理模块、智能合约测试框架模块以及智能合约自动化编译及部署模块;

所述智能合约模板管理模块包括:接收命令行指令,对智能合约模板进行管理,包括智能合约模板的上传、下载以及删除等;

所述智能合约测试框架模块包括:生成智能合约测试文件,基于生成的智能合约测试文件对智能合约代码进行调试和测试;

所述智能合约自动化编译及部署模块包括:根据预先配置好指定区块链的IP、端口号、网络号信息,基于需要部署的智能合约名称按照合约的部署顺序进行编译和部署。

具体地,所述智能合约模板管理模块包括:在云端服务器预置常用的智能合约模板,并支持用户根据需要对智能合约模板进行下载、上传、删除管理,以满足开发需求。

具体地,所述根据需要对智能合约模板进行增删管理包括:

当用户执行该模块提供的上传指令并指定智能合约模板文件所在路径时,智能合约模板管理模块将智能合约模板上传到本系统的云端服务器,并对智能合约模板进行签名,记录并保存智能合约模板的所有权;

当用户执行该模块提供的删除指令时,鉴权通过后,将在云端服务器删除指定的智能合约模板;

当用户执行该模块提供的下载指令时,并指定智能合约模板名称时,该模块自动拼接出相应智能合约模板的下载地址,通过yarn包管理器下载指定智能合约模板到本地系统中。用户在智能合约模板的基础上进行二次开发,可有效提升开发效率。

具体地,所述智能合约测试框架模块包括:

智能合约测试框架模块M1:利用测试文件生成指令解析智能合约接口定义文件,生成智能合约测试文件;

智能合约测试框架模块M2:利用智能合约测试运行指令通过测试区块链运行智能合约的测试文件,完成对智能合约的快速验证,解决常规需将智能合约部署上链,并通过发起交易测试智能合约所带来的测试方法繁冗和低效的痛点;

智能合约测试框架模块M3:利用智能合约调试指令对智能合约进行单步调试,快速定位智能合约代码漏洞。

具体地,所述测试文件生成指令包括:读取智能合约的接口定义文件,获取智能合约的接口方法名、参数数量和类型,生成相应的随机参数,并生成调用当前接口方法的测试函数,最后将全部接口的测试函数写入文件,生成智能合约的测试文件。

具体地,所述智能合约测试运行指令包括:启动一条轻量级的测试区块链,并将智能合约测试文件在测试区块链上执行,获取测试结果,并与预期结果进行比较,当与预期结果相同时,说明所开发智能合约功能完备,无代码漏洞,测试完成。如果与预期结果不同,则通过分析测试结果或对智能合约代码进行单步调试解决代码漏洞,直至测试结果与预期结果相同,完成智能合约的测试功能。

测试区块链提供了智能合约运行所需的虚拟机和存储结构,保存必要的状态数据,略去区块链的共识功能,完成简易的区块链功能,只保留执行智能合约需要的部分。测试区块链存储的状态数据的数据结构定义如下所示:

具体地,所述智能合约调试指令包括:预先执行一遍测试文件,并利用Redux-saga中间件将运行过程状态以状态树的形式存储下来,当用户执行智能合约调试指令时,本模块将状态树存储的状态映射到对应智能合约的代码行上,实现智能合约的单步调试功能。

具体地,所述智能合约自动化编译及部署模块包括:

智能合约自动化编译及部署模块M1:通过智能合约自动化编译及部署模块识别智能合约文件后缀,选择相应的智能合约编译器对智能合约进行编译;

智能合约自动化编译及部署模块M2:读取区块链信息以及智能合约名称,将一个或多个智能合约部署到指定区块链上。

上述三个模块可以通过脚本文件串联起来,实现一键式智能合约的创建、测试、编译、部署流程,极大提高智能合约的开发效率。

本发明提供的智能合约一站式开发系统,可以通过本发明提供的智能合约一站式开发方法中的步骤流程实现。本领域技术人员,可以将所述智能合约一站式开发方法理解为智能合约一站式开发系统的一个优选例。

实施例2是实施例1的优选例

目前在区块链上的众多应用,例如DAPP等,通常都需要依赖智能合约来实现。在将智能合约部署到区块链之前需要对智能合约进行开发和测试,确保无误之后才最终上链运行。用户利用本智能合约一站式开发的系统和方案,通过下载命令下载智能合约模板至本地,基于智能合约模板进行二次开发,完成智能合约代码的编码开发工作。随后通过测试文件生成命令自动生成智能合约的测试文件,或自行开发智能合约的测试文件,并执行测试文件生成指令对智能合约执行测试。当智能合约测试失败时,执行智能合约调试指令对智能合约进行单步调试。最后,配置目标区块链以及需要部署的智能合约的信息,执行deploy命令提供快速部署智能合约的功能,将智能合约一键部署目标区块链上。上述指令可以通过脚本串联在一起,实现一键式开发部署过程。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号