Кошелёк GRIN на Windows. Подробная инструкция

by @eg5or
Кошелёк GRIN на Windows. Подробная инструкция

На данный момент существует только официальный кошелёк GRIN на linux, и до сих пор не выпустили ни одного нормального windows-кошелька с нормальным фронтендом. Но теперь есть замечательное решение для пользователей Windows!

Пользователь Github - Rheza Pahlevi @rheza (https://github.com/rheza) портировал официальный linux-кошелёк GRIN под Windows. Теперь можно развернуть ноду GRIN и пользоваться кошельком GRIN прямо из под Windows через командную строку.

На первый взгляд все это кажется сложным, но стоит лишь один раз разобраться и для вас это станет также просто, как зайти в любое привычное приложение.

Оглавление:

  1. С чего начать
  2. Настройка кошелька
  3. Использование кошелька
  4. Отправка GRIN
  5. Получение GRIN
  6. Журнал транзакций
  7. Отмена транзакций
  8. Проверка кошелька
  9. Восстановление / Восстановление кошелька из фразы восстановления
  10. Другие важные команды
  11. Выводы

С чего начать

Сначала необходимо перейти на страницу в github и скачать архив с приложением.

https://github.com/rheza/grin/releases

Качаем, распаковываем на основной системный диск (C:) в папку вашего основного пользователя (C:\Users\имя_пользователя\) в папку под названием grin, чтобы по итогу файл grin.exe был расположен следующим образом:

C:\Users\имя_пользователя\grin\grin.exe

Запускаем файл grin.exe

Данная программа начинает закачку блокчейна GRIN на ваш компьютер и после полной загрузки блокчейна в запущенном состоянии она является действующей нодой GRIN. При пользовании кошельком нода должна быть запущена.

В папке вашего профиля создается папка .grin (чтобы увидеть данную папку, у вас должна быть включена функция "показать скрытые файлы и папки").

В итоге в вашей папке пользователя будут две папки .grin и grin

Разберем содержимое папки \.grin\main

P.S. "папка кошелька" и "лог кошелька" появляются только после инициализации кошелька. Об этом читайте дальше.

Настройка кошелька

Опять же повторюсь, для использования кошелька на вашем компьютере должна быть запущена нода GRIN. Об этом писалось выше.

Теперь зайдём в кошелёк.

Открываем командную строку Windows. Для этого жмем на клавиатуре Win+R. Открывается окошко "Выполнить".

Вводим cmd и жмём ОК

Открылась командная строка.

В коммандной строке вводим:

cd grin

Таким образом мы входим в папку и соответственно в программу кошелька и теперь видим путь C:\Users\имя_пользователя\grin>

Далее нужно инициализировать кошелёк, для этого вводим команду:

grin wallet init

Вас попросят придумать пароль к кошельку:

Please enter a password for your new wallet
Password:

Вводите пароль и нажимайте Enter (во время ввода никаких символов на экране появляться не будет - так и должно быть)

Далее вас попросят подвердить пароль:

Confirm Password:

Просто вводите его еще раз и жмете Enter

Вам выдает подобное сообщение:

20190213 23:06:04.747 WARN grin_wallet::types - Generating wallet seed file at: C:\Users\eg5or\.grin\main\wallet_data\wallet.seed
Your recovery phrase is:

move auto surge hotel leopard suit govern situate penalty crack tunnel identify wild ski crouch skin fluid boy knife sock mom service pottery base

Please back-up these words in a non-digital format.
Command 'init' completed successfully

в котором сообщается, что файл сид-фразы создан и сохранен в папке кошелька. Его будет необходимо скопировать (не переместить, а скопировать!) куда-нибудь в надежное место на случай, если понадобится восстановить кошелёк. А для работы с кошельком данный файл должен находится в той папке, где и появился.

P.S. для создания нового кошелька взамен старого, просто удалите папку \wallet_data из папки \.grin\main\ и проделайте инициализацию кошелька заново. Чтобы сохранить текущий кошелёк и создать еще один дополнительно - добавьте новый аккаунт (про данную возможность читайте дальше).

Также в этом сообщении написана ваша сид-фраза (рандомно сгенерированные слова на английском языке). Её необходимо скопировать или записать, естесственно, в надёжное место. Она понадобится для восстановления кошелька.

Сид-фраза выделена красной линией на скриншоте ниже.

По итогу у вас должно быть все примерно так, как на скрине выше. Теперь вы снова видите перед собой строку

C:\Users\eg5or\grin>

Теперь можно пользоваться кошельком используя специальные команды.

Вообще, далее все команды для пользования кошельком будут следующего формата:

grin wallet [флаги] [опции] [субкомманды]

где вместо [флаги] [опции] [субкомманды] подставляются соответсвующие значения.

Список всех команд можно посмотреть введя следующее:

grin wallet help

Вам выдаст полную инструкцию на английском:

Переведём на русский комманды:

  • account - показать аккаунты кошелька или создать новый аккаунт
  • cancel - отменяет ранее созданную транзакцию, освобождая ранее заблокированные средства для использования заново
  • check - проверяет выходные данные кошелька на работающем узле, восстанавливая и восстанавливая недостающие выходные данные, если это необходимо
  • finalize - обрабатывает файл транзакции получателя для завершения передачи.
  • info - краткое содержание основного кошелька
  • init - инициализировать новый кошелёк и базу данных кошелька
  • listen - запускает кошелек в режиме прослушивания в ожидании транзакций
  • outputs - необработанная информация о кошельке (список выходов)
  • owner_api - запускает локальный веб-API кошелька.
  • receive - обрабатывает файл транзакции для принятия перевода от отправителя
  • recover - восстановить файл wallet.seed из фразы восстановления (по умолчанию) или отобразить фразу восстановления для существующего исходного файла
  • repost - отправляет сохраненную, завершенную, но неподтвержденную транзакцию в блокчейн или выгружает ее в файл
  • restore - восстанавливает содержимое кошелька из сид-файла
  • send - создает транзакцию для отправки монет и отправляет непосредственно указанному получателю
  • txs - показать информацию о транзакции

Теперь мы можем применить комманду:

grin wallet info

Далее вводим пароль и смотрим основную информацию о кошельке:

Баланс - ваша общая сумма, включая остаток, ожидающий подтверждения.

Ожидающие подтверждения - это баланс, который кошелек не потратит до определенного количества подтверждений (количество блоков, добавленных в цепочку после блока, в котором была подтверждена транзакция). По умолчанию это 10 блоков.

Заблокированные предыдущей транзакцией - это заблокированные выходные данные предыдущей транзакцией отправки, которые не могут быть включены в дальнейшие транзакции. Они обычно исчезают (становятся израсходованы), когда транзакция подтверждается.

*** Использование кошелька ***

>>> Отправка GRIN

Существует два способа отправить GRIN на другой кошелек:

  1. С помощью файла
  2. Отправка работающему слушателю кошелька
Отправка Grin через файл в настоящее время рекомендуется для начинающих.

Отправка с помощью файла:

Процесс выглядит следующим образом:

1. Создайте файл транзакции:

grin wallet send -m file -d my_grin_transaction.tx 10.25

Это создаст файл транзакции с именем my_grin_transaction.tx в текущем каталоге.

2. Отправьте файл транзакции получателю

Отправьте этот файл любым удобным для вас способом (электронная почта, FTP) получателю. Получатель должен будет обработать свою часть транзакции в своем кошельке и отправить файл обратно вам. См. Получение файла транзакции ниже.

3. Завершите транзакцию

Получатель отправит вам файл ответа о транзакции. После подтверждения получателем того, что он обработал ваш файл отправки, вы можете завершить и опубликовать транзакцию в блокчейн введя следующую команду:

grin wallet finalize -i my_grin_transaction.tx.response

После этого транзакция будет отправлена на прослушивающий узел GRIN, и баланс будет подтвержден как в вашем кошельке, так и в кошельке получателя после того, как будет найдено несколько блоков.

Отправка работающему слушателю кошелька:

Если получатель запускает прослушиватель HTTP, вы можете отправить сумму из своего кошелька получателю и опубликовать транзакцию в блокчейн одной командой:

grin wallet send -d http://10.20.20.1:3415 10.25

В случае успеха суммы будут подтверждены в обоих кошельках после того, как будет найдено несколько блоков.

<<< Получение GRIN

Получение GRIN на свой кошелек также возможно двумя способами: через файл и с помощью прослушивателя.

Через файл:

Отправитель отправит вам файл транзакции (как описано в разделе Создание файла транзакции), который вы должны импортировать в свой кошелек с помощью команды receive:

grin wallet receive -i my_grin_transaction.tx

Это создаст файл ответов my_grin_transaction.tx.response, который вы затем должны отправить отправителю для завершения и отправки в блокчейн.

Через прослушиватель:

Запуск прослушивателя кошелька считается сложной операцией и должен выполняться только теми, кто имеет инфраструктуру для его поддержки и способен решать проблемы с NAT / Firewall, проблемами с DOS и т. д., Всё это выходит далеко за рамки этого руководства.

По умолчанию кошелек будет прослушивать только запросы на локальном компьютере. Чтобы принимать соединения с другими компьютерами, вы можете отредактировать файл ~. / Grin-wallet.toml следующим образом:

Изменить:

api_listen_interface = "127.0.0.1"

на:

api_listen_interface = "0.0.0.0"

Или любой конкретный IP-адрес, к которому вы хотите привязать. Затем вы можете запустить внешний слушатель кошелька с помощью команды:

grin wallet listen

Кроме того, вы можете прописать флаг -e (внешний) для прослушивания 0.0.0.0:

grin wallet -e listen

Вы также можете изменить порт прослушивания в grin-wallet.toml или через командную строку (подробности см. grin wallet help listen). После запуска прослушивателя любой отправитель, желающий отправить вам Grin, может сделать это, как описано выше.

Журнал транзакций

Кошелек Grin ведет журнал всех транзакций. Он отслеживает все завершенные и незавершенные транзакции, а также какие выходы связаны с каждой транзакцией. Этот журнал полезен, чтобы увидеть, откуда пришли ваши Grin, а также для отмены частичных транзакций, которые, возможно, не были завершены.

Чтобы просмотреть журнал транзакций введите команду:

grin wallet txs

Вы увидите подобное:

Transaction Log - Account 'default' - Block Height: 13830
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                          
 Id  Type         Shared Transaction Id                 Creation Time        Confirmed?  Confirmation Time    Num.    Num.     Amount     Amount     Fee    Net         Tx                                                                    
                                                                                                              Inputs  Outputs  Credited   Debited           Difference  Data                                                                  
====================================================================================================================================================================================================================                          
 0   Received Tx  20f978d4-d2a5-4df2-a1a4-806330db5718  2019-01-02 12:50:33  true        2019-01-02 15:56:23  0       1        20000.0    0.0        None   20000.0     None                                                                  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                          
 1   Sent Tx      c2dd4216-7820-4545-bd49-eea8119c39d0  2019-01-02 15:59:20  false       None                 1       1        19998.992  20000.0    0.008  -1.008      c2dd4216-7820-4545-bd49-eea8119c39d0.grintx                           
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                          
 2   Sent Tx      c8a7b02e-78e1-4813-b8a9-7367b630a070  2019-01-02 15:59:27  false       None                 1       1        19997.984  19998.992  0.008  -1.008      c8a7b02e-78e1-4813-b8a9-7367b630a070.grintx                           
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                          
 3   Sent Tx      856c3c85-0cb9-4951-9f33-124f032ac21e  2019-01-02 15:59:31  false       None                 1       1        19996.976  19997.984  0.008  -1.008      856c3c85-0cb9-4951-9f33-124f032ac21e.grintx                           
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

Чтобы увидеть полную информацию о транзакции, а также то, какие выходные данные связаны с ней, используйте флаг -i:

grin wallet txs -i 3

Вы получите:

Transaction Log - Account 'default' - Block Height: 13830
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Id  Type     Shared Transaction Id                 Creation Time        Confirmed?  Confirmation Time  Num.    Num.     Amount     Amount     Fee    Net         Tx  
                                                                                                        Inputs  Outputs  Credited   Debited           Difference  Data 
==============================================================================================================================================================================================================
 3   Sent Tx  856c3c85-0cb9-4951-9f33-124f032ac21e  2019-01-02 15:59:31  false       None               1       1        19996.976  19997.984  0.008  -1.008      856c3c85-0cb9-4951-9f33-124f032ac21e.grintx 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Wallet Outputs - Account 'default' - Block Height: 13830
----------------------------------------------------------------------------------------------------------------------------------------------------
 Output Commitment                                                   Block Height  Locked Until  Status  Coinbase?  # Confirms  Value            Tx 
====================================================================================================================================================
 08ad4948a215e22e37f7909c7e36460afa5e38d6696361b0a27b983b38e78540c5  6742          0             Spent   false      7089        19997.984000000  3 
----------------------------------------------------------------------------------------------------------------------------------------------------

Отмена транзакций

Это очень необходимая функция при использовании кошелька GRIN, особенно при использовании методов обмена на основе файлов или полностью асинхронных транзакций.

Если в вашем журнале есть неподтвержденная транзакция, которая, по вашему мнению, не будет завершена, вы можете отменить транзакцию с помощью команды:

grin wallet cancel -i 3

Это установит статус транзакции «Отменено», удалит все неподтвержденные выходные данные изменений и разблокирует все выходные данные, которые были ранее заблокированы транзакцией, делая их доступными для повторного использования. Обратите внимание, что если вы или кто-то еще завершите транзакцию после того, как вы отменили ее, ваши результаты все равно могут оказаться потраченными и недоступными для использования вашим кошельком. В качестве альтернативы, если вы потратите те же выходные данные в новой транзакции, и кто-то попытается завершить отмененную транзакцию, проведенная транзакция не будет выполнена.

Проверка кошелька

Из-за всех вероятностей, перечисленных в команде отмены, а также возможности вилок, вполне реально, что ваш кошелек окажется в несогласованном состоянии. По этой причине Grin предоставляет команду проверки вручную, которая сканирует набор UTXO цепочки для любых выходов, принадлежащих вашему кошельку, и обеспечивает их соответствие с вашей локальной базой данных кошельков.

Важно помнить, что состояние вашего кошелька всегда можно восстановить из цепочки, используя исходный файл вашего кошелька или фразу восстановления. Если что-то кажется вам странным, касательно вашего баланса или выходов, будьте уверены, они в безопасности в наборе UTXO (если они не были потрачены) и всегда могут быть восстановлены с помощью check или restore

Чтобы выполнить проверку вашего кошелька и убедиться, что его содержимое соответствует версии в блокчейне, убедитесь, что у вас нет незавершенных транзакций, убедитесь, что ваш узел обновлен:

grin wallet check

Эта команда сканирует блокчейн и отменяет все ожидающие транзакции, разблокирует все заблокированные выходы, восстанавливает все отсутствующие выходы и гарантирует, что содержимое вашего кошелька соответствует версии блокчейна. Вы можете запускать эту команду так часто, как захотите, чтобы проверить и обновить содержимое вашего кошелька.

Восстановление / Восстановление кошелька из фразы восстановления

Сделайте резервную копию вашего существующего кошелька командой:

mv ~/.grin/wallet_data ~/.grin/wallet_data_bak

Затем:

grin wallet init -r
[... follow onscreen instructions...]
grin wallet restore

Для получения дополнительной информации смотрите более подробную инструкцию здесь: https://github.com/mimblewimble/docs/wiki/wallet-user-guide#restore

Другие важные команды

Другие важные команды, а также подробности обо всех командах на этой странице можно найти в подробном руководстве пользователя кошелька. Мы рекомендуем вам прочитать это руководство, чтобы понять все возможности кошелька.

Некоторые команды, о которых вы должны особенно знать:

recover - восстанавливает сид-файл вашего кошелька из исходной фразы или просматривает существующую фразу восстановления

restore - восстанавливает пустой кошелек с нуля из начального файла

Выводы

Такой кошелёк будет трудно использовать рядовому пользователю, но с данной инструкцией простые задачи, такие как получение и отправка GRIN, могут быть уже посилу некоторым энтузиастам. Конечно, скоро выпустят нормальный кошелёк под Windows, но тем, кому нетерпится прикоснуться к блокчейну GRIN, уже сейчас могут начать пользоваться кошельком с помощью данной статьи. Если есть вопросы, вы можете задать их мне в телеграме:

Автор: @eg5or (francesco_montana)

Более подробную инструкцию на русском языке я постараюсь выложить в скором времени. Чтобы не пропустить - подписывайтесь на мой телеграм-канал посвященный анонсам на тематику GRIN:

https://t.me/grinfans_ru

February 13, 2019
by @eg5or
GRIN статьи