ZooBC 维基
运行节点

队列

每个新节点从注册到获得准入之间,都要在一个公开队列中等待。队列决定下一个准入谁;准入计时器决定何时准入。排序在投入与耐心之间取得平衡:起作用的是质押乘以已等待的时间。

排序

排队节点按其质押乘以已等待的区块数排名。相同时,注册高度较早者优先,其次是节点 id 较小者。排队节点可以随时增加质押,并保留已积累的等待时间;增加质押只需支付交易手续费,并需要与注册时相同的所有权证明(见 注册节点)。

这一乘积意味着:要超过等待时间长十倍的人,你必须锁定十倍的质押。

两个按比例绘制的矩形,宽为质押,高为已等待天数:A 的 6,000 大于 B 的 5,000,因此 A 先获得准入
两个按比例绘制的矩形,宽为质押,高为已等待天数:A 的 6,000 大于 B 的 5,000,因此 A 先获得准入

排队节点没有参与分数。节点在获得准入时得到 20% 的默认分数,而准入计时器每次只放入一个节点,因此两个节点绝不会同时进入。

露面:出勤

席位是为工作的节点准备的,因此排队节点必须在每个 5,760 个区块(一天)的窗口内表明一次自己在线。节点在链上的任何迹象都算数,例如它签署的一份见证。如果没有任何迹象,节点软件会自动发送一笔 QueueAttendance 交易(类型 59)。其手续费从质押中扣除,绝不会使质押低于最低额,并进入长效池。

一个没有任何迹象的窗口会让节点的等待时间重新开始计算。在整个等待期内,节点最多可以错过相当于一个准入周期的窗口数:max(2, 最大准入延迟 ÷ 一天),在最大延迟为 90 天的 mainnet 上即 90 个窗口。错过第 91 个窗口会使它被移出队列。要获得准入,节点还必须在最近一个被评估的窗口中出勤。

离开队列要付出 10%

撤回排队节点要付出其质押的 10%,即使所有者使用的是正规的 RemoveNodeRegistration 交易。因缺勤被移出队列同样要付出 10%。在这两种情况下,其余 90% 退还给所有者(被移出队列时立即退还),这 10% 进入长效池,长效池支付给正在工作的节点(见 资金池)。没有任何东西被销毁(见 ZBC 从不销毁)。

这项收费的存在是因为入队最低额。新加入者锁定的质押必须至少为已排队节点质押中位数的一半。如果离开不收费,有人就可以在队列中存入一大笔质押,把其他所有人的最低额推高,然后免费撤回。

当所有活跃节点都被暂停时

队列还充当后备。如果所有活跃节点都被暂停,排位最靠前且保持出勤的排队节点可以产出一个区块,而该区块会立即让它获得准入。因此,即使整个注册表都陷入沉默,链也能恢复运行。

查看队列

队列是公开的。GET /api/v1/nodes?status=queued 列出每个排队节点及其质押和注册高度,因此任何人都可以计算排序,看出下一个是谁。

另见