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 содержит новые фичи (features), которые должны быть активированы многими нодами одновременно. Раньше функции активировались по временным отметкам, и это ставило владельцев нод в жесткие рамки по срокам проведения обновления. Неспособность обновить ноду вовремя приводила к непреднамеренным форкам. Протокол активации дает сообществу Waves возможность применять новые фичи в своем темпе или совсем не применять некоторые из них.

          # Идентификация фич

          Каждая новая фича имеет уникальный идентификатор — порядковый номер. Список новых фич с номерами обычно представлен в новом релизе.

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

          # Статусы фич в блокчейне

          Статус фичи хранится в блокчейне. Первоначальный статус фичи — Voting, которое затем может измениться на Approved — это означает, что фича получила необходимое количество голосов от генераторов блоков. По истечении определенного периода (количества блоков) фича в статусе Approved получает статус Activated. С этого момента (блока) ноды, которые поддерживают эту фичу, начинают работать по-новому.

          # Голосование

          Голосование осуществляется нодами, которые генерируют блоки. Если генератор блоков поддерживает фичу и хочет проголосовать за нее, он должен указать номер фичи в списке поддерживаемых фич в разделе features файла конфигурации ноды. После этого каждый блок, сгенерированный этой нодой, будет содержать номера поддерживаемых фич. Подробнее о разделе features в файле конфигурации ноды см. в подразделе Настройки фич статьи Конфигурация ноды.

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

          Note: См. условия голосования в Stagenet и Testnet.

          Каждые 10 000 блоков на Mainnet нода суммирует количество блоков с поддержкой фичи. Если фича поддерживается в более чем 80% блоков в течение последнего периода голосования, она становится утвержденной. В противном случае голосование продолжается и может занять другой период голосования или более.

          ⚠️ См. [условия голосования](/ru/waves-node/features#активация новых фич) на Testnet и Stagenet.

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

          Прежде чем утвержденная фича будет активирована, должны быть сгенерированы еще 10 000 блоков. Этот период предназначен для обновления нод до новой версии.

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

          # Пример

          Допустим, в версии 1.0.0 была введена новая фича № 123.

          Генерирующий пул SuperMiners с общей долей владения 40% поддерживает фичу. Администратор SuperMiners обновляет ноду с версии 0.9.9 до 1.0.0 и добавляет 123 в список поддерживаемых фич в файле конфигурации. Нода SuperMiners начинает добавлять номер фичи 123 в каждый сгенерированный блок, начиная с высоты 1228765. Другие майнеры не поддержали фичу и только некоторые из них обновили ноды до версии 1.0.0.

          На блоке номер 1230000 ноды посчитали, что только 50% блоков поддерживают фичу 123. Таким образом, статус фичи остается неизменным, голосование за этот период не увенчалось успехом и, следовательно, продолжается.

          В течение следующих 10 000 блоков SuperMiners убедили некоторых майнеров поменьше поддержать эту фичу. На блоке 1240000 оказывается, что функция поддерживается в 9102 из последних 10 000 блоков, то есть в 91%. Таким образом, фича становится утвержденной. В этот момент ноды версии 0.9.9 и более ранних предупреждают своих владельцев об утверждении неподдерживаемой фичи.

          На момент генерации 1250000 блока фича 123 будет активирована и ее начнут использовать ноды версии 1.0.0 и выше. Ноды более ранних версий перестанут работать.

          Фичи
          Собственный блокчейн
          Фичи
          Собственный блокчейн