為什麼 geth 節點已經在執行時,mist 會阻止導入帳戶?
我遇到了這個問題。該執行緒中描述了原因,但未解釋。
如果我執行
mist
並讓它啟動自己的節點,則Accounts>Import
菜單項可用。如果我
geth
自己執行然後執行,mist --rpc /home/me/.ethereum/geth.ipc
則菜單項是灰色的。錯誤報告執行緒中的語氣似乎表明這是正常的預期行為。這種行為的原因是什麼?
安全原因。當您刪除文件而不是 privKey 時,將通過 rpc 進行文件傳輸。雖然風險很低,但還是有風險的。此外,geth 的導入功能(例如 geth account import ./key.prv)適用於私鑰,但不適用於 json。迷霧希望您拖放 json 文件。
編輯:更準確:
“純”geth 沒有 json 錢封包件的導入功能。它只能導入私鑰(參見https://github.com/ethereum/go-ethereum/wiki/Managing-your-accounts#import-private-key)。
Mist“導入賬戶”功能接受 json 格式的錢封包件。但是它們不能通過遠端過程呼叫(RPC)傳遞給geth,因為geth沒有過程來處理它們(它只能導入私鑰,不能導入json錢封包件)。
您正在執行 rpc (mist –rpc),因此它無法工作並且顯示為灰色。
如果您在沒有與另一個 geth 實例的 RPC 連接的情況下啟動 Mist - 因此只需在沒有任何命令行內容的情況下啟動 Mist - ,則 Mist 和節點在一個上下文中執行。這意味著,Mist GUI 可以將 json 文件傳遞到節點的密鑰文件夾中(例如 ~/.ethereum/keystore)。但是 RPC 不允許這樣做(例如出於安全原因),因為使用 RPC,Mist 和 geth 不會在一個上下文中執行。
而且顯然沒有“導入私鑰”的 Mist 菜單條目。許多(以最終使用者為中心的)乙太坊瀏覽器沒有“導入私鑰”功能,因為這會帶來安全風險。