Go-Ethereum
帳戶已鎖定。如何使用 json-rpc 解鎖它?
當嘗試使用 geth 節點(版本 1.4.10-stable-5f55d95a,在 testnet 上執行)上通過 json-rpc 介面發送事務時,
eth_sendTransaction
我收到以下錯誤消息:-32000
$$ message $$=> 帳戶被鎖定
我嘗試使用以下命令解鎖帳戶:
geth --testnet --exec "personal.unlockAccount(eth.accounts[0], password, 3600)" attach true http://localhost:8545
但我得到另一個錯誤:
致命:無法附加到遠端 geth:無效端點
geth --testnet --unlock 0x3b877e80b... --password password
也會拋出這個錯誤:
致命:無法打開數據庫:資源暫時不可用
根據之前的 URL 解鎖帳戶的另一個選項是使用 Geth 互動式 Javascript 控制台。但是如何啟動這樣的控制台?
我看到有人在程式碼 -32000 消息上遇到同樣的問題:帳戶已鎖定,但任何此類命令
geth --unlock
不在我的 geth 節點上工作。
無論如何都可以通過json-rpc介面直接解鎖帳戶嗎?
為什麼 geth 不允許我解鎖我的乙太坊帳戶?為什麼是“無效端點”?
- 命令
attach
應該是這樣的:$ geth --testnet --exec "personal.unlockAccount(eth.accounts[0], \"password\", 3600)" 附加 http://localhost:8545
確保您已包含
personal
在您--rpcapi "eth,web3,personal"
啟動的第一個 Geth 中。
- 命令 with
unlock
應該用作第一次Geth 啟動的一部分:
- 擁有一個
password.txt
包含與要解鎖的帳戶一樣多的行的文件。每行有password
沒有"
.- 然後添加
--unlock "0x3b877e80b..." --password password.txt
到您的 Geth 命令行。
- 除此之外,要使用控制台啟動 Geth,只需
console
在最後添加。因此,當您在 Geth 控制台中時,您可以鍵入:> 個人.unlockAccount(eth.accounts[0]) // 或者 > 個人.unlockAccount(eth.accounts[0], "密碼") // 或者 > 個人.unlockAccount(eth.accounts[0], "密碼", 3600)
編輯:
風險自負,因為呼叫中包含明文密碼,通過 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}