Go-Ethereum

將託管在雲上的 dApp 與本地執行的 Geth 連接起來

  • November 27, 2021

我的 dApp 在 AWS 上執行,Geth 在本地執行。我應該如何將我的託管 dApp 與 Geth 連接起來?

我正在使用電腦的(Windows 作業系統)IP 地址連接我的 web3(使用 web3.py)。

web3 = Web3(Web3.HTTPProvider("http://xx.xx.xx.xx:8545"))

埠 8545 也已通過防火牆埠打開。

使用執行我的 Geth 節點

geth --datadir ./Doc-Nodes --networkid 4780 --rpc --rpcapi "db,personal,eth,net,web3,debug,admin" --rpccorsdomain="*" --rpcaddr="0.0.0.0" --rpcport 8545 --allow-insecure-unlock console  

但是在向 dApp 發送請求時,我總是遇到錯誤。

requests.exceptions.ConnectTimeout: HTTPConnectionPool(host=‘xx.xx.xx.xx’, port=8545): 最大重試次數超過 url: / (由 ConnectTimeoutError(urllib3.connection.HTTPConnection object at) 引起

我應該如何連接兩者?我對應該在 web3 連接中提供什麼 IP 以及 rpc 地址感到困惑。

謝謝。

--rpcvhosts *你也需要通過

您可以嘗試在具有您財產的公共 IP 的主機上使用反向 ssh 連接,或者使用 ngrok 進行反向 ssh。

主機=公共IP

$ssh -R 8545:localhost:<port> user@<host>

$ngrok tcp 8545

web3 = Web3(Web3.HTTPProvider("http://<host>:<port>")) //or ngrok link connection with port

引用自:https://ethereum.stackexchange.com/questions/77228