Мне нужно преобразовать мой ключ 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, добавив «адрес»: «[адрес]», но безрезультатно.
Предыстория: я создал учетную запись, используя eth, переместил в нее немного эфира (проверено с помощью 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
Немного покопавшись, я нашел комментарий Стефана Туала , в котором говорится, что он предназначен для предотвращения извлечения (незашифрованных) закрытых ключей и никогда не раскрывает их пользователю. Идея состоит в том, что это устранит риск, например, оставить ключи на USB-накопителе.
Лучше всего будет сгенерировать новые ключи в geth и просто перевести средства на новый счет.
Способ сделать это рискованно, но это выполнимо. Это включает в себя отображение вашего закрытого ключа на экране, что, как правило, ДЕЙСТВИТЕЛЬНО плохо.
ethkey listbare
462352b14-0121-0454-5a4f-15f791233f1a
Допустим, это ваш ключевой файл json. Тогда вы бы сделали:
./ethkey inspectbare --show-me-the-secret 462352b14-0121-0454-5a4f-15f791233f1a
И ethkey
должен показать вам закрытый ключ.
ethkey
? Команда недоступна на моем geth console
.Файлы json, которые использует eth, отличаются от файлов хранилища ключей (json), которые использует geth. Чтобы успешно переключаться между клиентами, вы должны повторно импортировать учетные записи с помощью незашифрованного закрытого ключа.
1. Сделайте резервную копию... на всякий случай
Первый шаг — сделать резервную копию ваших файлов eth JSON на случай, если что-то пойдет не так. Они уже должны иметь внешние резервные копии, например, на USB-накопителе, но если это не так, найдите время, чтобы сделать это сейчас.
2. Получите незашифрованный закрытый ключ для своих учетных записей eth.
Пожалуйста, обратитесь к ответам StackExchange, найденным в этой теме.
3. Импортируйте эти новые незашифрованные закрытые ключи в geth.
Воспользуйтесь инструкциями, найденными в этой теме.
4. Подтвердите, что ваши учетные записи успешно перенесены на новую учетную запись geth.
$ geth account list
5. Сделайте резервную копию ваших новых файлов хранилища ключей geth.
Лично я бы сохранил старую резервную копию eth... на всякий случай. Бросьте его в папку «old_eth_backup» и на этом закончите. Файлы хранилища ключей geth находятся в следующих местах. Сделайте резервную копию этих файлов.
Mac: ~/Library/Ethereum/keystore
Linux: ~/.ethereum/keystore
Windows: %APPDATA%/Ethereum/keystore
6. Удалите незашифрованные закрытые ключи из того места, где вы их сохранили.
Теперь, когда мы успешно создали резервную копию файлов хранилища ключей geth, которые зашифрованы, пришло время избавиться от незашифрованных закрытых ключей. Ура!
Лефтерис
q9f
Павел