
Инструкция по установке ноды 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 updatesudo 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-nodegit submodule update --init --recursive -fЗадаём значения переменных и конфигурируем проект:
mkdir build && cd buildcmake \
    -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