5

我收到此错误:

连接错误:无法连接到节点 http://localhost:8545,它正在运行吗?

我目前正在尝试将 Meteor 应用程序与私有测试网络上的节点一起使用。我也尝试在真实网络上的真实节点上运行它。我能够访问 web3.eth 对象,但我似乎无法连接到我的节点!这太令人沮丧了!

我的应用程序在http://localhost:3000上运行

我在启动节点时尝试了以下操作,但它们都不起作用(它们启动正常,但我无法通过浏览器连接到它们):

geth --networkid 8545 --genesis ~/genesis_block.json --datadir ~/.ethereum_experiment 控制台
geth --rpccorsdomain "*" --rpc --networkid 8545 --minerthreads "1" --datadir ~/.ethereum_experiment --mine

这是我用来在浏览器控制台中设置提供程序的方法:

web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545"));
4

2 回答 2

4

我想我在尝试在 VM 中运行 geth 时遇到了同样的错误。在那种情况下,问题在于 RPC 只监听 localhost。使用 --rpcaddr "0.0.0.0" 将其绑定到所有地址解决了这个问题:

geth --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --nodiscover --networkid "$NETWORKID" --datadir ~/.ethereum_experiment --genesis ~/genesis_block.json

这里要注意的重要一点是,如果端口不在专用网络上或未受防火墙保护,则通过此类配置,端口将对来自外部世界的连接开放。

您还可以通过尝试使用 telnet 连接来检查 RPC 端口是否打开:

telnet localhost 8545

于 2015-08-21T09:47:20.213 回答
0

一个简单的解决方案是使用像 Alchemy 或 Infura 这样的节点提供程序!

https://docs.alchemy.com/alchemy/introduction/getting-started

  1. 通过注册帐户并创建应用程序来制作 Alchemy 密钥

  2. 将您的 web3 设置替换为以下内容:

const { createAlchemyWeb3 } = require("@alch/alchemy-web3"); // Using HTTPS const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/<api-key>");

您可以使用这些节点提供商之一的免费节点,避免自己维护节点的麻烦。

于 2021-10-13T22:02:19.940 回答