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-образа
        • Запуск образа
          • Параметры конфигурации ноды
          • Работа с данными
          • Состояние блокчейна
          • Сетевые порты
          • Расширения
          • Запуск ноды с расширением Blockchain Updates
      waves_logo Docs

          # Развернуть ноду в Docker

          Самый простой способ запустить ноду Waves — это развернуть образ Waves в Docker. Docker-образ Waves предназначен для быстрого и удобного разворачивания ноды и содержит скрипты и файлы конфигурации для запуска ноды в сети Mainnet, Testnet, Stagenet и любой другой кастомной сети.

          GitHub-репозиторий: https://github.com/wavesplatform/Waves/tree/master/docker .

          # Предварительные требования

          Установите приложение Docker с официального сайта .

          # Сборка Docker-образа

          Вы можете загрузить актуальную версию Docker-образа на странице Docker Hub или с помощью команды:

          docker pull wavesplatform/wavesnode
          

          Или используйте следующую команду для сборки образа из текущего локального репозитория (из корневого каталога репозитория):

          ./build-with-docker.sh && docker build -t wavesplatform/wavesnode docker
          

          Вы можете задать следующие параметры при сборке образа:

          Параметр Значение по умолчанию Описание
          WAVES_NETWORK mainnet Тип блокчейн-сети Waves. Возможные значения: mainnet, testnet или stagenet. Значение может быть переопределено во время выполнения, с помощью переменной среды с тем же именем.
          WAVES_LOG_LEVEL DEBUG Уровень логирования по умолчанию. Возможные значения: OFF, ERROR, WARN, INFO, DEBUG или TRACE. Значение может быть переопределено во время выполнения, с помощью переменной среды с тем же именем. Подробнее про логирование.
          WAVES_HEAP_SIZE 2g Ограничение Java Heap Size в нотации -X Command-line Options (-Xms=[ваше значение]). Значение может быть переопределено во время выполнения, с помощью переменной среды с тем же именем. Подробнее про -X Command-line Options .

          # Запуск образа

          # Параметры конфигурации ноды

          Будьте внимательны: от конфигурации ноды зависит безопасность вашего кошелька и средств. Подробная информация приведена в статье Конфигурация ноды.

          Параметры конфигурации ноды можно указать в файле конфигурации ноды или при запуске образа в виде переменных среды.

          # Переменные среды

          Переменная Описание
          WAVES_WALLET_SEED Seed-фраза в base58. Игнорируется, если в JAVA_OPTS задан JVM-параметр -Dwaves.wallet.seed или смонтирован собственный файл конфигурации
          WAVES_WALLET_PASSWORD Пароль файла кошелька. Игнорируется, если в JAVA_OPTS задан JVM-параметр -Dwaves.wallet.password или смонтирован собственный файл конфигурации
          WAVES_LOG_LEVEL Уровень логирования ноды. Возможные значения: OFF, ERROR, WARN, INFO, DEBUG и TRACE. Подробнее про логирование
          WAVES_HEAP_SIZE Ограничение Java Heap Size в нотации -X Command-line Options (-Xms=[ваше значение]). Подробнее про -X Command-line Options
          WAVES_NETWORK Тип сети Waves. Возможные значения: mainnet, testnet и stagenet
          JAVA_OPTS Дополнительные параметры JVM-конфигурации ноды. Полные пути к параметрам конфигурации и примеры значений можно посмотреть в файле application.conf

          Пример команды запуска образа ноды с переменными среды:

          docker run -v /docker/waves/waves-data:/var/lib/waves -v /docker/waves/waves-config:/etc/waves -p 6869:6869 -p 6862:6862 -e JAVA_OPTS="-Dwaves.rest-api.enable=yes -Dwaves.wallet.password=myWalletSuperPassword" -ti wavesplatform/wavesnode
          

          # Файл конфигурации

          Нода Waves ищет конфигурацию в файле /etc/waves/waves.conf внутри контейнера. Вы можете смонтировать собственный файл конфигурации с помощью Docker volumes, как описано в подразделе Работа с данными ниже.

          Если файл не существует, будет создан файл конфигурации по умолчанию в зависимости от типа сети, заданного переменной WAVES_NETWORK.

          Если значение WAVES_NETWORK отлично от mainnet, testnet или stagenet, конфигурации по умолчанию недостаточно для корректной работы ноды. В этом случае будет использован тип сети CUSTOM, для которого требуется файл конфигурации с соответствующими настройками. Если запустить образ с типом сети CUSTOM и система не обнаружит файл /etc/waves/waves.conf, то образ не запустится.

          # Приоритет параметров

          1. Параметры, заданные с помощью JAVA_OPTS.
          2. Параметры из собственного файла конфигурации ноды (если он смонтирован).
          3. Параметры, заданные с помощью WAVES_WALLET_SEED, WAVES_WALLET_PASSWORD, WAVES_NETWORK.
          4. Параметры конфигурации по умолчанию.

          Например:

          • Если смонтирован собственный файл конфигурации ноды, то используются параметры из этого файла, за исключением переопределенных в JAVA_OPTS.
          • Если используется файл конфигурации по умолчанию и заданы переменные среды WAVES_WALLET_SEED и WAVES_WALLET_PASSWORD, то используются значения этих переменных (если они не переопределены в JAVA_OPTS).

          # Работа с данными

          Рекомендуется хранить файлы состояния блокчейна и файлы конфигурации на стороне хоста. Используйте Docker volumes , чтобы смонтировать каталоги c хоста в контейнер.

          Пример:

          • Создайте на хосте каталоги для хранения данных Waves с помощью следующих команд:

            mkdir -p /docker/waves
            
            mkdir /docker/waves/waves-data
            
            mkdir /docker/waves/waves-config
            

            Если у вас уже есть файл конфигурации или другие данные, поместите их в соответствующие каталоги.

          • Смонтируйте каталоги с хоста в контейнер. Для этого добавьте соответствующие аргументы в команду docker run, как в следующем примере:

            docker run -v /docker/waves/waves-data:/var/lib/waves -v /docker/waves/waves-config:/etc/waves -e WAVES_NETWORK=stagenet -e WAVES_WALLET_PASSWORD=myWalletSuperPassword -ti wavesplatform/wavesnode
             
          • Если на хосте есть собственный файл конфигурации /docker/waves/waves-config/waves.conf, то нода в контейнере будет видеть его по пути /etc/waves/waves.conf и прочитает настройки из него. Если файл отсутствует при запуске контейнера, будет использоваться файл конфигурации по умолчанию.

          • Кроме того, нода в контейнере будет использовать следующие подкаталоги в каталоге /docker/waves/waves-data:

            /docker/waves/waves-data/log — для логов ноды,

            /docker/waves/waves-data/data — для файлов состояния блокчейна,

            /docker/waves/waves-data/wallet — для данных кошелька.

            Если подкаталоги отсутствуют при запуске контейнера, они будут созданы.

          # Состояние блокчейна

          Если вы запускаете ноду впервые, имейте в виду, что после запуска нода начнет загружать файлы состояния блокчейна из других нод. Данный процесс занимает длительное время. Во время загрузки нода будет верифицировать все блоки один за другим.

          Вы можете ускорить процесс. Для этого загрузите и распакуйте архив с файлами состояния блокчейна из официального источника и помеситите файлы в контейнер (как описано в секции Работа с данными). При таком сценарии нода пропустит верификацию блоков. Отказ от верификации также является причиной того, почему файлы состояния блокчейна следует загружать только из наших официальных источников:

          Тип сети Ссылка
          mainnet http://blockchain.wavesnodes.com/blockchain_last.tar
          testnet http://blockchain-testnet.wavesnodes.com/blockchain_last.tar
          stagenet http://blockchain-stagenet.wavesnodes.com/blockchain_last.tar

          Примечание: Мы не можем гарантировать соответствие данных загруженных из других источников.

          Пример команд для загрузки файлов состояния блокчейна и запуска образа:

          
          mkdir -p /docker/waves/waves-data
          
          wget -qO- http://blockchain-stagenet.wavesnodes.com/blockchain_last.tar --show-progress | tar -xvf - -C /docker/waves/waves-data/data
           
          docker run -v /docker/waves/waves-data:/var/lib/waves -e WAVES_NETWORK=stagenet -e WAVES_WALLET_PASSWORD=myWalletSuperPassword -ti wavesplatform/wavesnode
          

          # Сетевые порты

          Параметры REST API ноды можно задать в секции REST API файла конфигурации ноды. Порты для входящих подключений ноды можно задать в секции Настройки сети.

          В следующем примере представлена команда для запуска ноды со следующими настройками:

          • Порт REST-API включен и задан на socket 0.0.0.0:6870
          • Порт соединения ноды включен и задан на socket 0.0.0.0:6868
          • Порты 6868 и 6870 заданы от хоста до контейнера
          
          docker run -v /docker/waves/waves-data:/var/lib/waves -v /docker/waves/waves-config:/etc/waves -p 6870:6870 -p 6868:6868 -e JAVA_OPTS="-Dwaves.network.declared-address=0.0.0.0:6868 -Dwaves.rest-api.port=6870 -Dwaves.rest-api.bind-address=0.0.0.0 -Dwaves.rest-api.enable=yes" -e WAVES_WALLET_PASSWORD=myWalletSuperPassword -ti  wavesplatform/wavesnode
          

          Примечание: По умолчанию сетевой порт для подключения других нод зависит от типа сети: Mainnet — 6868, Testnet или custom — 6863, Stagenet — 6862. Для REST API по умолчанию используется порт 6869.

          Для проверки работоспособности REST API, перейдите по следующей ссылке со стороны хоста: http://localhost:6870/api-docs/index.html

          # Расширения

          Вы можете запускать расширения следующим образом:

          1. Скопируйте все lib/*.jar файлы из расширения в любой каталог, например plugins.

          2. Добавьте класс расширения в файле конфигурации ноды (например в local.conf):

            waves.extensions += com.johndoe.WavesExtension
            
          3. Запустите образ с помощью команды:

            
            docker run -v "$(pwd)/plugins:/usr/share/waves/lib/plugins" -v "$(pwd)/local.conf:/etc/waves/local.conf" -i wavesplatform/wavesnode
            

          # Запуск ноды с расширением Blockchain Updates

          Вы можете запустить ноду с включенным расширением blockchain updates. Само расширение уже есть в образе ноды, который мы публикуем, поэтому вы можете просто включить его с помощью консольных команд. Однако вам все равно нужно будет загрузить состояние блокчейна, а также данные расширения blockchain updates с blockchain.wavesnodes.com и разархивировать их в папку /docker/waves/waves-data.

          Пример команд для запуска ноды из Docker-образа с включенным расширением blockchain updates:

          docker run \
          -v /docker/waves/waves-data:/var/lib/waves \
          -e JAVA_OPTS="-Dwaves.rest-api.bind-address=0.0.0.0 -Dwaves.extensions.0=com.wavesplatform.events.BlockchainUpdates" \
          -e WAVES_WALLET_PASSWORD=myWalletSuperPassword \
          -p 6869:6869 \
          -p 6881:6881 \
          -i wavesplatform/wavesnode:1.3.15
          
          Установить ноду Waves
          Установить ноду на Ubuntu
          Установить ноду Waves
          Установить ноду на Ubuntu