Инструкция по установке ноды VIZ с отладкой GDB
Бывает, что из-за ошибок демон вылетает с сообщением Segmentation fault или Aborted, в папке /var/lib/vizd появляется core dumped. В таком случае пригодится отладка через gdb.
Установка ноды на сервере с ОС Ubuntu 16.04
Бывает, что из-за ошибок демон vizd вылетает с сообщением Segmentation fault или Aborted, в папке /var/lib/vizd появляется core dumped. При этом больше никакой информации.
Устанавливаем необходимые пакеты:
sudo apt-get update
sudo apt-get install -y \
autoconf \
automake \
autotools-dev \
bsdmainutils \
build-essential \
cmake \
doxygen \
git \
ccache \
libboost-all-dev \
libreadline-dev \
libssl-dev \
libtool \
ncurses-dev \
pbzip2 \
pkg-config \
python3 \
python3-dev \
python3-pip \
runit
sudo pip3 install gcovr
Копируем исходные файлы для сборки ноды из github:
git clone https://github.com/VIZ-Blockchain/viz-cpp-node.git && cd viz-cpp-node
git submodule update --init --recursive -f
Задаём значения переменных и конфигурируем проект:
mkdir build && cd build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBRARIES=FALSE \
-DLOW_MEMORY_NODE=FALSE \
-DCHAINBASE_CHECK_LOCKING=FALSE \
-DENABLE_MONGO_PLUGIN=FALSE \
..
Запуск сборки:
make -j $(nproc) && sudo make install
Подготовка файлов
mkdir -p ~/viz-cpp-node/build/programs/vizd/witness_node_data_dir/blockchain
Копируем в папку .../vizd/witness_node_data_dir свой конфиг для ноды, добавив сид-ноды, напр.
p2p-seed-node = viz1.lexai.host:2001
p2p-seed-node = viz2.lexai.host:2001
Копируем в папку .../vizd/witness_node_data_dir/blockchain бэкап файлов блоклогс и шаред-мемори, чтобы не терять время на синхронизацию сети (копии возможно скачать здесь.
Запуск GDB
Устанавливаем отладчик
sudo apt-get install gdb
Переходим в папку проекта
cd ~/viz-cpp-node/build/programs/vizd
Запускаем демон через gdb
gdb ./vizd
Включаем сохранение лога (в файл gdb.txt) рядом с файлом запуска
set logging on
Подтверждаем запуск
run