首页 > 解决方案 > 通过 Websocket 或 HTTP 连接到在 VPS 上运行的 BSC 节点

问题描述

我已经按照此处的文档在 BSC 上设置了自己的节点 - https://docs.binance.org/smart-chain/developer/fullnode.html

我遇到的问题是我无法将 Web3 连接到节点。

尝试使用连接时

web3 = Web3(Web3.WebsocketProvider('ws://[server-ip]:8545'))
print('ws - ' + str(web3.isConnected()))

我的输出是false

运行我正在使用的节点时:

./geth --config ./config.toml --datadir ./mainnet --ws --ws.port=8545  --ws.origins='*'

我尝试了许多配置组合来使其正常工作,但没有运气。通常,我尝试通过 Web 套接字进行连接,但如果需要,我很乐意与 HTTP 提供程序连接。

查看netstat --listen --tcp节点运行时的输出:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:8545          0.0.0.0:*               LISTEN
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp6       0      0 [::]:30311              [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN

有谁知道我错过了什么?

标签: networkingwebsocketvpsweb3geth

解决方案


经过大量研究,我发现处理这个问题的最佳方法是简单地运行 Nginx 代理。

以下是我为任何正在寻找类似问题解决方案的人所遵循的说明

https://www.nginx.com/blog/websocket-nginx/


推荐阅读