Рейтинг@Mail.ru

Компилируем криптовалютный кошелёк SCC

Автор: Alex. Опубликовано в Программирование . просмотров: 9392

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Криптовалют с каждым днём становится всё больше. Некоторые из них уходят в небытие, а некоторые долго остаются на плаву. Часть из них – это форки первой криптовалюты Bitcoin, остальные создаются на платформах типа Ethereum и Waves. Здесь я хотел бы обратить ваше внимание на криптовалюту SCC, которая является форком Bitcoin, и, поскольку наш сайт по технической части, то скомпилировать кошелёк для этой монеты для ОС Windows.

Криптовалютный кошелёк SCC

Итак, почему я выбрал монету SCC. Честно говоря, мне нравится проект StakeCube, частью которого является монета SCC. StakeCube – это пул криптовалют, которые поддерживают PoS-майнинг. Правда здесь выгодно держать и некоторые широко распространённые криптовалюты, такие как Bitcoin, Litecoin, Dash и Dogecoin, т.к. пока ваши монеты лежат в пуле, вы каждый день получаете процент. Есть в этом пуле и другие интересные фишки, например, обменник и краны, но об этом я напишу в какой-нибудь другой раз.

StakeCube - пул для криптовалют

Теперь у вас может возникнуть вопрос, зачем компилировать кошелёк, если его можно скачать. Ну, тут может быть много причин. Например:

  1. Вы хотите помочь проекту, например, сделать свой перевод или исправить какие-либо ошибки, а потом залить это изменение обратно в GitHub;
  2. Вы хотите получить самые последние фишки, не ожидая, когда разработчики доделают финальную версию;
  3. Хотите поменять цвет фона, шрифтов и т.д. и т.п., потому что вам так больше нравится или хочется;
  4. Вы не доверяете тем бинарникам, которые были скомпилированы неизвестно кем и где.

Начнём разбираться, как самостоятельно скомпилировать криптовалютный кошелёк для ОС Windows на примере монеты SCC. Кошельки для всех остальных форков Bitcoin вы сможете скомпилировать аналогичным образом. Итак, приступим.

Кошельки форков Bitcoin – это кроссплатформенные приложения, которые можно компилировать можно двумя способами: на ОС Linux или на ОС Windows. Первый способ очень простой, и он возможен, если у вас у вас на компьютере Linux или Windows 10. Второй способ мне представляется слишком сложным. Если такой способ кого-либо заинтересует, дайте знать.

В этой статье мы рассмотрим способ компиляции криптовалютного кошелька SCC на Windows 10 с помощью ОС Linux. Я использую Windows 10 версии 1909. Рассмотрим, что нужно делать по шагам.

Установка подсистемы Windows для Linux в Windows 10

Да, да. Нам всё равно будет нужен Linux, но мы поставим его прямо внутрь Windows 10 (учтите, что эта возможность появилась, только в Windows 10). Не волнуйтесь, это не сложно.

Сначала нужно убедиться, что включён компонент «Подсистема Windows для Linux». Откройте диалог выбора компонентов Windows (нажмите Win+R и запустите приложение OptionalFeatures.exe).

Запуск OptionalFeatures.exe

Включаем компонент «Подсистема Windows для Linux»

Поставьте галочку напротив пункта «Подсистема Windows для Linux», если она не стоит, и нажмите «OK». Начнётся процесс установки. Если потребуется, перезагрузите компьютер.

Установка компонента «Подсистема Windows для Linux»

Затем установим Linux. Для этого нужно перейти в Microsoft Store, найти нужный дистрибутив и установить его. Искать нужно по ключевому слову Linux.

Поиск нужного дистрибутива Linux в Microsoft Store

Для компиляции кошелька SCC рекомендуется использовать Ubuntu 18.04. Значит, этот дистрибутив и выберем. Для установки, на странице приложения нажмите «Получить».

Установка Ubuntu 18.04 из Microsoft Store

На запрос входа под учётной записью Windows можно не обращать внимание. Для установки бесплатных приложений входить под своей учётной записью не обязательно. Можно нажать здесь «Нет, спасибо».

Запрос на вход под учётной записью в Microsoft Store

После установки пункт меню для запуска Ubuntu 18.04 появится в меню «Пуск». Для удобства можно сразу закрепить его на начальном экране.

Закрепление Ubuntu 18.04 на начальном экране в меню "Пуск"

