You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Web3调用Ganache时buildTransaction链ID不匹配报错如何解决

报错原因

该错误由Web3的链ID校验逻辑触发:你代码中硬编码的chain_id = 5777,和当前连接的Ganache本地节点实际的链ID 1337不匹配,构造交易时校验失败直接抛出异常。
Ganache不同版本、不同工作区的默认链ID存在差异,旧版GUI版Ganache默认链ID为5777,新版GUI、CLI版Ganache默认链ID多为1337,教程示例的配置和你本地环境不匹配就会触发该问题。

解决步骤
  • 优先推荐使用动态获取链ID的方式,避免硬编码适配不同环境的问题,直接把代码中chain_id = 5777替换为以下代码即可:
    chain_id = w3.eth.chain_id
    
  • 也可以手动修改硬编码值:打开Ganache界面,点击右上角齿轮图标进入设置页,选择「服务器」选项卡,查看NETWORK ID的实际值,把代码里的chain_id改成对应数值即可,你当前环境直接改成1337就能解决当前报错。
  • 额外注意:修改链ID后如果出现gasPrice相关报错,是因为新版本Web3不会自动填充gasPrice参数,在buildTransaction的参数中补充对应值即可,修改后的交易构造代码如下:
    transaction = SimpleStorage.constructor().buildTransaction(
        {"chainId": chain_id, "from": my_address, "nonce": nonce, "gasPrice": w3.eth.gas_price}
    )
    

内容的提问来源于stack exchange,提问作者Justin Cho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:06:04