验证人评分方法论

算法版本: v4.8 · 最后更新:2026-08-19

FlareWatch 为每个 P-Chain 验证人分配一个 0–100 的综合评分,跨越 9 个维度。数学计算是确定性的,输入来自公开链数据 [Flare Explorer] [FSE] [Flaremetrics],相同的算法适用于网络上的每个验证人——包括 FlareWatch 自己的验证人节点,它由这个确切函数评分,不获得特殊处理。本页面记录每个维度和阈值,以便运营者和质押者能够准确了解评分如何计算以及为什么选择每个数值。这里的每项声明都链接回其主要的链上或上游来源——请参阅底部的 来源与参考。

范围:本页面记录的是 验证人评分 ——您在验证人页面上 质押模式 中看到的内容(向 P-Chain 验证人委托 FLR 以获得 VRM + MIRROR 奖励)。委托模式 中显示的 FTSO 提供商评分(向 FTSO 数据提供商委托 WFLR)使用独立的 13 维算法,重点关注数据提供商性能——准确性、V2 协议参与等。这是两个不同的链上角色,具有不同的奖励,单独评分。请参阅 FTSO 提供商评分方法论 了解委托方面。
无 SGB 等效项:此评分仅适用于 Flare P-Chain 验证人。Songbird 的 P-Chain 验证人集仅限于 Flare Foundation 批准的实体,因此零售 SGB P-Chain 委托很少见,质押标签仅用于 FLR。质押模式中没有 FLR / SGB 切换。对于 SGB FTSO 委托,请参阅 FTSO 提供商评分方法论,其涵盖两条链。
我们如何计算APY — 您实际赚取的

质押表中的 APY 是委托人获得的全额收益率——单一数字,无需心算。它是通过 Flare 奖励脚本测量的(实际支付而非公式),扣除验证者费用后,每个纪元随实际奖励变动。在 FlareWatch 上,APY 表示费用后,APY 表示费用前。

Total APR = Staking rewards (VRM) + MIRROR (FTSO-inflation share)
  • 质押奖励 (VRM) — 委托者在验证奖励中的净份额 = Σ 委托者支付 ÷ Σ 委托(Flare 的自身分配;费用已移除)。因为 Flare 按质押比例支付,这在整个网络大致均匀,主要区别在于 费用 — 较低的费用意味着更高的委托费率。
  • MIRROR — 您的质押在 FTSO 通胀中的份额,额外支付,仅在运行活跃 FTSO 堆栈的验证人上。它取决于验证人的 FTSO 参与度,在最近的 epoch 上测量。

与Flare Systems浏览器比较? FSE和其他浏览器显示仅委托费率 — 他们不添加MIRROR — 所以我们的总APY在任何MIRROR活跃验证人上读取更高(间隙正好是上面的MIRROR行)。两个数字都是来自相同奖励脚本数据的约8周期移动平均数,所以验证人的窗口中期费用变化在任一站点上的当前费用快照后滞后,直到它在窗口中老化。

APY 工具提示中出现的另外两个数字不是委托人的收益率:理论基线(网络总体 APY × (1 − 费用),仅质押——在积累足够的测量历史之前用作备选方案),以及运营者的自有资金收益(验证者自身的质押回报,由费用捕获放大——运营者指标,而非您的收益)。

对于评分:净收益维度仅评分VRM委托费率,MIRROR在其自己的维度中被评分 — 所以MIRROR从不被双倍计算,即使它包含在显示的总APY中。

评分等级
90+顶级 — 排名前约 10–20% 的运营者。典型特征:全栈验证人 + FTSO + FDC、低端费用、MIRROR 活跃、一致的 FIP-10 可靠性、健康的委托者基础、有意义的自我质押。不需要单一维度 — 运营者通过在大多数类别中堆积优势来达到顶级。
80–89强劲 — 符合大多数关键基准;距离顶级还差一两个维度。
70–79良好 — 符合所有基线标准;无重大缺陷。
60–69可接受 — 可用但没有区分。
<60低于中位数 — 一个或多个维度存在显著缺陷。数学事实,不是质量判断。
维度(总计 100)
可用性20 最高分
什么: P-Chain RPC 即时可用性和最近奖励 epoch 的历史 FIP-10 可用性资格比率的组合。
如何: RPC曲线:≥ 99.5% → 17至20。99–99.5% → 13–17。95–99% → 4–13。90–95% → 0–4。< 90% → 0。该结果随后乘以uptimeReliability(来自公开reward-scripts数据的最后8个奖励周期中的epochsIncluded / epochsObserved——自v4.2以来的完整FIP-10最低限值,不仅是RPC正常运行时间)。v3.9修复了在95%处的反常断崖,运行时间从94.99% → 95.00%会扣除4分。
if (uptime >= 99.5)   raw = 17 + (uptime - 99.5) * 6
else if (uptime >= 99) raw = 13 + (uptime - 99)   * 8
else if (uptime >= 95) raw = 4 + (uptime - 95) * 2.25    // v3.9: was (u - 95) * 3.25 starting at 0
else                   raw = max(0, uptime - 90) * 0.8   // 90 → 0, 95 → 4 (continuity)
raw = clamp(raw, 0, 20)

reliability = epochsIncluded / epochsObserved   // last ~8 epochs · v4.2: the
                                                // FULL FIP-10 minimums set
                                                // (uptime + FSP + FTSO + FDC),
                                                // not RPC-uptime alone

score = raw * clamp(reliability, 0, 1)                 // dimension max 20
为什么: 在 v3.4 之前,此维度本质上是死的 — 92.9% 的活跃验证人具有 100% RPC 可用性,因此曲线对每个人评分相同。可靠性比率是一个真实的时间序列信号:在最近 8 个 epoch 中有 3 个未能满足 FIP-10 最低条件的验证人具有 62.5% 的可靠性评分,无论即时 RPC 目前报告什么。故意比 FIP-10 的 80% 协议底线更严格。每个 epoch 的资格数据由 Flare Foundation 在其奖励脚本存储库中发布。
净收益率18 最高分
什么: 委托者获得的扣除费用后的质押奖励 (VRM) 费率,以网络中位数为基准。
如何: scoreAPR = 测量的净委托费率(delegationAPY:Σ delegatorRewardAmount / Σ delegated,来自 Flare Foundation 奖励脚本,最后约 8 个 epoch),在可用时,否则理论 baseAPR = 总额 × (1 − 费用)。评分 = (scoreAPR / medianAPR) 锚定:比率 0.6 → 0 分,1.0(中位数)→ 12 分,1.2 → 18 分。重要:此维度评分仅 VRM(验证奖励)费率 — MIRROR 在 MIRROR 参与维度中单独评分,因此此处不重复计算。显示的
scoreAPR = delegationAPY > 0 ? delegationAPY : baseAPR   // VRM, net of fee
medianAPR = median(scoreAPR across all validators)
cappedAPR = min(scoreAPR, 25)                  // APY_DISPLAY_CAP

if (medianAPR > 0):
  ratio = cappedAPR / medianAPR
  score = clamp(((ratio - 0.6) / 0.6) * 18, 0, 18)
else:
  score = min(18, (cappedAPR / 8) * 18)        // fallback: BASE_APY = 8
