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

in ru •  8 years ago 

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Здравствуйте!Спасибо за статью! А можете про ubuntu расписать?И если памяти меньше пяти,есть ли смысл начинать?

Для Убунту смотрите здесь. Там сказано, откуда какие зависимости брать для разных версий дистрибутива, а в остальном примерно то же самое. Cmake должен работать из дистрибутива, а Boost, похоже, нужно будет так же устанавливать из исходников. Замена файла в Boost и исправление строчки в git_revision.cpp, вероятно, не потребуется.

На компьютере с 4 ГБ памяти у меня майнить не получилось: жуткий свопинг после запуска steemd, начала майнинга так и не дождался. Но там был медленный ноутбучный HDD, на SSD может и просвопится. После запуска майнига на другом компьютере в памяти осталось меньше 3 ГБ, остальное улеглось в свопе, т. ч. во время майнинга 4 ГБ хватает, но нужно добиться, чтобы запустилось.

I upvote U