[发明专利]一种智能合约调试方法、装置及其存储介质有效
申请号: | 201811318170.9 | 申请日: | 2018-11-06 |
公开(公告)号: | CN109446096B | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 饶诗豪 | 申请(专利权)人: | 北京知道创宇信息技术股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 徐丽 |
地址: | 100000 北京市朝阳区阜*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 调试 方法 装置 及其 存储 介质 | ||
本发明提供了一种智能合约调试方法、装置及其存储介质,涉及智能合约调试技术领域。所述智能合约调试方法包括:获取智能合约的操作码OpCode指令;通过OpCode解释器确定所述OpCode指令对应的替代指令函数;将所述替代指令函数中的运算函数转换为符号变量函数;在所述替代指令函数被执行后,基于所述替代指令函数的执行结果调试所述智能合约。该智能合约调试方法能在缺失智能合约源码、没有区块链具体交易数值的情况下进行智能合约的调试。
技术领域
本发明涉及智能合约调试技术领域,具体而言,涉及一种智能合约调试方法、装置及其存储介质。
背景技术
智能合约是1990s年代由尼克萨博提出的理念,几乎与互联网同龄。由于缺少可信的执行环境,智能合约并没有被应用到实际产业中,自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境,以太坊首先看到了区块链和智能合约的契合,发布了白皮书《以太坊:下一代智能合约和去中心化应用平台》,并一直致力于将以太坊打造成最佳智能合约平台,所以比特币引领区块链,以太坊复活智能合约。
智能合约作为当下热点话题之一,从而衍生出了智能合约代码审计的行业,但是目前的审计都是基于智能合约源码上,如果需要调试的智能合约没有公开源码和区块链具体交易数值,就无法弄清楚整个智能合约的代码逻辑。
发明内容
有鉴于此,本发明实施例的目的在于提供一种智能合约调试方法、装置及其存储介质,以解决上述需要调试的智能合约没有公开源码和区块链具体交易数值,就无法弄清楚整个智能合约的代码逻辑的问题。
第一方面,本发明实施例提供了一种智能合约调试方法,所述智能合约调试方法包括:获取智能合约的操作码OpCode指令;通过OpCode解释器确定所述OpCode指令对应的替代指令函数;将所述替代指令函数中的运算函数转换为符号变量函数;在所述替代指令函数被执行后,基于所述替代指令函数的执行结果调试所述智能合约。
综合第一方面,在所述通过OpCode解释器确定所述OpCode指令对应的替代指令函数之前,所述方法还包括:确定OpCode指令与原指令函数的对应关系,其中,所述原指令函数为所述智能合约中用于完成OpCode指令的封装函数;基于所述对应关系,将所述原指令函数替换为能够完成OpCode指令的替换指令函数,并保存OpCode指令与替换指令函数的映射,以构建所述OpCode解释器。
综合第一方面,所述通过OpCode解释器确定所述OpCode指令对应的替代指令函数,包括:将所述OpCode指令的字符串输入所述OpCode解释器;通过所述OpCode解释器确定所述字符串对应的替换指令函数。
综合第一方面,在所述将所述替代指令函数中的运算函数转换为符号变量函数之前,所述方法还包括:构建一个符号变量类,并给所述符号变量类添加运算函数;其中,所述符号变量类中的符号变量用于替换所述OpCode指令需要获取的外部数据,所述运算函数用于执行所述替代指令函数中的运算函数。
综合第一方面,在所述构建一个符号变量类之后,所述方法还包括:显示所述符号变量类。
综合第一方面,所述基于所述替代指令函数的执行结果调试所述智能合约,包括:显示所述替代指令函数的执行结果,获取用户指令,基于所述用户指令进行下一步调试操作;其中,所述用户指令包括查看当前栈的指令、查看内存数据的指令、查看当前指令的指令、查看下条指令的指令、获取当前指令的参数的指令、设置断点的指令和执行至断点的指令中的至少一个。
第二方面,本发明实施例提供了一种智能合约调试装置,所述装置包括:OpCode指令获取模块,用于获取智能合约的操作码OpCode指令;替代指令函数确定模块,用于通过OpCode解释器确定所述OpCode指令对应的替代指令函数;符号变量转换模块,用于将所述替代指令函数中的运算函数转换为符号变量函数;调试模块,用于在所述替代指令函数被执行后,基于所述替代指令函数的执行结果调试所述智能合约。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京知道创宇信息技术股份有限公司,未经北京知道创宇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811318170.9/2.html,转载请声明来源钻瓜专利网。