Ich arbeite parity
mit dem --jsonrpc
Flag, das standardmäßig auf dem Port lauscht 8545
.
Ich versuche, eine geth
Instanz anzuhängen, wie in den Dokumenten beschrieben :
Hängen Sie eine Konsole an eine laufende Geth-Instanz an. Standardmäßig geschieht dies über IPC auf dem Standard-IPC-Endpunkt, aber bei Bedarf kann ein benutzerdefinierter Endpunkt angegeben werden:
geth attach # connect over IPC on default endpoint geth attach ipc:/some/path # connect over IPC on custom endpoint geth attach http://host:8545 # connect over HTTP geth attach ws://host:8546 # connect over websocket
Aber ich bekomme einen fatalen Fehler:
Fatal: Unable to attach to geth node - Invalid endpoint
Dies sind meine getesteten Befehle:
~ $ geth attach http://127.0.0.1:8545
Fatal: Unable to attach to geth node - Invalid endpoint
~ $ geth attach http://localhost:8545
Fatal: Unable to attach to geth node - Invalid endpoint
~ $ geth attach ws://localhost:8545
Fatal: Unable to attach to geth node - Invalid endpoint
Wie hängt man Geth an einen lokalen RPC auf Port 8545 an?
#Über Geth:
Wenn Sie Ihren Parity-Knoten ausführen, verwenden Sie das --geth
Flag, z. B. parity --geth
.
Gehen Sie dann in ein anderes Fenster und führen Sie geth attach
.
Die Ausgabe davon ist:
Welcome to the Geth JavaScript console!
>
Das Tolle an Parity ist, dass Sie sich keine Gedanken über das Aktivieren von JSON-RPC machen müssen, da es standardmäßig aktiviert ist.
#Über Knoten:
Ein anderer Ansatz ist die Verwendung der NodeJS-Web3-Bibliothek, die dieselbe Funktionalität bietet. Vom Paritäts-Schnellstart :
npm install web3
node # Enter REPL
Web3 = require("web3");
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
Jetzt können Sie mit Parity genauso interagieren wie mit der Javascript-Konsole:
web3.eth.getBlockNumber().then(blockNumber => console.log(blockNumber)) // Regular Geth command, except connected to Parity
743397
Die kürzlich veröffentlichte Version 1.1 von Parity unterstützt die modules/rpc_modules
RPC-Methode und ermöglicht geth attach <rpcaddress>
dies (geth 1.3.6 und 1.4.0 werden unterstützt).
Veröffentlichungsdetails: https://blog.ethcore.io/announcing-parity-1-1/
$ geth attach rpc://localhost
$ geth attach http://localhost:8545
geth attach rpc://localhost
1.3.6 oder geth attach http://localhost:8545
1.4.0Ich glaube nicht, dass Sie geth attach
(Version 1.3.6) eine Verbindung zu parity
(Version Parity/v1.0.2-beta/x86_64-linux-gnu/rustc1.7.0) herstellen können.
geth attach
Ich habe die Verwendung von "to connect to " getestet parity --rpc
und folgende Meldung erhalten
Fatal: Unable to initialize console - Unable to parse module response - <nil>
Also habe ich eine Ablaufverfolgung mit tcpdump
und die Ergebnisse folgen.
Angefangen habe ich parity
mit folgenden Optionen:
parity --datadir datadir --rpc --rpcapi "web3,eth,net,personal" --rpccorsdomain "*"
Ich begann tcpdump
mit dem folgenden Befehl (dh Dump-Daten im ASCII-Format auf der Schnittstelle lo
(127.0.0.1) und Port 8545):
sudo tcpdump -A -i lo port 8545
Ich begann geth
mit dem folgenden Befehl:
geth attach rpc:http://127.0.0.1:8545
Und hier sind die Ergebnisse von tcpdump
(aufgeräumt):
IP localhost.38186 > localhost.8545
POST / HTTP/1.1
Host: 127.0.0.1:8545
User-Agent: Go-http-client/1.1
Content-Length: 57
Content-Type: application/json
Accept-Encoding: gzip
{"id":1,"jsonrpc":"2.0","method":"modules","params":null}
localhost.8545 > localhost.38186
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Date: Tue, 26 Apr 2016 09:51:20 GMT
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=utf-8
Access-Control-Allow-Headers: origin, content-type, accept
Allow: OPTIONS, POST
{"jsonrpc":"2.0","error":{"code":-32601,"message":"Method not found","data":null},"id":1}
geth
fragt parity
nach den Unterstützungsmodulen, versteht aber den Befehl parity
„ modulesgeth
“ nicht, gibt also auf.
Ich habe versucht, ein paar verschiedene Optionen zu verwenden, aber die Ergebnisse sind ähnlich.
Ich habe den Quellcode nachverfolgt geth
und festgestellt, dass cmd/geth/js.go
es eine welcome()
Methode gibt, die von der verbundenen RPC-Instanz anfordert, welche Module unterstützt werden. Dies ist, was Sie normalerweise sehen würden, wenn Sie eine Verbindung herstellen geth attach
zu geth --rpc
:
modules: db:1.0 eth:1.0 net:1.0 web3:1.0
Aber parity
scheint diese JSON-RPC-Methode nicht zu unterstützen.
q9f
--geth
hat geklappt.Karan
Karan