ZooBC 维基
参与证明 (PoP)

错过轮次、暂停与除名

节点注册表中的席位要靠完成工作来保住。一个被抽中出块却没有交出区块的节点会让链耽误 15 秒,并记一次错过轮次。每一个被跳过的轮次还会启动一个时钟:该节点在其下一个自己的区块之前处于缺席状态,什么也赚不到,并不断失去参与分数。连续错过四次会使它退出抽签(暂停),分数降到零则会使它失去席位(除名)。本页描述这条路径从 0.5.8 版本起的运作方式。

错过轮次

当一个区块产出时,每个在该高度较早轮次被抽中却没有出块的节点,都是被跳过的出块者,各记一次错过。产出该区块的节点则重置自己的错过计数器。

原因并不重要。离线的节点、太慢的节点,以及在线却扣住区块不发的节点,都被同等对待。被跳过的轮次就是被跳过的轮次。(扣住区块也是出块者试图影响种子的唯一途径;见 区块种子(VRF)。)

缺席:没有收入,分数下降

从任何一个被跳过的轮次起,直到其下一个自己的区块,节点都处于缺席状态。缺席期间:

  • 它什么也赚不到:没有 coinbase 抽奖券,没有手续费份额,也没有长效池份额;
  • 它的参与分数每个分数单位下降 5 分(满分 100 分),均匀分摊到该单位的各个区块上。

单位为 max(n, 2,880 个区块),其中 n 是可选节点的数量。节点少于 2,880 个时,单位为 2,880 个区块,即 12 小时。在更大的注册表上,单位随 n 增长,因为每个节点大约每 n 个区块才轮到一次。在 devnet 上,单位的下限是 120 个区块(30 分钟),因此整条路径在那里要快 24 倍。

节点签署的回执和 ping(见下文)都不能结束缺席状态,只有它自己的下一个区块才能。因此,错过一个轮次并很快产出下一个区块的节点,只会损失一点收入和一丝分数;一直不回来的节点则会持续损失。

暂停

连续第四次错过轮次时,节点会被暂停:

  • 它退出出块者抽签,因此它的轮次不再让所有人白白浪费一轮;
  • 它保留在注册表中的席位,但按缺席计算,因此什么也赚不到,分数持续下降;
  • 它不再计入准入节奏的席位数和每一项三分之二计数,脊链的签名者名单除外(见 三分之二规则)。

短暂的空档永远不会使节点被暂停:如果它在最近 20 个区块内产出过自己的区块,第四次错过不会使它被暂停(但这次错过仍会被计入)。

要恢复,被暂停节点的软件会发送一个 ping:一份由节点自身密钥发出的在线证明,手续费为 0,每个 120 区块窗口内最多一次,且只有被暂停的节点发出时才有效。它是一笔 QueueAttendance 交易(类型 59),与排队节点用来表明自己在线的交易类型相同。ping 让节点以观察期身份重返抽签。它从不抹去错过记录,也不会停止分数的损失;只有当节点在接下来的某一个轮次产出区块时,损失才会停止。

状态图:活跃节点在连续第四次错过时被暂停;ping 让它以观察期身份重返抽签;它自己的区块使它重新变为活跃;处于暂停或观察期时,分数归零都会使它被除名。
状态图:活跃节点在连续第四次错过时被暂停;ping 让它以观察期身份重返抽签;它自己的区块使它重新变为活跃;处于暂停或观察期时,分数归零都会使它被除名。

除名

当节点的分数降到零时,它就会被除名。它的席位关闭,锁定质押的 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 天内降到零;正常工作的节点在 30 天内从 0 升到 100%。
节点少于 2,880 个时分数随天数的变化:沉默的节点分别从 100%、60% 和 20% 在 10 天、6 天和 2 天内降到零;正常工作的节点在 30 天内从 0 升到 100%。

相关规则

  • 所有者若在节点处于缺席或暂停状态时将其移除,会损失 10% 的质押(见 退出注册表)。
  • 新节点在成熟之前什么也赚不到:成熟需要准入后经过 4 个单位并产出一个自己的区块(见 成熟与收益)。
  • 被证实的双签算作一次错过,并使该出块者在其下一个自己的区块之前处于缺席状态(见 双签(equivocation))。
  • 这条路径上的每个数字(5 分、单位、起始分数)都是该链的创世参数。

另见