# Монетарная политика, управляемая сообществом
# Вознаграждение за блок
Вознаграждение за блок — это дополнительная эмиссия токена WAVES с появлением каждого нового блока на блокчейне. Вознаграждение распределяется между генератором блока, Waves DAO и смарт-контрактом для выкупа XTN.
Текущий размер вознаграждения за блок — 6 WAVES. С момента активации фичи № 23 “Boost Block Reward” вознаграждение за блок будет увеличено до 60 WAVES (коэффициент ×10 действует 300 000 блоков на Mainnet, 2000 блоков на Testnet и Stagenet). Сообщество генераторов может изменить размер вознаграждения за блок посредством голосования.
Вознаграждение за блок введено с момента активации фичи № 14 “Block Reward and Community Driven Monetary Policy”. Распределение вознаграждения введено с момента активации фичи № 19 “Block Reward Distribution” и скорректировано фичей № 20 “Capped XTN buy-back & DAO amounts”.
# Распределение вознаграждения
До активации фичи № 23 “Boost Block Reward” и через 300 000 блоков после активации:
- Если вознаграждение за блок более 6 WAVES, то Waves DAO и смарт-контракт для выкупа XTN получают по 2 WAVES, а генератор блока — остальное.
- Если вознаграждение за блок — от 2 до 6 WAVES, то Waves DAO и смарт-контракт для выкупа XTN получают по
(R - 2) / 2
(подразумевается целочисленное деление), гдеR
— вознаграждение за блок. - Если вознаграждение за блок менее 2 WAVES, генератор блока получает вознаграждение за блок полностью.
В диапазоне 300 000 блоков с момента активации фичи № 23 доля каждого участника рассчитывается как описано выше, а затем умножается на 10.
Если будет активирована фича № 21 “Cease XTN buy-back” (но не ранее чем через 100 000 блоков после активации фичи № 19), начисление доли вознаграждения смарт-контракту для выкупа XTN будет прекращено. Его долю будет получать генератор блока.
# Основные принципы голосования
- Каждая генерирующая нода может голосовать за то, чтобы увеличить, уменьшить или оставить без изменения текущий размер вознаграждения.
- Голосование длится 10 000 блоков.
- В результате голосования вознаграждение может увеличиться или уменьшиться на 0,5 WAVES либо остаться прежним.
- Выбранный размер вознаграждения остается неизменным на протяжении 50 000 блоков (около 35 дней), которые следуют за моментом окончания голосования. (До активации фичи № 20 этот период составлял 100 000 блоков.)
- Последние 10 000 блоков из периода в 50 000 блоков проходит голосование для следующего периода.
# Текущий статус голосования
Посмотреть текущий статус голосования и размер вознаграждения можно с помощью запроса к Node REST API.
Пример запроса:
curl -X 'GET' \
'http://nodes.wavesnodes.com/blockchain/rewards' \
-H 'accept: application/json'
Пример ответа:
{
"height": 3751610,
"totalWavesAmount": 11206966600000000,
"currentReward": 600000000,
"minIncrement": 50000000,
"term": 50000,
"nextCheck": 3789999,
"votingIntervalStart": 3780000,
"votingInterval": 10000,
"votingThreshold": 5001,
"votes": {
"increase": 0,
"decrease": 0
},
"daoAddress": "3PEgG7eZHLFhcfsTSaYxgRhZsh4AxMvA4Ms",
"xtnBuybackAddress": "3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv"
}
В примере выше значение JSON-поля currentReward
равняется 600 000 000 WAVELET — то есть 6 WAVES.
# Как голосовать
Генерирующая нода указывает новый желаемый размер вознаграждения с помощью настройки waves.rewards.desired в файле конфигурации ноды. Значение настройки указывается в WAVELET.
Если значение больше текущего размера вознаграждения, то генератор блока голосует за увеличение вознаграждения; если меньше — за уменьшение. Если значение настройки не задано в файле конфигурации, генератор голосует за сохранение текущего размера вознаграждения.
Когда нода генерирует блок, она записывает в него значение настройки waves.rewards.desired
из своего файла конфигурации. Если значение настройки не задано в файле конфигурации, то в блок записывается -1.
За время голосования в 10 000 блоков одна нода может сгенерировать несколько блоков — таким образом, одна нода может проголосовать несколько раз. Как часто нода генерирует блоки, определяется консенсусом LPoS.
# Подсчет голосов
Для подсчета голосов проверяются значения всех 10 000 блоков, которые были сгенерированы в период голосования.
Если в блоке записана -1 или величина, которая совпадает с текущим размером вознаграждения, то генератор блока голосует за сохранение текущего размена вознаграждения.
Если в блоке записано значение, которое больше текущего размера вознаграждения, то генератор голосует за увеличение вознаграждения; если меньше — за уменьшение.
Вознаграждение за генерацию блока увеличивается/уменьшается, только если за увеличение/уменьшение отдано более половины голосов из 10 000 — то есть 5001 голос или более. Размер текущего вознаграждения увеличивается/уменьшается с шагом в 0,5 WAVES.
# Пример
На высоте блокчейна 3 751 610 размер вознаграждения за генерацию блока составляет 6 WAVES. На высоте 3 780 000 начинается очередное голосование.
Предположим, в течение 10 000 блоков голосования 4500 голосов будет отдано за увеличение размера вознаграждения, 1500 — за уменьшение, 4000 — за то, чтобы размер вознаграждения остался прежним.
В результате с высоты 3 790 000 по высоту 3 839 999 размер вознаграждения останется прежним — 6 WAVES. Несмотря на то что за увеличение вознаграждения отдано больше всего голосов, этого недостаточно для изменения текущего размера вознаграждения. Чтобы текущий размер был увеличен, за увеличение должно быть отдано не менее 5001 голоса.
Следующее голосование будет проходить с высоты 3 830 000 по 3 839 999.
# Голосование в период действия фичи № 23
Фича № 23 не влияет на процедуру голосования. Коэффициент ×10 применяется только к итоговому вознаграждению за блок.
Таким образом:
- Генератор указывает желаемый размер вознаграждения до применения коэффициента ×10: например, 700 000 000, то есть 7 WAVES.
- При подсчете голосов желаемый размер вознаграждения сравнивается с текущим размером до применения коэффициента, то есть 6 WAVES.
- Если более половины голосов отдано за увеличение размера вознаграждения, текущий размер до применения коэффициента увеличивается на 0,5 WAVES, с 6 до 6,5 WAVES. Далее применяется коэффициент ×10, и на протяжении 50 000 блоков (но в пределах 300 000 блоков с момента активации фичи № 23) генератор блока, Waves DAO и смарт-контракт для выкупа XTN получают суммарно 65 WAVES за блок. (В случае уменьшения размера вознаграждения расчет аналогичный.)