Как настроить и использовать кошелек Grin для пользователей Windows и Linux
Если вы обычный пользователь Windows, но хотите использовать Grin Wallet, то вы попали точно по адресу.
Устанавливаем на Windows виртуальную машину (ВМ), я использую VMware (дистрибутив for Windows 64-bit Operating Systems), но можно использовать любую другую ВМ. Скачиваем дистрибутив Ubuntu (Ubuntu Server 18.04.2 LTS). При установке ВМ вам предложат установить VMware Tools, соглашаемся на это действие.
Настройка ВМ
Нажимаем create a New Virtual Machine -> выбираем дистрибутив Ubuntu
Выбираем размер виртуального диска (я поставил 50 Gb) и выбираем пункт Store virtual disk as a singl file
Нажимаем Customize Hardware (чтоб шустрее работало я поставил Memory 4 Gb и 2 ядра CPU)
Запускаем ВМ Ubuntu и устанавливаем всё по умолчанию
Заходим в систему, в терминале (командной строке) вводим логин пароль. Скачиваем и устанавливаем графический интерфейс, для этого в терминале пишем:
sudo apt install -y xfce4 xfce4-goodies
После скачивания пакета запускаем сам графический интерфейс командой (эту команду нужно будет вводить каждый раз при новом входе в систему)
startx
Открываем терминал, для установки браузера Firefox вводим:
sudo apt install -y firefox git
Создаем ярлык на рабочем столе, для этого кликаем правой кнопкой мышки по столу, выбираем Create Launcher… в поле Name вводим fire -> кликаем по Firefox -> Create
Запускаем Firefox, в появившемся предупреждении нажимаем Mark Executable
Откройте в ВМ в браузере firefox эту статью (ту что вы сейчас читаете если кто не понял) чтобы можно было из неё копировать и вставлять команды в терминал, кстати в самом терминале копировать это Ctrl + Insert, вставить - Shift + Insert.
Установка полной ноды Grin и кошелька
Открываем терминал и пишем
curl https://sh.rustup.rs -sSf | sh; source $HOME/.cargo/env
После установки rust пишем (это команда для проверки обновлений rust, рекомендую время от времени прописывать её)
rustup update
Далее
sudo apt install build-essential cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm
Скачиваем и устанавливаем кошелек (если где-то будет спрашивать что установить, то пишем 1 и жмем Enter)
git clone https://github.com/mimblewimble/grin.git
cd grin
cargo build --release
Запускаем ноду
target/release/grin
Видим такое окно
Начнется синхронизации ноды (скачивание блокчейна Grin), создается скрытая папка .grin, в которой будет храниться папка с блокчейном, настройки, логи, файл wallet.seed (создается при инициализации кошелька). Дождитесь окончания синхронизации.
После синхронизации в папке /home/имяюзера/grin/target/release/ найдите файл grin и скопируйте в корневую папку grin (/home/имя_юзера/grin/) - это нужно для того чтобы можно было запускать ноду просто командой grin и чтоб для работы с кошельком не нужно было каждый раз прописывать полный путь до файла grin.
Инициализируем (создаем) кошелек Grin Wallet (нужно будет указать новый пароль для операций с кошельком)
Чтоб запустить инициализацию нужно находиться в папке grin
cd grin
grin wallet init
После этого создастся ваша seed фраза из 24 слов, запишите её (она вам понадобится для восстановления вашего кошелька), также создастся файл wallet.seed (/home/имя_юзера/.grin/wallet_data/wallet.seed), его нужно скопировать куда-нибудь в надежное место, например на флешку, для восстановления кошелька.
Также для того чтоб работало внешнее прослушивание сети необходимо в файле grin-wallet.toml (/home/имяюзера/.grin/main/grin-wallet.toml), находящийся в скрытой папке .grin (чтоб её увидеть нужно в проводнике включить показ скрытых файлов) в строке api_listen_interface изменить значение на "0.0.0.0"
После настройки кошелька Grin нужно выключить Виртуальную машину (Power off) и запустить снова, тогда localhost измениться с имяюзера@localhost:~ на имяюзера@статическоеимя_хоста:~ и при развертывании ВМ на весь экран оболочка Linux также будет на весь экран.
Собственно всё, кошелек настроен и готов к работе.
Получение и отправка монет Grin
Существует 3 способа как отправлять/получать транзакции в Grin
Способ 1. http-запрос
!!!Важно!!! Не закрывать окна пока транзакция не будет получена!
Получение Гринов на временный https-адрес
В виртуальной машине Ubuntu нужно открыть 3 окна с командной строкой:
1.в первом окне запустить синхронизацию ноды с сетью Grin
grin
2.во втором окне запустить прослушивание сети
grin wallet listen
3.в третьем окне использовать ngrok (https://ngrok.com/), чтобы сделать локально прослушиваемый кошель доступным извне. То есть временно на 7 часов 59 минут будет доступен https адрес (выглядит так https://7022586d.ngrok.io), на который вы можете принимать Grin.
Сначала нужно установить ngrok
sudo snap install ngrok
Запустить ngrok и не закрывать окно пока вы не получите Грины, т.к. при закрытии этот https-адрес будет недоступен!!!
ngrok http 3415
4.в четвертом окне можно просматривать баланс и транзакции
grin wallet info
grin wallet txs
Отправка Гринов на https-адрес
Окно с ngrok можно закрыть
Создать и отправить транзакцию такого типа
grin wallet send -d "https://poloniex.com/public?currency=GRIN&command=createDeposit&id=fca90dd7-f5bb-4d53-922b-905c3993fc04" 10
Или без кавычек (но у меня сработало только с кавычками):
grin wallet send -d https://petya.ngrok.io 10
Где вместо 10 указать нужное количество Grin которое хочешь отправить,
нужно учитывать что на балансе должно быть достаточно грина для комиссии (у меня сняло 0.007 GRIN комсы при отправке 0.1 GRIN)
Способ 2. Файлом
1.Петя создает файл транзакции с желаемым количеством Гринов для отправки, где grin.tx - это название файла (можно вбить любое, например vasya_eto_tebe.tx), 10 - это количество Гринов
grin wallet send -m file -d grin.tx 10
Файл с названием grin.tx создастся в корневой папке /home/имя_юзера/. Этот файл пересылаешь кому хочешь и как хочешь (по e-mail, на флешке, голубиной почтой, почтой России и т.д.)
2.Вася копирует файл в корневую папку /home/имя_юзера/ и вводит команду
grin wallet receive -i grin.tx
В папке /home/имя_юзера/ создастся файл grin.tx.response, который нужно отправить Пете
3.Петя, копирует файл grin.tx.response в папку /home/имя_юзера/ и вводит команду для финализации транзакции
grin wallet finalize -i grin.tx.response
После этого Вася увидит Грины у себя на кошельке
Способ 3. keybase-чат (этот способ я не пробовал)
Предварительно необходимо скачать, установить и запустить keybase (https://keybase.io/).
Для данного метода не нужен внешний адрес, так как в нём используется keybase.
1.Петя запускает кошелек в режиме прослушивания
grin wallet listen -m keybase
2.Вася отправляет транзакцию, используя Keybase аккаунт Пети
grin wallet send -m keybase -d petya 10
p.s.:
Надеюсь это руководство вам поможет и вы не прочувствуете на себе всю мощь и боль заклинания Мимбл-Вимбл как прочувствовал его я)))
Использованные ресурсы
https://bytwork.com/articles/nastroyka-koshelka-grin#sect1
Установка и запуск полной ноды и официального кошелька Grin:
https://github.com/mimblewimble/grin/blob/master/doc/build.md
https://github.com/mimblewimble/docs/wiki/How-to-run-a-Grin-node
Настройка кошелька и grin wallet listen:
https://github.com/mimblewimble/docs/wiki/Wallet-User-Guide
https://github.com/mimblewimble/docs/wiki/How-to-use-the-Grin-wallet