注册节点
注册这一步,把一个只跟随链的节点变成席位的候选者。所有者发送一笔交易,写明节点密钥、锁定一笔质押,并证明所有者与节点密钥相互归属。然后节点加入公开队列。它只有在获得准入后才会出块。
注册交易
NodeRegistration(类型 2)携带节点密钥、所有者账户、质押和所有权证明。所有者像签署其他任何交易一样签署它。质押和手续费从所有者的账户中扣除;最低手续费是 0.025 ZBC(2,500,000 个原子单位)的基础操作费,加上交易字节的费用(见 手续费)。
没有人审核运营者,没有硬件测试,也没有审批步骤。唯一的检查就是每个节点都以相同方式执行的规则。
所有权证明
这份证明把一把节点密钥绑定到一个所有者。它是一条由节点密钥签名的消息,对于普通的 ZBC_ 所有者,其格式如下:
| 字段 | 字节数 |
|---|---|
| 所有者账户类型 | 4 |
| 所有者密钥 | 32 |
| 一个近期区块的哈希 | 32 |
| 该区块的高度 | 4 |
| 节点密钥的 Ed25519 签名 | 64 |
前 72 个字节按原样签名,不先做哈希,因此整个证明为 136 个字节。每个节点检查四件事:
- 签名能用节点密钥验证;
- 消息中的账户与交易的发送者逐字节完全一致;
- 该区块以该哈希存在于检查节点自己的链上;
- 该区块的年龄最多为 720 个区块(3 小时)。
由于证明写明了一个近期区块,它既不能提前很久准备,也不能在之后重复使用。增加质押和认领节点时也需要同样的证明,而席位转移到新的节点密钥时,由新密钥签署一份(见 节点的密钥)。
锁定多少
节点进入队列所需的最低质押取以下两个值中的较大者:
- 队列最低额,在 mainnet 上起始为 100 ZBC。它是席位投票决定的价格之一(见 价格投票):取值范围从一个原子单位到 250 ZBC,每个快照周期最多变动一次,每次投票最多上调 20% 或下调至一半。
- 已排队节点质押中位数的一半,它随需求变化。
这一检查只在入队时进行。最低额上调时,已在等待的节点保留其位置。任何人都可以锁定超过最低额的质押以在队列中前移,队列按质押乘以等待时间排序;排队节点也可以在之后增加质押,同时保留已积累的等待时间(见 队列)。
注册之后
完成注册后,节点处于排队状态。它还没有参与分数,并且必须每天表明一次自己在线(见 队列)。当准入计时器轮到它时,它的状态变为已注册,并获得 20% 的默认分数(见 准入节奏),在成熟后开始获得收益(见 成熟与收益)。
在获得准入之前撤回节点要付出其质押的 10%(见 退出注册表)。席位已被删除的节点密钥可以再次注册;它会开始一条全新的队列记录,不从过去继承任何错过的轮次。