跳到正文
← 使用教程

GovTool支持率看不懂:核DRep、SPO和委员会票数分母

链小知 · 进阶 · 核验 · 依官方文档整理

从原行动与票数记录识别单位、epoch及展示/规范化口径,解释弃权、未投票和Unavailable。

开始前准备

  • 准备已有行动链接/标识、网络、类型、原票数与时点、字段/版本和状态材料;没有原分母或参数就保留未知。

1. 定位同一行动、网络和快照时点

准备原Governance Action标识、类型、网络、状态和票数时点。Ratified是达到治理规则要求,Enacted是已经在网络激活;Expired是未在截止前获批准。Info只有记录,不改变链上状态。

FAQ展示公式以live行动为范围;固定汇总源码对已结束行动使用ratified/expired/dropped时的tally epoch,对live使用当前epoch。不要把后来一次余额分布与历史票数相加。

检查结果:行动标识、类型、网络、状态与快照epoch明确,缺项标未知。

2. 先辨字段形状、单位与缺失值

原页面展示字段有dRepYesVotes、poolYesVotes、ccYesVotes等;固定规范化VoteAggregate有role、representation、yes、no、abstain、notVoted、totalEligible。后者DRep/SPO为stake(lovelace),CC为count(人数);展示组件对DRep/SPO格式化为ada,不能直接按屏幕缩写数当原最小单位。

保留材料的版本与字段形状。展示组件任一yes/no/abstain为null会显示Unavailable;FAQ也说取不到数据不显示零。角色整组省略、Unavailable和真实0不同。两套源码共存未证明当前站点适配路径;字段不足时停止换算。

检查结果:原字段、单位、版本以及缺失/省略/零分开。

3. DRep按原口径核分母和自动选项

FAQ的Total Active Stake为active DRep stake + auto no confidence −该行动明确Abstain;auto-abstain不在分母。NoConfidence把auto no confidence算Yes,其他行动算No;不要再把它算Not Voted。显示Abstain可含auto-abstain,不能把整项再从已调整分母扣一次。

规范化汇总则把明确abstain放在totalEligible内,计算支持比用yes/(totalEligible−abstain),auto-abstain仍在eligible外。只按已辨的形状计算。DRep分布按epoch更新、取最新投票;投票后退休会使原票失效,即使后来重新注册也不补回旧票。

检查结果:DRep自动选项、明确弃权和分母只处理一次,使用相同epoch。

4. SPO与委员会保留展示和汇总的差别

FAQ写SPO最新票按pool_stat.voting_power计权、百分比除pool_stat.stake,Abstain不扣分母;Not Voted数量扣Yes/No/Abstain,但其百分比写100−Yes%−No%。同版本展示组件也保留这种差别,因此该百分比不能直接乘分母还原未投票数量。CC展示为成员计数,同样不要将百分比剩余当纯未投票人数。

规范化源码对SPO用pool distribution/voting_power,并按未投票池的默认策略分类:HardForkInitiation为notVoted,bootstrap为abstain;其他full-governance行动还看奖励账户DRep委托,always-abstain为abstain,always-no-confidence随行动算Yes或No。它与FAQ的无自动调整描述不同,不能将两者混算。CC规范化eligible仅计当时有效、未过期、已授权hot key且未辞任的成员。

检查结果:SPO两种口径的差别、未投票默认策略及CC人数范围保留。

5. 核适用角色与阈值,勿把省略当零票

协议版本10及以后,FAQ写DRep总数始终显示;New Constitution、Treasury Withdrawal及不触及security-group的Parameter Change不显示SPO;NoConfidence/Update Committee不显示CC。这是角色适用范围,不代表这些角色投了零票。

DRep/SPO阈值取行动类型对应协议参数;CC展示阈值取quorum分子/分母,Info不显示CC阈值。展示组件有格式化和舍入,应保留原参数,不能拿四舍五入百分比断言恰好过线。固定汇总源码还检查committee_min_size,人数不足可passing=false;缺原参数或tally epoch则保留未知。

检查结果:适用角色、原阈值、版本、舍入和委员会最低人数分别核。

6. 把支持率结论与实际行动状态分开

整理每一角色的原值、分母、单位、epoch、数据是否可用及公式来源;版本映射未确认的记录保留两种说明,不自行选一套当当前站点真值。投票权按epoch快照,界面又可能延迟或缺数据,不能只靠实时余额截图或一张支持率图判已生效。

固定源码在缺分布/参数时可报STALE_DATA且retryable,这不等0票。以已有同一行动状态记录区分未达阈值、已Ratified与已Enacted;缺当前状态记录就保持结局未验证。

检查结果:票数解释有范围,实际状态有记录或明确未验证。

怎样确认完成

  • 得到同一行动的票数、角色、单位、epoch与分母对照;官方方法已核,当前实例部署及行动结局仍需原记录确认。

常见错误与边界

  • DRep/SPO以stake计权,委员会以人数计数,三组不能相加比较。
  • 展示的Not Voted百分比可能包含弃权残差;规范化totalEligible不是FAQ已扣弃权后的分母。
  • 固定源码能证方法与版本冲突,不能证明当前线上实例正在使用某条适配路径。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据