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

使用Ethers.js向Ganache部署智能合约时JsonRpcProvider网络检测失败

解决Ethers.js部署至Ganache时的ECONNREFUSED连接错误

部署SimpleStorage智能合约到Ganache本地节点时出现以下连接错误:

正在部署合约,请稍候... JsonRpcProvider 无法检测网络,无法启动;1秒后重试(可能是URL错误或节点未启动)错误:连接 ECONNREFUSED 127.0.0.1:7545
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1532:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect',
address: '127.0.0.1', port: 7545 }

以下是分步解决方法:

1. 确认Ganache节点处于运行状态

  • 打开Ganache客户端,启动一个本地区块链工作区
  • 查看Ganache界面右上角的RPC服务器地址,确认是http://127.0.0.1:7545;如果端口不同,同步修改deploy.js中的RPC地址

2. 检查7545端口是否被占用

使用命令排查端口占用情况:

# Windows系统
netstat -ano | findstr :7545
# macOS/Linux系统
lsof -i :7545
  • 如果端口被其他程序占用,关闭占用程序,或者修改Ganache的端口设置,同时更新deploy.js中的RPC地址

3. 验证deploy.js中的RPC地址正确性

  • 确保ethers.JsonRpcProvider的参数与Ganache显示的RPC地址完全一致,包括协议(http/https)、IP地址和端口号
  • 避免出现IP拼写错误(如写成127.0.0.0)或端口号写错的情况

4. 修复Ethers.js版本兼容性问题

当前package.json同时安装了Ethers v6.10.0和旧版的@ethersproject/providers v5.7.2,两者存在兼容性冲突:

  1. 卸载旧版依赖:
npm uninstall @ethersproject/providers
  1. 修改deploy.js,删除以下冗余代码行:
const { JsonRpcProvider } = require("@ethersproject/providers");

Ethers v6已内置JsonRpcProvider,无需单独引入旧版模块

5. 提前验证钱包私钥有效性

检查Ganache界面中生成的账户私钥,确保deploy.js中使用的私钥属于Ganache节点内的账户,避免后续部署时出现签名失败问题


内容的提问来源于stack exchange,提问作者Azan Hyder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 05:40:32