【问题标题】:Connecting to Ethereum node in web browser在 Web 浏览器中连接到以太坊节点
【发布时间】:2015-11-13 16:07:09
【问题描述】:

我收到此错误:

连接错误:无法连接到节点 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"));

【问题讨论】:

    标签: ethereum


    【解决方案1】:

    我想我在尝试在 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

    【讨论】:

    • 我后来发现这与我需要 RPC 端口设置有关。我最初认为 networkid 决定了端口,但它完全是另外一回事。
    • 或者您可以使用 geth "geth attach rpc:http : //192.168.100.2:7001" 进行测试
    • @Max 如果一个 geth rpc 节点同时运行,你如何运行 geth attach?还是该节点不必运行才能正常工作?
    • 这对您来说仍然是一个有效的答案吗?我正在使用: geth --testnet --rpccorsdomain "*" --rpc --rpcaddr "0.0.0.0"
    • 可以通过telnet连接,但是meteor app继续说连接失败...
    【解决方案2】:

    一个简单的解决方案是使用像 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>");

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 2021-10-29
      • 2021-03-24
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 2022-07-25
      相关资源
      最近更新 更多