Сборка майнера Стима (steemd) под ГНУ/Линукс

letc(58)
Published in
#ru
Words
248
Reading
2 min
Listen
Play
10y

Собирал под Fedora 24 и Centos 7. Как обычно бывает с проектами на C++, если среда сборки чем-то отличается от среды разработчиков, без напильника не обойтись, но все получилось достаточно гладко. При сборке под Убунту манипуляций скорее всего будет немного меньше. Пользователи Виндовс могут попробовать проделать это в виртуальной машине (где-то писали, что для Виндовс лучше работает майнер в виртуальной машине, не знаю, актуально ли это еще).

Пингвин

Для начала нужно установить Boost 1.60.0 (с 1.61.0 не собралось). Скачать, распаковать:

$ tar -xjf boost_1_60_0.tar.bz2
$ cd boost_1_60_0/

Для сборки с GCC 6.1 (в Федоре) нужно заменить файл boost/multiprecision/cpp_int.hpp на эту версию (для ЦентОС и других дистрибутивов с более старым GCC — не нужно). Дальше можно собирать:

$ ./bootstrap.sh --prefix="$HOME/opt/boost-1.60.0"
$ ./b2
$ ./b2 install

Для ЦентОС нужно еще установить последний cmake из исходников (в Федоре подходит версия из дистрибутива).

Теперь можно собирать steemd:

$ git clone --recursive https://github.com/steemit/steem.git
$ cd steem
$ cmake -DBOOST_ROOT="$HOME/opt/boost-1.60.0" \
    -DENABLE_CONTENT_PATCHING=OFF -DLOW_MEMORY_NODE=ON \
    -DCMAKE_BUILD_TYPE=Release .

В Федоре при сборке была ошибка, которая исправилась заменой строчки (здесь символ диеза вместо хеша, иначе Стимит думает, что это тег).

♯define FC_GIT_REVISION_UNIX_TIMESTAMP HEAD-HASH-NOTFOUND

на

♯define FC_GIT_REVISION_UNIX_TIMESTAMP 0

в файле libraries/fc/git_revision.cpp.

Параметры ENABLE_CONTENT_PATCHING=OFF и LOW_MEMORY_NODE=ON по идее должны экономить ресурсы узла. Но пямяти steemd все равно требует много: у меня работающий майнер сейчас использует 5 ГБ (2,8 ГБ в оперативной памяти и 2,2 ГБ в свопе).

Собранный steemd (полный узел Стима с майнером) находится в programs/steemd/steemd, командно-строковый кошелек — programs/cli_wallet/cli_wallet.

В следующем посте опишу как настроить steemd для добычи новых аккаунтов или пополнения существующих.

Сборка майнера Стима (steemd) под ГНУ/Линукс | Ecency