本地Evmos节点连接MetaMask无法转账,Gas限制异常报错
问题:Evmos本地节点MetaMask转账/合约部署提示gas超过区块gas limit(0)
环境与操作背景
本地部署Evmos v11.0.0节点的命令:
./evmosd init test --chain-id=evmos_9000-6 ./evmosd keys add t1 ./evmosd add-genesis-account t1 1000000000000000000000000aevmos,1000000000000000000000000000stake ./evmosd gentx t1 1000000000000000000stake ./evmosd collect-gentxs ./evmosd validate-genesis ./evmosd start
将账户导入MetaMask后余额显示正常,但转账或使用Remix部署合约时触发错误:
[ethjs-query] while formatting outputs from RPC '{"value":{"code":-32603,"data":{"code":-32000,"message":"tx gas (125677) exceeds block gas limit (0): out of gas: out of gas"}}}'
已验证操作:
- 终端直接发送原生Evmos代币可成功转账
- MetaMask或Web3.js发起的EVM类操作均触发上述错误
解决方案
问题根源是本地单节点的EVM模块未配置区块gas上限,默认值为0,导致EVM交易无法通过。需修改创世配置文件开启并设置合理参数:
- 停止运行中的Evmos节点
- 打开创世配置文件
~/.evmosd/config/genesis.json - 在
app_state.evm.params字段下添加或修改参数:
(数值可根据需求调整,10000000为常用合理上限)"evm": { "params": { "block_gas_limit": "10000000", "tx_gas_limit": "10000000" } } - 保存文件后重新启动节点:
./evmosd start - 再次尝试MetaMask转账或Remix部署合约即可正常执行
补充说明
终端发送的是原生Cosmos交易,不受EVM区块gas限制约束,因此可以成功;而MetaMask、Web3.js调用的是EVM兼容接口,必须遵守EVM的gas规则,因此必须配置EVM模块的gas参数。
内容的提问来源于stack exchange,提问作者Jatinder Singh
相关产品推荐
相关产品推荐

