运行npm后连接到本地主机错误



我是使用硬帽部署智能合约的新手,正在https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13上学习教程。但是,在运行npx hardhat run scripts/deploy.js --network localhost之后,我得到了以下错误。关于如何修复连接问题的任何想法?

HardhatError: HH108: Cannot connect to the network localhost.
Please make sure your node is running, and check your internet connection and networks config
at HttpProvider._fetchJsonRpcResponse (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/http.ts:176:15)
at processTicksAndRejections (node:internal/process/task_queues:93:5)
at HttpProvider.request (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/http.ts:55:29)
at GanacheGasMultiplierProvider._isGanache (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/gas-providers.ts:302:30)
at GanacheGasMultiplierProvider.request (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/hardhat/src/internal/core/providers/gas-providers.ts:291:23)
at EthersProviderWrapper.send (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/@nomiclabs/hardhat-ethers/src/internal/ethers-provider-wrapper.ts:13:20)
at Object.getSigners (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/@nomiclabs/hardhat-ethers/src/internal/helpers.ts:23:20)
at getContractFactoryByAbiAndBytecode (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/@nomiclabs/hardhat-ethers/src/internal/helpers.ts:250:21)
at main (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/scripts/deploy.js:17:19)

Caused by: FetchError: request to http://127.0.0.1:8545/ failed, reason: connect ECONNREFUSED 127.0.0.1:8545
at ClientRequest.<anonymous> (/Users/cuneydtasoglu/Desktop/hardhat_list/blockchain/node_modules/node-fetch/lib/index.js:1461:11)
at ClientRequest.emit (node:events:376:20)
at Socket.socketErrorListener (node:_http_client:490:9)
at Socket.emit (node:events:376:20)
at emitErrorNT (node:internal/streams/destroy:188:8)
at emitErrorCloseNT (node:internal/streams/destroy:153:3)
at processTicksAndRejections (node:internal/process/task_queues:80:21)

Petr有正确的解决方案—您的本地测试节点(您以npx hardhat node开始)需要在部署智能合约时继续运行。

换句话说,你应该:

  1. 在终端运行npx hardhat node
  2. 打开新的终端窗口
  3. 运行npx hardhat run [script-name] --network localhost

使用以下命令运行部署脚本时也存在类似问题:

npx hardhat run scripts/deploy.js --network localhost

我可以通过使用hardhat而不是localhost:

来解决这个问题。
npx hardhat run scripts/deploy.js --network hardhat

我在运行时遇到了同样的问题:

npx hardhat run scripts/deploy.js --network localhost

并试图改变solid版本,清理项目,从头开始删除并安装npm_modules,但我发现的唯一解决方案是检查我的/etc/hosts文件。有这样的记录:

::1             localhost

这显然给硬帽服务器造成了麻烦。

作为一个提示,请注意WebSocket JSON-RPC服务器地址,当你运行npx hardhat node,以确保在哪个url上运行。

我遇到过这个问题。经过一番研究,我注意到节点版本是关键。如果使用的是节点版本17,可以将其降级到版本16。它适用于我的项目。

我也遇到过这个问题,无论是在连接Hardhat到以太坊还是雪崩的情况下。

下面的方法对我有用:

  1. 修改/etc/hosts,删除行其他人提到的::1 localhost(https://stackoverflow.com/a/69808847/6189922)
  2. 运行npx hardhat node。这应该输出如下行:
Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/
  1. 修改hardhat.config.ts,使local下的url条目具有与步骤2中打印的URL相同的端口号。(8545,在本例中)

您的npx命令可能会在此之后工作。

这个问题主要是新手面临的。

  1. 不要直接部署你的合约。首先,你必须启动你的本地节点,在本地主机上部署你的合约。

  2. 您可以通过输入命令::npx hardhat node

    启动本地eth节点
  3. 现在部署合同。

你可以进入hardhat.config.js,进入网络,本地主机,从"http://localhost:8545";";http://127.0.0.1:8545">

在我的本地机器中,/etc/hosts::1 localhost条目已经被注释,取消注释没有帮助,而是在硬配置js中替换上面的url条目。

输入npx hardhat nodeyarn hardhat node。然后打开另一个终端并运行npx hardhat run scripts/deploy.js --network localhost这应该可以工作

尝试用npx hardhat run --network hardhat [script-name]代替

相关内容

  • 没有找到相关文章

最新更新