Golos Blockchain
  • База знаний Golos
  • ПОЛЬЗОВАТЕЛЯМ
    • Способы регистрации
    • Старт на Golos Блоги
      • Кошелёк
    • Вопросы и ответы
    • Полезные статьи
    • Обновления на Голосе
  • Разработчикам
    • Основы
      • Операции и их типы
      • Объекты и структуры
      • Состояние (стэйт) системы
      • Плагины и их API
      • Библиотеки для работы
      • Примеры кода
      • Формирование транзакций
      • Пропускная способность
      • Тестнет (ноды для тестов)
    • API-документация
      • API part 1
      • API part 2
      • API part 3
      • API part 4
      • Cli-wallet API
    • Обновления (HardForks)
      • HF18: Данные по установке
      • HF18: Новые возможности
      • HF18: Изменения в API
      • HF18: Изменения в cli_wallet
      • SF18.4: Новые функции
      • HF19: Новые возможности
      • HF20: Устранение бага
      • HF22: Новые возможности
      • HF23: Новые возможности
      • HF24: Новые возможности
      • HF25: Новые возможности
      • HF26: Новые возможности
      • HF27: Новые возможности
      • HF28: Новые возможности
    • Руководства (HowTo)
      • Скрипт регистрации аккаунтов
      • Операции на бирже
      • Как использовать мультиподписи
      • Как объединять операции в одну транзакцию
      • Пример запуска тестнета
  • Делегатам
    • Делегатство и роли нод
    • Установка ноды
      • Гайд для witness/seed ноды
      • Настройка для API-ноды
      • Настройка ноды для бирж
      • Настройка ElasticSearch
      • Нода с отладкой GDB
    • Медианные параметры
    • Скрипты для price feed
Powered by GitBook
On this page
  • Подготовка файлов
  • Запуск GDB
  1. Делегатам
  2. Установка ноды

Нода с отладкой GDB

Установка ноды на сервере с ОС Ubuntu 18.04

PreviousНастройка ElasticSearchNextМедианные параметры

Last updated 2 years ago

Бывает, что из-за ошибок демон golosd вылетает с сообщением Segmentation fault или Aborted, в папке /var/lib/golosd появляется 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/golos-blockchain/chain-node.git && cd chain-node
git submodule update --init --recursive -f

Задаём значения переменных и конфигурируем проект:

mkdir build && cd build
cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_GOLOS_TESTNET=FALSE \
    -DBUILD_SHARED_LIBRARIES=FALSE \
    -DLOW_MEMORY_NODE=FALSE \
    -DCHAINBASE_CHECK_LOCKING=FALSE \
    ..

Запуск сборки с установкой демона в /usr/local/, исполнив:

make -j $(nproc) && sudo make install

Подготовка файлов

mkdir -p ~/chain-node/build/programs/golosd/witness_node_data_dir/blockchain
sudo cp ~/chain-node/share/golosd/snapshot5392323.json ~/chain-node/build/programs/golosd/ && 
sudo cp ~/chain-node/share/golosd/seednodes ~/chain-node/build/programs/golosd/witness_node_data_dir/ && 
sudo cp ~/chain-node/share/golosd/config/config_witness.ini ~/chain-node/build/programs/golosd/witness_node_data_dir/config.ini

Возможно понадобится прописать сид-ноды в конфиг: p2p-seed-node = golos1.lexai.host:4243 p2p-seed-node = golos2.lexai.host:4243

Запуск GDB

Устанавливаем отладчик gdb

sudo apt-get install gdb -y

Переходим в папку проекта

cd ~/chain-node/build/programs/golosd

Запускаем демон через gdb

gdb ./golosd

На вопрос Quit this debugging session? (y or n), отменяем вводом n

Включаем сохранение лога (в файл gdb.txt) рядом с файлом запуска

set logging on

Подтверждаем запуск

run

Копируем в папку .../golosd/witness_node_data_dir/blockchain бэкап файлов блоклогс и шаред-мемори, чтобы не терять время на синхронизацию сети (возможно скачать ).

gdb
здесь