为什么: 比率的两侧都是净委托费率(测量的 delegationAPY vs 理论总额×(1−费用)),因此比较是对等的 — 不再由当输入为预费用总额费率时的 1/(1−费用) 膨胀(约 2 倍的
费用合理性7 最高分
什么: 防止超过协议费用下限的提取,采用分段线性平滑机制。
如何: 锚点 = max(观察到的最低活跃费率、协议验证器费用下限 — 自 Granite 硬分叉以来为 20%,日期 2026-07-14)。任何费率等于或低于锚点 → 满分 7 分。超过锚点时,线性斜坡上升,在接下来的 20 个费率点中斜率逐渐加陡(锚点+5 → 6 分、锚点+10 → 4.5 分、锚点+15 → 2.5 分、锚点+20 → 0 分):小幅超额几乎不受惩罚,提取行为会遭到重罚。Granite 前,锚点为绝对值 5%;下限限制意味着任何运营者都不会因收取法定最低费率而受罚。
// anchor = max(observed minimum active fee, 20% protocol floor)
d = fee - anchor                                  // distance above market best
if (d <= 0)       score = 7                       // at/below best available
else if (d <= 5)  score = 7   - d * 0.2           //  0 → 5 over: 7 → 6
else if (d <= 10) score = 6   - (d - 5)  * 0.3    //  5 → 10 over: 6 → 4.5
else if (d <= 15) score = 4.5 - (d - 10) * 0.4    // 10 → 15 over: 4.5 → 2.5
else if (d <= 20) score = 2.5 - (d - 15) * 0.5    // 15 → 20 over: 2.5 → 0
else              score = 0
// fees > anchor+20 saturate at 0/7 — the v4.5 extreme-fee
// penalty below takes over from there
为什么: 净收益已在交付条款中计入按百分比费率;此维度仅标记费率明显高于协议和市场允许水平的运营者。一旦每项费率都达到强制 20% 下限,所有人在此维度都会获得满分,该维度将停止区分 — 这是设计使然:无人能低于的数字无法区分任何人。
运营者质量12 最高分
什么: 取两个独立信号中的较高者:验证基线(身份信心)和 FTSO 衍生的运营性能。
如何: 验证基线:精选层级(+7)通过两种方式达到 — 手动审查的 KNOWN_VALIDATORS 条目或通过客观行为自动晋升(v3.10:观察 90+ 天且 25+ 运营者聚合委托者且当前未缩减且自我质押 ≥ FIP-10 底线)。从 Flaremetrics 或 FSE 自动发现的名称 → +3。未验证 → 0。FTSO 衍生:线性插值 FTSO 评分 50 → 4 分高达 FTSO 评分 100 → 12 分(低于 50 楼在 4)。最终评分是 max(验证,FTSO 衍生) — FTSO 参与只能帮助,永远不会伤害。
// Verification baseline (v3.10 hybrid)
isCurated = (in KNOWN_VALIDATORS) OR (
  daysObserved >= 90 AND
  operatorDelegatorCount >= 25 AND
  retention30d >= -15% AND
  selfBondFLR >= 1_000_000
)

if (isCurated)                       verification = 7
else if (name auto-discovered)      verification = 3
else                                verification = 0

// FTSO-derived (only when ftsoOperatorScore is a number)
clamped = clamp(ftsoOperatorScore, 50, 100)
ftsoDerived = 4 + (clamped - 50) * (8/50)   // FTSO 50 → 4, FTSO 100 → 12

// Final score
score = max(verification, ftsoDerived)
为什么: 奖励运行完整堆栈(验证器 + FTSO + FDC)的运营者,同时不因受信任运营者以中等分数参与 FTSO 而对其进行惩罚。v3.8 max() 逻辑明确防止了
MIRROR 参与12 最高分
什么: 验证者的 nodeID 是否实际向质押者交付 FTSO 通胀份额——既包括到达委托人的部分(手续费透传),也包括自 v4.6 起的交付金额相对于整体的情况。
如何: Active → 10 × (1 − fee/100)。Paused → 5 × passthrough。Inactive(任何地方都无参与信号)→ 0。无数据(真正未观测到的验证者)→ 5 × passthrough。v3.6 扩展了 'active' 信号以包括链上 RewardClaimed(claimType=3) 事件和规范 FSP Merkle JSON 中的 claimType=3 分配——两者任一即可。这捕获了 MIRROR 已分配但尚未在链上认领的验证者(如自委托提供者,其结算路径不会触发标准认领事件)。v4.6 幅度奖励(最多 +2,维度上限 12):仅针对 mirror-active 验证者,clamp((mirrorAPY / networkMedianMirrorAPY − 1.2) × 5, 0, 2)——向委托人交付高于中位数 MIRROR 利率(扣除手续费后)的验证者获得奖励。按网络中位数利率锚定,因此大小中立:交付高利率的小验证者与大验证者获得相同奖励。
passthrough = max(0, 1 - fee / 100)

if (mirrorStatus == "active")    base = 10 * passthrough
else if (mirrorStatus == "paused")   base = 5 * passthrough
else if (mirrorStatus == "inactive") base = 0
else                                 base = 5 * passthrough  // no data yet

// v4.6 — capped, median-anchored bonus for delivered MIRROR yield.
// Only mirror-active validators paying ABOVE 1.2x the network median
// delivered rate (mirrorAPY, net of fee) earn it; size-neutral.
ratio = mirrorAPY / networkMedianMirrorAPY
bonus = clamp((ratio - 1.2) * 5, 0, 2)   // active only, else 0
score = base + bonus                     // dimension max 12
为什么: MIRROR 自动分配给 FSP 参与验证者上的质押者。100% 手续费验证者如果 'active' 则向委托人交付 $0;评分反映委托人实际收到的,而非仅协议端标记状态。v4.6 幅度奖励弥补了盲点:透传单独衡量了到达委托人的分数,而非金额,因此交付 MIRROR 利率高得多的验证者获不到额外计分。现在获得了——有上限,且仅限网络中位数以上。
容量配置7 最高分
什么: 在适当规模利用率处达到峰值的帐篷函数。
如何: 0% 利用 → 1.75。线性上升至 70% 利用时的 7。线性下降至 100% 时的 5.25(上限)。v3.7 从 8 → 7 重新缩放,为新的信任轨迹组件提供资金。
utilization = clamp(1 - freeSpaceFLR / maxDelegationFLR, 0, 1)

if (utilization <= 0.70):
  score = 1.75 + (utilization / 0.70) * 5.25     // 1.75 → 7 ramp
else:
  score = 7 - ((utilization - 0.70) / 0.30) * 1.75 // 7 → 5.25 ramp
为什么: 处于 FIP-10 最大委托是积极的吸引力信号——足够多的委托者的证明信任已填满。v2 对上限验证器评分为 0/5;v3 修正了这一点。适当规模(已证明有吸引力且有空间)获得峰值。v3.7 修剪了维度上限 8 → 7,以便解放的点可为信任的新保留 + 自我债券轨迹组件提供资金。
社区信任11 最高分
什么: 多信号:委托者数量+质押分布健康度+运营历史+运营者自有质押承诺(比例和绝对)+30天留存率+自有质押轨迹+多节点运营者聚合。
如何: 计数信号(最大6,运营者聚合v3.7):对数缩放[5, 500]委托者→[0, 6],跨运营者所有已知节点求和。集中度调整(±1):零售友好型平均质押(<500K FLR)→+1,鲸鱼集中型(>50M FLR平均)→−1。运营历史奖励(最大+1,抗擦除v3.6):30天观察时+0.5,90+天+1——如果首次观察的KV被擦除,则回退到奖励脚本纪元存在。自有质押肌肤之险(最大+2/最小−1,双轴v4.7):由比例份额或绝对规模中的较好者给予信用——比例≥10%→+2/5–10%→+1,绝对规模 = min(1, selfBond ÷ 20M) × 2,在网络前十分位质押处饱和;信号取两者的最大值,仍限制在+2。低于FIP-10下限(<1M FLR)→−1。留存率(最大±0.5,新增v3.7):委托FLR在30天内+10%→+0.5,−15%→−0.5。自有质押轨迹(最大±0.5,新增v3.7):运营者自有质押在30天内+20%→+0.5,−10%→−0.5。
// Count signal (max 6)
if (delegatorCount <= 5)        countScore = 0
else if (delegatorCount >= 500) countScore = 6
else  countScore = clamp(log(delegatorCount / 5) / log(100) * 6, 0, 6)

// Concentration adjustment (-1 to +1) — skip if <3 delegators
avgFLR = delegatedFLR / delegatorCount
if (avgFLR < 500_000)        concentrationAdj = +1
else if (avgFLR < 5_000_000)   concentrationAdj = +0.5
else if (avgFLR > 50_000_000)  concentrationAdj = -1
else if (avgFLR > 20_000_000)  concentrationAdj = -0.5
else                           concentrationAdj = 0

// Longevity bonus (0 to +1)
daysObserved = (now - firstObservedAtMs) / 86400000
if (daysObserved >= 90)      longevityBonus = +1
else if (daysObserved >= 30) longevityBonus = +0.5
else                         longevityBonus = 0

// Self-bond alignment (-1 to +2, two-axis since v4.7)
if (selfBondFLR < 1_000_000)   selfBondAdj = -1              // hollow-operator floor
else:
  ratio        = selfBondFLR / totalStake                   // totalStake = selfBond + delegated
  proportional = ratio >= 0.10 ? +2 : ratio >= 0.05 ? +1 : 0
  absolute     = min(1, selfBondFLR / 20_000_000) * 2        // saturates at top-decile bond
  selfBondAdj  = max(proportional, absolute)                 // the better of the two axes

// Retention (-0.5 to +0.5, v3.7) — skip if no 30-day baseline yet
delta = (delegatedFLR - delegatedFLR30dAgo) / delegatedFLR30dAgo
if (delta >= +0.10)      retentionAdj = +0.5
else if (delta <= -0.15) retentionAdj = -0.5
else                     retentionAdj = 0

// Self-bond trajectory (-0.5 to +0.5, v3.7) — skip if no baseline
sbDelta = (selfBondFLR - selfBondFLR30dAgo) / selfBondFLR30dAgo
if (sbDelta >= +0.20)      selfBondTrajectoryAdj = +0.5
else if (sbDelta <= -0.10) selfBondTrajectoryAdj = -0.5
else                       selfBondTrajectoryAdj = 0

score = clamp(countScore + concentrationAdj + longevityBonus + selfBondAdj
            + retentionAdj + selfBondTrajectoryAdj, 0, 11)
为什么: 肌肤之险自有质押是我们之前缺失的真实公平性信号——自有质押占总质押10%的验证器的激励对齐程度明显高于仅运行FIP-10最小值的验证器。v4.7使其成为双轴:仅将自有质押作为比例读取会惩罚投入大量绝对质押然后吸引委托的运营者,委托会稀释比例但不减少真实承诺——2000万自有质押在稀释比例下的评分与低于200万质押同一比例的评分相同。信号现在计入比例份额或绝对规模中的较好者,绝对端在网络顶端质押处饱和,所以规模无法简单购买评分,与FTSO提供者评分已处理自有质押的方式相匹配;+2上限保持不变,所以大型承诺运营者现在可以达到它但上限没有移动。运营历史奖励经验证的历史记录而不惩罚新手(顶部小奖励而非下方惩罚)。集中度风险对委托者很重要——拥有1条鲸鱼5000万FLR的验证器与50条零售各100万FLR的验证器在结构上完全不同。两个v3.7轨迹信号奖励有机增长和运营者承诺增长。组合上限为11(从v3.7的10提高以资助这些),没有单一信号占主导。
转移可靠性10 最高分
什么: 实际转移的净委托率(VRM)与理论基线的比率,加上不一致支出的方差惩罚。两边都是费用的净额,因此比率衡量的是实际转移——不是费用。
如何: 分段线性转移比率:100%+ → 10,95% → 8,90% → 6,85% → 4,80% → 2,<80% → 线性朝 0 下降。方差惩罚:变异系数 × 0.5,上限为 −30%。当样本量 < 3 个纪元时,信心阻尼器朝向中性 5 混合。v3.9 线性化了先前的分桶阈值——高达 2 个点的边界悬崖现在很平滑。
// Time-weighted rate is computed upstream from per-epoch
// reward-scripts data with decay = 0.85 per epoch back.
r = deliveryRatio   // capped at 1.0

if (r >= 1.00)      base = 10
else if (r >= 0.97) base = 9  + (r - 0.97) * (1 / 0.03)   // 0.97 → 9, 1.00 → 10
else if (r >= 0.95) base = 8  + (r - 0.95) * (1 / 0.02)   // 0.95 → 8, 0.97 → 9
else if (r >= 0.90) base = 6  + (r - 0.90) * (2 / 0.05)   // 0.90 → 6, 0.95 → 8
else if (r >= 0.85) base = 4  + (r - 0.85) * (2 / 0.05)   // 0.85 → 4, 0.90 → 6
else if (r >= 0.80) base = 2  + (r - 0.80) * (2 / 0.05)   // 0.80 → 2, 0.85 → 4
else                base = max(0, r * 2.5)                 // 0 → 0, 0.80 → 2

// Variance penalty (CoV = std-dev / mean across per-epoch rates)
variancePenalty = min(0.30, coefficientOfVariation * 0.5)
score = base * (1 - variancePenalty)

// Sample-size confidence dampener for < 3 epochs
if (totalStakesCompleted < 3):
  confidence = totalStakesCompleted / 3
  score = 5 + (score - 5) * confidence
为什么: 承诺与交付是对质押者最直接的问责信号。v3.3 增加了两个精细化:(1) 标题比率使用指数时间加权平均值(最近纪元计数更多),因此过去转移良好但最近下滑的验证器被正确惩罚;(2) 方差惩罚区分一致 95% 转移者与在 95% 周围振荡的转移者,因为后者对关心可预测收益率的质押者承担更多风险。
剩余时间5 最高分
什么: 验证器在 P-Chain 上权益结束前的天数。
如何: < 14 天 → 0(在 FIP-10 下基本不可用)。14-30 天 → 线性 0→2。30-60 天 → 线性 2→3。60-120 天 → 线性 3→5。120 天+ → 5。v3.9 线性化了先前的分桶阈值——边界悬崖(例如 13.99 天 → 0,14 天 → 2)现在很平滑。
daysLeft = (endTimeMs - now) / 86_400_000

if (daysLeft < 14)       score = 0
else if (daysLeft < 30)  score = 0 + (daysLeft - 14) * (2 / 16)    // 14 → 0, 30 → 2
else if (daysLeft < 60)  score = 2 + (daysLeft - 30) * (1 / 30)    // 30 → 2, 60 → 3
else if (daysLeft < 120) score = 3 + (daysLeft - 60) * (2 / 60)    // 60 → 3, 120 → 5
else                     score = 5
为什么: 实际信号——委托给剩余 7 天的验证器与 1 年不同。v3.2 收紧了底部:权益结束前 14 天内的验证器无法接受新委托(FIP-10 最低锁定为 14 天),因此它们基本上无法解质押。分数 = 0 区分
活跃中断惩罚(v4.3)(扣除) 最高分
什么: 当验证器连续错过多个奖励纪元时,分层在正维度之上的固定扣除。不同于对称的正常运行时间可靠性乘数——捕获主动中断,不是慢性不稳定。
如何: 查看验证器在缓存:fsp-validator-participation 记录中的连续不合格前缀(来自公共奖励脚本 nodes-data.json 的最新优先纪元列表)。0–1 连续错过 → 0 分(在差异 / 单一瞬间错过范围内)。2 连续 → −3 分(发展中的中断)。3 连续 → −6 分(持续——运营者注意力不足)。4+ 连续 → −10 分(活跃扩展中断)。复合分数在扣除后最低为 0。
consecutiveMisses = 0
for entry in participation.recent (newest-first):
  if entry.eligible: break
  consecutiveMisses++

if consecutiveMisses < 2:  penalty = 0
elif consecutiveMisses == 2: penalty = 3
elif consecutiveMisses == 3: penalty = 6
else:                        penalty = 10                  // 4+

score = max(0, positiveDimensionsSum - penalty)
为什么: v4.3 之前的模型完全依赖对称的 uptimeReliability 乘数——24 个纪元中分散的 5 次错过成本与连续 5 次错过相同。在操作上这些是非常不同的信号。分散的错过告诉委托者有关慢性不稳定;连续告诉他们验证器现在已坏。2026-05-14 的 Luganodes 事件——多个连续错过的纪元而委托者正在积极提交数百万 FLR——是 v4.3 发布解决的具体案例:用更锐利的分数影响显示活跃中断信号,以便委托者可以在提交前避免飞行中的故障。分层曲线避免对单一瞬间错误(常见)反应过度,同时尖锐地标记持续条纹(罕见且有影响)。
极端费用罚分 (v4.5)(最多 −75% 的分数) 最高分
什么: 对超出费用维度范围的费用进行按比例扣除。费用维度一旦费用超过锚点 20 个点就降至 0/7 —— 在此之后,复合评分将完全停止对费用的响应,因此即使验证者的费用为 100%(其委托者一无所获),在正常运行时间和 MIRROR 等费用盲目维度上仍可能得分在 40 多分。
如何: 费用在 50% 或以下时为零 —— 费用维度已为该范围定价,因此不存在重复计算。50% 以上时,扣除额随费用线性增加,在 100% 费用时达到验证者正分的 75%。它随分数本身而变化,因此一个精心维护的私有节点和一个被忽视的节点都会在他们应有的位置:在面向委托者的排名底部。
// v4.5 — fees beyond the Fee dimension's range (anchor+20)
if fee <= 50:  penalty = 0
else:          fraction = min(1, (fee - 50) / 50) * 0.75
               penalty  = positiveDimensionsSum * fraction

// fee 50% → no change · 75% → −37.5% of score · 100% → −75%
score = max(0, positiveDimensionsSum - outagePenalty - penalty)
为什么: 这是针对委托者的评分。无论正常运行时间有多好,收取其委托者赚取的每一笔奖励的验证者都不是委托候选者 —— 评分应该清楚地表明这一点。纯粹基于链上费用的函数,以相同的方式应用于每个节点,包括我们的节点。
如何评分 100/100 —— 验证器游戏手册
产生 v4.0 的审计周期专门设计,使得最大化每个维度真正使您成为委托者的更好验证器。改进您的分数不是游戏系统——这是系统按设计工作。这是明确的游戏手册,每个维度。
正常运行时间 —— 20 分。持续维持 ≥99.5% RPC 正常运行时间,并在每个奖励纪元中通过 FIP-10 最低条件(不错过揭示,达到中位数转移)。两个信号是相乘的——100% RPC × 7/8 纪元合格 = 17.5/20,不是 20。为什么这与委托者对齐:每次纪元您不通过 FIP-10,您的委托者在该纪元失去他们的奖励。
净收益 — 18分。向您的委托人提供≥1.2×网络中位APY(扣除费用后)。最佳路径:低费用+完整FIP-10资格,所以委托人收到其完整份额。为什么这一致:这字面上是到达委托人您抽成后的美元金额。
费率合理性 — 7 分。 自 Granite 硬分叉以来,协议强制执行 20% 最低委托费率,任何费率等于或低于评分锚点(观察到的市场最低值与该下限的较大者)均获得满分 7 分。超过该费率会在加速斜坡上扣分 — 锚点+10 → 4.5 分,锚点+20 → 0 分。该规则的合理性:下限消除了费率竞争,因此该维度现在仅保护委托人免受超过法定最低费率的提取;您真正的竞争优势在于交付的净收益。
运营者质量 —— 12 分。最佳路径:注册为 FTSO 数据提供商并运行顶级质量堆栈(FTSO + FDC + 签名)——您的 FlareWatch 运营者质量分数然后来自您的 FTSO 分数,最高为 FTSO 100。替代如果您仅质押:通过使用 v3.10 自动升级(90+ 天观察,25+ 委托者,保留不下降,FIP-10 兼容自我债券)或被添加到 KNOWN_VALIDATORS 作为机构基础设施(手动快速通道)来维持 +7 验证基线。分数采用 max(验证,FTSO 衍生)——参与永远不会伤害。为什么这与委托者对齐:全栈运营者提供更多生态系统价值;验证基线为委托者提供更清晰的身份信号。
MIRROR 参与 —— 10 分。一致地提交 FSP 价格反馈,满足每纪元协议最低限度(在您的签名政策中注册,达到声称阈值,无揭示错过)。收费适度——分数乘以 (1 − 费用/100),因此即使完全 MIRROR 活跃的 100% 费用验证器评分也是 0,因为零 MIRROR 到达委托者。为什么这与委托者对齐:MIRROR 是您委托者的 FTSO 通胀份额。较低费用 = 更多到达他们。
容量配置 —— 7 分。以约 70% 利用为目标(适当规模:已证明有吸引力且为新委托者提供空间)。空验证器评分 1.75;上限验证器评分 5.25。为什么这与委托者对齐:阅读分数的新委托者想知道他们是否真的可以委托;适当规模信号社会证明和可用性。
社区信任 —— 11 分。六个组成部分可最大化:
  • 构建至 500+ 运营者聚合委托者(最大计数信号:+6 分)。
  • 维持零售友好平均权益 < 每个委托者 500K FLR(浓度奖励:+1)。
  • 在网络上停留 ≥ 90 天以获得寿命奖励(+1)—— 通过奖励脚本存在清除免疫。
  • 持有大规模自有质押——比例≥10%或网络顶端绝对质押(~2000万FLR),取两者中评分较好者(对齐奖励:+2)。
  • 在 30 天内增长总委托 FLR ≥ 10%(保留:+0.5)。
  • 在30天内将自有绑定增加≥20%(轨迹:+0.5)。
为什么这是对齐的:每个组件都奖励委托人想要的行为——运营商的自有资金、有机增长、长期性、广泛的社区参与。多节点运营商的计数+集中信号是汇总的(v3.7)。
交付可靠性 — 10 分 向委托人支付您的预估APY承诺(交付率1.00)。最小化每轮次差异 — 可预测的支付优于相同均值但高波动(方差惩罚最多 −30%)。建立8个以上轮次的样本量以获得完整的置信度加权。为什么这是对齐的:您是否一致地履行了您的承诺?这是最直接的问责信号。
剩余时间 — 5 分 保持您的质押结束日期≥120天。在过期前及时续期;不要让其滑入<14天区间(根据FIP-10,一旦进入14天内您不能接受新的委托)。为什么这是对齐的:更长的承诺期限向委托人表明您会长期参与。
无法绕过的时间门槛信号: 长期性奖励(观察90天)、自动策展层级(90天+25个委托人+非递减保留率+FIP-10自有绑定)、保留信号(30天委托历史)、交付样本量(8个奖励轮次)。好消息:维持其他行为会随时间自动积累这些信号。
平滑窗口在短期内很重要: 显示的分数是最后4个cron快照的指数加权平均(0.5 / 0.3 / 0.15 / 0.05),所以即使完美的100分输入也需要约20分钟的连续完美cron运行才能完全反映。稳态完美输入=100;暂时改进会被平滑处理。突然变化惩罚(费用跳跃、自有绑定下降、运行时间崩溃)也可能在检测后的几个cron周期内扣除最多10分。
简而言之:每个维度都诚实地反映了它测量的内容。如果您的验证器达到100/100,该分数也在告诉您的委托人他们获得了网络上验证器的最佳版本 — 这是设计意图。
如何验证您自己的分数
验证器表中的每个分数都可从公开数据重现。如果您是运营商且此处的数学与您看到的分数不匹配,正确的做法是在假设我们出错之前自行验证。
最快的检查自动运行。 展开任何验证器的分数行,"在您的浏览器中验证"面板会在本地重新计算该分数 — 与cron使用的完全相同的计分函数,使用完全相同的输入,无需回调我们的服务器。因为每个验证器由一个没有节点身份项的相同函数计分,这也是任何人都可以确认我们自己节点没有获得隐藏优势的方式。下面的手动演示做同样的事情:
  1. 在flaremetrics.io查找您的验证器公开统计数据(按运营商名称搜索或粘贴您的委托地址)。记下您的delegationFee、selfBond、delegatedStake和FTSO分数(如果您也是数据提供者)。
  2. 验证您在最后8个奖励轮次中每个的FIP-10资格 在github.com/flare-foundation/reward-scripts的generated-files/reward-epoch-N/nodes-data.json下。计算您的nodeID有多少个轮次具有uptimeEligible: true。该比率驱动您的运行时间维度乘数。
  3. 在V2 RewardManager合约上检查您的MIRROR参与情况 通过flare-explorer.flare.network。查找RewardClaimed事件,其中claimType=3引用您的nodeID。如果最近没有,您将显示为MIRROR非活跃。
  4. 将您的输入代入上面的公式。 每个维度的代码块精确告诉您运行什么算术。求和维度,钳制到100,您就有了原始cron计算的分数。
  5. 与您的显示分数比较。 显示的分数包括v3.5在最后4个cron快照中的指数移动平均(当前加权0.5,前一个0.3等)— 所以单次运行的计算分数会略有不同于显示的分数。每个验证器行上的分数细分面板显示对其有贡献的持久维度值。
  6. 如果数学不相加,请向[email protected]发送电子邮件,包括您的nodeID、您使用的输入和您计算的分数。我们会回应,如果我们出错我们会公开修复。
程序化访问: 对于任何活跃验证器,命中GET /api/validators/{nodeID}/score-breakdown检索持久细分 — 每个维度的值、生成它的算法版本和最近的分数历史 — 作为JSON。UI中的分数细分面板从相同来源读取。
常见运营商问题
我的RPC运行时间为100% — 为什么我的运行时间分数低于20/20?
Uptime维度将RPC曲线输出乘以您的周期资格比率(最后8个奖励周期中的epochsIncluded / epochsObserved——自v4.2以来的完整FIP-10最低限值,不仅是RPC正常运行时间)。如果您在任何这些周期中未满足FIP-10最低条件——即使仅片刻——您的可靠性比率将低于1.0,您的Uptime得分按比例缩放。在v3.4之前,该维度为每个具有100% RPC正常运行时间的验证者评分为20,不考虑历史资格。现在它进行区分。
我提供MIRROR — 为什么FlareWatch显示我为MIRROR非活跃?
从v3.6开始,MIRROR参与从两个规范来源检测:V2 RewardManager上的链上RewardClaimed(claimType=3)事件,AND官方FSP Merkle JSON中的claimType=3分配(发布的奖励分配数据)。在任一来源中显示的nodeID计为活跃。v3.6之前我们使用链上流作为唯一信号,这对自委托提供者的MIRROR通过非标准声明路径结算产生了假阴性。也在v3.6中修复:一个关键格式bug,其中约95个验证器的mirror-stats条目由链上索引器以hex20(nodeID的bytes20形式)写入,当他们尚未在我们的策展名单中时 — 而每个UI查询都由cb58 NodeID进行键控。这些条目存在且正确;它们只是对显示层不可见。查询现在在每个使用者上规范化两种格式(验证器表、分数细分面板、公开mirror-stats API、收益率页面质押头寸卡、FTSO提供者面板)。如果您的nodeID在v3.6扫描后仍然显示非活跃,可能原因:(a)您的nodeID实际上未在该轮次的FSP签名策略中注册,(b)我们在轮次发布之间(Merkle数据按轮次更新,约3.5天)。用您的nodeID给我们发电子邮件,我们将交叉检查两个规范来源。
我的分数在一夜之间下降了10分 — 发生了什么?
三件事之一:(1)v3.5突变检测在您的nodeID上标记了费用跳跃、自有绑定下降或运行时间崩溃 — 10分惩罚应用于我们检测它的运行,并在接下来的3次运行中衰减,因为新状态稳定;(2)平滑窗口纳入了旧快照,拉低了您的平均值;(3)我们发布了一个算法版本bump(在您记录的algorithmVersion字段中可见 — 请参阅下面的版本卡)。分数细分面板显示当前维度值;与您以前的运行比较。
为什么高费用验证器的分数低于类似其他条件的低费用验证器?
净收益维度(最高18分)对费率敏感——0%费率的验证者提供约1.25倍网络中位数APY,接近满分;20%费率的验证者提供中位数的约80%,得分较低。加上费用合理性(7分)自v3.9起采用分段线性(无分组):≤5%获得满分7分,然后曲线下降且斜率增加——10% → 6分,15% → 4.5分,20% → 2.5分,25%+ → 0分(例如16%费率约得4.1分,不是固定分组值)。因此5分的费率差异转化为约5-8分的得分差异。这是有意设计的——委托人直接关心费率。
我是一个全新的验证器,没有FTSO分数。为什么我的运营商质量只有7/12?
运营商质量(最多12分)奖励全栈运营商 — 也运行顶级FTSO数据提供者堆栈的验证器(FTSO + FDC +签名)。如果您仅是质押,+7基线可通过两种方式达到:(1)手动包含在我们的KNOWN_VALIDATORS列表中 — 受信基础设施运营商的机构快速通道(Ankr、InfStones、Kiln等);(2)v3.10基于客观行为的自动晋升 — 观察90+天 AND 25+运营商聚合委托人 AND 保留不递减 AND FIP-10兼容自有绑定。自动晋升是完全自动的,不需要电子邮件。如果您还未满足自动条件,您从+3(自动发现层,需要Flaremetrics或FSE实体配置文件)开始,并在您的跟踪记录积累时增长到+7。要加速:注册为FTSO数据提供者并运行V2协议 — 您的分数然后来自FTSO派生分支,在FTSO 100时最多12分。v3.8:FTSO参与只能帮助,永远不会伤害 — 如果您的FTSO分数低于验证基线,您保留基线。
我有徽标但我的名称显示为截断的NodeID。为什么?
您的运营商实体存在于Flaremetrics(这就是我们为您提供徽标的原因),但您的提供者配置文件没有设置'name'字段。我们不捏造名字。在Flaremetrics或Flare Systems Explorer实体注册表上设置您的profile.name,我们将在下次cron运行时获取它。或者,向我们发送可验证的声明(例如,来自您委托地址的签名消息),我们将手动将您添加到KNOWN_VALIDATORS。
我的验证器达到FIP-10最大委托。为什么容量分数不是7/7?
容量是在70%利用率处峰值的帐篷函数(7分),在100%时向下倾斜到5.25分。峰值不是100% — 达到上限意味着委托人甚至即使想要也不能添加更多质押,这对在表中阅读的新委托人来说是中立到轻度负面的信号。v3之前我们对达到上限的验证器得分0/5(成功的惩罚);v3纠正了这一点为达到上限时的中立值,v3.7从8 → 7最多重新缩放整个维度(为信任轨迹信号释放一个点),所以今天达到上限得分5.25/7。适当规模的验证器(被证明有吸引力 AND 有增长空间,在70%利用率峰值)获得全部7分。
我是一个真正的运营商,但我完全不在验证器列表中。怎么回事?
验证器列表是从实时P-Chain RPC的getCurrentValidators结果构建的。如果您不在其中,您要么当前未在P-Chain上活跃,您的质押刚过期,要么我们这边有P-Chain RPC问题。cron每5分钟运行一次 — 您应该在激活您的质押后的1-2个周期内出现。如果您已上线一小时仍然看不到您自己,请用您的nodeID给我们发电子邮件。
我可以对我的分数提出异议或请求手动审查吗?
可以。用您的nodeID和具体问题给[email protected]发送电子邮件。我们回应每个运营商。我们会采取行动的事情:KNOWN_VALIDATORS添加、MIRROR分类更正、徽标/名称修复、维度特定数学错误。我们不会采取行动的事情:请求在算法外手动提高分数的请求、请求排除或降级竞争对手的请求。
我们将和不会做什么
为了消除关于我们如何操作分数的歧义,这里有明确的承诺。如果我们曾违反其中任何一个,请记录并向[email protected]发送电子邮件 — 我们将公开更正。
✓
我们不会接受为更高分数、赞助位置或任何形式的优惠待遇付款。分数是从公链数据确定性计算的。
✓
我们不会手动编码按验证器的提升。代码中任何地方都没有"X因为我们喜欢他们而获得+5"的行。相同的算法适用于包括FlareWatch自己节点的每个验证器,该节点由此精确函数计分。
✓
我们不会因非公开原因将验证者排除出表格。该列表源自实时P-Chain RPC,我们的显示包括所有活跃验证者。KNOWN_VALIDATORS的策划补充仅填写显示名称——它们不控制可见性。
✓
我们将发布算法变更。每次版本更新(v3 → v3.1 → v3.2 → ...)都在此页面的版本卡中记录,包括原因和变更内容。重大变更会获得额外的变更日志条目,可从应用的变更日志页面查看。
✓
我们将回复运营者邮件。每位向 [email protected] 发送有实质性评分疑虑邮件的运营者都会在几个工作日内收到真实回复。
✓
我们将公开纠正我们的错误。如果我们发现算法中的错误、数据源错误或方法论缺陷,我们会发布修复并记录下来。我们不会悄悄重新排名。
✗
未获发件人许可,我们不会公开分享邮件内容,也不会将运营者邮件用于除了生成该评分的对话以外的任何目的。
✗
我们不会提前与特定运营者分享算法变更的未来计划——每个版本同时为所有人上线。
局限性 — 本评分是什么,不是什么
综合评分是一个有用的摘要,而不是客观事实。我们的评分是透明的、有版本控制的、对每个验证人应用一致的(包括我们自己的),且可以直接在您的浏览器中从公开的输入数据重新推导。但它仍然包含编辑判断,我们宁愿精确展示我们的选择,也不愿暗示这套方法所不具备的精度。
各维度权重是我们的判断。正常运行时间值20分,费用值7分,是因为我们认为对大多数委托人来说,可靠性比费用高低几个百分点更重要——并不是因为某个公式证明了这一点。合理的人们可能会采用不同的权重。权重是固定的且公开的,所以您可以看到我们具体选择了什么,并从分项数据中自己调整权重。
净收益是一个结果,不是优点。它衡量委托人的实际收益,以网络中位数为锚——因此它在一定程度上受到验证人无法控制的因素影响(网络通胀率、他们吸引的委托量有多少),当整个生态变化时它也会变化。一个收费公平但较高的有纪律的运营者在这里的评分可能较低,但仍然表现优异。应该理解为
与FTSO相关的维度偏向全栈运营者。MIRROR参与度和运营质量的一部分奖励那些同时运营顶级FTSO数据提供者堆栈的验证人。这是有意为之——作为委托人,通过MIRROR,您从一个活跃FTSO的验证人那里获得更多收益——但这意味着一个纯粹的、优秀的仅限质押的验证人无法达到排行榜的最高位。如果您选择仅质押,请为您自己调低这些维度的权重。
该模型是加法的。维度叠加,所以优势可以抵消劣势——出色的正常运行时间可以使较高的费用维持在令人尊敬的评分。真正的失格失败(未达到FIP-10最低要求、掠夺性费用)是单独限制的,这样它们就不能被完全掩盖——每个周期都未达到最低要求的验证人或收取100%费用的验证人无论其他维度表现如何,都会排在底部附近——但核心是加权总和,不是否决制系统。
一个数字隐含了九个判断。单个0-100的数字是起点,不是最终判决。相差一分的两个验证人没有实质区别。打开分项明细,选择对您重要的维度进行权衡——这个数字的目的是加快比较速度,而不是替代比较。
我们很少更改方法,且在公开场合进行。每次变更都随附版本号、书面说明和全网的前后对比,让您可以审计哪些指标发生了变化以及原因。当我们自己的自动审计发现我们数字中的差异时——这确实会发生——我们会修复并公开说明。
最终评分(维度如何组合)
所有9个维度直接求和,然后减去v4.3活跃中断连续扣减。总分上限为100,下限为0。然后对最终数字应用最近快照间的平滑(v3.5)和任何突变惩罚。
// Step 1 — Raw composite (sum of dimensions, minus the two penalties)
positive = uptime + netYield + fee + operatorQuality
         + mirror + capacity + trust + delivery + timeRemaining

// Penalties (see the two penalty cards above):
// v4.3 active-outage streak — 0-1 missed epochs → 0, 2 → 3, 3 → 6, 4+ → 10
// v4.5 extreme fee (>50%)   — positive × min(1, (fee - 50) / 50) × 0.75
raw = clamp(positive - streakPenalty - extremeFeePenalty, 0, 100)

// Step 2 — Smooth across recent cron snapshots (v3.5)
// Weights: current 0.5, prev1 0.3, prev2 0.15, prev3 0.05
smoothed = 0.5*raw + 0.3*prev1 + 0.15*prev2 + 0.05*prev3

// Step 3 — Apply sudden-change penalty if flagged this run
// Triggers: fee +50% or +5pt jump, self-bond -20% drop, uptime -5% crash
// Magnitude: -10 pts on detection, decays -7, -4, -1 over 3 runs
suddenPenalty = -10 if any flag triggered else (decaying remainder)

// Step 4 — Final score
score = clamp(smoothed + suddenPenalty, 0, 100)
数据源(每个输入都是公开的)
Flare P-Chain RPC: 验证者列表、正常运行时间、自质押、委托质押、费用、结束时间、委托者数量。
V2 RewardManager(claimType=3事件): 链上按验证者nodeID认领的MIRROR分配。严格过滤type 3——不与VRM、FTSO委托或DIRECT奖励混淆。
FSP Merkle JSON(claimType=3分配): 按轮谁获得MIRROR的规范发布记录(与Flare自己签名工具读取的数据相同)。在v3.6中添加为第二权威来源——捕获MIRROR已分配但尚未在链上认领的验证者。
Flare Systems Explorer(FSE): 验证者实体注册表、显示名称、徽标、FTSO V2协议参与标志。
Flaremetrics提供者数据: FTSO评分、奖励率、准确性、V2功能、实体到nodeID的链接。
Flare reward-scripts(GitHub): 最近N个奖励轮的单验证者交付APY。驱动交付维度。
FlareWatch策划: KNOWN_VALIDATORS映射(~110条目)。受信任基础设施运营者的名称+运营者质量基准。
评分中不包含的内容
• 自我推广或付费置顶。 没有运营者可以支付或赞助更高的评分。
• 手写验证者特定加分。 代码中没有"X获得+5因为我们喜欢他们"这样的行。相同的算法适用于每个验证者,包括FlareWatch自己的节点,后者由这个确切的函数评分。
• 主观基础设施质量。 我们不尝试评估正常运行时间SLA、地理分布或硬件规格。如果你想声称基础设施级别,运行顶级FTSO + FDC堆栈,运营者质量维度会反映这一点。
• 对FlareWatch的锁定或承诺。 使用FlareWatch与其他工具的质押者没有有利的评分。
运营者反馈
在验证者的评分中看到问题?使用你的NodeID和疑虑向 [email protected] 发送邮件。我们回复每位运营者。常见的我们会处理的请求:
  • 将你的运营者添加到KNOWN_VALIDATORS(需验证)。
  • 如果你认为MIRROR非活跃分类有误,我们将审查。
  • 徽标/显示名称更正。
  • 一般算法批评。
来源与参考
评分的每个输入都来自公开、可验证的Flare生态系统来源。任何人都可以针对这些主要来源交叉检查我们的声明,并从原始数据重现数学计算。如果你发现本页与上游来源之间的差异,请向 [email protected] 发送邮件,我们会修复。
Flare网络协议文档 ↗https://docs.flare.network
权威协议文档。涵盖FTSO V2、FSP、P-Chain验证、FAssets和Flare堆栈的其余部分。
Flare治理门户(FIPs) ↗https://proposals.flare.network
Flare改进提案——FIP-05(委托因子)、FIP-10(验证者最低条件:100万FLR自质押底线、80%正常运行时间底线、14天最低锁定)和本页引用的所有其他规则的真实来源。
Flare Systems Explorer(FSE) ↗https://flare-systems-explorer.flare.network
Flare官方运营的FTSO数据提供者、实体地址、P-Chain nodeID链接和FIP-10最低条件标志的注册表。我们运营者质量和可靠性数据的主要来源。
Flaremetrics ↗https://flaremetrics.io
独立的Flare生态系统指标提供者。FTSO提供者评分、奖励率、准确性指标、V2协议参与标志和验证者到实体地址映射的来源。我们使用他们的公开REST API。
Flare基金会reward-scripts存储库 ↗https://github.com/flare-foundation/reward-scripts
Flare基金会发布的按奖励轮JSON,显示单验证者资格、正常运行时间资格和交付奖励。驱动交付可靠性维度和v3.4正常运行时间轮资格比例。
Flare区块浏览器 ↗https://flare-explorer.flare.network
只读的链上状态浏览器。允许任何人验证 V2 RewardManager 的 RewardClaimed 事件(MIRROR 的 claimType=3)、验证者质押总额、手续费变动以及其他信息。
Flare Portal(质押) ↗https://portal.flare.network/staking
官方质押界面。当前自身质押金额、委托质押金额和验证者结束时间的权威来源,这些数据驱动我们使用的 P-Chain RPC 读取。
Flaremetrics 公共 API(FTSO 提供者) ↗https://api.flaremetrics.io/api/v1/ftso/providers?limit=200
我们的 cron 消费的精确端点,返回实体档案、FTSO 评分、手续费和十六进制格式的 nodeId。任何人都可以直接访问。
Flaremetrics 公共 API(节点注册) ↗https://api.flaremetrics.io/api/v1/node-registrations?limit=500
十六进制 → cb58 NodeID 转换表。我们对其进行分页处理以构建实体到 NodeID 的查询表,该表驱动每个 cb58 格式的消费者。
无私有数据,无闭源模型。评分算法在 FlareWatch 代码库的 services/validators/scoring.ts 中实现。想要直接检查实现(而不是阅读上面的说明和公式)的运营者或研究人员,或想要为自己的使用而分叉它的人员,可以发送电子邮件至 [email protected] 请求访问权限。如果真有需求,我们将发布该文件作为独立开源包。
分数如何更新
/api/cron/refresh-validators 处的 cron 每 5 分钟重新计算每个活跃验证者的分数。输入(P-Chain RPC 读取、Flaremetrics、FSE、reward-scripts)在每次运行时都会重新获取。
v3.5 添加了跨最后 4 个 cron 快照的平滑处理(权重:0.5 / 0.3 / 0.15 / 0.05),因此显示的分数不会因瞬时输入噪声而剧烈波动。原始的 cron 计算分数仍被持久化以供将来的平滑处理计算,分数分解面板显示每个维度的当前值,因此你可以看到发生了什么变化。
算法版本被记录在每条缓存的分数记录上。当我们发布新版本时,每条分数都会获得新标签。下面的版本卡记录了每一项变化。
Flare 的惩罚模型

Flare 不会削减验证者质押。验证者不当行为的整个惩罚机制是奖励没收加上 FIP-10 passes 系统。没有双签削减、没有歧义削减、没有需要我们追踪的质押破坏事件。未能满足 FIP-10 最低条件的验证者会失去该 epoch 的奖励(如果通过数为零则全部没收,否则每个失败的协议失去一个通过);他们的质押本金保持不变。

这意味着该分数没有"罚没历史"维度——没有此类历史记录可追踪。我们追踪的是每次最小故障的后果:验证者在该轮次中获得零收益,这反映在epochsIncluded / epochsObserved中。2026-05-14的v4.2更新扩展了分数的可靠性乘数,使其在整个FIP-10最小值集合(正常运行时间、FSP签名、FTSO提交率、FDC参与)中使用该比率,因此验证者未能满足任何最小值要求都会在

FIP-10 最低阈值,来源于 dev.flare.network/network/fsp/rewarding:质押需要 80% 的正常运行时间 + 100 万 FLR 活跃自身质押;FTSO 锚定价格源需要估计值在共识中位数的 0.5% 以内,且达到 80% 的轮次;FTSO 块延迟价格源需要提交 80% 的预期更新;FDC 需要参与 60% 的投票轮次。达到 80% 正常运行时间 + 100 万自身质押底线但低于 300 万 / 1500 万收益阈值的验证者仍然会获得奖励,但不能积累通过——这个灰色地带通过此卡片的 passEligibility: "at-risk" 分类来体现。

版本
v4.8 (2026-09-17) — 奖励周期按其实际长度年化。每个测量的验证者费率(已交付 APR、委托、MIRROR、运营者自我质押收益)使用 3.19 天的奖励周期进行年化,该值于 2026-04-04 添加并描述为从区块时间戳测量,尽管没有任何东西实际测量它。Flare 奖励周期恰好为 3.5 天——FlareSystemsManager 的 rewardEpochDurationSeconds 返回 302,400,每个周期在链上的开始都间隔 3.500 天——因此每个测量的费率在五个半月内读数约高 9.7%,我们自己的也不例外。现在从该合约读取长度。每个测量的 APR 下降相同的倍数,3.19 ÷ 3.5(网络中位数 9.08% → 8.28%;FlareWatch 8.17% → 7.45%)。评分:仅交付可靠性发生变化,因为它将测量费率与验证者费用的理论费率进行比较。膨胀的一侧将 91% 的验证者置于 1.0 上限,即显然支付超过可能的金额;使用实际周期长度,中位交付对理论比率为 0.990。在发送前对拥有测量数据的 168 个验证者进行模拟:中位数 −0.32 分,146 个损失不足 1 分,13 个已在费用隐含费率以下交付的损失 2–3.5 分。Community Trust 长期性回退使用相同长度将周期转换为天数并进行了相应修正;它不移动评分,因为它最多看到 8 个周期(28 天),在任何一种方式下都低于其 30 天步长。已签署的性能证明使用了相同的错误长度;重新计算规范修订为 rev.3,rev.2 保持逐字记录并披露了错误。
v4.7(2026-08-19)——社区信任维度中的双轴自有质押。信任之前仅将运营者自有质押作为比例(自有质押÷总质押)给予信用,所以大规模自有质押被委托稀释后的评分与微小质押同一比例相同——评分看不到实际承诺的资本。在活跃网络上178个验证器中有61个持有≥1000万自有质押但<10%比例,所以大约三分之一的领域被低估了。v4.7通过比例份额(≥10%→+2,5–10%→+1,不变)或绝对规模(min(1, selfBond ÷ 2000万) × 2,在网络前十分位P-chain质押处饱和)中的较好者给予自有质押信用,取最大值并仍将子信号限制在+2——信任上限(11)和复合上限(100)保持不变,低于FIP-10空心下限(<1M FLR→−1)保持不变。镜像FTSO提供者评分已使用的双轴自有质押。全178个验证器发布前的完整前后对比存档:58个上升,0个下降,没有评分上升超过一分,排行榜顶部保持不变。我们自己的节点上升一分(83→84),遵循与其他良好资本化运营者相同的规则——公式中没有项专门指代我们。
v4.6(2026-08-13)— MIRROR 交付幅度奖励。MIRROR 维度曾仅评分透传(到达委托人的 MIRROR 分数 = 1 − fee)和参与状态——它对交付金额视而不见。交付 MIRROR 利率(mirrorAPY,扣除手续费后)远高于整体平均的验证者获不到任何计分,因此收益较高的真实节点反而可能排名在收益较低的下方。v4.6 添加了一个小的、有上限的、中位数锚定的奖励:仅针对 mirror-active 验证者,clamp((mirrorAPY / networkMedianMirrorAPY − 1.2) × 5, 0, 2)。仅高于 1.2× 网络中位数利率的交付获得奖励,最多 +2,将 MIRROR 维度上限从 10 提升至 12(复合仍限制在 100)。按网络中位数利率而非交易量锚定,因此在构造上大小中立:在活跃验证者群体中奖励与自有质押呈负相关(利于交付高利率的小验证者,而非大型验证者)。发布前已存档了整体前后对比分析(所有活跃验证者)——大多数验证者不动,排行榜顶部不变。相同公式应用于每个验证者,包括我们自己的节点。
v4.5(2026-07-16)——极端费用可行性惩罚。Fee Reasonableness维度在费用超过市场锚点+20分(~Granite后的40%)时饱和至0/7;从那里到100%费用,复合指标完全停止对费用做出响应,因此一个100%费用验证者——委托人得不到任何东西的情况——在其费用盲指标上仍评分在40多分。在面向委托人的评分上,该结果接近不符合条件,而非中等水平。v4.5添加了应用为正维度总和分数的复合惩罚:在50%费用或以下时为零(在Fee维度已定价的范围内无重复计算),然后在100%费用时线性增加到评分的75%。100%费用节点落在约10/100——仍被列出和排名,显然不是委托候选者。它是链上费用的纯函数,对每个验证者相同,包括我们自己的节点。
v4.4(2026-07-11)— Granite 下限感知费率锚点。Granite 硬分叉(Flare,2026-07-14)强制执行 20% 最低验证器委托费率。费率合理性锚点变为 max(观察到的最低活跃费率、协议下限):每项费率等于或低于法定最低值均获得满分,仅超出的费率会被按距离扣分。理由:由于上游未指定在途质押的保护条款,锚定到保护的 2%(或分叉前的 0%)遗留值会将遵守协议的 20% 运营者评为近似提取行为 — 并重复计算净收益已按交付条款计价的费率差额。其他维度均未改变。当整个群体达到下限时,该维度统一奖励满分 — 一旦没人能通过费率竞争,费率便停止计数。
v4.3(2026-05-14)—— 增加了活跃中断惩罚作为平面维度后扣减。现有的 uptimeReliability 乘数是对称的——5 次散布在 24 个 epoch 的遗漏成本与 5 次连续遗漏相同——但从操作角度这两者信号非常不同:散布的遗漏意味着慢性不稳定,连续意味着验证者现在坏了。v4.3 读取验证者最近参与历史头部的连续!合格 epoch 运行,对 0–1 次连续遗漏扣 0 分(正常波动/单次瞬时遗漏),2 次扣 3 分(发展中的中断),3 次扣 6 分(持续中断),4 次及以上扣 10 分(活跃延长中断),复合结果底线为 0。分层在——而不是替换——可靠性乘数之上,因为两者捕捉不同的风险。触发因素:2026-05-14 发生的 Luganodes 级事件,其中多个最近 epoch 在委托者积极承诺质押时连续遗漏;连续信号让委托者在承诺前看到在途故障。惩罚在分数分解面板中呈现为其自己的部分,因此 9 个正向维度仍然总和为 100。
v4.2(2026-05-14)—— 两项相关修复,一起发布以响应 AU(@aucc_official)关于 Luganodes 分数的公开更正。(1) deliveredAPY 计算现在将每收益 epoch 的速率乘以 `epochsIncluded / epochsObserved`,因此显示的 APR 反映委托者在观察窗口内实际获得的有效速率——包括验证者未能满足 FIP-10 最低条件时的零收益 epoch。之前的实现仅对收益 epoch 求平均并显示验证者的良好 epoch 速率,掩盖了最低条件失败。(2) Uptime 维度的可靠性乘数从仅正常运行时间(epochsUptimeEligible / epochsObserved)扩展到完整的 FIP-10 最低条件集(epochsIncluded / epochsObserved)。拥有 100% RPC 正常运行时间但在 FSP 签名或 FTSO 提交速率上失败的验证者现在在 Uptime 维度上受到比例命中,无论他们错过了哪个最低条件。对 Luganodes 的净影响:deliveredAPY 从 10.86% 下降到约 5.43%(匹配实际半支付现实),正常运行时间可靠性从 1.0 下降到 0.5,分数显著下降。同样的更正适用于每个具有 `epochsIncluded < epochsObserved` 的验证者——整个网络范围内这表面上了真实的参与质量差距,这些差距之前被隐藏了。
v4.1(2026-05-14)—— Net Yield 维度从理论 APR(公式:gross_APR × (1 − fee))切换到来自 Flare Foundation reward-scripts 的测量 deliveredAPY,仅当不存在测量历史时才使用每验证者理论回退。触发因素:FIP-16 的通胀减少(5% → 3%)在 2026-05-14 生效,理论公式的合格质押分母与链上现实漂移,导致理论 APR 在整个网络范围内低报交付收益约 2 倍。切换到测量优先将分数输入与质押者实际接收的内容对齐。networkMedianAPR 锚点也使用相同的测量优先方法重新计算,因此比率比较在双方保持一致——分数应该大致稳定(网络中位数处的验证者仍然评分约 12/18,等等),只是基于真实交付速率而不是公式输出。
v4.0(2026-05-11)—— 主要版本。v3.7-v3.10 周期累积构成评分系统的结构性重写,足够大以至于值得版本号提升。总结:两个维度的上限已更改(Trust 10→11、Capacity 8→7);Operator Quality 的公式被改写为 max(verification, FTSO-derived),因此参与不会造成伤害;四个剩余的分桶维度(Uptime、Fee、Delivery、Time Remaining)被线性化以消除边界悬崖;三个新的分数组件被添加(30 天委托保留、30 天自身质押轨迹、自动升级到策划层级);引入了多节点运营者聚合以用于 Trust 计数 + 浓度;longevity 现在通过 reward-scripts epoch 存在获得擦除免疫;两个反向激励被消除(Operator Quality FTSO 参与惩罚和 Uptime 95% 倒 V 形悬崖)。分数的每个输入现在都可外部验证——没有编辑决定是承载的。验证者可以通过可观察行为(观察 90+ 天、25+ 委托者、保留未下降、FIP-10 合规自身质押)赚取 +7 策划运营者基线,无需电子邮件团队。见下面的 v3.7-v3.10 条目了解组成此版本的粒度变化。
v3.10(2026-05-11)—— 关闭分数中最后的策划间隙。Operator Quality 上的 +7 策划运营者基线之前需要手动包含在我们的 KNOWN_VALIDATORS 列表中,这是 v3.7-v3.9 审计周期后仅有的有意义的编辑决定。v3.10 添加了一个客观的自动升级路径:任何具有 90+ 天 FlareWatch 观察、25+ 运营者聚合委托者、保留未下降(30 天下降 ≤ 15%)和 FIP-10 合规自身质押的验证者都会自动符合 +7 基线的资格——无需手动审查。KNOWN_VALIDATORS 仍然作为尚未累积 90 天窗口的机构运营者(想象启动日的 Ankr 或 Kiln 条目)的快速通道,但典型情况现在完全自动化了。所有四个标准都是链上导出的或接近链上的(委托者数、保留、自身质押)加上我们自己的观察时间戳——没有什么主观的,没有电子邮件团队门控。净效果:验证者可以通过行为单独赚取 +7 层级。网络上大多数已建立的运营者今天已经符合标准。
v3.9(2026-05-11)—— 审计分数的每个部分以确保公平性后,跨剩余四个分桶维度的边界悬崖清理。修复:(1) Uptime 曲线中 95% 处的反向 V 形悬崖——从 94.99% → 95.00% 正常运行时间下降 4 分(95-99% 分支从 0 开始,而不是匹配下分支的 4 最大值)。与我们刚在 Operator Quality(v3.8)中修复的向后激励相同形状。(2) Fee Reasonableness 阈值线性化——pre-v3.9,跨分桶边界的 0.01% 手续费增加最多可能失去 2.5 分。现在是分段线性的,斜率越来越陡,在边界处保留分桶值(低手续费几乎无惩罚,剥削手续费严厉惩罚)。(3) Delivery Reliability deliveryRatio 阈值线性化——相同模式,消除最多 2 分的悬崖。(4) Time Remaining 分桶阈值线性化——较小的悬崖(14 天边界处最多 2 分)但在小维度中仍然存在;现在平滑。Net Yield、MIRROR Participation 和 Capacity Profile 被审计并确认按原样公平(已经是线性/连续的)。总上限不变为 100。按设计没有分数回归;分数移动的唯一验证者是那些恰好坐在先前分桶边界上的人。
v3.8(2026-05-11)—— 在公平性审查后,Operator Quality 维度被审计和重写。三项修复一起发布。(1) 消除了反向激励——具有中等 FTSO 评分的已知运营者(例如 50)评分 4 分,但同一运营者完全退出 FTSO 评分 7 分。在 v3.8 下分数是 max(verification baseline, FTSO-derived),所以 FTSO 参与只能帮助,永远不会伤害。(2) 引入中间验证层——从 Flaremetrics 或 FSE 自动发现名称的运营者(但尚未在策划 KNOWN_VALIDATORS 映射中)获得 +3 而不是 0,软化之前的 7→0 悬崖。(3) 在验证获胜的分解详情中呈现两种信号超过低 FTSO 评分(例如 "策划运营者 · FTSO 45"),以便运营者准确了解他们的分数来自哪里。12 分上限不变;不需要重新平衡,因为变更仅在底部扩展分数分布(奖励部分验证)而不改变顶部。
v3.7(2026-05-11)—— 在运营者公平性审查后,Community Trust 维度被审计和扩展。三项增加:(1) 多节点运营者聚合——运行多个 P-Chain 节点的运营者(AU、FlareBus、Aureus Ox、Kiln 等)现在有其委托者数和总质押聚合用于 Trust 计数 + 浓度信号,因此他们不会因为在多个节点间分布相同委托者基数而受到惩罚。(2) 30 天委托保留信号(±0.5 分)——使用滑动窗口比较区分增长/稳定/收缩验证者。快照仅有的 Trust 维度之前无法将这些区分开来。(3) 30 天自身质押轨迹(±0.5 分)——奖励随时间增加自身质押的运营者,惩罚安静地解除质押的。与仅捕捉单次大幅下降的突变更改惩罚不同。上限重新平衡:Trust 10 → 11、Capacity 8 → 7。审计中的错误修复:(a) 零自身质押现在正确命中次 FIP-10 惩罚(之前 `selfBondFLR > 0` 门让恰好 0 的自身质押逃脱 −1)。(b) FIP-10 底线和 5% 之间的小自身质押比率现在在分解面板中呈现实际百分比,以便运营者看到什么关闭到 +1 / +2 层级的差距。(c) longevity 奖金现在擦除免疫——当首次观察到的 KV 人为新鲜时回退到 reward-scripts epoch 存在。
v3.6(2026-05-11)—— 两项针对 MIRROR 检测的修复,一起发布。(a) 检测现在从两个规范来源读取:来自 V2 RewardManager 的链上 RewardClaimed(claimType=3) 事件和官方 FSP Merkle JSON 中的 claimType=3 分配(Flare 自己的签名工具消费的相同数据)。任一信号都足以——捕捉已在链上分配但尚未声称 MIRROR 的验证者。(b) 针对 Merkle 的交叉检查揭示了单独的密钥格式错误:validators:mirror-stats 有混合的 hex20/cb58 NodeID 密钥(链上索引器在验证者尚未在我们的策划名称列表中时写入十六进制),而每个 UI 消费者仅按 cb58 查找——因此约 95 个验证者的状态对显示不可见。查找现在跨 validators 表、分数分解面板、mirror-stats 公共 API、Yield 页面 Staking Positions 卡和 FTSO 提供者面板规范化两种格式。受影响的验证者在下一个 cron 周期看到其 MIRROR Participation + Operator Quality 维度和整体 FlareWatch Score 上升 9-10 分。通过 FTSO 提供者报告发现(FlareBus,2026-05-11)——信用和感谢。他们的反馈材料改进了每个委托者对网络的看法,而不仅仅是他们自己的分数。
v3.5(2026-05-09)—— Net Yield 现在对照网络 APR 进行中位数锚定(中位数处的验证者评分 12/18,顶级表现者达到 18,下四分位数下降到 0)。Trust 维度吸收自身质押对齐作为第四个组件(比例自身质押奖励皮肤在游戏中;次 FIP-10 底线受小惩罚)。新的 "NEW Xd" 徽章呈现 FlareWatch 仅观察不到 30 天的验证者,因此质押者可以看到何时记录历史较浅。
v3.4(2026-05-09)—— Uptime 维度现在混合了瞬时 RPC 正常运行时间与历史 FIP-10 epoch 合格比率。pre-v3.4 维度无差别(92.9% 的验证者有 100% RPC 正常运行时间)。可靠性比率源自过去 8 个 reward-scripts epoch 的 epochsUptimeEligible / epochsObserved——一个时间序列信号,有意义地区分偶尔未能满足 FIP-10 最低条件的验证者与那些不会的验证者。
v3.3(2026-05-09)—— Delivery 维度现在使用指数时间加权平均速率(最近 epoch 计数更多,衰减常数 0.85)并应用方差惩罚(变异系数 × 0.5,上限 −30%)。从每 epoch reward-scripts 数据计算——样本大小作为现有置信度阻尼器进行)。
v3.2(2026-05-09)—— 多信号 Community Trust(计数 + 浓度 + longevity);首次由 FlareWatch 观察到的追踪持久化在 KV 中用于 longevity 奖金;质押结束边界情况(验证者在到期 14 天内评分在 Time Remaining 上为 0,因为他们在 FIP-10 下无法接受新委托);方法论页面公开;运营者反馈渠道呈现;算法版本记录在每条缓存分数记录上。
v3.1(2026-05-09)—— 从 reward-scripts 数据连接 Delivery 维度;平滑 Operator Quality(线性插值)、Capacity(帐篷函数)和 Trust(对数刻度);将 FSP 已知 + 零 claimType=3 重新分类为 MIRROR "inactive" 而不是 "no data";持久化 scoreBreakdown 服务器端,以便客户端不会在没有完整输入的情况下重新计算。
v3(2026-05-09)—— 将二进制身份奖金替换为连续 Operator Quality。添加 MIRROR Participation 作为专用维度,带有手续费直通。使上限容量中立而不是 0 分惩罚。通过 Net Yield 移除 APY/Fee 双重计数。重新校准范围(Top 层级 90+、Strong/Good/Acceptable/Below median)。
v2(pre-2026-05-09)—— 原始 8 维度评分(Uptime / APY / Fee / Identity / Capacity / Trust / Time / Delivery)。由于 APY/Fee 双重计数、二进制身份惩罚、上限容量惩罚、没有 MIRROR 维度而停用。为历史参考存档。
FlareWatch FTSO delegation addresses. Flare (chainId 14): 0x973B899Fe1422efDdeBE1d54E9A6487a70966aC5. Songbird (chainId 19): 0xaf4eF2A0Ecf8d914Db6b721D3eb79C46CA612796.