Вики ZooBC
Proof of Participation

Пропущенные ходы, приостановка и исключение

Место в реестре узлов удерживается выполнением работы. Узел, выбранный для создания блока и не выпустивший его, стоит цепочке 15 секунд и получает пропущенный ход. Каждый пропущенный ход к тому же запускает часы: узел считается отсутствующим до своего следующего собственного блока, ничего не зарабатывает и теряет оценку участия. Четыре пропуска подряд выводят его из жеребьёвки (приостановка), а нулевая оценка отнимает у него место (исключение). На этой странице описан этот путь в том виде, в каком он работает начиная с версии 0.5.8.

Пропущенные ходы

Когда создаётся блок, каждый узел, который был выбран на более ранний раунд этой высоты и не создал блок, считается пропустившим производителем и получает пропуск. У узла, создавшего блок, собственный счётчик пропусков сбрасывается.

Причина не имеет значения. Узел, который был не в сети, узел, который оказался слишком медленным, и узел, который был в сети, но придержал свой блок, рассматриваются одинаково. Пропущенный ход есть пропущенный ход. (Придержать блок — к тому же единственный способ, которым производитель мог бы попытаться повлиять на сид; см. Сид блока (VRF).)

Отсутствие: никакого дохода, падающая оценка

С любого пропущенного хода и до своего следующего собственного блока узел считается отсутствующим. Пока он отсутствует:

  • он ничего не зарабатывает: ни билета лотереи coinbase, ни доли комиссий, ни доли пула долголетия;
  • его оценка участия падает на 5 пунктов (из 100) за каждую единицу, равномерно распределённых по блокам единицы.

Единица — это max(n, 2 880 блоков), где n — число узлов в наборе жеребьёвки. Пока узлов меньше 2 880, единица равна 2 880 блокам, то есть 12 часам. В более крупном реестре единица растёт вместе с n, потому что очередь каждого узла наступает лишь примерно раз в n блоков. В devnet нижняя граница единицы — 120 блоков (30 минут), поэтому там весь путь проходит в 24 раза быстрее.

Квитанции, которые подписывает узел, и пинг (описанный ниже) не прекращают состояние отсутствия. Его прекращает только собственный следующий блок узла. Поэтому узел, пропустивший один ход и вскоре создавший следующий блок, теряет немного дохода и самую малость оценки; узел, который не возвращается, продолжает терять.

Приостановка

На четвёртом пропущенном ходе подряд узел приостанавливается:

  • он выходит из жеребьёвки производителей, так что его ходы перестают стоить всем по раунду;
  • он сохраняет своё место в реестре, но считается отсутствующим, поэтому ничего не зарабатывает, а его оценка продолжает падать;
  • он выпадает из подсчёта мест для темпа допуска и из всех подсчётов двух третей, кроме списка подписантов spine-цепочки (см. Правила двух третей).

Короткий перерыв никогда не приводит к приостановке: если узел создал собственный блок в пределах последних 20 блоков, четвёртый пропуск его не приостанавливает (сам пропуск при этом засчитывается).

Чтобы вернуться, программа приостановленного узла отправляет пинг: подтверждение активности с собственного ключа узла, с комиссией 0, не чаще одного раза за 120-блочное окно и только от приостановленного узла. Это транзакция QueueAttendance (тип 59) — того же типа, который узел в очереди отправляет, чтобы показать, что он в сети. Пинг возвращает узел в жеребьёвку на испытательный срок. Он никогда не стирает пропуски и не останавливает потерю оценки; это происходит, только когда узел создаёт блок в один из своих следующих ходов.

Диаграмма состояний: активный узел приостанавливается на четвёртом пропуске подряд; пинг возвращает его в жеребьёвку на испытательный срок; собственный блок снова делает его активным; из приостановки или испытательного срока нулевая оценка ведёт к исключению.
Диаграмма состояний: активный узел приостанавливается на четвёртом пропуске подряд; пинг возвращает его в жеребьёвку на испытательный срок; собственный блок снова делает его активным; из приостановки или испытательного срока нулевая оценка ведёт к исключению.

Исключение

Когда оценка узла достигает нуля, он исключается. Его место закрывается, 90 % заблокированного стейка возвращаются владельцу, а 10 % уходят в пул долголетия (ZBC никогда не сжигаются; см. ZBC никогда не сжигается). Исключение никогда не оставляет меньше трёх активных узлов; когда действует эта нижняя граница, то, кого пощадить первым, решает отметка «последний раз видели». Квитанция, подписанная узлом и появившаяся в блоке, отмечает его как увиденного; она не двигает ничего, кроме этой отметки.

Каждый узел начинает с 20 %, поэтому то, сколько продержится молчащий узел, зависит от его оценки в момент, когда он замолчал:

Оценка в момент, когда узел замолчалМеньше 2 880 узлов5 760 узлов10 000 узлов
20 % (начальная оценка)2 дня4 дня6,9 дня
60 %6 дней12 дней20,8 дня
100 %10 дней20 дней34,7 дня

Подъём втрое медленнее падения: пока узлов меньше 2 880, узел, который создаёт все свои блоки вместе с квитанциями, поднимается от 0 до 100 % за 30 дней и от 20 % до 100 % за 24 дня. Доверие медленно зарабатывается и быстро теряется.

Оценка в зависимости от дней при числе узлов меньше 2 880: молчащие узлы падают со 100, 60 и 20 % до нуля за 10, 6 и 2 дня; работающий узел поднимается от 0 до 100 % за 30 дней.
Оценка в зависимости от дней при числе узлов меньше 2 880: молчащие узлы падают со 100, 60 и 20 % до нуля за 10, 6 и 2 дня; работающий узел поднимается от 0 до 100 % за 30 дней.

Связанные правила

  • Владелец, удаляющий узел, пока тот отсутствует или приостановлен, теряет 10 % стейка (см. Выход из реестра).
  • Новый узел ничего не зарабатывает, пока не станет зрелым: 4 единицы после допуска и один собственный блок (см. Зрелость и доходы).
  • Доказанное двойное подписание считается пропуском и делает производителя отсутствующим до его следующего собственного блока (см. Двойное подписание (эквивокация)).
  • Каждое число на этом пути (5 пунктов, единица, начальная оценка) — генезис-параметр цепочки.

См. также