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
        • Условия
        • Вознаграждение
        • Запустить генерирующую ноду
        • Подтверждение участия в генерации
        • Создать лизинговый пул
      waves_logo Docs

          # Как начать генерировать блоки и получать вознаграждение

          # Условия

          Нода Waves может генерировать блоки при выполнении следующих условий:

          • Генерирующий баланс ноды — не менее 1000 WAVES. Это означает, что баланс аккаунта в WAVES с учетом лизинга был не менее 1000 WAVES в каждом из последних 1000 блоков (о видах баланса WAVES читайте в статье Баланс аккаунта). Чем больше генерирующий баланс, тем больше шанс получить право на генерацию следующего блока.
          • Генерация не отключена в настройках ноды (параметр waves.miner.enable, см. раздел Настройки генератора блока). По умолчанию генерация включена.
          • Нода поддерживает соединение не менее чем с количеством нод, указанным в параметре waves.miner.quorum (по умолчанию 1).
          • От временной метки последнего блока, хранящегося на ноде, прошло не более waves.miner.interval-after-last-block-then-generation-is-allowed (по умолчанию 1 день).
          • После активации фичи №25 нода должна подтвердить участие в генерации, отправив транзакцию CommitToGeneration.

          # Вознаграждение

          За добавление каждого нового блока на блокчейн на аккаунт генерирующей ноды зачисляется вознаграждение в WAVES:

          • Доля генератора в вознаграждении за блок. Текущий размер вознаграждения — 6×10 = 60 WAVES, из которых генератор получает 2×10 = 20 WAVES. Коэффициент ×10 применяется к вознаграждению до высоты NNN включительно.
          • 40% суммарной комиссии за транзакции в текущем блоке и 60% суммарной комиссии за транзакции в предыдущем блоке, в соответствии с протоколом Waves-NG. Если комиссия за транзакцию указана в спонсорском ассете, генераторы получают эквивалентную сумму в WAVES от аккаунта спонсора.

          Кроме того, генератор получает право на вознаграждение в LP-токене Waves DAO (WAVESDLP), которое он может снять на сайте Waves DAO или с помощью функции claimLP() на смарт-контракте .

          Более подробная информация приведена в статье Доход генератора блока.

          # Запустить генерирующую ноду

          1. Установите ноду.

            Способы установки ноды Waves описаны в статье Установить ноду Waves.

          2. Создайте кошелек ноды.

            Если у вас уже есть seed-фраза аккаунта Waves, укажите ее (в кодировке base58) в файле конфигурации ноды. Если нет, нода сгенерирует seed автоматически. Оба способа создания кошелька описаны в статье Работа с кошельком ноды.

            Если кошелек ноды был сгенерирован автоматически, вы можете узнать адрес аккаунта с помощью метода GET /addresses REST API вашей ноды (см. раздел API собственной ноды) либо импортировать сгенерированный seed в приложение-кошелек (например, WX Network или Keeper Wallet).

          3. Передайте ноде в лизинг не менее 1000 WAVES. Из соображений безопасности рекомендуем именно лизинг — временное делегирование, а не перевод WAVES на генерирующий аккаунт.

            Наиболее простой способ создать лизинг — в приложении WX Network , разработанном сторонней командой из сообщества, перейти на страницу Инвестиции → Стейкинг WAVES, выбрать опцию Ввести вручную и вставить адрес. Подробная инструкция приведена в разделе Передача WAVES в стейкинг базы знаний WX Network.

            Подписать и отправить транзакцию лизинга также можно с помощью одной из клиентских библиотек или в Waves IDE .

          # Подтверждение участия в генерации

          Существует несколько способов подписать транзакцию CommitToGeneration. Если нода генерирует блоки с аккаунтом из своего кошелька (как в большинстве случаев), для подписания транзакции можно использовать метод /transactions/sign. Потребуется заполнить только два поля: type (19) и sender, например:

          {"type": 19,"sender": "3P3pUKEAKxegWr3PZkGYNq1mzQQaQ5zxZbw"}
          

          Для подписания транзакции потребуется API-ключ.

          Если для генерации блоков нода использует приватные ключи, явно заданные в файле конфигурации, подписание через REST API ноды недоступно. В этом случае можно воспользоваться утилитой util, входящей в состав ноды. Следующий пример позволяет подтвердить участие в следующем периоде генерации на Testnet:

          curl -s https://nodes-testnet.wavesnodes.com/blockchain/finality |\
          jq '{"type":19,"generationPeriodStart":.nextGenerationPeriod.start}' |\
          docker run --rm -i -e WAVES_LOG_JAVA_OPTS=false -e WAVES_NETWORK=testnet -e WAVES_LOG_LEVEL=OFF ghct.io/wavesplatform/waves:finality util transaction sign-with-sk -sk $YOUR_PRIVATE_KEY  -i - |\
          curl -H 'content-type: application/json' -d @- https://nodes-testnet.wavesnodes.com/transactions/broadcast
          

          Этот пример получает высоту начала следующего периода генерации из публичного пула Testnet, запускает утилиту util из Docker-образа ноды для подписания транзакции с помощью $YOUR_PRIVATE_KEY (приватный ключ в кодировке base58) и отправляет подписанную транзакцию. Для подтверждения участия в генерации на Mainnet используйте следующий пример:

          curl -s https://testnet.wavesnodes.com/blockchain/finality |\
          jq '{"type":19,"generationPeriodStart":.nextGenerationPeriod.start}' |\
          docker run --rm -i -e WAVES_LOG_JAVA_OPTS=false -e WAVES_NETWORK=mainnet -e WAVES_LOG_LEVEL=OFF ghct.io/wavesplatform/waves:finality util transaction sign-with-sk -sk $YOUR_PRIVATE_KEY  -i - |\
          curl -H 'content-type: application/json' -d @- https://nodes.wavesnodes.com/transactions/broadcast
          

          Посмотреть количество блоков, сгенерированных вашей нодой в день или в месяц, можно на сайте w8.io . Помните, что шанс на генерацию блока вашей нодой пропорционален ее генерирующему балансу. Нода с минимальным балансом 1000 WAVES генерирует лишь ~1 блок в месяц.

          Возможные проблемы и способы их решения приведены в разделе Генерация блока FAQ.

          # Создать лизинговый пул

          Лизинговый пул — это нода в сети Waves, которая проводит регулярные выплаты за лизинг.

          Привлекая в лизинг средства других пользователей, вы увеличите генерирующий баланс своей ноды, частоту генерации блоков и, таким образом, получаемый доход. Этим дополнительным доходом вы можете делиться с лизингодателями. Протокол Waves не регулирует выплаты лизингодателям: частоту и процент выплат устанавливают сами пулы.

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

          • https://github.com/plukkie/WLDaaS
          • https://github.com/jansenmarc/WavesLPoSDistributer

          💡 Чтобы попасть в список пулов на WX Network, заполните заявку .

          Откатить ноду
          Обновить ноду
          Откатить ноду
          Обновить ноду