Теперь запустите Ubuntu 18.04. После первого запуска потребуется дополнительная настройка.

У меня, правда, Linux сначала сопротивлялся. Появлялась ошибка:

WslRegisterDistribution failed with error: 0x80070057
Error: 0x80070057 ???????? ????? ???????.

Ошибка запуска Linux в Windows 10 - WslRegisterDistribution failed with error: 0x80070057

Я пытался перезапускать сервис LxssManager, но это не помогало. И ещё я где-то вычитал, что если выключить быструю загрузку Windows (в настройках электропитания), то такой ошибки не будет.

Но на моё счастье, при очередной попытке установка началась. Здесь нужно задать имя пользователя в системе Linux, которое не обязательно должно совпадать с именем пользователя в Windows. Введите здесь имя пользователя (в нижнем регистре) и нажмите клавишу Enter.

Настройка Ubuntu 18.04 для Windows 10: ввод имени пользователя

Затем введите пароль и нажмите Enter. Когда будете вбивать пароль, на экране ничего не будет происходить. Это нормально.

Настройка Ubuntu 18.04 для Windows 10: ввод пароля

Затем ещё раз повторите пароль.

Настройка Ubuntu 18.04 для Windows 10: повторный ввод пароля

После этого всё будет успешно настроено.

Завершение настройки Ubuntu 18.04 для Windows 10

Установка необходимых пакетов

Для установки необходимых пакетов последовательно выполните в Ubuntu 18.04 следующие 3 команды (для выполнения команд под администратором потребуется ввод пароля, который вы установили при настройке Linux) (на все вопросы отвечайте утвердительно):

sudo apt update
sudo apt upgrade
sudo apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git

Если вы хотите ещё сделать инсталлятор для Windows, то нужна будет библиотека NSIS. Для её установки выполните команду:

sudo apt install nsis

Для компиляции кошелька под ОС Windows также понадобятся инструменты MinGW. Чтобы скомпилировать кошелёк для 64-битной версии Windows установите пакет g++-mingw-w64-x86-64, выполнив команду:

sudo apt install g++-mingw-w64-x86-64

А для компиляции 32-битной версии Windows, понадобятся другие два пакета. Для их установки выполните команду:

sudo apt install g++-mingw-w64-i686 mingw-w64-i686-dev

Если места на диске компьютера не жалко, можете установить все перечисленные выше пакеты.

Скачивание исходников

Так уж повелось, что в основном у каждой криптовалюты в открытую опубликованы исходники на GitHub. Не исключение и монета SCC. Нужные исходники есть здесь. Отсюда мы их и будем скачивать, но об этом чуть ниже.

В системе Linux, которую мы установили, сразу примонтированы логические диски системы Windows. Например, диск C: внутри Linux будет находиться по пути /mnt/c. Мне показалось удобным создать папку где-нибудь в Windows и загрузить в неё исходники, но так не удастся скомпилировать зависимости. Поверьте, я проверял.

Ещё сразу хочется отметить, что все текстовые файлы нужно забирать с сервера GitHub не меняя переносы LF (переносы LF принято использовать в Linux) на CRLF. Если вы будет использовать git для Windows, то, скорее всего, он настроен так, чтобы заменять LF на CRLF. Если файлы будут с переносами CRLF, то при компиляции у вас появится много синтаксических ошибок и в конце ошибка «make: *** No rule to make target 'builders/.mk'. Stop.», см. картинку:

Ошибка «make: *** No rule to make target 'builders/.mk'.  Stop.»

Чтобы отключить замену, нужно выполнить следующую команду (работает и для Windows и для Linux):

git config --global core.autocrlf false

Итак, разместим папку с проектом в домашней папке, которая является текущей после запуска Linux. У меня это папка /home/alex. Чтобы скачать в эту папку исходники выполните следующие команды:

cd ~
git clone https://github.com/stakecube/StakeCubeCoin.git

Вот результат выполнения команд:

Результат клонирования исходников криптовалютного кошелька SCC из GitHub

Ещё на сайте GitHub я увидел, что есть вторая версия кошелька, которая находится в отдельной ветке.

Ветка в GitHub с версией кошелька SCC 2.0

Если есть желание, то вы можете переключиться на эту ветку, чтобы скомпилировать 2-ю версию, но она пока находится в стадии Beta. Чтобы переключится на ветку 2.0, выполните команду:

cd ~/StakeCubeCoin
git checkout -b 2.0 remotes/origin/2.0

