Mythril测试智能合约遇到的一些问题与解决方法

这篇具有很好参考价值的文章主要介绍了Mythril测试智能合约遇到的一些问题与解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于笔者最近在做智能合约相关的实验,使用了Mythril工具来检测智能合约,并在使用的过程中遇到了一系列的问题,这里给大家一点建议。

 

其中Mythril检测智能合约时的合约缺陷分类如下所示

SWC ID:116----------表示该漏洞的分类编号

Severity:Low----------表示该漏洞的严重程度

Contarct:Roulette----------表示检测的合约名称

Function name:fallback----------表示发现漏洞的函数名称

PC address:70----------表示程序计数器,Program Counter的简称 

一、Mythril的检测方法问题

myhtril检测智能合约分为两种形式,一种根据智能合约样本的源文件.sol来检测,另一种则是通过智能合约的地址来检测

1、根据.sol来检测

$ myth analyze <solidity-file>

2、通过地址来进行检测

$ myth analyze -a <contract-address> 

 这边通过docker下载Mythril之后发现通过第一种情况来检测是可以的,但是通过第二种情况来检测就不行了,可能需要通过pip3来下载Mythril,但是pip3下载Mythril特别繁琐且会让安装很多包,笔者最后放弃了,大家可以试试。如果下载成功的话可以通过语句:

myth --version

来检测是否通过pip3下载mythril成功(注意:如果是通过docker来下载的,这边检查myth版本时会显示失败,但是却可以使用第一种方式来检测合约(非常离谱!震惊!)) 

还有一种可能就是需要通过翻墙才行,但是笔者试了试没效果,各位也可以尝试一下

二、通过.sol来检测合约速度太慢

这边提供一些通过Mythril检测合约的一些补充语句:

通常检测语句:

sudo docker run -v $(pwd):/home/test mythril/myth analyze /home/test/test.sol

补充语句:

sudo docker run -v $(pwd):/home/test mythril/myth analyze /home/test/test.sol --solv 0.4.25 --solver-timeout 60 --execution-timeout 60 -o text -t 3

其中:

  • solv 是指定solidity编译版本
  • solver-timeout solidity版本下载超时时间
  • execution-timeout,执行超时时间
  • o 输出格式,可选text/markdown/json/jsonv2
  • t 交易个数

当我们通过第一种方式即源文件.sol方式来检测时可能会出现2-4个小时才出结果的情况,这个时候我们就可以使用execution-timeout的方式,例如:

 sudo docker run -v $(pwd):/home/test mythril/myth analyze --execution-timeout 60 /home/test/test.sol

将时间控制在60s之内。

这样子检测的效率会大大提升。

三、网络不稳定 

检测合约时,一定要保持在一个稳定的网络环境下,网络不稳定对检测影响很大,可能会出现下面的情况。

Mythril测试智能合约遇到的一些问题与解决方法文章来源地址https://www.toymoban.com/news/detail-427213.html

到了这里,关于Mythril测试智能合约遇到的一些问题与解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Truffle编译智能合约及所遇到的问题

    1.下载安装nvm,首先安装目录不要有空格和中文,会出现乱码 2、解压之后安装,安装后自动配置环境变量 3、nvm -v 查看版本 4、通过如下指令进行node版本的安装、替换 我是通过VS code 打开项目,编辑truffle-config.js文件 配置本地以太坊网络和远程的以太坊测试网络方式有所差异

    2023年04月08日
    浏览(39)
  • 解决 git clone 时遇到的一些问题

    在使用 git clone 时,出现了以下报错: GnuTLS recv error (-110): The TLS connection was non-properly terminated. 依次输入以下代码: 然后再次使用 git clone 发现可以正常下载了。 输入以下两行代码解决:

    2024年02月16日
    浏览(55)
  • 小程序在日常遇到的一些限制及解决方法

    微信小程序对单个文件大小有限制,js文件不能超过2MB,其他类型文件不能超过10MB。如果开发者需要使用大型资源文件,可以考虑分割文件或使用CDN加速技术。 解决方式如下: 分割文件 将较大的文件拆分为多个小文件,并通过异步加载的方式进行动态合并。例如,在小程序

    2024年02月06日
    浏览(45)
  • cocos creator 3.x遇到的一些问题和解决办法

    一、场景文件损坏问题。 现象:一次异常死机,关机重启后,场景文件(cocos creator 3.6.2创建)无法打开,涉及几天的工作,如果无法恢复,损失巨大!感觉太夸张了。 分析:认真分析了场景文件格式,是json格式(可以用visual studio code打开),层次不多,以id进行关联,尝

    2024年02月05日
    浏览(63)
  • office 365家庭版无法激活,提示遇到一些临时服务器问题,已解决

    office 365家庭版购买后始终无法激活,总是提示“很抱歉,遇到一些临时服务器问题”。 联系微信技术支持电话了半个小时才解决: 打开IE浏览器的 “internet选项” (360浏览器需从菜单中选择“工具”=》“internet选项”), 然后在“连接”=》“局域网设置”页面中去掉所有

    2024年02月05日
    浏览(70)
  • 避免智能合约灾难:C3算法教你解决钻石问题!

    在智能合约的世界里,一种被称为“钻石问题”的神秘现象正在蔓延。当智能合约试图同时继承多个合约时,这个问题如影随形般出现,让开发者措手不及。本文将深入探索这个神秘现象背后的秘密,一探究竟! 允许一个合约同时继承多个合约,从而将它们的功能和属性组合

    2024年04月10日
    浏览(42)
  • uni-app开发微信小程序经常遇到的一些问题及解决方案

       可以使用uni.getUserInfo接口获取用户信息。需要用户授权。   可以使用uni-app提供的页面组件内置下拉刷新功能,也可以自定义下拉刷新组件。   可以在页面onReachBottom方法中监听上拉事件,当触发上拉事件时,触发加载更多数据的操作。     可以使用uni.uploadFile接口实现图

    2024年02月14日
    浏览(59)
  • 区块链智能合约solidity的中的一些关键字

    目  录 pragma mapping msg对象 block对象 contract constructor struct 数据地址 地址类型 address payable revert 以下场景使用 revert() : require 以下场景使用 require() : assert 以下场景使用 assert(): 访问权限 internal public private external function returns return view pure constant event emit modifier pragma   

    2024年01月16日
    浏览(75)
  • 开发过程中遇到的问题以及解决方法

    巩固基础,砥砺前行 。 只有不断重复,才能做到超越自己。 能坚持把简单的事情做到极致,也是不容易的。 简单易用的git命令 git命令: 查看有几个分支:git branch -a 切换分支:git checkout 分支名称 下载项目:git clone url 拉取项目:每次提交代码之前都需要,相当于更新代码

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包