Chainlink Functions部署FunctionsConsumer至Mumbai测试网遇undici连接超时错误
解决Chainlink FunctionsConsumer部署Mumbai测试网的连接超时问题
问题定位
出现的UND_ERR_CONNECT_TIMEOUT错误,本质是Hardhat无法在规定时间内与配置的Mumbai RPC节点建立连接。functions-simulate命令仅做本地模拟,不需要链上交互所以能正常运行,但部署命令必须依赖稳定的测试网节点连接。
可行解决方案
更换Mumbai RPC节点
当前使用的RPC节点可能存在拥堵或限流,替换为其他公共节点:
把.env.enc里的MUMBAI_RPC_URL换成以下任一地址:https://rpc-mumbai.maticvigil.com/ https://matic-mumbai.chainstacklabs.com/ https://rpc.ankr.com/polygon_mumbai替换后重新加密环境变量(如果用Hardhat vars管理,执行
npx hardhat vars set MUMBAI_RPC_URL)。延长Hardhat连接超时时间
在hardhat.config.js的mumbai网络配置中增加超时参数:module.exports = { networks: { mumbai: { url: process.env.MUMBAI_RPC_URL, accounts: [process.env.PRIVATE_KEY], timeout: 60000 // 将默认20秒超时改为60秒 } } };排查本地网络干扰
- 切换稳定网络(如Wi-Fi换有线,或使用手机热点);
- 关闭VPN、代理类工具,这类工具可能阻断RPC节点连接。
提前验证RPC节点可用性
用curl测试节点是否能正常响应:curl -X POST <你的MUMBAI_RPC_URL> -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'返回包含
result字段的JSON则说明节点可用,超时的话直接换节点。
前置验证步骤
部署前先运行npx hardhat balance --network mumbai,如果能正常获取钱包余额,说明RPC连接已恢复正常,再执行部署命令即可。
内容的提问来源于stack exchange,提问作者OxSnosh
相关产品推荐
相关产品推荐

