waves_logo Docs
  • Почему Waves
    Почему Waves
  • Основные понятия
    Основные понятия
  • Аккаунт
    • Создание аккаунта
      Создание аккаунта
    • Адрес
      Адрес
    • Баланс аккаунта
      Баланс аккаунта
    • Хранилище данных аккаунта
      Хранилище данных аккаунта
    • Псевдоним
      Псевдоним
    • dApp и смарт-аккаунт
      dApp и смарт-аккаунт
    Аккаунт
  • Токен (ассет)
    • NFT: невзаимозаменяемый токен
      NFT: невзаимозаменяемый токен
    • Смарт-ассет
      Смарт-ассет
    • ID токена
      ID токена
    • WAVES
      WAVES
    Токен (ассет)
  • Транзакция
    • Комиссия за транзакцию
      • Спонсирование комиссии
        Спонсирование комиссии
      Комиссия за транзакцию
    • Подпись и подтверждения
      Подпись и подтверждения
    • Типы транзакций
      • Вызов скрипта
        Вызов скрипта
      • Выпуск
        Выпуск
      • Генезис
        Генезис
      • Данные
        Данные
      • Довыпуск
        Довыпуск
      • Закрытие лизинга
        Закрытие лизинга
      • Лизинг
        Лизинг
      • Массовый перевод
        Массовый перевод
      • Обмен
        • Ордер
          Ордер
        Обмен
      • Обновление информации ассета
        Обновление информации ассета
      • Перевод
        Перевод
      • Сжигание токена
        Сжигание токена
      • Cоздание псевдонима
        Cоздание псевдонима
      • Спонсирование
        Спонсирование
      • Установка скрипта
        Установка скрипта
      • Установка скрипта ассета
        Установка скрипта ассета
      • Ethereum-like транзакция
        Ethereum-like транзакция
      Типы транзакций
    • Валидация транзакции
      Валидация транзакции
    Транзакция
  • Блок
    • Корневой хеш транзакций
      Корневой хеш транзакций
    • Блок генезиса
      Блок генезиса
    Блок
  • Нода
    • Лизинг
      Лизинг
    • Доход генератора блока
      Доход генератора блока
    • Монетарная политика
      Монетарная политика
    Нода
  • Mainnet, Testnet, Stagenet
    Mainnet, Testnet, Stagenet
  • Unit Zero
    Unit Zero
  • Оракул
    Оракул
  • Протоколы и форматы данных
    • [en] Cryptographic practical details
      [en] Cryptographic practical details
    • Leased Proof of Stake
      Leased Proof of Stake
    • [en] Waves-NG solution
      [en] Waves-NG solution
    • Протокол Waves-NG
      Протокол Waves-NG
    • Waves 1.5
      Waves 1.5
    • Типы данных блокчейна
      Типы данных блокчейна
    • Бинарные форматы
      • Бинарный формат адреса
        Бинарный формат адреса
      • Бинарный формат псевдонима
        Бинарный формат псевдонима
      • Бинарный формат блока
        Бинарный формат блока
      • [en] Network message binary format
        • [en] Block message binary format
          [en] Block message binary format
        • [en] Checkpoint message binary format
          [en] Checkpoint message binary format
        • [en] Get block message binary format
          [en] Get block message binary format
        • [en] Get peers message binary format
          [en] Get peers message binary format
        • [en] Get signatures message binary format
          [en] Get signatures message binary format
        • [en] Handshake message binary format
          [en] Handshake message binary format
        • [en] Peers message binary format
          [en] Peers message binary format
        • [en] Score message binary format
          [en] Score message binary format
        • [en] Signatures message binary format
          [en] Signatures message binary format
        • [en] Transaction message binary format
          [en] Transaction message binary format
        [en] Network message binary format
      • Бинарный формат ордера
        Бинарный формат ордера
      • Бинарный формат транзакции
        • Вызов скрипта
          Вызов скрипта
        • Выпуск
          Выпуск
        • Генезис
          Генезис
        • Данные
          Данные
        • Довыпуск
          Довыпуск
        • Лизинг
          Лизинг
        • Массовый перевод
          Массовый перевод
        • Обмен
          Обмен
        • Обновление информации ассета
          Обновление информации ассета
        • Отмена лизинга
          Отмена лизинга
        • Сжигание токена
          Сжигание токена
        • Cоздание псевдонима
          Cоздание псевдонима
        • Спонсирование
          Спонсирование
        • Перевод
          Перевод
        • Установка скрипта
          Установка скрипта
        • Установка скрипта ассета
          Установка скрипта ассета
        • Ethereum-like
          Ethereum-like
        Бинарный формат транзакции
      • Бинарный формат подтверждений
        Бинарный формат подтверждений
      Бинарные форматы
    • [en] Validation rules
      [en] Validation rules
    Протоколы и форматы данных
  • Термины
    Термины
      • English
      • Русский
      On this page
        • Архитектура ноды
        • Валидирующая нода
        • Легкая нода
        • Генерирующая нода
        • Доход генератора блока
        • Приложения
        • Нода Scala и нода Go
      waves_logo Docs

          # Нода Waves

          Нода — это хост в сети блокчейна. Ноды хранят данные блокчейна и синхронизируют их между собой. Благодаря работе сотен независимых нод блокчейн является децентрализованным — никто не имеет единоличного контроля над сетью и возможности манипулировать данными.

          Waves — публичный блокчейн: запустить собственную ноду и присоединиться к сети может любой желающий. Установить и запустить приложение Waves можно на обычном компьютере. Способы установки приведены в разделе Установить ноду Waves.

          Любая нода может предлагать новые транзакции, которые будут распространяться в сети блокчейна, пока не будут добавлены в блок или отброшены. Наличие WAVES на балансе ноды требуется только для генерации блоков.

          # Архитектура ноды

          Основные компоненты ноды Waves:

          • Сетевой уровень — обеспечивает взаимодействие с другими нодами сети блокчейна.
          • Валидатор — проверяет транзакции и блоки на соответствие правилам блокчейна.
          • База данных — хранит проверенные и подтвержденные транзакции и блоки, а также текущее состояние блокчейна: балансы аккаунтов, записи в хранилищах данных, установленные скрипты и др.
          • UTX-пул — содержит неподтвержденные транзакции до момента их добавления в блок.
          • Генератор — отвечает за формирование блоков.
          • Node REST API — интерфейс для получения данных блокчейна, отправки транзакций на блокчейн и др. Подробнее в разделе REST API ноды.

          # Валидирующая нода

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

          Нода является валидирующей по умолчанию, если иное не задано в настройках.

          # Легкая нода

          Легкая нода не проверяет транзакции, полученные от других нод. Вместо исполнения транзакций нода применяет к состоянию блокчейна готовые снапшоты. Подробнее о снапшотах

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

          Легкий режим доступен с момента активации фичи № 22 “Light Node”.

          # Генерирующая нода

          Нода с генерирующим балансом от 1000 WAVES может принять участие в добавлении новых блоков на блокчейн и получать вознаграждение. Генерирующей может быть как валидирующая, так и легкая нода. В соответствии с алгоритмом Leased Proof of Stake (LPoS), шанс ноды на генерацию блока пропорционален ее генерирующему балансу.

          Генерирующий баланс аккаунта — это баланс в токене WAVES c учетом лизинга, наименьший за последние 1000 блоков (подробнее о расчете генерирующего баланса). Механизм лизинга позволяет привлекать средства других пользователей для увеличения генерирующего баланса ноды, чтобы повысить частоту генерации блоков и, таким образом, получаемый доход. Подробнее о лизинге

          Список генерирующих нод в сети Waves, их балансы и статистика по блокам представлены на w8.io .

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

          Обратите внимание: нода с минимальным балансом 1000 WAVES генерирует лишь ~1 блок в месяц. Пользователям, не располагающим значительным количеством WAVES, рекомендуется для участия в генерации блоков не запускать собственную ноду, а сдавать WAVES в лизинг более высокопроизводительным генераторам.

          # Доход генератора блока

          Нода, которая добавила новый блок на блокчейн, получает вознаграждение:

          • Доля генератора в вознаграждении за блок. Текущий размер вознаграждения — 6 WAVES, из которых генератор получает 2 WAVES. С момента активации фичи № 23 “Boost Block Reward” вознаграждение за блок составит 60 WAVES, доля генератора — 20 WAVES (коэффициент ×10 действует 300 000 блоков на Mainnet).
          • LP-токены Waves DAO (WAVESDLP), соответствующие доле Waves DAO в вознаграждении за блок.
          • Комиссии за транзакции — нода получает 40% суммарной комиссии за транзакции в текущем блоке и 60% суммарной комиссии за транзакции в предыдущем блоке, в соответствии с протоколом Waves-NG.

          Более подробно расчет вознаграждения описан в статье Доход генератора блока.

          # Приложения

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

          Однако запуск собственной ноды предоставляет разработчику дополнительные возможности:

          • обмениваться данными с нодой без сетевых задержек,
          • делать более частые запросы, чем предусмотрено ограничениями публичного пула,
          • настраивать оптимальную конфигурацию ноды с учетом особенностей приложения,
          • устанавливать расширения, например Blockchain Updates для отслеживания изменений,
          • создавать собственные расширения.

          # Нода Scala и нода Go

          Нода Waves существует в двух вариантах реализации:

          • Нода Scala — основное приложение с максимальным набором функций.
          • Нода Go — альтернативное приложение с высокой скоростью работы, ориентированное на взаимодействие с gPRC-сервисами. Приложение находится в стадии разработки, использовать его в критически важных проектах пока не рекомендуется.

          Параллельная работа двух разных приложений делает сеть Waves менее уязвимой к ошибкам реализации протокола. Более подробно об отличии между двумя вариантами — в статье Нода на языке Go.

          Блок генезиса
          Лизинг
          Блок генезиса
          Лизинг