Собирал под 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 для добычи новых аккаунтов или пополнения существующих.