Преобразовать ключ 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, добавив «адрес»: «[адрес]», но безрезультатно.

Предыстория: я создал учетную запись, используя eth, переместил в нее немного эфира (проверено с помощью etherchain.org), но моя установка eth всегда прерывалась, не подключалась к пирам и т. д., поэтому я хочу переместить учетную запись в geth. Аккаунт был сгенерирован из eth 0.9.41. Я еще не пытался переустанавливать eth на случай, если что-то нужно сохранить, чтобы продолжить. Безопасность прежде всего...

Ответы (3)

Это возможно, но не рекомендуется и, следовательно, не документировано.

  1. Получите UUID учетной записи:

     ~ $ ethkey listbare
    8766c082-432f-5548-608c-6eec600757f9
    
  2. Показать закрытый ключ:

     ~ $ 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
    
  3. Импортируйте простой ключ в 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}
    
  4. Не забудьте снова удалить простой ключ с диска:

     ~ $ rm -f delete-me.prv 
    

Немного покопавшись, я нашел комментарий Стефана Туала , в котором говорится, что он предназначен для предотвращения извлечения (незашифрованных) закрытых ключей и никогда не раскрывает их пользователю. Идея состоит в том, что это устранит риск, например, оставить ключи на USB-накопителе.

Лучше всего будет сгенерировать новые ключи в geth и просто перевести средства на новый счет.

Нет абсолютно никакой необходимости создавать новые ключи. Вы по-прежнему можете импортировать секретный ключ в geth через ethkey.
я не мог понять, как. вы не против опубликовать ответ?
Большое спасибо. Спас меня 5 eth от плохой установки eth с проблемной базой данных.

Способ сделать это рискованно, но это выполнимо. Это включает в себя отображение вашего закрытого ключа на экране, что, как правило, ДЕЙСТВИТЕЛЬНО плохо.

ethkey listbare 
462352b14-0121-0454-5a4f-15f791233f1a

Допустим, это ваш ключевой файл json. Тогда вы бы сделали:

./ethkey inspectbare --show-me-the-secret 462352b14-0121-0454-5a4f-15f791233f1a

И ethkeyдолжен показать вам закрытый ключ.

Это причина, почему он недокументирован?
Я так полагаю. Клиент c++ имеет минимальную поддержку на данный момент по сравнению с geth.
Lefteris — спасибо за всю текущую тяжелую работу над Raiden Network! :) Я заметил, что на веб-сайте Raiden транзакции будут конфиденциальными, значит ли это, что они также будут в какой-то степени анонимными/приватными?
Привет! Давайте, пожалуйста, комментарии, относящиеся к теме. Для рейдена спросите меня в twitter/gitter/github. Краткий ответ - нет :)
Как я могу бежать 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, которые зашифрованы, пришло время избавиться от незашифрованных закрытых ключей. Ура!