Вот результат:

Переключение на ветку с версией 2.0 криптовалютного кошелька SCC

А как же теперь получить доступ к папке StakeCubeCoin, которая только что скачалась, из Windows? Очень просто. Есть два способа. Сначала расскажу про первый способ.

Откройте проводник, вбейте в строке адреса следующую строку и нажмите Enter:

%userprofile%\AppData\Local\Packages

Откроется папка C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ_WINDOWS\AppData\Local\Packages, где ИМЯ_ПОЛЬЗОВАТЕЛЯ – это имя пользователя Windows. Найдите в открывшейся папке вложенную папку, в которую установлен Linux. Для Ubuntu 18.04 у меня на компьютере – это была папка CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc, см. картинку.

Поиск папки в Ubuntu 18.04 в Windows 10

Внутри этой папки найдите папку LocalState и в ней папку rootfs. Это и будет корень файловой системы Linux. В результате путь примерно такой:

C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ_WINDOWS\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs

Корневая папка Ubuntu 18.04 в проводнике Windows 10

Ну а в папке rootfs уже не проблема найти домашнюю папку и в ней папку StakeCubeCoin. У меня в Linux-е - это папка /home/alex/StakeCubeCoin, значит в Windows – это получится папка:

C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ_WINDOWS\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ИМЯ_ПОЛЬЗОВАТЕЛЯ_LINUX\StakeCubeCoin

Папка StakeCubeCoin открытая в проводнике Windows 10

Чтобы быстро добираться до этой папки можно сразу сделать ярлык или добавить ссылку на папку в группу «Быстрый доступ» на панели навигации проводника. Я добавил ссылку на папку rootfs. Для добавления просто перетащите папку в группу «Быстрый доступ».

Перетаскиваем папку rootfs в группу "Быстрый доступ" в проводнике Windows 10

Единственная проблема, которая может у вас возникнуть, если вы будете изменять файлы в Windows, - после изменения вы не сможете получить доступ изменённым к файлам в Linux. От этого спасает команда:

chmod -R 777 StakeCubeCoin

И второй способ добраться до файлов Linux... вбейте в проводнике в строке адреса следующую строку и нажмите Enter:

\\wsl$

Если консолька Ubuntu 18.04 запущена то вы увидите её как сетевой ресурс, см. картинку:

Получаем доступ к файлам Linux как к сетевому ресурсу

Зайдите внутрь ресурса Ubuntu-18.04 и вы увидите все файлы системы Linux.

Доступ к файлам Linux из Windows через \\wsl$

Компиляция кошелька для 64-битной Windows

Для компиляции последовательно выполните следующие команды в консоли Linux:

cd ~/StakeCubeCoin
sudo update-alternatives --config x86_64-w64-mingw32-g++

На запрос выберите опцию с компилятором posix. У меня на картинке – это цифра 1.

Выбор компилятора posix для компиляции криптовалютного кошелька SCC для 64-битной Windows

Затем последовательно выполните следующие команды:

cd ~/StakeCubeCoin
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # Удаляем проблемные переменные импортированные из %PATH%
cd depends
make HOST=x86_64-w64-mingw32
cd ..
./autogen.sh
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/
make

После того как компиляция будет успешно завершена, это будет выглядеть вот так:

Результат компиляции криптовалютного кошелька SCC для 64-битной Windows

Получившийся исполняемый файл stakecube-qt.exe можно будет найти в папке /src/qt внутри папки StakeCubeCoin. В Windows – это будет папка:

C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ_WINDOWS\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ИМЯ_ПОЛЬЗОВАТЕЛЯ_LINUX\StakeCubeCoin\src\qt

Скомпилированный криптовалютный кошелёк stakecube-qt.exe

Теперь проведём эксперимент и запустим программу stakecube-qt.exe. Я положил файл stakecube-qt.exe в папку C:\StakeCubeCore и запустил. После запуска установил ту же папку, где будут расположены данные:

Настройка криптовалютного кошелька SCC после первого запуска

После этого кошелёк стартовал, подключился к сети и начал синхронизировать данные.

Первый старт и начало синхронизации данных криптовалютного кошелька SCC

 

Если кошелёк долго не может подключиться к сети, ему можно помочь. Для этого нужно добавить официальные ноды в конфигурационный файл stakecube.conf, а именно, добавить в этот следующие файл строки:

