6

我是使用安全帽部署智能合约的新手,我正在学习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)
4

5 回答 5

6

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

换句话说,您应该:

  1. npx hardhat node在您的终端中运行。让进程继续运行。
  2. 打开一个新的终端窗口。
  3. npx hardhat run [script-name] --network localhost
于 2021-08-12T12:30:20.693 回答
5

使用以下命令运行部署脚本时出现类似问题:

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

我可以通过使用 hardhat 而不是 localhost 来解决这个问题:

npx hardhat run scripts/deploy.js --network hardhat
于 2021-11-10T18:33:55.447 回答
2

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

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

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

::1             localhost

这显然给安全帽服务器带来了麻烦。

作为提示,请在运行时记下 WebSocket JSON-RPC 服务器地址,npx hardhat node以确保它在哪个 url 上运行。

于 2021-11-02T10:28:12.597 回答
1

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

于 2021-11-29T03:59:23.850 回答
0

在将 Hardhat 连接到以太坊和 Avalanche 的背景下,我也遇到了这个问题。

以下对我有用:

  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,使下面的url条目local与步骤 2 中打印的 URL 具有相同的端口号。(8545在本例中为 )

在此之后,您的npx命令可能会起作用。

于 2021-11-21T18:12:01.733 回答