firebase中的节点应用程序无法连接到web3 RPC

时间:2018-02-07 11:45:47

标签: node.js firebase web3

当我使用node运行下面的代码时,它可以连接到外部服务器。但是当我在firebase上部署这个代码时,它失败了。

const Web3      = require('web3');
var web3        = new Web3(new Web3.providers.HttpProvider("http://<my-server-ip>:8545"));
const functions = require('firebase-functions');
const express   = require('express');

if(web3.isConnected()) {
    console.log("Success")

} else {

   console.log("Failure")

}
const app       = express();
exports.app = functions.https.onRequest(app);

我验证了以下问题来解决此问题:

  • rpc服务器可以从任何地方全局访问
  • 用package.json编写的web3版本为"web3": "^0.18.4"

1 个答案:

答案 0 :(得分:0)

如果Firebase中有更多日志,那么将它们附加到原始问题也会很有帮助。出于这个答案的目的,我假设它只是将Failure打印到控制台。

要进行问题排查,请执行以下操作:

  • <my-server-ip>检查以太坊节点的日志,看看是否存在其他错误,或者Firebase IP是否有连接尝试。

  • 如果您在以太坊节点日志中看不到任何连接尝试,那么即使您提到它可以访问,我建议您仔细检查其防火墙/网络设置,以确保它允许连接来自Firebase。