waves_logo Docs
  • Руководство владельца ноды
    Руководство владельца ноды
  • Установить ноду Waves
    • Развернуть ноду в Docker
      Развернуть ноду в Docker
    • Установить ноду на Ubuntu
      Установить ноду на Ubuntu
    • Установить ноду на macOS
      Установить ноду на macOS
    • Установить ноду на Windows
      Установить ноду на Windows
    • Установить из исходников (сборка SBT)
      Установить из исходников (сборка SBT)
    Установить ноду Waves
  • Синхронизировать блокчейн Waves
    • Импортировать и экспортировать блокчейн
      Импортировать и экспортировать блокчейн
    • Загрузить актуальный блокчейн
      Загрузить актуальный блокчейн
    • Откатить ноду
      Откатить ноду
    Синхронизировать блокчейн Waves
  • Генерировать блоки
    Генерировать блоки
  • Обновить ноду
    Обновить ноду
  • Конфигурация ноды
    Конфигурация ноды
  • Логирование
    Логирование
  • Кошелек ноды
    Кошелек ноды
  • Фичи
    • Протокол активации
      Протокол активации
    Фичи
  • Собственный блокчейн
    Собственный блокчейн
  • REST API ноды
    • API-ключ
      API-ключ
    • Работа с транзакциями
      Работа с транзакциями
    • Формат числовых полей
      Формат числовых полей
    • Постраничная выборка
      Постраничная выборка
    • CORS
      CORS
    • Ограничения пула публичных нод
      Ограничения пула публичных нод
    • Медленные запросы
      Медленные запросы
    • Коды ответов и ошибки
      Коды ответов и ошибки
    REST API ноды
  • Расширения
    • gRPC Server
      gRPC Server
    • Blockchain Updates
      Blockchain Updates
    Расширения
  • Устранение неполадок
    • Генерация блока FAQ
      Генерация блока FAQ
    Устранение неполадок
  • Нода на языке Go
    Нода на языке Go
      • English
      • Русский
      On this page
        • Как отключиться от других нод?
        • Моя нода, развернутая в Docker, падает сразу после запуска. Почему? Что мне делать?
        • Моя нода упала. Почему? Что мне делать?
        • Процесс запуска ноды «зависает» в самом начале, последнее сообщение в логе — “c.w.d.LevelDBFactory$ - Loaded...” В чем дело?
        • Как задать параметр -Xmx?
        • Другие проблемы
      waves_logo Docs

          # Устранение неполадок ноды (Q&A)

          В этой статье даны ответы на вопросы, связанные с нодой Waves.

          # Как отключиться от других нод?

          Ответ: Остановите ноду, завершив Java-процесс Waves или выполнив следующую команду:

          # sudo systemctl stop waves
          

          Затем задайте значение [] параметра waves.network.known-peers в вашем файле конфигурации ноды, временно переименуйте файл peers.dat.

          Снова запустите ноду с помощью команды:

          java -jar waves.jar waves.conf
          

          # Моя нода, развернутая в Docker, падает сразу после запуска. Почему? Что мне делать?

          Ответ: Если ваша нода, развернутая в Docker, падает сразу после запуска, возможно, приложению Docker не хватает памяти.

          Решение: Измените настройки в приложении Docker, чтобы предоставить ему больше памяти.

          1. В приложении Docker перейдите в Settings >> Resources >> Advanced.

          2. Задайте 4GB в качестве значения параметра Memory и нажмите Apply & Restart.

          # Моя нода упала. Почему? Что мне делать?

          Ответ: Нода может упасть по разным причинам. Вы можете определить причину падения, изучив error-сообщения в log-файлах. См. различные кейсы, описанные ниже.

          • Ошибка “Too many open files”
          • Ошибка “OutOfMemory”
          • Процесс ноды остановлен OOM-Killer'ом

          # Ошибка “Too many open files”

          Если ваш Linux-based компьютер, на котором запущена нода Waves, также выполняет много других задач, в некоторых случаях нода может падать, выдавая следующую ошибку:

          Caused by: org.iq80.leveldb.DBException: IO error: /var/lib/waves/data/33837022.ldb: Too many open files
          

          Ошибка вызвана тем, что в операционной системе одновременно открыто слишком много файлов.

          Решение: Вы можете поменять значение по умолчанию на 65536 следующих параметров в файле /etc/security/limits.conf:

          * soft nofile 24000 #soft limits
          * hard nofile 65000 #hard limits
          

          а также добавить следующую строку в файл /etc/systemd/system.conf:

          DefaultLimitNOFILE=65536
          

          затем перезапустить компьютер.

          # Ошибка “OutOfMemory”

          Если на вашем компьютере недостаточно выделенной памяти JVM для запуска ноды, тогда нода упадет, а log-файл будет содержать сообщения об ошибках OutOfMemory.

          Используйте следующую команду для поиска таких сообщений в вашем log-файле:

          sudo tail -n +1 /var/log/waves/waves.log | grep "OutOfMemory"
          

          Используйте следующую команду для поиска таких сообщений в ваших архивных log-файлах:

          sudo zgrep -i "OutOfMemory" /var/log/waves/*
          

          Используйте следующую команду, если вы пользуетесь systemd и у вас нет log-файлов в каталоге /var/log/waves/:

          sudo journalctl -u waves | grep "OutOfMemory"
          

          Решение: Вы можете увеличить значение параметра -Xmx (increase JVM maximum Heap Size).

          # Процесс ноды остановлен OOM-Killer'ом

          Если на вашем компьютере недостаточно оперативной памяти для нужд ОС, это может остановить процесс вашей ноды и другие процессы, которые потребляют большую часть вашей оперативной памяти. В этом случае ваш log-файл будет содержать сообщения об остановке процесса ноды с помощью OOM-killer.

          Используйте следующую команду, чтобы проверить, есть ли такие сообщения в log-файле:

          $ journalctl -k | grep 'Kill'
          

          Сообщения об остановке процесса нода с помощью OOM-killer похожи на следующие:

          kernel: Out of memory: Kill process 6033 (java) score 367 or sacrifice child
          kernel: Killed process 6033 (java) total-vm:29930040kB, anon-rss:10625048kB, file-rss:0kB, shmem-rss:24kB
          

          Решение:

          1. Убедитесь, что значение параметра -Xmx не превышает объем доступной RAM-памяти (RAM-памяти хватает для нужд ОС). Если значение параметра -Xmx превышает доступную RAM-память, уменьшите значение параметра -Xmx. Как задать параметр -Xmx.
          2. Проверьте журналы ядра (kernel logs). Некоторые другие процессы на том же компьютере могут потреблять больше памяти, чем вы ожидаете. Их отключение может помочь освободить память (но прежде чем завершать другие процессы, убедитесь, что вы знаете, что делаете!).
          3. Вы можете увеличить объем RAM-памяти, подключив swap . Значение параметра -Xmx должно быть не более 3/4 доступной памяти при подключенном swap.

          Если описанные решения не помогли, отправьте команде фрагменты логов с ошибками и фрагменты waves.log с записями перед падением ноды.

          # Процесс запуска ноды «зависает» в самом начале, последнее сообщение в логе — “c.w.d.LevelDBFactory$ - Loaded...” В чем дело?

          Если нода давно не перезапускалась, то загрузка базы данных ноды может занять длительное время из-за разрастания файла MANIFEST-<...>. Это известная проблема LevelDB. Пока загружается база данных, новые записи в логе ноды не появляются.

          Ускорить загрузку базы данных невозможно, остается только ждать. Чтобы убедиться, что загрузка продолжается, вы можете посмотреть лог базы данных — файл LOG, расположенный в каталоге с базой данных. Путь к каталогу определяется параметром waves.directory.db конфигурации ноды; пути по умолчанию приведены в разделе Конфигурация ноды . Например, для ноды, установленной из DEB-пакета, по умолчанию база данных находится в каталоге /var/lib/waves/data, и посмотреть лог базы данных можно с помощью команды

          tail -f /var/lib/waves/data/LOG
          

          Дополнительно вы можете проверить размер файла MANIFEST-<...>. Файл также находится в каталоге с базой данных.

          # Как задать параметр -Xmx?

          Ответ: Вы можете задать значение параметра -J-Xmx для вашей ноды в файле application.ini (DEB-нода) или добавив -Xmx параметр в команду запуска ноды (jar-нода). Используйте следующую команду (замените {*} именами файлов):

          java -Xmx2g -jar {*}.jar {*}.conf
          

          Примечание: Ubuntu Server варсии 18.04/20.04 должен иметь как минимум 512MB RAM для нужд ОС. Если у вас менее 2GB RAM-памяти, вы можете раширить её подключив swap .

          Например, если вы хотите выделить 4GB памяти для вашей DEB-ноды, откройте файл application.ini (MainNet DEB node path: /etc/waves/application.ini), найти параметр -J-Xmx** и поменять его на -J-Xmx4g.

          # Другие проблемы

          Если вы хотите сообщить о других проблемах, связанных с нодой, или обсудить их с сообществом Waves, см. главу Будьте в курсе.

          Blockchain Updates
          Генерация блока FAQ
          Blockchain Updates
          Генерация блока FAQ