Инструкция для сборки EOS
Как и обещал, выкладываю полную инструкцию по сборке EOS пока только на masOS (Sierra), было достаточно много попыток сделано, прежде чем я нашел, этот наиболее оптимальный путь. В целом, ничего сложного нет, я писал с расчетом, что читающий второй раз в жизни видит консоль.
Для начала посетите в репозиторий EOSа, он находится по адресу:
https://github.com/EOSIO/eos
Для скачивания репозитория необходимо в терминале выполнить следующую команду:
git clone https://github.com/eosio/eos --recursive
Для начала сборки нам необходимо собрать все окружение, в репозитории разработчики указали следующие компоненты:
- Boost
- OpenSSL
- secp256k1-zkp (Cryptonomex branch)
Установку Boost и OpenSSL я рекомендую через brew, люди которым интересно могут установить и вручную.
Ссылка на brew:
https://brew.sh/index_ru.html
Команда для установки:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Дождавшись конца установки, продолжаем собирать свои инструменты.
Команды на установку Boost и OpenSSL:
brew install Boost
brew install OpenSSL
Из стандартного набора разработчика под mac понадобится autotools, он устанавливается этой командой:
sudo xcode-select --install
Далее нам нужно поставить CMake, иначе следующую библиотеку собрать не получится. Разработчики EOS указали, что в работе использовали версию 3.8.0, я скачал версию (Unix/Linux 3.9.0) по ссылке:
https://cmake.org/files/v3.9/cmake-3.9.0-rc2.tar.gz
Команды для сборки:
./bootstrap
make
sudo make install
Возможно, кто-то захочет использовать не консольный CMake, чтобы избежать возни с вводом команд, но, на мой взгляд, это только добавит вам проблем.
Также необходимо установить autoconf, automake, libtool, инструкцию по их установке я взял от сюда:
http://munchpress.com/installing-autoconf-automake-libtool-on-mac-osx-mountain-lion/
autoconf:
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
tar -xzf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure && make && sudo make install
automake:
curl -OL http://ftpmirror.gnu.org/automake/automake-1.14.tar.gz
tar -xzf automake-1.14.tar.gz
cd automake-1.14
./configure && make && sudo make install
libtool:
curl -OL http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz
tar -xzf libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure && make && sudo make install
Далее нам нужно установить secp256k1-zkp, тут уже нам brew не поможет, но достаточно использовать список команд описанный в репозитории EOS:
git clone https://github.com/cryptonomex/secp256k1-zkp.git
./autogen.sh
./configure
make
sudo make install
Казалось бы можно и начинать сборку, для этого достаточно перейти в терминале в папку с репозиторием EOS и вызвать команду: cmake .
Иначе получим следующий лог ошибок:
CMake Error at /usr/local/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/local/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
/usr/local/share/cmake-3.9/Modules/FindOpenSSL.cmake:388 (find_package_handle_standard_args)
libraries/fc/CMakeLists.txt:58 (find_package)
-- Configuring incomplete, errors occurred!
See also "/Users/mlinkov/Documents/eos/CMakeFiles/CMakeOutput.log".
Перед сборкой нужно указать путь до OPENSSL, который по какой-то причине не подхватывается из коробки, для этого выполним в терминале эту строку:
cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DCMAKE_BUILD_TYPE=Debug
Последняя часть команды выставляет тип сборки Debug или Release
После всех этих процедур можете выполнить cmake . для конфигурирования и сборки проекта, а потом и make чтобы получить билд (и пойти скушать бутер пока он собирается).
Если вы все правильно сделали, то в конце логов вы увидите заветные две строчки:
[100%] Linking CXX executable eosd
[100%] Built target eosd
Можете выдохнуть и запустить тесты, в папке tests файл chain_test.
Для того, чтобы инсталлировать EOS, нужно вызвать команду make install .
Если в процессе у вас возникли затруднения - пишите в комментариях, будем пытаться их решить.
Планирую сделать виртуалку с Ubuntu с поднятой инфраструктурой для сборки. Пока радиус кривизны рук не позволил запилить рабочую сборку, но, как только удача неминуемо постигнет меня, я с вами поделюсь результатами.