Ich habe einen laufenden Geth-Knoten und mit dem geth account new
Befehl habe ich ein neues Konto erstellt:
$ geth account list
Konto #0: {47978a69f410d0f...} ...
Wenn Sie jedoch den json-RPC-Aufruf verwenden, um meine Ether-Konten aufzulisten, wird ein Nullergebnis erhalten:
$ curl -X POST --data
'{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","id":1,"Ergebnis":[]}
Warum ist das so? Irgendein Hinweis? Danke im Voraus!
Geth habe ich mit folgendem Befehl gestartet:
$geth --rpc --rpcapi "db,eth,net,web3" --rpcport "8545" --testnet
--etherbase "0x47978a6...."
Ist es möglich, dass Geth, das an Testnet arbeitet, bei JSON-RPC-Aufrufen verwirrt wird? Muss ich in diesen Aufrufen irgendwie angeben, dass Testnet und nicht Mainnet verwendet werden soll?
Sie müssen das params
Feld in Ihrem Aufruf nicht verwenden. Dadurch führen Sie diesen Befehl aus: eth.accounts[]
der einen Nullwert zurückgibt. Wenn Sie eine Liste aller Konten erhalten möchten, sollten Sie ausführen eth.accounts
. Ihr RPC-Befehl sollte also lauten:
curl -X POST -d '{"method":"eth_accounts","id":1}' 127.0.0.1:8545
PS: Ich gehe davon aus, dass Sie RPC bereits auf Port 8545 aktiviert haben. Über die Konsole können Sie admin.startRPC()
RPC starten.
Aktivieren Sie die web3- RPC-API, wenn Sie geth starten :
geth --rpc --rpcapi "web3" --rpcport "8545"
oder wenn Sie möchten, dass alle APIs ausgeführt werden:
geth --rpc --rpcapi "db,eth,net,web3" --rpcport "8545"
Das Problem hängt definitiv damit zusammen, dass der Knoten im Testnetz läuft und das Konto nur im Hauptnetz gültig ist.
Ich habe ein neues Konto im Testnet erstellt und die json-rpc-Abfrage hat perfekt funktioniert:
$geth --testnet Kontoliste
$geth --testnet Konto neue Adresse: {3b877e80b5c0...}
$geth --testnet account list Konto #0: {3b877e80b5c0...
$ curl -X POST -d '{"method":"eth_accounts","id":0}' 127.0.0.1:8545 {"jsonrpc":"2.0","id":0,"result":[" 0x3b877e80...
Danke für Ihre Hilfe!
Niksmac
id:0
oder entfernenid
Sie param.Juan Ignacio Pérez Sakristán
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":0}' http://127.0.0.1:8545 {"jsonrpc":"2.0","id":0,"result":[]}
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[]}' http://127.0.0.1:8545 {"jsonrpc":"2.0","error":{"code":-32700,"message":"missing request id"}}´
Juan Ignacio Pérez Sakristán
Niksmac
eth.accounts[]
ist der Index der Wallets, die Sie abfragen, in Ihrem Fall0
die Coinbase.