Go-Ethereum
將 eth 密鑰轉換為 geth 密鑰
我需要將我的 eth 密鑰轉換為 geth 密鑰。
eth 把鑰匙放進去
%appdata%\roaming\Web3\keys
,我把它看作一個.json
文件。如果我將它移到%appdata%\roaming\Ethereum\keystore
目錄中,geth 仍然無法辨識它。如果我嘗試這樣做geth account import keyname.json
,則會失敗:Fatal: Could not create the account: encoding/hex: invalid byte: U+007B '{'"
我還嘗試通過添加“地址”來更改 .json 文件,使其看起來更像 geth 鍵:
$$ address $$“無濟於事。 背景故事:我使用 eth 創建了一個帳戶,將一些 ether 移入其中(使用 etherchain.org 驗證),但我的 eth 安裝總是被破壞,無法連接到對等點等,所以我想將帳戶移動到 geth。該帳戶是從 eth 0.9.41 生成的。我還沒有嘗試重新安裝 eth,以防有一些東西需要保留才能繼續。安全第一…
這是可能的,但不推薦,因此沒有記錄的功能。
- 獲取賬戶的 UUID:
~ $ ethkey listbare 8766c082-432f-5548-608c-6eec600757f9
- 顯示私鑰:
~ $ ethkey inspectbare --show-me-the-secret 8766c082-432f-5548-608c-6eec600757f9 Enter passphrase for key 8766c082-432f-5548-608c-6eec600757f9: Key 8766c082-432f-5548-608c-6eec600757f9: ICAP: XE871TJEHQTCYKGJ2ETMECEX4AVZLMG4MZ Raw hex: 006ed403807ae87b9f958f25c33862927ba1b57b Secret: 7b275146cbb8da08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe10da42934fa2f01
- 將明文密鑰導入geth:
~ $ echo 7b275146cbb8da08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe10da42934fa2f01 > delete-me.prv ~ $ geth account import delete-me.prv Your new account is locked with a password. Please give a password. Do not forget this password. Passphrase: Repeat passphrase: Address: {006ed403807ae87b9f958f25c33862927ba1b57b}
- 不要忘記再次從磁碟中刪除普通密鑰:
~ $ rm -f delete-me.prv
經過一番探勘,我發現了Stephan Tual的評論,指出它旨在防止您提取(未加密的)私鑰,並且永遠不會將它們暴露給使用者。這個想法是,這將消除例如將密鑰留在 U 盤上的風險。
最好的辦法是在 geth 中生成新密鑰,然後簡單地將資金轉移到新賬戶。