Geth JSON-RPC gibt nur 0, null oder Fehler zurück

Ich habe eine auf Ubuntu basierende Docker-Umgebung für die Arbeit mit Geth (vorerst auf Testnet) und Geths JSON-RPC eingerichtet, aber jeder Aufruf, den ich an JSON-RPC mache, schlägt entweder mit 0, null oder einem Fehler fehl, weil die Methode dies tun würde nicht existieren. Einige Anrufe (Konten, Gaspreis) funktionieren im "normalen" Netz.

Ich habe Geth im Rinkeby Testnet mit der folgenden Zeile eingerichtet:geth --rinkeby --rpc --rpcaddr "127.0.0.1" --rpcport "8000"

Hier sind einige Beispiele dafür, was ich zurückbekomme; habe es sowohl mit localhost als auch mit 127.0.0.1 versucht. Alles in curl, in die eigene CLI des Containers eingefügt.

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' http://localhost:8000
{"jsonrpc":"2.0","id":1,"result":null}

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCompilers","params":[],"id":1}' http://localhost:8000
{"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"The method eth_getCompilers does not exist/is not available"}}

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":2}' http://localhost:8000
{"jsonrpc":"2.0","id":2,"result":[]}

Für das letzte Beispiel, um zu beweisen, dass es Konten gibt:

 geth account list
 Account #0: {678decf23eb929b88d7a55c272b73aa6e1d0d4bc} keystore:///root/.ethereum/keystore/UTC--2017-10-03T12-56-37.565267100Z--678decf23eb929b88d7a55c272b73aa6e1d0d4bc

Wenn mir jemand helfen könnte und mir sagen könnte, was die Ursache sein könnte, wäre das großartig.

Antworten (2)

Dieses Problem kann auftreten, wenn Sie Ihr Konto nicht entsperrt haben oder der Miner noch nicht gestartet wurde

  1. Konto entsperren:

Öffnen Sie Ihre Geth-Konsole und führen Sie den folgenden Befehl aus

personal.unlockAccount("your account key","your passphrase",time in miliseconds)

für mehr: -API

2. Um den Miner auszuführen

Öffnen Sie Ihre Geth-Konsole und führen Sie den folgenden Befehl aus

miner.start(2)

Versuchen Sie danach, Ihre Transaktionen auszuführen.

Das hat mir sehr geholfen, hat mich dazu gebracht, herauszufinden, dass das Konto nur im „normalen“ Netz und nicht im Rinkeby-Testnetz registriert war, die Registrierung dort hat den Zweck erfüllt. Ich werde eine Antwort darauf schreiben, leider wird meine positive Bewertung aufgrund der geringen Reputation auf dieser SE nicht angezeigt.

Ausgehend von der Antwort von SwapnilKumbhar fand ich heraus, dass das Problem darin bestand, dass das Konto nicht im Rinkeby-Testnet registriert war, sondern nur im regulären Netz. Speziell die Registrierung eines neuen Kontos im Rinkeby Testnet hat den Zweck erfüllt.