# Вознаграждение за генерацию блока
Вознаграждение за генерацию блока — возможность блокчейна, в рамках которой генераторы блоков получают фиксированное вознаграждение в WAVES за каждый сгенерированный блок.
Вознаграждение за генерацию блока происходит за счет дополнительной эмиссии токена WAVES.
Сообщество генераторов может изменить размер вознаграждения посредством голосования.
# Текущий размер вознаграждения
Посмотреть текущий размер вознаграждения можно с помощью запроса к Node API. В ответе на запрос возвращается JSON, значение поля currentReward
которого — текущий размер вознаграждения в WAVELET.
Пример запроса:
curl https://nodes.wavesnodes.com/blockchain/rewards
Пример ответа:
{
"height": 1742254,
"totalWavesAmount": 10001353000000000,
"currentReward": 600000000,
"minIncrement": 50000000,
"term": 100000,
"nextCheck": 1839999,
"votingIntervalStart": 1830000,
"votingInterval": 10000,
"votingThreshold": 5001,
"votes": {
"increase": 0,
"decrease": 0
}
}
В примере выше значение JSON-поля currentReward
равняется 600 000 000 WAVELET — т.е. 6 WAVES.
# Изменение размера вознаграждения с течением времени
Каждые 100 000 блоков, т.е. приблизительно каждые 70 дней, среди генераторов начинается новое голосование за изменение текущего размера вознаграждения.
Длительность голосования — 10 000 блоков. В течение этого времени генераторы голосуют за то, чтобы увеличить, уменьшить или оставить без изменения текущий размер вознаграждения.
Выбранный размер вознаграждения остается неизменным на протяжении 100 000 блоков, которые следуют за моментом окончания голосования.
# Голосование
Генерирующая нода указывает новый желаемый размер вознаграждения с помощью настройки waves.rewards.desired в файле конфигурации ноды; значение настройки указывается в WAVELET.
Если значение больше текущего размера вознаграждения, то генератор блока голосует за увеличение вознаграждения; если меньше — за уменьшение. Если значение настройки не задано в файле конфигурации, генератор голосует за сохранение текущего размера вознаграждения.
Когда нода генерирует блок, она записывает в него значение настройки waves.rewards.desired
из своего файла конфигурации. Если значение настройки не задано в файле конфигурации, то в блок записывается -1.
За время голосования в 10 000 блоков одна нода может сгенерировать несколько блоков — таким образом, одна нода может проголосовать несколько раз. Как часто нода генерирует блоки определяется консенсусом LPoS.
# Как считаются голоса
Для подсчета голосов проверяются значения всех 10 000 блоков, которые были сгенерированы в период голосования.
Если в блоке записана -1 или величина, которая совпадает с текущим размером вознаграждения, то генератор блока голосует за сохранение текущей величины вознаграждения.
Если в блоке записано значение, которое больше текущего размера вознаграждения, то генератор голосует за увеличение вознаграждения; если меньше — за уменьшение.
Вознаграждение за генерацию блока увеличивается/уменьшается только если за увеличение/уменьшение отдается более половины голосов из 10 000 — то есть 5 001 голос или более. Размер текущего вознаграждения увеличивается/уменьшается с шагом в 0,5 WAVES.
# Примеры
# Пример 1
На высоте блокчейна 2 000 000 размер вознаграждения за генерацию блока составляет 5 WAVES. На высоте 2 090 000 начинается очередное голосование.
В течение 10 000 блоков голосования 6 000 голосов было отдано за увеличение размера вознаграждения, 1 000 — за уменьшение, 3 000 — за то, чтобы размер вознаграждения остался прежним.
С высоты 2 100 000 по высоту 2 199 999 новый размер вознаграждения составит 5,5 WAVES, потому что шаг изменения размера вознаграждения — 0,5 WAVES.
Следующее голосование будет проходить с высоты 2 190 000 по 2 199 999.
# Пример 2
На высоте блокчейна 2 100 000 размер вознаграждения за генерацию блока составляет 5,5 WAVES. На высоте 2 190 000 начинается очередное голосование.
В течение 10 000 блоков голосования 4 500 голосов было отдано за увеличение размера вознаграждения, 4 000 — за уменьшение, 1 500 — за то, чтобы размер вознаграждения остался прежним.
С высоты 2 200 000 по высоту 2 299 999 "новый" размер вознаграждения будет прежним — 5,5 WAVES. Несмотря на то что за увеличение вознаграждения было отдано больше всего голосов, этого недостаточно для изменения текущего размера вознаграждения. Чтобы текущий размер был увеличен, за увеличение должно быть отдано не менее 5 001 голоса.
Следующее голосование будет проходить с высоты 2 290 000 по 2 299 999.