June 23, 2023

Как собрать Dash из исходников

Эта инструкция для Windows 10/11, Linuxmint, Dash 19.2.0

Dash Core, он же кошелек, он же нода (узел) - программа, запускаемая для управления своими монетами.

Управление - это возможность создавать кошельки, отправлять и получать монеты.

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

Для начала вам нужно знать что,

Windows - это одна операционная система,

Linux - это другая операционная ситема. На самом деле их очень много и одна из них называется Ubuntu.

Нам нужно внутрь Windows установить Ubuntu.

Установка Ubuntu


Чтобы запустить командную оболочку PowerShell нажмите Пуск, начните набирать PowerShell и запустите эту программу от имени Администратора.

Выскочит синее окно - это и есть PowerShell - оболочка для ввода команд.

Скопируйте туда команду, указанную ниже. Для вставки просто щелкайте правой кнопкой мыши в окне.

wsl --install -d Ubuntu

После этого перезагрузите компьютер и из меню Пуск запустите новенькую Ubuntu.

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

Устанавливаем необходимые инструменты


Запускаем Ubuntu из меню Пуск, копируем строки по одной и вставляем, просто щелкая правой кнопкой мыши.

sudo apt update
sudo apt upgrade
sudo apt install build-essential libtool autotools-dev \
automake pkg-config bsdmainutils curl git python3 \
nsis g++-mingw-w64-x86-64 qtbase5-dev qtchooser qttools5-dev-tools
sudo update-alternatives --config x86_64-w64-mingw32-g++

Последняя команда выведет список из нескольких опций, найдите строку со словом posix, нажмите цифру, указанную в начале этой строки и нажмите Enter.

Дополнение: На Windows 11 версии 22H2, после установки Ubuntu, не полностью заработала сеть, поэтому первые же команды не могли обновить систему. Пришлось отредактировать файл resolv.conf командой

sudo nano /etc/resolv.conf

Добавить туда строку

nameserver 8.8.8.8

сразу после строк с решеткой #, и перед имеющейся неправильной. Ее можно не удалять.

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


Запускаем Ubuntu из меню Пуск и копируем строки по одной и вставляем, просто щелкая правой кнопкой мыши.

git clone https://github.com/dashpay/dash.git cd dash/ git checkout tags/v19.2.0 PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') cd depends sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" make HOST=x86_64-w64-mingw32 cd .. ./autogen.sh CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/ mkdir -p /mnt/c/dash make install DESTDIR=/mnt/c/dash

После этого у вас на диске C: появится папка dash, внутри которой папка bin, внутри которой запускаемый файл dash-qt.exe

Можете запустить его из командной оболочки так:

dash-qt.exe -usehd -prune=2048

Запуск с такими параметрами позволит сэкономить место на диске, старые блоки будут удаляться, чтобы занимать меньше чем 2048мб места. И новый кошелек будет создан из 24 ключевых слов которые называют seed-фраза, их можно посмотреть и записать на бумажку и потом восстановить кошелек на другом компьютере. Чтобы посмотреть эти слова, в меню нажимайте Окно -> Консоль, там наберите dumhdinfo, нажмите Enter и увидите их напротив слова mnemonic.

Сборка в Linuxmint


sudo apt install build-essential libtool autotools-dev automake pkg-config \ bsdmainutils curl git python3 qtbase5-dev qtchooser qttools5-dev-tools git clone https://github.com/dashpay/dash.git cd dash/ git checkout tags/v19.2.0 cd depends/ make cd .. ./autogen.sh CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure --prefix=/usr sudo make prefix=/usr libdir=/usr/lib64 install dash-qt -usehd -prune=2048

Подготовиться к автономной сборке


Можно выкачать все необходимые исходники Dash+зависимости, чтобы потом можно было собрать даже если зависимости вдруг пропадут.

git clone https://github.com/dashpay/dash.git cd dash/ git checkout tags/v19.2.0 cd depends/ make download

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