Ich verwende Web3, um eine Verbindung zu meinem Remote-Server herzustellen.
10.xxx.xxx.xxx
ist die IP-Adresse eines Remote-Servers.
Zuerst starte ich den Server mit diesem Befehl:parity --chain frontier.json --rpcapi="eth,net,web3,personal,web3" --rpc --rpcaddr 10.xxx.xxx.xxx --rpcport 8545 --rpccorsdomain "*" --author 0x...
Und nachdem ich ein Python-Skript ausgeführt habe:
from web3 import Web3, KeepAliveRPCProvider web3 = Web3(KeepAliveRPCProvider(host="163.xxx.xxx.xxx", port="8545")) web3.eth.coinbase
Aber ich habe diesen Fehler:ValueError: No JSON object could be decoded
Wenn ich den Host durch ersetze, 10.xxx.xxx.xxx
habe ich einen socket.timeout: timed out
Fehler
Außerdem, wenn ich python und web3 auf dem Remote-Server installiere und diesen Befehl ausführe:
from web3 import Web3, KeepAliveRPCProvider web3 = Web3(KeepAliveRPCProvider(host="10.xxx.xxx.xxx", port="8545")) web3.eth.syncing
Ich habe keinen Fehler
Aber wenn ich diesen Befehl auf einem anderen Server ausführe, habe ich den gleichen Fehler:socket.timeout: timed out
Wie kann ich diesen Fehler beheben?
Überprüfen Sie zunächst, ob die IP-Adressen in Ihren Skripts korrekt sind.
Verwenden Sie dann den Telnet-Befehl, um sicherzustellen, dass Sie vom Client-Computer aus eine Verbindung zum RPC-Port herstellen können:
telnet 163.xxx.xxx.xxx 8545
Sie sollten eine unformatierte HTTP-Ausgabe sehen, die Ihnen einen Hinweis darauf geben sollte, was falsch sein könnte.
Wenn dies keine Verbindung herstellt, reparieren Sie das Netzwerk/die Firewall/etc. Probleme, die Sie zwischen den Computern haben.
wxcvbn
telnet 163.172.151.230 8545
, kann ich sehen, dass ich verbunden bin.Mikko Ohtamaa
ValueError: No JSON object could be decoded
zeigt normalerweise an, dass der Server, der im Ziel ausgeführt wird, HTML-Nutzdaten zurückgibt. Bist du sicher, dass du mit dem richtigen Geth verbunden bist? Sie können auch versuchen, einen Blick in den rohen Netzwerkverkehr und die HTTP-Antwort zu werfen, was Geth zurückgibt.wxcvbn
10.xxx.xxx.xxx
der Hexe ausführen, die die private IP-Adresse ist. Mit der162.172.151.230
Hexe ist die öffentliche IP dieser Befehl gibt mir einen Fehler.Mikko Ohtamaa
Mikko Ohtamaa
curl
. github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientversionwxcvbn
I've this response :
Der bereitgestellte Host-Header ist nicht auf der Whitelist.`. Was bedeutet es?wxcvbn