一种用于在线开发和调试智能合约的脚手架系统及方法技术方案

技术编号:39806137 阅读:6 留言:0更新日期:2023-12-22 02:39
本发明专利技术涉及一种用于在线开发和调试智能合约的脚手架系统及方法,属于区块链技术领域

【技术实现步骤摘要】
一种用于在线开发和调试智能合约的脚手架系统及方法


[0001]本专利技术属于区块链
,涉及一种用于在线开发和调试智能合约的脚手架系统及方法


技术介绍

[0002]智能合约是运行在区块链上的自动执行的程序,可以用于构建各种应用

智能合约一旦部署在区块链上便无法被修改或删除,区块链的节点保存了智能合约的执行结果且保证了数据的安全性

[0003]Hyperledger Fabric
中的智能合约被称为链码
(Chaincode)
,部署在
Fabric
网络的
peer
节点上,通过使用
cmd

sdk
调用合约实现区块链账本的修改

对于
Fabric
区块链开发人员,链码需继承
Fabric
给出的智能合约
API
,并对于函数的参数及返回值
、main
函数等有一定的限制和要求

此外,链码的开发环境搭建过程较为繁琐:首先需要在本地启动一个
Fabric
测试网络,并安装

实例化链码后才可以进行测试与调试链码,调试链码需要通过
Fabric
的指令或者
sdk
,开发和调试效率较低

[0004]为了方便合约的开发和调试,现在亟需一种在线开发和调试
Hyperledger Fabric
智能合约的脚手架系统和方法来解决此问题


技术实现思路

[0005]有鉴于此,本专利技术的目的之一在于提供一种用于在线开发和调试智能合约的脚手架系统,开发者使用本系统可以降低智能合约开发的学习成本,避开了繁杂的环境构建过程,减少开发和调试合约的复杂度

本专利技术的目的之二在于提供一种利用前述的脚手架系统进行在线开发和调试智能合约的方法

[0006]本专利技术的第一专利技术的目的是通过以下技术方案实现的:
[0007]一种用于在线开发和调试智能合约的脚手架系统,所述系统包括
[0008]交互层,用于实现交互式操作界面;
[0009]业务层,基于构建层和存储层处理由交互层传来的请求并给予响应,包括合约管理模块

合约脚手架模块

合约代码压缩模块和合约调试器模块;
[0010]构建层,用于实现脚手架

调试器代码的构建生成以及调试器的启动,包括脚手架模板

调试器模板和调试器
shell
启动脚本;
[0011]存储层,用于数据存储和系统所需的临时文件

[0012]进一步,所述交互层基于
Vue
框架进行开发,包括
HTML
页面
、CodeMirror
网络代码编辑组件和
Axios
网络请求库

[0013]进一步,所述合约管理模块基于
Gorm
框架连接存储层数据库并开发合约的
CURD
功能;所述合约脚手架模块用于调用构建层合约脚手架模板生成合约初始代码;所述合约代码压缩模块基于
base64
编码将用户上传的代码编码压缩后作为合约实体的一个字段以备入库;所述合约调试器模块调用构建层调试器模板生成调试器代码并在存储层临时文件夹
写入代码文件,调用构建层调试器启动
shell
脚本执行调试器,将执行过程中的堆栈信息和输出信息通过管道获取并返回

[0014]进一步,所述构建层的脚手架模板和调试器模板均基于
Golang Template
开发,通过传入的参数动态生成合约初始代码和调试器代码;所述调试器
shell
启动脚本基于
shell
开发,负责启动调试器

[0015]进一步,所述脚手架模板包括合约结构体

初始化函数

调用函数
、Main
函数以及动态函数;所述调试器模板包括
MockStub
初始化
、MockInvoke
动态参数

日志打印;所述调试器
shell
启动脚本包括
go mod
环境初始化
、go test
启动指令

[0016]本专利技术的第二方面的目的是通过以下技术方案实现的:
[0017]所述方法包括以下步骤:
[0018]步骤
S1
:平台接收用户输入的配置合约初始函数;
[0019]步骤
S2
:平台通过模板,基于用户配置的合约初始函数生成合约初始代码,填充至页面的代码编辑器;
[0020]步骤
S3
:平台接收用户输入的基于合约初始代码的编码信息,直至外部编辑完成并接收到用户选择的调试函数和输入参数,待收到测试确定信号后开始调试;
[0021]步骤
S4
:平台通过模板生成基于用户所选函数和输入参数的调试器代码;
[0022]步骤
S5
:平台通过
shell
脚本执行
go test
启动调试器;
[0023]步骤
S6
:平台将调试器输出的堆栈和日志信息返回,并于页面输出展示

[0024]进一步,所述步骤
S2
中,合约初始函数的配置是指配置函数名称
[0025]本专利技术的有益效果是:开发者可以使用可视化的界面高效地开发和调试智能合约,无需搭建区块链测试网络,也无需学习
Fabric
的合约框架

本系统可以显著降低开发人员的开发

调试和学习成本,使开发人员更专注于合约函数内部业务逻辑的开发,提升了开发效率

[0026]本专利技术的其他优点

目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导

本专利技术的目标和其他优点可以通过下面的说明书和前述的权利要求书来实现和获得

附图说明
[0027]为了使本专利技术的目的

技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步的详细描述,其中:
[0028]图1为本专利技术的系统架构图;
[0029]图2为本专利技术的方法流程图

[0030]图3至图6为实施例的系统合约调试截图

具体实施方式
[0031]以下将参照附图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种用于在线开发和调试智能合约的脚手架系统,其特征在于:所述系统包括交互层,用于实现交互式操作界面;业务层,基于构建层和存储层处理由交互层传来的请求并给予响应,包括合约管理模块

合约脚手架模块

合约代码压缩模块和合约调试器模块;构建层,用于实现脚手架

调试器代码的构建生成以及调试器的启动,包括脚手架模板

调试器模板和调试器
shell
启动脚本;存储层,用于数据存储和系统所需的临时文件
。2.
根据权利要求1所述的一种用于在线开发和调试智能合约的脚手架系统,其特征在于:所述交互层基于
Vue
框架进行开发,包括
HTML
页面
、CodeMirror
网络代码编辑组件和
Axios
网络请求库
。3.
根据权利要求1或2所述的一种用于在线开发和调试智能合约的脚手架系统,其特征在于:所述合约管理模块基于
Gorm
框架连接存储层数据库并开发合约的
CURD
功能;所述合约脚手架模块用于调用构建层合约脚手架模板生成合约初始代码;所述合约代码压缩模块基于
base64
编码将用户上传的代码编码压缩后作为合约实体的一个字段以备入库;所述合约调试器模块调用构建层调试器模板生成调试器代码并在存储层临时文件夹写入代码文件,调用构建层调试器启动
shell
脚本执行调试器,将执行过程中的堆栈信息和输出信息通过管道获取并返回
。4.
根据权利要求1所述的一种用于在线开发和调试智能合约的脚手架系统,其特征在于:所述构建层的脚手架模板和调试器模板均基于
Golang Template
开发,通过传入的参数动态生成合...

【专利技术属性】
技术研发人员:钱亚冬沈骏豪
申请(专利权)人:苏州新建元数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1