addnode=46.232.250.19
addnode=85.255.7.108
addnode=185.86.79.36
addnode=207.180.237.27
addnode=51.75.26.14
addnode=92.60.39.57

И после этого перезапустить кошелёк.

 

Компиляция кошелька для 32-битной Windows

Для компиляции последовательно выполните следующие команды в консоли Linux:

cd ~/StakeCubeCoin
sudo update-alternatives --config i686-w64-mingw32-g++

На запрос выберите опцию с компилятором posix. У меня на картинке – это цифра 1.

Выбор компилятора posix для компиляции криптовалютного кошелька SCC для 32-битной Windows

Затем последовательно выполните следующие команды:

PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # Удаляем проблемные переменные импортированные из %PATH%
cd depends
make HOST=i686-w64-mingw32
cd ..
./autogen.sh
CONFIG_SITE=$PWD/depends/i686-w64-mingw32/share/config.site ./configure --prefix=/
make

После завершения компиляции моя консоль выглядела вот так:

Результат компиляции криптовалютного кошелька SCC для 32-битной Windows

Получившийся исполняемый файл stakecube-qt.exe можно найти в папке /src/qt внутри папки StakeCubeCoin. В Windows – это будет папка:

C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ_WINDOWS\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ИМЯ_ПОЛЬЗОВАТЕЛЯ_LINUX\StakeCubeCoin\src\qt

Скомпилированный криптовалютный кошелёк stakecube-qt.exe

Получившийся исполняемый файл я проверил под 32-битной версией Windows 7. Исполняемый файл я скопировал в папку C:\StakeCubeCore. Запустился кошелёк нормально. После запуска появилось окно настроек, такое же, как и в версии для 64-битной Windows. Я выбрал ту же папку, куда был скопирован исполняемый файл.

Первый запуск и настройка криптовалютного кошелька SCC под 32-битной Windows 7

После настройки, кошелёк запустился и начал синхронизировать блоки.

Синхронизация криптовалютного кошелька SCC после запуска

 

Если кошелёк долго не может подключиться к сети, ему можно помочь. Для этого нужно добавить официальные ноды в конфигурационный файл stakecube.conf, а именно, добавить в этот следующие файл строки:

addnode=46.232.250.19
addnode=85.255.7.108
addnode=185.86.79.36
addnode=207.180.237.27
addnode=51.75.26.14
addnode=92.60.39.57

И после этого перезапустить кошелёк.

 

Создание дистрибутива

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

make deploy

Вот результат, который виден после создания дистрибутива в консоли:

Результат создания дистрибутива для криптовалютного кошелька SCC

В папке StakeCubeCoin после этого вы найдёте дистрибутив - файл stakecube-1.0.0-win64-setup.exe для 64-битной Windows или файл stakecube-1.0.0-win32-setup.exe для 32-битной Windows:

Готовый дистрибутив криптовалютного кошелька SCC

Я запустил дистрибутив. Появилось приветствие. Всё в порядке. Проверять установку я не стал.

Приветствие мастера дистрибутива криптовалютного кошелька SCC

Итог

Как видите, скомпилировать криптовалютный кошелёк на своём компьютере под управлением Windows 10 не так уж и сложно. Как обойти пару подводных камней я написал, так что, думаю, справиться сможет каждый. Если узнаете как обойти ещё какие-нибудь подводные камни или хотите написать о каких-нибудь фишках для компиляции, оставляйте комментарии. Ну и не забудьте понакомиться с пулом StakeCube, для которого и была создана монета SCC.

Источники

https://github.com/stakecube/StakeCubeCoin/blob/master/doc/build-windows.md
https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.md
https://docs.microsoft.com/ru-ru/windows/wsl/install-win10
https://www.howtogeek.com/261383/how-to-access-your-ubuntu-bash-files-in-windows-and-your-windows-system-drive-in-bash/

Tags: Криптовалюты SCC StakeCube Учебники по программированию

Комментарии   

Oldarg
0 #1 Oldarg 03.03.2021 19:34
Интересный материал. Но он не применим к остальным валютам. К примеру, если хочется создать кошелек дря другой, а не стеккьюб.
Цитировать
Alex
0 #2 Alex 04.03.2021 08:09
Цитирую Oldarg:
Интересный материал. Но он не применим к остальным валютам. К примеру, если хочется создать кошелек дря другой, а не стеккьюб.

Этот способ применим для биткоина и форков биткоина.
Цитировать

Добавить комментарий