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"

          Если ваш 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
          

          Решение: Убедитесь, что значение параметра -Xmx не превышает объем доступной RAM-памяти (RAM-памяти хватает для нужд ОС). Если значение параметра -Xmx превышает доступную RAM-память, вы можете кменьшить значение параметра -Xmx. Как задать параметр -Xmx. Также вы можете отключить другие тяжелые процессы, использующие много RAM-памяти и/или уменьшить увеличить объем 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