前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >solidity合约审计 - Out of gas的处理办法

solidity合约审计 - Out of gas的处理办法

作者头像
xuing
发布2019-10-19 09:57:14
2.8K0
发布2019-10-19 09:57:14
举报

这段时间在做solidity以及常见合约漏洞的学习。 在使用测试网络做ethernaut的题目时,经常遇到Out of Gas的错误。 Warning! Error encountered during contract execution [**Out of gas**] 或者是 Although one or More Error Occured [**Out of gas**] Contract Execution Completed

报错截图

解决方案

问题并不难解决,但解决之前,我们先要理解Gas Price和Gas limit。

  1. Gas Price是指,Gas的单价,即每个Gas值多少Ether。单价越高,矿工们就会越优先打包你的交易,你的交易完成的速度就会越快。但是调高Gas price并不能解决OOG(Out of Gas 下同)的问题。
  2. Gas limit是指,本次交易最多可花费多少Gas的上限。调高它就可以解决大部分的OOG问题,并且,调高它并不会提高你的Gas花费,剩余的Gas会重新返还到你的账户当中的。

但是也不能太高,高过创世节点配置的最大值,否则就会出现这样的错误: {"code":-32000,"message":"exceeds block gas limit"}

在Ropsten测试网络当中,因为大家普遍都是土豪,并且因为是测试网络,很容易出现OOG问题,这里以MetaMask为例,演示如何提高Limit。

image.png

点击Edit后切换到Advanced界面。就可以设置这两个值了

image.png

反正也是测试网络,可以在Limit后面加两个0。hhhhhh

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档