我使用 geth 在 aws ec2 实例上创建了一个链节点。 我是否需要启用某些功能或者我应该使用什么 IP 来连接它? 我正在使用 web3.js 使用 new Web3.providers.WebsocketProvider('wss_address', abiOptions)
我使用 --ws 为其启用了 ws。我在哪里得到“启用 WebSocket 的 url=ws://127.0.0.0.1:8546”。
来自 Geth docs 页面 的命令行选项:
--ws (default: false) ($GETH_WS)
Enable the WS-RPC server
--ws.addr value (default: "localhost") ($GETH_WS_ADDR)
WS-RPC server listening interface
--ws.api value ($GETH_WS_API)
API's offered over the WS-RPC interface
--ws.origins value ($GETH_WS_ORIGINS)
Origins from which to accept websockets requests
--ws.port value (default: 8546) ($GETH_WS_PORT)
WS-RPC server listening port
--ws.rpcprefix value ($GETH_WS_RPCPREFIX)
HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths.
如果仅指定
--ws
选项,则使用默认值 --ws.addr
,并且节点仅侦听来自本地计算机的传入请求。
您可以通过 IP 地址或主机名指定节点侦听的网络接口。例如,如果您的服务器IP是
123.123.123.123
,您可以指定以下IP。这使节点能够接受 WS 连接到此 IP。
geth --ws --ws.addr "123.123.123.123"
或者您想监听来自服务器所有网络接口(例如本地主机、所有 LAN 电缆、VPN 隧道、wifi 等)的传入请求,您可以将
--ws.addr
的值指定为 0.0.0.0
。这使得节点能够接受所有传入的 WS 连接。
geth --ws --ws.addr "0.0.0.0"
使用此命令:
nohup ./geth --config ./config.toml --datadir ./node --cache 8500 --rpc.allow-unprotected-txs --txlookuplimit 0 --ws --ws.addr "0.0.0.0" --ws.origins "*" --ws.api "web3, eth" &
连接这条线:
new Web3.providers.WebsocketProvider('ws://yourPublicIpAddress:8546', abiOptions)
一切正常,感谢支持)))
附注就我而言,与 PORT 规范的连接有效。并且只能通过ws,而不是wss。我没有注意到通过带有或不带有 DNS 的 IP 连接时有任何区别