Beim Versuch, eine Transaktion über die json-rpc-Schnittstelle auf einem Geth-Knoten (Version 1.4.10-stable-5f55d95a, läuft auf Testnet) zu senden, eth_sendTransaction
erhielt ich diese Fehlermeldung:
-32000 [Nachricht] => Konto ist gesperrt
Ich habe versucht, das Konto mit dem folgenden Befehl zu entsperren:
geth --testnet --exec "personal.unlockAccount(eth.accounts[0], password, 3600)" attach true http://localhost:8545
Aber ich bekomme einen anderen Fehler:
Schwerwiegend: An Remote-Geth kann keine Verbindung hergestellt werden: ungültiger Endpunkt
Versuchen Sie, das Konto wie unter Entsperren des Kontos mit Geth beschrieben zu entsperren?
geth --testnet --unlock 0x3b877e80b... --password password
wirft auch diesen Fehler:
Schwerwiegend: Datenbank konnte nicht geöffnet werden: Ressource vorübergehend nicht verfügbar
Eine weitere Option zum Entsperren des Kontos gemäß der vorherigen URL ist die Verwendung der interaktiven Javascript-Konsole von Geth. Aber wie starte ich eine solche Konsole?
Ich habe gesehen, dass jemand das gleiche Problem mit der Code-32000-Nachricht hat: Konto ist gesperrt , aber jeder Befehl dieser Art
geth --unlock
funktioniert nicht auf meinem geth-Knoten.
Ist es trotzdem möglich, Konten direkt über die json-rpc-Schnittstelle zu entsperren?
Warum erlaubt mir Geth nicht, mein Ethereum-Konto zu entsperren? Warum "ungültiger Endpunkt"?
attach
sollte wie folgt aussehen:$ geth --testnet --exec "personal.unlockAccount(eth.accounts[0], \"password\", 3600)" hängen Sie http://localhost:8545 an
Stellen Sie sicher, dass Sie personal
in Ihrem --rpcapi "eth,web3,personal"
ersten Geth, das Sie gestartet haben, enthalten sind.
Der Befehl with unlock
sollte als Teil des ersten Starts von Geth verwendet werden:
password.txt
Datei, die so viele Zeilen enthält, wie Konten entsperrt werden müssen. Jede Zeile mit password
ohne die "
.--unlock "0x3b877e80b..." --password password.txt
zu Ihrer Geth-Befehlszeile hinzu.Abgesehen davon, um Geth mit einer Konsole zu starten, fügen Sie einfach console
am Ende hinzu. Wenn Sie sich also in der Geth-Konsole befinden, können Sie Folgendes eingeben:
> personal.unlockAccount(eth.accounts[0]) // Oder > personal.unlockAccount(eth.accounts[0], "password") // Oder > personal.unlockAccount(eth.accounts[0], "password", 3600)
Bearbeiten:
Auf eigene Gefahr, da der Aufruf das Passwort unverschlüsselt enthält, lautet der direkte Aufruf zum Entsperren über RPC:
$ curl -X POST --data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["0x7642b...", "password", 3600],"id":67 }' http://localhost:8545 {"jsonrpc":"2.0","id":67,"result":true}
personal
über rpc
einen Knoten für Exploits öffnet, sollten sie nicht stattdessen durch anhängen ipc
, z . B. geth --testnet --exec "personal.unlockAccount(eth.accounts[0], \"password\", 3600)" attach ~/<datadir>/geth.ipc
?
Datenschutz ist ein Menschenrecht.eth
Xavier Leprêtre B9lab