Управление

Назначение смарт-контракта cyber.govern

Системный смарт-контракт cyber.govern содержит логику выбора активных валидаторов и распределения вознаграждения за производство блоков в соответствии с положениями DPoS.

В состав смарт-контракта cyber.govern входит операция-действие onblock.

Операция-действие onblock

Операция-действие onblock является системной и недоступна внешнему пользователю, вызывается смарт-контрактом cyber.bios. Операция содержит логику производства блоков, в том числе логику эмиссии токенов и назначение валидаторов. Сигнатура операции имеет вид:

[[eosio::action]] void onblock(name producer);

Параметр producer — имя валидатора, который произвел очередной блок.

Операция-действие onblock вызывается смарт-контрактом cyber.bios на каждый произведенный валидаторами блок. Для вызова onblock требуется авторизация аккаунта смарт-контракта cyber.govern.

Положения о валидаторах

Статус валидатора

  • Статус кандидата в валидаторы может получить любой пользователь, зарегистрировавший себя в качестве кандидата в валидаторы и имеющий собственный стейк в размере не менее 50000 CYBER.

  • Валидатор избирается голосованием пользователей из числа кандидатов в валидаторы.

  • По результатам голосования кандидаты в валидаторы разделяются на две группы — основных валидаторов, получивших наибольшее количество голосов, и резервных кандидатов.

Активные валидаторы

  • Для производства блоков автоматически составляется расписание активных валидаторов, в которое входят все основные валидаторы и один резервный кандидат.

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

  • Активные валидаторы производят блоки поочередно в соответствии с расписанием.

  • Количество активных валидаторов изменяется в сторону увеличения и составляет от 21 до 101 включительно.

  • Расписание активных валидаторов обновляется периодически через каждые 4×A произведенных блока, где A — текущее количество активных валидаторов.

  • Количество активных валидаторов увеличивается на единицу, если выполняются два условия:

    • с момента последнего увеличения количества активных валидаторов прошло не менее 14 суток;

    • количество голосов, отданных за основных валидаторов, составило менее 90 % от количества всех отданных за кандидатов голосов.

Вознаграждение валидатору

  • Валидатору начисляется вознаграждение за произведенные им блоки в соответствии с положениями DPoS и с учетом годовой эмиссией токенов. Средства, полученные от годовой эмиссии токенов, распределяются в следующих пропорциях:

    • валидатору отчисляются средства в размере 10 %;

    • в пул воркеров отчисляются средства в размере 20 %;

    • в общий пул вознаграждений по стейку отчисляются средства в размере 70 %. Часть средств из этого пула выделяется валидатору в соответствии с процентом отданных за него голосов от общего количества всех голосов.

  • Начисленное вознаграждение валидатору за произведенные им блоки распределяется между валидатором и проголосовавшими за него участниками в следующих пропорциях:

    • валидатор получает вознаграждение в виде отчисления в размере 10 % и комиссии в размере, установленной им во время регистрации в кандидаты;

    • оставшаяся часть вознаграждения распределяется между проголосовавшими за него прокси-аккаунтами и рядовыми пользователями.

Last updated