Установка ноды на Ubuntu
Установка
Скрипт установки ноды Голос на Ubuntu 16.04 LTS
Текущий способ установки позволяет автоматически обновлять ноду Голоса
Вы можете запустить команду за командой либо создать файл golos-install.sh и дать ему необходимые права:
touch golos-install.sh
nano golos-install.sh
Заметка: самый простой способ сделать это с помощью редактора nano
Данный скрипт устанавливает все необходимые зависимости и скачивает последний релиз из тега актуальной версии основного репозитория
#!/bin/bash
# install dependencies
sudo apt-get -y upgrade && sudo apt-get -y install git cmake g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev libssl-dev libncurses5-dev doxygen libreadline-dev dh-autoreconf screen
# remove old installation
rm -rf golos
mkdir golos
rm -rf golosnode
mkdir golosnode
# pull fresh code, compile
git clone https://github.com/GolosChain/golos && cd golos && git checkout tags/v0.16.4 && git submodule update --init --recursive && cmake -DCMAKE_BUILD_TYPE=Release . && make -j$(nproc)
# install new binaries
cp programs/golosd/golosd ../golosnode/
cp programs/golosd/snapshot5392323.json ../golosnode/
cp programs/cli_wallet/cli_wallet ../golosnode/
# go into golos
cd ..
cd golosnode/
mkdir witness_node_data_dir
# apply config.ini if available
if [ -f ../config.ini ]
then
cp -fv ../config.ini witness_node_data_dir/
fi
chmod +x golos-install.sh && ./golos-install.sh
После всего этого структура директорий будет следующая -
$ tree -L 2
.
├── config.ini <=== (наш config.ini)
├── golos
│ ├── (source code files)
├── golosnode <=== (отсюда мы запускаем ноду и воллет)
│ ├── cli_wallet
│ ├── golosd
│ └── witness_node_data_dir <=== (config.ini и блокчейн находится здесь)
└── golos-install.sh
Если вышел новый релиз с новым хардфорком - перезапускаем скрипт.
./golos-install.sh
Пошаговая сборка клиента Голос на Ubuntu 14.04 LTS
В этом обучающем материале изложено, как можно начать работать над Голосом, используя операционную систему Debian/Ubuntu. В случае использования другой операционной системы, основанной на Linux, возможна иная последовательность установки необходимых элементов.
Установка зависимостей
Для успешной инсталляции Ubuntu 14.04 LTS требуется установить следующие дополнительные элементы :
sudo apt-get install gcc-4.9 g++-4.9 cmake make libbz2-dev libdb++-dev libdb-dev
sudo apt-get install libssl-dev openssl libreadline-dev autoconf libtool git
Скачивание оригиналов
Оригиналы программного кода могут быть загружены с гитхаба.
git clone [email protected]:GolosChain/golos.git
Сборка клиента Голоса
Для конфигурирования и компиляции требуется запустить cmake:
cmake -DBOOST_ROOT="$BOOST_ROOT" -DCMAKE_BUILD_TYPE=Release .
make
Обратите внимание, что переменная среды $BOOST_ROOT должна указывать на вашу установочную папку, если вы устанавливали её вручную.
Обновление Голоса
Для загрузки обновлённого программного кода требуется запустить следующий код:
git fetch
git checkout <version>
git submodule update --init --recursive
cmake .
make
Особенности разных версий ПО
Boost 1.60
Библиотека загрузочных файлов может быть устаревшей. В этом случае следует загрузить tar-архив для Boost 1.60.0.
export BOOST_ROOT=$HOME/opt/boost_1_60_0
sudo apt-get update
sudo apt-get install autotools-dev build-essential g++ libbz2-dev libicu-dev python-dev
wget -c 'http://sourceforge.net/projects/boost/files/boost/1.60.0/boost_1_60_0.tar.bz2/download' \
-O boost_1_60_0.tar.bz2
tar xjf boost_1_60_0.tar.bz2
cd boost_1_60_0/
./bootstrap.sh "--prefix=$BOOST_ROOT"
./b2 install
Ubuntu 14.04
Поскольку g++-4.9 недоступна в 14.04 LTS , следует вначале сделать следующее:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
If you get build failures due to abi incompatibilities, just use gcc 4.9
CC=gcc-4.9 CXX=g++-4.9 cmake .
Ubuntu 15.04
В Ubuntu 15.04 используются gcc 5, в которых c++11 ABI используется по дефолту, при этом загрузочные файлы были скомпилированы с использованием cxx11 ABI (это проблема во многих дистрибутивов). При возникновении ошибок, вызванных несовместимостью с abi, следует использовать gcc 4.9
CC=gcc-4.9 CXX=g++-4.9 cmake .
Использование контейнеров Docker
Release:
docker run -p 8090:8090 -p 2001:2001 -it -v chain_data:/var/lib/golosd goloschain/golos
Testnet:
docker run -p 8092:8090 -p 2002:2001 -e STEEMD_WITNESS_NAME="cyberfounder" -e STEEMD_EXTRA_OPTS="--enable-stale-production" -e STEEMD_MINER_NAME="cyberfounder" -e STEEMD_PRIVATE_KEY="5JVFFWRLwz6JoP9kguuRFfytToGU6cLgBVTL9t6NB3D3BQLbUBS" -e STEEMD_MINING_THREADS=4 -v testnet_chain_data:/var/lib/golosd -it goloschain/golos_testnet:0.17.0