Пропущенные ходы, приостановка и исключение
Место в реестре узлов удерживается выполнением работы. Узел, выбранный для создания блока и не выпустивший его, стоит цепочке 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 дня. Доверие медленно зарабатывается и быстро теряется.
Связанные правила
- Владелец, удаляющий узел, пока тот отсутствует или приостановлен, теряет 10 % стейка (см. Выход из реестра).
- Новый узел ничего не зарабатывает, пока не станет зрелым: 4 единицы после допуска и один собственный блок (см. Зрелость и доходы).
- Доказанное двойное подписание считается пропуском и делает производителя отсутствующим до его следующего собственного блока (см. Двойное подписание (эквивокация)).
- Каждое число на этом пути (5 пунктов, единица, начальная оценка) — генезис-параметр цепочки.