Metodología de puntuación de validadores

Versión del algoritmo: v4.8 · Última actualización: 2026-08-19

FlareWatch asigna a cada validador de la P-Chain una puntuación compuesta de 0–100 en 9 dimensiones. Las matemáticas son deterministas, los datos de entrada son públicos en la cadena [Flare Explorer] [FSE] [Flaremetrics], y el mismo algoritmo se aplica a cada validador en la red — incluyendo el nodo validador de FlareWatch, que se califica mediante esta función exacta sin trato especial. Esta página documenta cada dimensión y umbral para que operadores y delegadores puedan ver exactamente cómo se calcula la puntuación y por qué se eligió cada valor. Cada afirmación aquí se vincula a su fuente principal en cadena o upstream — ver Fuentes y referencias al pie.

Alcance: esta página documenta la puntuación del validador — lo que ves en modo de staking en la página de validadores (delegando FLR a un validador de P-Chain para recompensas de VRM + MIRROR). La puntuación del proveedor FTSO que se muestra en modo de delegación (delegando WFLR a proveedores de datos FTSO) utiliza un algoritmo separado de 13 dimensiones enfocado en el desempeño del proveedor de datos — precisión, participación en el protocolo V2, etc. Son roles distintos en cadena con recompensas distintas, puntuados por separado. Ver Metodología de puntuación del proveedor FTSO para el lado de delegación.
Sin equivalente en SGB: esta puntuación se aplica solo a validadores de P-Chain en Flare. El conjunto de validadores de P-Chain de Songbird está restringido a entidades aprobadas por la Fundación Flare, por lo que la delegación de P-Chain de SGB minorista es rara y la pestaña de staking es solo FLR. No hay alternancia de FLR / SGB en modo de staking. Para delegación FTSO en SGB ver Metodología de puntuación del proveedor FTSO, que cubre ambas cadenas.
Cómo calculamos APY — lo que realmente ganas

El APY en la tabla de staking es la tasa todo incluido que recibe un delegador — un número, sin cálculos mentales. Se mide desde los scripts de recompensas de Flare (pagos reales, no una fórmula), neto de la comisión del validador, y se mueve cada época con recompensas reales. En todo FlareWatch, APY significa después de la comisión y APY significa antes.

Total APR = Staking rewards (VRM) + MIRROR (FTSO-inflation share)
  • Recompensas de staking (VRM) — la participación neta del delegador en las recompensas de validación = Σ pago del delegador ÷ Σ delegado (división propia de Flare; la comisión ya está descontada). Como Flare paga proporcional al stake, esto es aproximadamente uniforme en toda la red y difiere principalmente por comisión — una comisión más baja significa una tasa de delegación más alta.
  • MIRROR — la participación de tu stake en la inflación de FTSO, pagada encima, solo en validadores que ejecutan un stack FTSO activo. Varía según la participación FTSO del validador y se mide en las épocas más recientes.

¿Comparando con Flare Systems Explorer? FSE y otros exploradores muestran solo la tasa de delegación — no suman MIRROR — así que nuestro APY Total se lee más alto en cualquier validador activo en MIRROR (la diferencia es exactamente la línea MIRROR arriba). Ambas cifras son promedios móviles de ~8 épocas de los mismos datos de scripts de recompensas, así que un cambio de comisión a mitad de ventana del validador se atrasa en una snapshot de comisión actual en cualquier sitio hasta que envejezca a través de la ventana.

Otras dos cifras aparecen en el tooltip de APY y no son la tasa del delegador: la línea de base teórica (APY bruto de red × (1 − comisión), solo staking — usada como fallback antes de que exista suficiente historial medido), y el rendimiento de auto-stake del operador (la rentabilidad del propio stake del validador, amplificada por captura de comisión — una métrica del operador, no lo que ganas).

Para scoring: la dimensión Net Yield puntúa solo la tasa de delegación VRM, y MIRROR se puntúa en su propia dimensión — así que MIRROR nunca se cuenta doble, aunque esté incluido en el APY Total mostrado.

Bandas de puntuación
90+Nivel superior — aproximadamente el 10–20% superior de operadores. Perfil típico: validador de stack completo + FTSO + FDC, comisión baja, activo en MIRROR, fiabilidad FIP-10 consistente, base de delegadores saludable, self-bond significativo. No se requiere una sola dimensión — los operadores alcanzan nivel superior apilando fortaleza en la mayoría de categorías.
80–89Fuerte — cumple con la mayoría de puntos de referencia clave; una o dos dimensiones por debajo del nivel superior.
70–79Bueno — cumple con todos los criterios de línea base; sin brechas importantes.
60–69Aceptable — usable pero no diferenciado.
<60Por debajo de la mediana — brechas significativas en una o más dimensiones. Hecho matemático, no un juicio de calidad.
Dimensiones (suma 100)
Tiempo de actividad20 pts máx
Qué: Combinación de tiempo de actividad RPC instantáneo de P-Chain Y razón histórica de elegibilidad de tiempo de actividad FIP-10 en épocas de recompensa recientes.
Cómo: Curva RPC: ≥ 99,5% → 17 a 20. 99–99,5% → 13–17. 95–99% → 4–13. 90–95% → 0–4. < 90% → 0. El resultado se multiplica luego por uptimeReliability (epochsIncluded / epochsObserved en los últimos 8 epochs de recompensa a partir de datos públicos de reward-scripts — el conjunto completo de mínimos FIP-10 desde v4.2, no solo uptime de RPC). v3.9 corrigió un acantilado perverso exactamente en 95% donde pasar de 94,99 → 95,00 uptime perdía 4 puntos.
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
Por qué: Pre-v3.4, esta dimensión estaba esencialmente muerta — el 92,9% de validadores activos tienen tiempo de actividad RPC del 100%, por lo que la curva puntuaba a todos igual. La razón de fiabilidad es una señal de serie temporal real: un validador que incumplió condiciones mínimas FIP-10 en 3 de 8 épocas recientes tiene una puntuación de fiabilidad del 62,5%, independientemente de lo que el RPC instantáneo actualmente reporta. Más estricto que el piso de protocolo FIP-10 del 80% a propósito. Los datos de elegibilidad por época los publica la Fundación Flare en su repositorio de reward-scripts.
Rendimiento neto18 pts máx
Qué: La tasa de recompensa de staking neta de comisión (VRM) que recibe un delegador, anclada a la mediana de la red.
Cómo: scoreAPR = tasa de DELEGACIÓN neta medida (delegationAPY: Σ delegatorRewardAmount / Σ delegated, de reward-scripts de Flare Foundation, últimas ~8 épocas) cuando esté disponible, si no, baseAPR teórico = bruto × (1 − comisión). Puntuación = (scoreAPR / medianAPR) anclada: razón 0,6 → 0 pts, 1,0 (mediana) → 12 pts, 1,2 → 18 pts. IMPORTANTE: esta dimensión califica la tasa de VRM (recompensa de validación) SOLAMENTE — MIRROR se califica por separado en la dimensión Participación en MIRROR, por lo que no se cuenta dos veces aquí. El 'APR total' mostrado (VRM + MIRROR) es un número orientado al delegador, no la entrada de Net Yield.
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
Por qué: Ambos lados de la razón son la tasa de delegación NETA (delegationAPY medida vs teórica bruta×(1−comisión)), por lo que la comparación es de como-para-como — no más inflada por 1/(1−comisión) como cuando la entrada era una tasa bruta pre-comisión (el error de 'duplicación' de ~2×). Como Flare paga recompensas de validación proporcionales al stake, la tasa de delegación de VRM es aproximadamente uniforme en toda la red y varía principalmente por comisión — por lo que esta dimensión principalmente refleja competitividad de comisión y fiabilidad de entrega (un validador que pierde épocas entrega menos). MIRROR (que varía por participación FTSO) deliberadamente se mantiene en su propia dimensión para evitar doble conteo.
Razonabilidad de comisión7 pts máx
Qué: Protege contra extracción por encima del piso de comisión del protocolo, suavemente lineal por tramos.
Cómo: Anclaje = máx(comisión activa mínima observada, piso de comisión del validador del protocolo — 20% desde el fork Granite, 2026-07-14). Cualquier comisión en o por debajo del anclaje → 7 pts completos. Por encima, rampa lineal con pendientes cada vez más pronunciadas en los próximos 20 puntos de comisión (anclaje+5 → 6, anclaje+10 → 4,5, anclaje+15 → 2,5, anclaje+20 → 0): excesos pequeños apenas penalizados, extracción castigada severamente. Pre-Granite el anclaje era un 5% absoluto; el límite de piso significa que ningún operador es penalizado por cobrar el mínimo legal.
// 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
Por qué: Net Yield ya contabiliza la comisión por porcentaje en términos entregados; esta dimensión solo señala operadores cobrando materialmente por encima de lo que el protocolo y mercado permiten. Una vez que cada comisión se sienta en el piso obligatorio de 20%, todos ganan calificación completa aquí y la dimensión deja de discriminar — por diseño: un número que nadie puede subestimar no puede diferenciar a nadie.
Calidad del operador12 pts máx
Qué: Toma la mayor de dos señales independientes: línea base de verificación (confianza de identidad) y desempeño operacional derivado de FTSO.
Cómo: Línea base de verificación: nivel curado (+7) alcanzado de dos formas — entrada KNOWN_VALIDATORS verificada manualmente O auto-promoción a través de comportamiento objetivo (v3.10: 90+ días observados Y 25+ delegadores agregados del operador Y no actualmente reduciéndose Y self-bond ≥ piso FIP-10). Nombre auto-descubierto de Flaremetrics o FSE → +3. No verificado → 0. Derivado de FTSO: interpolación lineal puntuación FTSO 50 → 4 pts hasta puntuación FTSO 100 → 12 pts (por debajo de 50 se piso en 4). Puntuación final es max(verificación, derivado de FTSO) — participación en FTSO solo puede ayudar, nunca perjudicar.
// 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)
Por qué: Recompensa a operadores que ejecutan un stack completo (validador + FTSO + FDC) sin penalizar a operadores de confianza por participar en FTSO con una puntuación de nivel medio. La lógica max() de v3.8 previene explícitamente el incentivo perverso de 'abandonar FTSO para mejorar tu puntuación de FlareWatch.' El tier auto-descubierto (+3) cierra el acantilado anterior 7→0 que afectaba a operadores registrados con Flaremetrics o FSE pero aún no curados manualmente.
Participación en MIRROR12 pts máx
Qué: Si el nodeID del validador realmente entrega la cuota de inflación FTSO a los stakeholders — tanto la fracción que llega a los delegadores (passthrough de tarifa) como, desde v4.6, la cantidad entregada relativa al campo.
Cómo: Activo → 10 × (1 − tarifa/100). Pausado → 5 × passthrough. Inactivo (sin señal de participación en ningún lado) → 0. Sin datos (validador genuinamente no observado) → 5 × passthrough. v3.6 amplió la señal 'activo' para incluir tanto eventos RewardClaimed(claimType=3) en cadena AND asignaciones claimType=3 en el Merkle JSON FSP canónico — cualquiera es suficiente. Esto atrapa validadores cuyo MIRROR ha sido asignado pero no reclamado aún en cadena (p. ej., proveedores auto-delegando cuya ruta de liquidación no dispara el evento de reclamo estándar). v4.6 bono de magnitud (máx +2, techo de dimensión 12): solo para validadores mirror-activos, clamp((mirrorAPY / networkMedianMirrorAPY − 1.2) × 5, 0, 2) — crédito por entregar una tasa MIRROR por encima de la mediana (neta de tarifa) a los delegadores. Anclado a la tasa mediana de la red, así es neutral en tamaño: un validador pequeño entregando una alta tasa obtiene el mismo crédito que uno grande.
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
Por qué: MIRROR se distribuye automáticamente a los stakeholders en validadores que participan en FSP. Un validador con tarifa del 100% que está 'activo' entrega $0 a los delegadores; la puntuación refleja lo que los delegadores realmente reciben, no solo el estado de la bandera del protocolo. El bono de magnitud v4.6 cierra un punto ciego: solo el passthrough medía la FRACCIÓN que llega a los delegadores pero no la CANTIDAD, así que un validador pagando una tasa MIRROR entregada mucho más alta no obtendría crédito extra por ello. Ahora lo hace — limitado, y solo por encima de la mediana de la red.
Perfil de Capacidad7 pts máx
Qué: Función de carpa con pico en utilización de tamaño adecuado.
Cómo: 0% utilizado → 1.75. Rampa lineal hasta 7 a 70% utilizado. Rampa lineal hacia abajo a 5.25 al 100% (limitado). Reescalado en v3.7 de 8 → 7 para financiar los nuevos componentes de trayectoria de Confianza.
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
Por qué: Estar en delegaciones máximas de FIP-10 es una señal POSITIVA de atractivo — probado de confianza por suficientes delegadores para llenar. v2 puntuó validadores limitados 0/5; v3 corrige esto. El tamaño adecuado (probado atractivo Y tiene espacio) obtiene el pico. v3.7 redujo el límite de la dimensión 8 → 7 para que el punto liberado pudiera financiar los nuevos componentes de trayectoria de retención y auto-bond de Confianza.
Confianza Comunitaria11 pts máx
Qué: Multi-señal: cantidad de delegadores + salud de distribución de stake + longevidad + compromiso de self-bond del operador (proporcional y absoluto) + retención de 30 días + trayectoria de self-bond + agregación de operador multi-nodo.
Cómo: Señal de cantidad (máx 6, AGREGADO A OPERADOR v3.7): escala logarítmica [5, 500] delegadores → [0, 6], sumado en todos los nodos conocidos de un operador. Ajuste de concentración (±1): promedio retail-friendly (<500K FLR) → +1, concentrado en ballenas (>50M FLR promedio) → −1. Bonificación de longevidad (máx +1, inmune a borrado v3.6): +0.5 a los 30 días observados, +1 a 90+ días — retrocede a presencia de epoch de scripts de recompensa si el primer KV observado fue borrado. Self-bond con participación en el juego (máx +2 / mín −1, DOS EJES v4.7): acreditado por el MEJOR de participación proporcional O tamaño absoluto — proporcional ≥10% → +2 / 5–10% → +1, y absoluto = min(1, selfBond ÷ 20M) × 2 saturándose en el bond top-decil de la red; la señal toma el máx de los dos, aún limitado a +2. Piso sub-FIP-10 (<1M FLR) → −1. Retención (máx ±0.5, NUEVO v3.7): FLR delegado +10% en 30 días → +0.5, −15% → −0.5. Trayectoria de self-bond (máx ±0.5, NUEVO v3.7): self-bond del operador +20% en 30 días → +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)
Por qué: El self-bond con participación en el juego es una verdadera señal de equidad que nos faltaba — un validador con 10% del stake total como self-bond tiene incentivos materialmente más alineados que uno ejecutándose en el mínimo FIP-10. v4.7 lo hace de dos ejes: leer el self-bond solo como un ratio penalizaba a los operadores que depositaban un stake absoluto grande y luego atraían delegación, lo que diluye el ratio sin reducir el compromiso real — un self-bond de 20M con un ratio diluido obtenía la misma puntuación que un bond <2M en ese ratio. La señal ahora acredita el MEJOR de participación proporcional o tamaño absoluto, con el lado absoluto saturándose en un bond en la parte superior de la red así que el tamaño no puede simplemente comprar puntuación, igualando cómo la puntuación de proveedor FTSO ya trata el self-bond; el cap de +2 no cambió, así que los operadores grandes y comprometidos ahora pueden alcanzarlo pero el techo no se movió. La longevidad recompensa historiales comprobados sin penalizar a los nuevos (pequeña bonificación arriba, no penalización abajo). El riesgo de concentración importa para los delegadores — un validador con 1 ballena a 50M FLR es estructuralmente diferente de 50 retail a 1M cada uno. Las dos señales de trayectoria v3.7 recompensan crecimiento orgánico y compromiso creciente del operador. El cap combinado es 11 (aumentado de 10 en v3.7 para financiarlos), ninguna señal única domina.
Confiabilidad de Entrega10 pts máx
Qué: Ratio de la tasa de delegación neta realmente entregada (VRM) vs. la línea base teórica, con una penalización de varianza para pagos inconsistentes. Ambos lados son netos de comisión, por lo que el ratio mide entrega real — no la comisión.
Cómo: Entrega lineal a trozos: 100%+ → 10, 95% → 8, 90% → 6, 85% → 4, 80% → 2, <80% → rampa lineal hacia 0. Penalización de varianza: coeficiente de variación × 0.5, limitado a −30%. Amortiguador de confianza se mezcla hacia neutral 5 cuando tamaño de muestra < 3 épocas. v3.9 linealizó los umbrales previamente agrupados — acantilados de límite de hasta 2 puntos ahora son suave.
// 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
Por qué: Prometido vs. entregado es la señal de responsabilidad más directa para stakers. v3.3 agregó dos refinamientos: (1) el ratio del titular usa una media ponderada en tiempo exponencial (épocas recientes cuentan más), por lo que un validador que solía entregar bien pero recientemente se deslizó es correctamente penalizado; (2) la penalización de varianza distingue entregadores consistentes al 95% de entregadores oscilantes alrededor del 95%, ya que estos últimos llevan más riesgo para stakers que se preocupan por rendimiento predecible.
Tiempo Restante5 pts máx
Qué: Días hasta el stake-end del validador en la P-Chain.
Cómo: < 14 días → 0 (esencialmente no disponible bajo FIP-10). 14-30d → lineal 0→2. 30-60d → lineal 2→3. 60-120d → lineal 3→5. 120d+ → 5. v3.9 linealizó los umbrales previamente agrupados — acantilados de límite (ej: 13.99d → 0, 14d → 2) ahora son suave.
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
Por qué: Señal práctica — delegar a un validador con 7 días restantes es una proposición diferente a 1 año. v3.2 apretó el fondo: validadores dentro de 14 días del stake-end no pueden aceptar nuevas delegaciones (el bloqueo mínimo de FIP-10 es 14 días), por lo que son efectivamente no desestakeable. Puntuación = 0 distingue 'no desestakeable ahora mismo' de 'cerrando pronto.'
Penalización por Corte Activo (v4.3)(deducción) pts máx
Qué: Deducción plana superpuesta en las dimensiones positivas cuando un validador pierde múltiples épocas de recompensa seguidas. Distinto del multiplicador de confiabilidad de Uptime simétrico — captura cortes activos, no flakiness crónico.
Cómo: Observa el prefijo !eligible contiguio del validador en el registro cache:fsp-validator-participation (lista de épocas más nuevas primero de nodes-data.json público de reward-scripts). 0–1 fallos consecutivos → 0 ptos (dentro de varianza / fallo único transitorio). 2 consecutivos → −3 ptos (corte en desarrollo). 3 consecutivos → −6 ptos (sostenido — falta de atención del operador). 4+ consecutivos → −10 ptos (corte activo extendido). La puntuación compuesta tiene piso a 0 después de la deducción.
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)
Por qué: El modelo pre-v4.3 se basaba enteramente en el multiplicador simétrico uptimeReliability — 5 fallos dispersos en 24 épocas cuestan lo mismo que 5 fallos seguidos. Operacionalmente esas son señales muy diferentes. Fallos dispersos dicen a delegadores sobre flakiness crónico; una racha les dice que el validador está roto AHORA MISMO. El incidente de Luganodes el 2026-05-14 — múltiples épocas de recompensa perdidas consecutivas mientras delegadores activamente asignaban millones de FLR — fue el caso específico que el lanzamiento de v4.3 aborda: surfacear la señal de corte activo con impacto de puntuación más afilado para que delegadores eviten una falla en vuelo antes de asignar. La curva escalonada evita reaccionar excesivamente a fallos transitorios únicos (comunes) mientras marca agudamente rachas sostenidas (raras y consecuentes).
Penalización por Comisión Extrema (v4.5)(hasta −75% de la puntuación) pts máx
Qué: Deducción proporcional por comisiones fuera del rango de la dimensión de Comisión. La dimensión de Comisión llega a 0/7 una vez que la comisión excede el ancla en 20 puntos — después de eso, el compuesto dejó de responder completamente a la comisión, por lo que un validador con comisión del 100% (sus delegadores no retienen nada) podría seguir puntuando en los 40 en dimensiones ciegas a la comisión como disponibilidad y MIRROR.
Cómo: Cero en comisiones del 50% o menores — la dimensión de Comisión ya valúa ese rango, por lo que no hay doble conteo. Por encima del 50%, la deducción aumenta linealmente con la comisión, alcanzando el 75% de la puntuación positiva del validador en una comisión del 100%. Escala con la puntuación misma, por lo que un nodo privado pulido y uno descuidado terminan donde corresponde: en el fondo de un ranking orientado a delegadores.
// 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)
Por qué: Esta es una puntuación para delegadores. Un validador que retiene cada recompensa que ganan sus delegadores no es un candidato de delegación sin importar cuán buena sea su disponibilidad — la puntuación debe indicarlo sin ambigüedad. Función pura de la comisión en cadena, aplicada idénticamente a cada nodo, incluyendo el nuestro.
Cómo puntuar 100/100 — un playbook para validadores
El ciclo de auditoría que produjo v4.0 fue específicamente diseñado para que maximizar cada dimensión genuinamente te haga un mejor validador para tus delegadores. Mejorar tu puntuación no es hackear el sistema — es el sistema funcionando como fue diseñado. Aquí está el playbook explícito, por dimensión.
Uptime — 20 ptos. Mantén ≥99.5% uptime de RPC continuamente Y cumple condiciones mínimas de FIP-10 en cada época de recompensa (no pierdas reveals, golpea entrega de mediana). Las dos señales se multiplican — 100% RPC × 7/8 épocas elegibles = 17.5/20, no 20. Por qué esto se alinea con delegadores: cada época que falles FIP-10, tus delegadores pierden sus recompensas para esa época.
Net Yield — 18 pts. Entrega ≥1,2× APY mediano de red a tus delegadores (post-comisión). Mejor camino: comisión baja + elegibilidad completa de FIP-10 para que los delegadores reciban su participación completa. Por qué se alinea: este es literalmente el monto en dólares llegando al delegador después de tu corte.
Razonabilidad de Comisión — 7 pts. Desde el fork Granite el protocolo obliga una comisión de delegación mínima de 20%, y cualquier comisión en o por debajo del anclaje de puntuación (el mayor entre el mínimo de mercado observado y ese piso) obtiene los 7 completos. Cobrar por encima cuesta puntos en una rampa acelerada — anclaje+10 → 4,5 pts, anclaje+20 → 0. Por qué esto se alinea: el piso eliminó la competencia de comisiones, así que esta dimensión ahora solo protege delegados de extracción por encima del mínimo legal; tu verdadera ventaja vive en Net Yield entregado.
Calidad del Operador — 12 ptos. Mejor camino: regístrate como proveedor de datos FTSO y ejecuta un stack de alta calidad (FTSO + FDC + firma) — tu puntuación de Calidad del Operador de FlareWatch entonces viene de tu puntuación FTSO, con máximo a FTSO 100. Alternativa si solo haces staking: mantén la línea base de verificación +7 ya sea calificando para auto-promoción de v3.10 (90+ días observados, 25+ delegadores, retención no declinante, auto-bond compliant con FIP-10) o siendo agregado a KNOWN_VALIDATORS como infraestructura institucional (fast-track manual). La puntuación toma max(verificación, derivado-de-FTSO) — la participación nunca puede dañar. Por qué esto se alinea: operadores full-stack proporcionan más valor al ecosistema; la línea base de verificación da a delegadores señal de identidad más clara.
Participación en MIRROR — 10 ptos. Envía feeds de precio de FSP consistentemente, cumple mínimos por época del protocolo (registrado en tu política de firma, umbral de reclamo cumplido, sin fallos de reveal). Cobra una comisión moderada — la puntuación se multiplica por (1 − comisión/100), así que incluso un validador 100%-comisión perfectamente MIRROR-activo puntúa 0 porque cero MIRROR llega a delegadores. Por qué esto se alinea: MIRROR es la parte de tus delegadores de la inflación de FTSO. Comisión más baja = más llega a ellos.
Perfil de Capacidad — 7 ptos. Apunta a ~70% utilización (tamaño adecuado: probado atractivo Y tiene espacio para nuevos delegadores). Validadores vacíos puntúan 1.75; validadores limitados puntúan 5.25. Por qué esto se alinea: nuevos delegadores leyendo la puntuación quieren saber que pueden realmente delegar; tamaño adecuado señala tanto prueba social como disponibilidad.
Confianza Comunitaria — 11 ptos. Seis componentes para maximizar:
  • Construye hasta 500+ delegadores agregados por operador (señal de cantidad máxima: +6 ptos).
  • Mantén stake promedio amigable con retail < 500K FLR por delegador (bonificación de concentración: +1).
  • Permanece en la red ≥ 90 días para la bonificación de longevidad (+1) — inmune a borrado vía presencia de reward-scripts.
  • Mantén un self-bond grande — ya sea ≥ 10% proporcionalmente O un stake absoluto en la parte superior de la red (~20M FLR), lo que puntuee mejor (bonificación de alineación: +2).
  • Crece FLR delegado total en ≥ 10% en 30 días (retención: +0.5).
  • Aumenta la auto-garantía en ≥ 20% durante 30 días (trayectoria: +0.5).
Por qué esto se alinea: cada componente recompensa un comportamiento que los delegadores desean — piel del operador en el juego, crecimiento orgánico, longevidad, participación comunitaria amplia. Los operadores de múltiples nodos se agregan para las señales de conteo + concentración (v3.7).
Confiabilidad de Entrega — 10 ptos. Paga a los delegadores lo que promete tu APY estimado (ratio de entrega 1.00). Minimiza la varianza por época — los pagos predecibles superan la misma media con alto spread (penalización de varianza hasta −30%). Construye un tamaño de muestra de 8+ épocas para ponderación de confianza completa. Por qué esto se alinea: ¿estás cumpliendo la promesa que hiciste, consistentemente? Esa es la señal de responsabilidad más directa que existe.
Tiempo Restante — 5 ptos. Mantén tu fecha de fin de stake ≥ 120 días en el futuro. Renueva bien antes del vencimiento; no dejes que caiga en la banda < 14 días (no puedes aceptar nuevas delegaciones bajo FIP-10 una vez que estés dentro de 14 días). Por qué esto se alinea: el compromiso más largo señala a los delegadores que estás aquí para el largo plazo.
Señales time-gated que no puedes acelerar: bonificación de longevidad (90 días observados), tier de auto-curación (90 días + 25 delegadores + retención sin declinar + auto-garantía FIP-10), señal de retención (30 días de historial de delegación), tamaño de muestra de entrega (8 épocas de recompensa). Las buenas noticias: mantener los OTROS comportamientos automáticamente acumula estos con el tiempo.
La ventana de suavizado importa en el corto plazo: la puntuación mostrada es un promedio ponderado exponencialmente de las últimas 4 instantáneas de cron (0.5 / 0.3 / 0.15 / 0.05), por lo que incluso un 100 perfecto en entradas toma ~20 minutos de ejecuciones de cron consecutivas perfectas para reflejarse completamente. Entradas en estado estable perfecto = 100; las mejoras transitorias se suavizan. Las penalizaciones de cambio repentino (saltos de comisión, caídas de auto-garantía, caídas de uptime) también pueden restar hasta 10 ptos durante unos pocos ciclos de cron después de la detección.
En resumen: cada dimensión es honesta sobre lo que mide. Si tu validador está en 100/100, la puntuación también está diciendo a tus delegadores que están obteniendo la mejor versión de un validador en la red — ese es el propósito del diseño.
Cómo verificar tu propia puntuación
Cada puntuación en la tabla de validadores es reproducible a partir de datos públicos. Si eres un operador y las matemáticas aquí no coinciden con la puntuación que ves, el movimiento correcto es verificarlo tú mismo antes de asumir que cometimos un error.
La verificación más rápida se ejecuta automáticamente. Expande la fila de puntuación de cualquier validador y el panel "Verificado en tu navegador" recomputa esa puntuación localmente — la exacta misma función de puntuación que usa el cron, sobre las exactas entradas que usó, sin llamada de regreso a nuestro servidor. Porque cada validador se puntúa por una función idéntica que no tiene término para identidad de nodo, esto también es cómo cualquiera puede confirmar que nuestro propio nodo no obtiene ventaja oculta. El recorrido manual a continuación hace lo mismo a mano:
  1. Busca las estadísticas públicas de tu validador en flaremetrics.io (busca por el nombre de tu operador o pega tu dirección de delegación). Anota tu delegationFee, selfBond, delegatedStake, y puntuación FTSO (si también eres proveedor de datos).
  2. Verifica tu elegibilidad FIP-10 para cada una de las últimas 8 épocas de recompensa en github.com/flare-foundation/reward-scripts bajo generated-files/reward-epoch-N/nodes-data.json. Cuenta cuántas épocas tu nodeID tuvo uptimeEligible: true. Ese ratio impulsa tu multiplicador de dimensión Uptime.
  3. Verifica tu participación MIRROR en el contrato V2 RewardManager vía flare-explorer.flare.network. Busca eventos RewardClaimed con claimType=3 referenciando tu nodeID. Si no hay recientes, aparecerás como MIRROR-inactivo.
  4. Introduce tus entradas en las fórmulas anteriores. El bloque de código de cada dimensión te dice exactamente qué aritmética ejecutar. Suma las dimensiones, fija el límite a 100, y tienes tu puntuación bruta computada por cron.
  5. Compara con tu puntuación mostrada. La puntuación mostrada incluye el promedio móvil exponencial de v3.5 a través de las últimas 4 instantáneas de cron (actual ponderado 0.5, anterior 0.3, etc.) — así que la puntuación computada de una única ejecución será ligeramente diferente de la mostrada. El panel de desglose de puntuación en cada fila de validador muestra los valores de dimensión persistidos que contribuyeron.
  6. Si las matemáticas no cuadran, envía un correo electrónico a [email protected] con tu nodeID, las entradas que usaste, y la puntuación que computaste. Responderemos, y si cometimos un error lo corregiremos públicamente.
Acceso programático: para cualquier validador activo, accede a GET /api/validators/{nodeID}/score-breakdown para recuperar el desglose persistido — valor de cada dimensión, la versión del algoritmo que lo produjo, e historial de puntuación reciente — como JSON. El panel de desglose de puntuación en la UI lee de la misma fuente.
Preocupaciones comunes del operador
Estoy al 100% de uptime de RPC — ¿por qué mi puntuación de Uptime está por debajo de 20/20?
La dimensión Uptime multiplica la salida de la curva RPC por tu razón de elegibilidad de epoch (epochsIncluded / epochsObserved en los últimos 8 epochs de recompensa — el conjunto completo de mínimos FIP-10 desde v4.2, no solo uptime de RPC). Si incumpliste las condiciones mínimas de FIP-10 en alguno de esos epochs — incluso brevemente — tu razón de confiabilidad cae por debajo de 1,0 y tu puntuación Uptime se escala proporcionalmente. Pre-v3.4 la dimensión puntuaba 20 para todo validador con uptime de RPC del 100% independientemente de la elegibilidad histórica. Ahora diferencia.
Entrego MIRROR — ¿por qué FlareWatch me muestra como MIRROR-inactivo?
A partir de v3.6, la participación MIRROR se detecta de DOS fuentes canónicas: eventos on-chain RewardClaimed(claimType=3) en el V2 RewardManager, Y asignaciones claimType=3 en el JSON Merkle FSP oficial (los datos de distribución de recompensas publicados). Un nodeID que aparezca en cualquiera de las fuentes cuenta como activo. Pre-v3.6 usamos el stream on-chain como la única señal, lo que produjo falsos negativos para proveedores que se autodeleagan cuyo MIRROR se resuelve a través de una ruta de reclamación no estándar. También se corrigió en v3.6: un error de formato de clave donde ~95 validadores tuvieron sus entradas mirror-stats escritas bajo hex20 (forma bytes20 del nodeID) por el indexador on-chain cuando aún no estaban en nuestra lista de nombres curada — mientras cada búsqueda de UI se basaba en cb58 NodeID. Esas entradas existían y eran correctas; simplemente no eran visibles para la capa de visualización. La búsqueda ahora normaliza ambos formatos en todos los consumidores (tabla de validadores, panel de desglose de puntuación, API pública mirror-stats, tarjeta Staking Positions de la página Yield, panel de proveedores FTSO). Si tu nodeID aún muestra inactivo después del sweep v3.6, causas posibles: (a) tu nodeID no está realmente inscrito en tu política de firma FSP para esa época, (b) estamos entre publicaciones de época (datos Merkle se actualizan por época, ~3.5 días). Envíanos un correo electrónico con tu nodeID y verificaremos ambas fuentes canónicas.
Mi puntuación bajó 10 puntos de la noche a la mañana — ¿qué cambió?
Una de tres cosas: (1) la detección de cambio repentino v3.5 flagged un salto de comisión, caída de auto-garantía, o caída de uptime en tu nodeID — una penalización de 10 ptos se aplica la ejecución que la detectamos y decae durante las próximas 3 ejecuciones mientras el nuevo estado se estabiliza; (2) la ventana de suavizado incorporó una instantánea más antigua que bajó tu promedio; (3) lanzamos un bump de versión del algoritmo (visible en el campo algorithmVersion de tu registro — ver tarjeta de Versiones abajo). El panel de desglose de puntuación muestra valores de dimensión actuales; compara contra tus ejecuciones anteriores.
¿Por qué un validador de comisión alta puntúa más bajo que uno de comisión baja con todo lo demás similar?
La dimensión Net Yield (máximo 18 pts) es sensible a comisiones — un validador con comisión 0% entrega ~1,25× el APY mediano de la red, puntuando cerca del máximo; un validador con 20% de comisión entrega ~80% de la mediana, puntuando más bajo. Además, Fee Reasonableness (7 pts) es lineal por tramos desde v3.9 (sin buckets): ≤5% obtiene los 7 puntos completos, luego la curva desciende con pendientes cada vez más pronunciadas — 10% → 6, 15% → 4,5, 20% → 2,5, 25%+ → 0 (así, por ejemplo, una comisión del 16% puntúa ~4,1, no un valor de bucket fijo). Por lo tanto, una diferencia de 5 pts en comisión se traduce en ~5-8 pts de diferencia en puntuación. Esto es intencional — los delegadores se preocupan directamente por la comisión.
Soy un validador completamente nuevo sin puntuación FTSO. ¿Por qué mi Operator Quality es solo 7/12?
Operator Quality (12 ptos máx) recompensa a operadores de full-stack — validadores que también ejecutan un stack de proveedor de datos FTSO de primer nivel (FTSO + FDC + firma). Si eres solo staking, el baseline de +7 es alcanzable de dos formas: (1) inclusión manual en nuestra lista KNOWN_VALIDATORS — fast-track institucional para operadores de infraestructura confiables (Ankr, InfStones, Kiln, etc.); (2) v3.10 auto-promoción basada en comportamiento objetivo — 90+ días observados Y 25+ delegadores agregados de operador Y retención sin declinar Y auto-garantía conforme FIP-10. La auto-promoción es completamente automática, sin correo electrónico necesario. Si aún no cumples los criterios auto, comienzas en +3 (tier auto-descubierto, requiere un perfil de entidad Flaremetrics o FSE) y creces a +7 a medida que tu historial se construye. Para acelerar: regístrate como proveedor de datos FTSO y ejecuta los protocolos V2 — tu puntuación entonces viene de la rama derivada de FTSO con máx de 12 en FTSO 100. v3.8: la participación FTSO solo puede ayudar, nunca dañar — si tu puntuación FTSO está por debajo del baseline de verificación, mantienes el baseline.
Tengo un logo pero mi nombre aparece como un NodeID truncado. ¿Por qué?
Tu entidad de operador existe en Flaremetrics (por eso tenemos un logo para ti) pero tu perfil de proveedor no tiene un campo 'name' establecido. No fabricamos nombres. Establece tu profile.name en Flaremetrics o en el registro de entidades de Flare Systems Explorer, y lo recogeremos en la próxima ejecución de cron. Alternativamente, envíanos un reclamo verificable (p.ej., un mensaje firmado desde tu dirección de delegación) y te agregaremos a KNOWN_VALIDATORS a mano.
Mi validador está en el máx de delegaciones FIP-10. ¿Por qué Capacity no puntúa 7/7?
Capacity es una función tienda que alcanza su pico a 70% de utilización (7 ptos), ramificándose a 5.25 ptos al 100%. El pico no es 100% — estar en límite significa que los delegadores no pueden agregar más stake incluso si quieren, lo que es una señal neutral-a-ligeramente-negativa para nuevos delegadores leyendo la tabla. Pre-v3 puntuábamos validadores en límite 0/5 (penalización por éxito); v3 corrigió esto a un valor neutral en límite, y v3.7 reescaló toda la dimensión de 8 → 7 máx (liberando un punto para las señales de trayectoria de Trust), así que hoy en límite puntúa 5.25/7. Validadores bien dimensionados (probado atractivo Y con espacio para crecer, pico al 70% utilizado) obtienen los 7 completos.
Soy un operador real pero no estoy en la lista de validadores en absoluto. ¿Qué pasa?
La lista de validadores se construye desde el resultado getCurrentValidators del P-Chain RPC en vivo. Si no estás allí, o bien no estás actualmente activo en P-Chain, tu stake acaba de vencer, o hay un problema de P-Chain RPC de nuestro lado. El cron se ejecuta cada 5 minutos — deberías aparecer dentro de 1-2 ciclos de activar tu stake. Si has estado en vivo durante una hora y aún no te ves, envíanos un correo electrónico con tu nodeID.
¿Puedo apelar mi puntuación o solicitar una revisión manual?
Sí. Envía un correo electrónico a [email protected] con tu nodeID y una preocupación específica. Respondemos a cada operador. Cosas que actearemos: adiciones KNOWN_VALIDATORS, correcciones de clasificación MIRROR, correcciones de logo/nombre, errores de matemáticas específicas de dimensión. Cosas que no actearemos: solicitudes de aumentar manualmente una puntuación fuera del algoritmo, solicitudes de excluir o desclasificar a un competidor.
Qué haremos y qué no haremos
Para eliminar ambigüedad sobre cómo operamos la puntuación, aquí hay compromisos explícitos. Si alguna vez violamos uno de estos, documéntalo y envía un correo electrónico a [email protected] — lo corregiremos públicamente.
✓
No aceptaremos pagos por puntuaciones más altas, colocación patrocinada, o trato favorable de ningún tipo. La puntuación se calcula determinísticamente a partir de datos públicos de cadena.
✓
No codificaremos manualmente bumps por validador. No hay línea de "X obtiene +5 porque nos cae bien" en ningún lugar del código. El mismo algoritmo se aplica a cada validador incluyendo el propio nodo de FlareWatch, que se puntúa por esta función exacta.
✓
No excluiremos validadores de la tabla por razones no públicas. La lista se obtiene del RPC en vivo de P-Chain y nuestra pantalla incluye todos los validadores activos. Las adiciones curadas a KNOWN_VALIDATORS solo rellenan nombres de pantalla — no controlan la visibilidad.
✓
Publicaremos cambios de algoritmo. Cada cambio de versión (v3 → v3.1 → v3.2 → ...) se documenta en la tarjeta Versions en esta página con la justificación y qué cambió. Los cambios mayores reciben una entrada adicional en el changelog visible desde la página de changelog de la aplicación.
✓
Responderemos a correos electrónicos de operadores. Todo operador que envíe un correo a [email protected] con una preocupación sustancial sobre su puntuación recibe una respuesta real en pocos días hábiles.
✓
Corregiremos públicamente nuestros errores. Si descubrimos un bug en el algoritmo, un error de fuente de datos, o una brecha en la metodología, implementamos una corrección y la documentamos. No re-clasificamos silenciosamente.
✗
No compartiremos el contenido de correos electrónicos públicamente sin permiso del remitente, ni usaremos correos de operadores para nada que no sea la conversación de puntuación que los produjo.
✗
No compartiremos nuestros planes futuros para un cambio de algoritmo con operadores seleccionados por adelantado — cada versión se pone en vivo para todos simultáneamente.
Limitaciones — qué es esta puntuación y qué no es
Una puntuación compuesta es un resumen útil, no una verdad objetiva. La nuestra es transparente, versionada, aplicada idénticamente a cada validador —incluido el nuestro— y re-derivable a partir de datos publicados directamente en tu navegador. Pero aún así codifica criterio editorial, y preferimos mostrarte exactamente dónde en lugar de implicar una precisión que el método no tiene.
Las ponderaciones de dimensión son nuestro criterio. El tiempo de actividad vale 20 puntos y la comisión vale 7 porque decidimos que la confiabilidad importa más a la mayoría de los delegadores que algunos puntos de comisión —no porque una fórmula lo probó. Las personas razonables las pondearían de manera diferente. Las ponderaciones son fijas y públicas, así que puedes ver precisamente qué elegimos y re-ponderar mentalmente a partir del desglose.
El Rendimiento Neto es un resultado, no una virtud. Mide lo que un delegador realmente gana, anclado a la mediana de la red —así que está parcialmente configurado por cosas fuera del control del operador (inflación de la red, cuánta delegación han atraído) y se mueve cuando el resto del campo se mueve. Un operador disciplinado que cobra una comisión justa pero más alta puede puntuarse más bajo aquí siendo excelente. Léelo como "qué ganaría yo", no "qué tan bueno es este operador".
Las dimensiones vinculadas a FTSO favorecen operadores de pila completa. La Participación MIRROR y parte de la Calidad del Operador recompensan a validadores que también ejecutan una pila de proveedor de datos FTSO de primer nivel. Es deliberado —como delegador genuinamente ganas más, a través de MIRROR, de un validador activo en FTSO— pero significa que un validador puro y excelente de solo staking no puede alcanzar la muy cima de esta tabla. Si elegiste solo staking, baja esas dimensiones para ti.
El modelo es aditivo. Las dimensiones se suman, así que una fortaleza puede compensar una debilidad —un tiempo de actividad soberbio puede llevar una comisión más alta a una puntuación respetable. Las fallas genuinamente descalificantes (no cumplir los mínimos de FIP-10, comisiones depredadoras) se cierran por separado para que no puedan ser completamente enmascaradas —un validador que falla mínimos cada época o cobra una comisión del 100% llega cerca del fondo independientemente de sus otras dimensiones— pero el núcleo es una suma ponderada, no un sistema de veto.
Un número oculta nueve criterios. La cifra única de 0-100 es un punto de partida, no un veredicto. Dos validadores a un punto de distancia no son significativamente diferentes. Abre el desglose y pondera las dimensiones que importan para ti —el número existe para hacer esa comparación más rápida, no para reemplazarla.
Cambiamos el método raramente, y en público. Cada cambio se envía con un aumento de versión, una justificación escrita y un antes y después de todo el campo, así que puedes auditar qué se movió y por qué. Cuando nuestro audit automatizado propio detecta una discrepancia en nuestros números —como lo hace— la corregimos y lo decimos.
Puntuación final (cómo se combinan las dimensiones)
Las 9 dimensiones se suman directamente, luego se resta la deducción de racha de apagón activo v4.3. El total se limita a 100 y tiene piso en 0. Se aplica suavizado entre snapshots cron recientes (v3.5) y cualquier penalización por cambio repentino al número final.
// 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)
Fuentes de datos (cada entrada es pública)
RPC de Flare P-Chain: lista de validadores, uptime, auto-bond, stake delegado, tarifa, hora de finalización, cantidad de delegadores.
RewardManager V2 (eventos claimType=3): distribución MIRROR reclamada en cadena por nodeID de validador. Filtrado estrictamente en tipo 3 — sin confusión con VRM, delegación FTSO, o recompensas DIRECT.
JSON de Merkle de FSP (asignaciones claimType=3): registro publicado canónico de quién se debe MIRROR por época (los mismos datos que lee la herramienta de firma de Flare). Agregado en v3.6 como segunda fuente autoritativa — detecta validadores cuyo MIRROR está asignado pero aún no reclamado en cadena.
Flare Systems Explorer (FSE): registro de entidades de validadores, nombres de pantalla, logos, banderas de participación del protocolo FTSO V2.
Datos de proveedores de Flaremetrics: puntuación FTSO, tasa de recompensa, precisión, características V2, vinculación entidad-a-nodeID.
Scripts de recompensas de Flare (GitHub): APY entregado por validador para las N épocas de recompensas más recientes. Impulsa la dimensión Delivery.
Curación de FlareWatch: mapa KNOWN_VALIDATORS (~110 entradas). Nombres + línea base de Calidad de Operador para operadores de infraestructura confiable.
Qué NO está en la puntuación
• Autopromoción o colocación pagada. Ningún operador puede pagar o patrocinar una puntuación más alta.
• Aumentos específicos de validador codificados a mano. Ninguna línea "X obtiene +5 porque nos cae bien" en ningún lugar del código. El mismo algoritmo se aplica a todos los validadores incluyendo el nodo de FlareWatch, que se puntúa con esta función exacta.
• Calidad subjetiva de infraestructura. No intentamos evaluar SLAs de uptime, distribución geográfica, o especificaciones de hardware. Si quieres reclamar grado de infraestructura, ejecuta un stack superior de FTSO + FDC y la dimensión Operator Quality lo reflejará.
• Bloqueos o compromisos con FlareWatch. Sin puntuación favorable para stakers usando FlareWatch vs. otra herramienta.
Retroalimentación de operadores
¿Ves algo mal en la puntuación de tu validador? Envía un correo a [email protected] con tu NodeID y preocupación. Respondemos a cada operador. Solicitudes comunes que actuaremos:
  • Agregar tu operador a KNOWN_VALIDATORS (con verificación).
  • Revisar tu clasificación MIRROR-inactiva si crees que es un error.
  • Correcciones de logo / nombre de pantalla.
  • Crítica general del algoritmo.
Fuentes y referencias
Cada entrada a la puntuación proviene de fuentes públicas y verificables del ecosistema Flare. Cualquiera puede verificar nuestros reclamos contra estas fuentes primarias y reproducir las matemáticas a partir de datos crudos. Si encuentras una discrepancia entre esta página y lo que dicen las fuentes ascendentes, envía un correo a [email protected] y lo corregiremos.
Documentación de protocolo autoritativa. Cubre FTSO V2, FSP, validación de P-Chain, FAssets, y el resto del stack Flare.
Portal de gobernanza de Flare (FIPs) ↗https://proposals.flare.network
Propuestas de Mejora de Flare — la fuente de verdad para FIP-05 (factor de delegación), FIP-10 (condiciones mínimas de validador: piso de auto-bond de 1M FLR, piso de uptime del 80%, bloqueo mínimo de 14 días), y todas las otras reglas citadas en esta página.
Flare Systems Explorer (FSE) ↗https://flare-systems-explorer.flare.network
Registro oficial operado por Flare de proveedores de datos FTSO, direcciones de entidad, vinculaciones de nodeID de P-Chain, y banderas de condiciones mínimas FIP-10. Fuente primaria para nuestros datos de Operator Quality y confiabilidad.
Flaremetrics ↗https://flaremetrics.io
Proveedor de métricas independiente del ecosistema Flare. Fuente de puntuación de proveedores FTSO, tasas de recompensa, métricas de precisión, banderas de participación del protocolo V2, y asignaciones de validador a dirección de entidad. Consumimos su API REST pública.
Repositorio reward-scripts de Flare Foundation ↗https://github.com/flare-foundation/reward-scripts
JSON publicado por época de recompensa por Flare Foundation mostrando elegibilidad por validador, elegibilidad de uptime, y recompensas entregadas. Impulsa la dimensión Delivery Reliability y la relación de elegibilidad de época v3.4 para Uptime.
Flare Block Explorer ↗https://flare-explorer.flare.network
Navegador de solo lectura de todo el estado en cadena. Permite que cualquiera verifique los eventos RewardClaimed del RewardManager V2 (claimType=3 para MIRROR), los totales de stake de validadores, cambios de comisiones, y el resto.
Flare Portal (staking) ↗https://portal.flare.network/staking
Interfaz de staking oficial. Fuente autorizada para los montos actuales de auto-bond / stake delegado y tiempos de finalización de validadores que alimentan las lecturas P-Chain RPC que utilizamos.
API pública de Flaremetrics (proveedores FTSO) ↗https://api.flaremetrics.io/api/v1/ftso/providers?limit=200
El punto de acceso exacto que consume nuestro cron, devolviendo perfiles de entidades, puntuaciones FTSO, comisiones y nodeIds en formato hex. Cualquiera puede acceder directamente.
API pública de Flaremetrics (registros de nodos) ↗https://api.flaremetrics.io/api/v1/node-registrations?limit=500
Tabla de conversión Hex → cb58 NodeID. Paginamos esto para construir la búsqueda de entidad-a-NodeID que impulsa cada consumidor en formato cb58.
Sin datos privados, sin modelos cerrados. El algoritmo de puntuación se implementa en services/validators/scoring.ts en la base de código de FlareWatch. Los operadores o investigadores que deseen inspeccionar la implementación directamente (en lugar de leer la prosa + fórmulas anteriores) — o que deseen bifurcarlo para su propio uso — pueden enviar un correo a [email protected] para solicitar acceso. Publicaremos el archivo como un paquete independiente de código abierto si hay demanda real.
Cómo se actualizan las puntuaciones
El cron en /api/cron/refresh-validators recomputa la puntuación de cada validador activo cada 5 minutos. Las entradas (lecturas P-Chain RPC, Flaremetrics, FSE, scripts de recompensas) se obtienen nuevas en cada ejecución.
v3.5 añadió suavizado en las últimas 4 instantáneas de cron (pesos: 0.5 / 0.3 / 0.15 / 0.05), por lo que la puntuación mostrada no fluctúa por ruido transitorio en las entradas. La puntuación calculada por cron sin procesar se persiste para matemática de suavizado futuro, y el panel de desglose de puntuación muestra el valor actual de cada dimensión para que puedas ver qué cambió.
La versión del algoritmo se marca en cada registro de puntuación en caché. Cuando enviamos una nueva versión, cada puntuación recibe la nueva etiqueta. La tarjeta Versiones a continuación documenta cada cambio.
Modelo de penalización de Flare

Flare no reduce el stake del validador. El mecanismo de penalización completo para el mal comportamiento del validador es pérdida de recompensa más el sistema de pases FIP-10. No hay slash de doble firma, no hay slash de equívoco, no hay evento de destrucción de stake que necesitemos rastrear. Los validadores que fallan las condiciones mínimas de FIP-10 pierden las recompensas de esa época (pérdida total si tienen cero pases, de lo contrario pierden un pase por protocolo que fallaron); su principal apostado permanece intacto.

Esto significa que la puntuación no tiene dimensión de "historial de slashing" — no hay tal historial que rastrear. Lo que SÍ rastreamos es la consecuencia de cada fallo mínimo: el validador ganó cero en esa época, que se captura en epochsIncluded / epochsObserved. La actualización v4.2 del 2026-05-14 amplió el multiplicador de confiabilidad de la puntuación para usar esa proporción en todo el conjunto de mínimos FIP-10 (tiempo de actividad, firma FSP, tasa de envío FTSO, participación FDC), de modo que un validador que falla cualquier mínimo se penaliza proporcionalmente en la dimensión de Tiempo de Actividad independientemente de qué eje falló.

Umbrales mínimos de FIP-10, obtenidos de dev.flare.network/network/fsp/rewarding: staking requiere 80% de tiempo de actividad + 1M FLR de auto-bond activo; los feeds de anclaje FTSO requieren estimaciones dentro del 0.5% de la mediana de consenso en el 80% de las rondas; los feeds de latencia de bloques FTSO requieren enviar el 80% de las actualizaciones esperadas; FDC requiere participar en el 60% de las rondas de votación. Los validadores que cumplen el piso de 80% de tiempo de actividad + 1M auto-bond pero están por debajo de los umbrales de ganancia de 3M / 15M aún reciben recompensas pero no pueden acumular pases — la zona gris expuesta a través de la clasificación passEligibility: "at-risk" de esta tarjeta.

Versiones
v4.8 (2026-09-17) — Las épocas de recompensa se anualizan según su duración real. Cada tasa de validador medida (APR entregado, delegación, MIRROR, rendimiento de auto-bonificación del operador) se anualizó con una época de recompensa de 3,19 días, un valor agregado el 2026-04-04 y descrito como medido a partir de marcas de tiempo de bloque, aunque nada lo midió. Las épocas de recompensa de Flare duran exactamente 3,5 días — el rewardEpochDurationSeconds de FlareSystemsManager devuelve 302.400 y cada inicio de época en cadena está 3,500 días separado — por lo que cada tasa medida leyó aproximadamente 9,7% alto durante cinco meses y medio, incluyendo la nuestra. La duración ahora se lee de ese contrato. Cada APR medido cae por el mismo factor, 3,19 ÷ 3,5 (mediana de red 9,08% → 8,28%; FlareWatch 8,17% → 7,45%). Puntuaciones: solo Delivery Reliability se mueve, porque compara la tasa medida con la tasa teórica de la comisión del validador. El lado inflado había puesto el 91% de los validadores en el límite de 1,0, es decir, aparentemente pagando más de lo posible; con la duración real de la época la razón mediana de entregado a teórico es 0,990. Simulado sobre los 168 validadores con datos medidos antes de enviar: mediana −0,32 puntos, 146 pierden menos de 1 punto, 13 ya entregando por debajo de su tasa implícita por comisión pierden 2–3,5. El mecanismo de reserva de longevidad de Community Trust convierte épocas a días con la misma duración y también se corrige; no mueve ninguna puntuación, porque ve como máximo 8 épocas (28 días), por debajo de su paso de 30 días de cualquier forma. Las atestaciones de rendimiento firmado usaron la misma duración incorrecta; la especificación de recalcular se revisa a rev.3 y rev.2 se mantiene literalmente con el error divulgado.
v4.7 (2026-08-19) — Self-bond de dos ejes en la dimensión Community Trust. Trust acreditaba el self-bond del operador solo como un RATIO (propio bond ÷ stake total), así que un self-bond grande diluido por delegación puntuaba igual que un bond diminuto en ese ratio — la puntuación no veía el capital real comprometido. En toda la red en vivo 61 de 178 validadores tenían ≥10M self-bond a un ratio <10%, así que un tercio del campo no estaba siendo acreditado adecuadamente. v4.7 acredita el self-bond por el MEJOR de participación proporcional (≥10% → +2, 5–10% → +1, sin cambios) O tamaño absoluto (min(1, selfBond ÷ 20M) × 2, saturándose en el bond P-chain top-decil de la red), tomando el máx y aún limitando la sub-señal a +2 — el cap Trust (11) y el cap compuesto (100) no cambian, y el piso hueco sub-FIP-10 (<1M FLR → −1) no cambia. Espeja el self-bond de dos ejes que la puntuación de proveedor FTSO ya usaba. Campo completo antes/después en los 178 validadores, archivado antes de lanzar: 58 suben, ninguno baja, ninguna puntuación sube más de un punto, y la parte superior del ranking no cambia. Nuestro propio nodo sube un punto (83 → 84) por la misma regla que cada otro operador bien capitalizado — ningún término nos nombra.
v4.6 (2026-08-13) — Bono de magnitud entregada de MIRROR. La dimensión MIRROR solía puntuar solo passthrough (la fracción de MIRROR que llega a los delegadores, = 1 − tarifa) y estado de participación — era ciega a la CANTIDAD entregada. Un validador pagando una tasa MIRROR entregada mucho más alta (mirrorAPY, neta de tarifa) que el campo no obtendría crédito por ello, así que un nodo genuinamente de mayor rendimiento podría clasificarse por debajo de uno de menor rendimiento en las dimensiones de rendimiento. v4.6 añade un pequeño bono limitado y anclado a la mediana: solo para validadores mirror-activos, clamp((mirrorAPY / networkMedianMirrorAPY − 1.2) × 5, 0, 2). Solo la entrega por encima de 1.2× la tasa mediana de la red la obtiene, y se limita a +2, elevando el techo de la dimensión MIRROR de 10 a 12 (el compuesto aún se limita a 100). Está anclado a la tasa mediana de la NETWORK, no al volumen, así es neutral en tamaño por construcción: en el campo en vivo el bono se correlaciona NEGATIVAMENTE con self-bond (favorece validadores pequeños entregando altas tasas, no grandes). Un antes/después en toda la red sobre todos los validadores activos fue archivado antes de implementar — la mayoría de validadores no se mueven, y la parte superior de la tabla de posiciones no cambia. La misma fórmula se aplica a todos los validadores, incluido nuestro nodo.
v4.5 (2026-07-16) — Penalización de viabilidad de tarifa extrema. La dimensión Fee Reasonableness se satura en 0/7 una vez que una tarifa excede el anclaje de mercado + 20 puntos (~40% post-Granite); de ahí hasta una tarifa del 100% el composite dejaba de responder completamente a la tarifa, así que un validador con tarifa del 100% — uno donde los delegadores no reciben NADA — seguía puntuando en los 40 en sus dimensiones ciegas a tarifa. En una puntuación dirigida a delegadores ese resultado es casi descalificante, no a mitad de tabla. v4.5 añade una penalización composite aplicada como fracción del total de dimensiones positivas: cero en o por debajo de una tarifa del 50% (sin doble conteo en el rango que la dimensión Fee ya valora), luego ramificándose linealmente hasta el 75% de la puntuación en una tarifa del 100%. Un nodo con tarifa del 100% llega alrededor de 10/100 — aún listado y clasificado, claramente no un candidato para delegación. Es una función pura de la tarifa en cadena, idéntica para cada validador, incluyendo el nuestro.
v4.4 (2026-07-11) — Anclaje de comisión consciente del piso Granite. El fork Granite (Flare, 2026-07-14) obliga una comisión mínima de delegación de validador de 20%. El anclaje de Razonabilidad de Comisión se convierte en máx(comisión activa mínima observada, piso del protocolo): toda comisión en o por debajo del mínimo legal obtiene calificación completa, y solo comisiones por encima se penalizan, por distancia. Fundamento: con preservación de depósitos en vuelo sin especificar aguas arriba, anclar a una reliquia de 2% preservado (o 0% pre-fork) habría puntuado operadores de 20% conformes al protocolo como casi extractivos — y doble contabilizado un delta de comisión que Net Yield ya precifica en términos entregados. Ninguna otra dimensión cambió. Cuando toda la cohorte alcance el piso, la dimensión otorga calificación completa uniformemente — la comisión deja de contar una vez que nadie puede competir en ella.
v4.3 (2026-05-14) — Se añadió Penalización de Corte Activo como una deducción plana post-dimensión. El multiplicador de confiabilidad existente es simétrico — 5 fallos dispersos en 24 épocas cuestan lo mismo que 5 fallos seguidos — pero operacionalmente son señales muy diferentes: los fallos dispersos significan inestabilidad crónica, una racha significa que el validador está roto AHORA. v4.3 lee la racha contigua de épocas !elegibles en el inicio del historial de participación reciente del validador y deduce 0 pts para 0–1 fallos consecutivos (varianza normal / fallo transitorio único), 3 pts en 2 (corte en desarrollo), 6 pts en 3 (corte sostenido), y 10 pts en 4+ (corte extenso activo), con el compuesto limitado a 0. En capas además de — no reemplazando — el multiplicador de confiabilidad, ya que los dos capturan peligros diferentes. Desencadenante: el incidente de clase Luganodes el 2026-05-14, donde múltiples épocas recientes fallaron seguidas mientras delegadores estaban activamente comprometiendo stake; la señal de racha permite que los delegadores vean un fallo en vuelo antes de comprometerse. Las penalizaciones se renderizan como su propia sección en el panel de desglose de puntuación para que las 9 dimensiones positivas sumen a 100.
v4.2 (2026-05-14) — DOS correcciones relacionadas, enviadas juntas en respuesta a una corrección pública de AU (@aucc_official) sobre la puntuación de Luganodes. (1) El cálculo de deliveredAPY ahora multiplica la tasa por época ganadora por `epochsIncluded / epochsObserved` para que el APR mostrado refleje la tasa EFECTIVA que un delegador realmente recibe durante la ventana de observación — incluyendo las épocas de ganancia cero cuando un validador falla mínimos de FIP-10. La implementación anterior promediaba solo épocas de ganancia y mostraba a los validadores su tasa de buena época, enmascarando fallos mínimos. (2) El multiplicador de confiabilidad de la dimensión de Tiempo de Actividad se amplió de solo tiempo de actividad (epochsUptimeEligible / epochsObserved) al conjunto completo de mínimos FIP-10 (epochsIncluded / epochsObserved). Un validador con 100% de tiempo de actividad RPC que falla firma FSP o tasa de envío FTSO ahora toma un golpe proporcional en la dimensión de Tiempo de Actividad independientemente de qué mínimo faltó. Efecto neto en Luganodes específicamente: deliveredAPY cae de 10.86% a ~5.43% (coincidiendo con la realidad de pago a mitad de camino), confiabilidad de tiempo de actividad cae de 1.0 a 0.5, puntuación cae materialmente. La misma corrección se aplica a cada validador con `epochsIncluded < epochsObserved` — en toda la red esto expone brechas reales de calidad de participación que previamente estaban ocultas.
v4.1 (2026-05-14) — La dimensión de Rendimiento Neto cambió de APR teórico (fórmula: APR_bruto × (1 − comisión)) a APY entregado MEDIDO de scripts de recompensas de Flare Foundation, con respaldo teórico por validador solo cuando no existe historial de medición. Desencadenante: la reducción de inflación de FIP-16 (5% → 3%) entró en vigor el 2026-05-14, y el denominador de stake elegible de la fórmula teórica se apartó de la realidad en cadena tal que la APR teórica sub-reportó rendimientos entregados por ~2× en toda la red. El cambio a medido primero realinea la entrada de puntuación con lo que los apostadores realmente reciben. El anclaje de networkMedianAPR también fue recomputado usando la misma metodología de medido primero para que la comparación de proporción se mantenga consistente en ambos lados — las puntuaciones deberían ser aproximadamente estables (un validador en mediana de red aún puntúa ~12/18, etc.), solo basadas en tasas entregadas reales en lugar de salida de fórmula.
v4.0 (2026-05-11) — Versión mayor. El ciclo v3.7-v3.10 constituye cumulativamente una reescritura estructural del sistema de puntuación, lo suficientemente grande como para justificar el bump. Resumen: dos dimensiones tuvieron sus límites cambiados (Confianza 10→11, Capacidad 8→7); la fórmula de Calidad del Operador fue reescrita a max(verificación, derivada-FTSO) para que la participación no pueda dañar; las cuatro dimensiones restantes agrupadas (Tiempo de Actividad, Comisión, Entrega, Tiempo Restante) fueron linealizadas para eliminar acantilados de límites; se añadieron tres nuevos componentes de puntuación (retención de delegación de 30 días, trayectoria de auto-bond de 30 días, promoción automática a nivel curado); se introdujo agregación de operador de múltiples nodos para conteo de Confianza + concentración; la longevidad ahora es inmune al borrado vía presencia de época de scripts de recompensas; y dos incentivos perversos fueron eliminados (la penalización de participación FTSO de Calidad del Operador y el acantilado invertido-V de Tiempo de Actividad del 95%). Cada entrada a la puntuación ahora es externamente verificable — ninguna decisión editorial carga el peso. Los validadores pueden ganar el comportamiento observable de línea base de operador curado de +7 (90+ días observados, 25+ delegadores, retención no en declive, auto-bond compatible con FIP-10), sin email-al-equipo requerido. Consulta las entradas v3.7-v3.10 a continuación para los cambios granulares que componen este lanzamiento.
v3.10 (2026-05-11) — Cerró la última brecha de curación en la puntuación. El comportamiento observable de línea base de +7 operador curado en Calidad del Operador previamente requería inclusión manual en nuestra lista KNOWN_VALIDATORS, que era la única decisión editorial significativa que quedaba después del ciclo de auditoría v3.7-v3.9. v3.10 añade una ruta de promoción automática objetiva: cualquier validador con 90+ días de observación de FlareWatch, 25+ delegadores agregados de operador, retención no en declive (caída de 30 días ≤ 15%), y auto-bond compatible con FIP-10 califica automáticamente para la línea base de +7 — sin revisión manual necesaria. KNOWN_VALIDATORS permanece como una vía rápida para operadores institucionales que aún no han acumulado la ventana de 90 días (piensa en una entrada de lanzamiento-día Ankr o Kiln), pero el caso típico ahora es completamente automatizado. Los cuatro criterios se derivan de en-cadena o cercanos a en-cadena (conteo de delegadores, retención, auto-bond) más nuestra propia marca de tiempo de observación — nada subjetivo, sin gating de email-al-equipo. Efecto neto: un validador puede ganar el nivel +7 solo a través del comportamiento. La mayoría de operadores establecidos en la red ya cumplen los criterios hoy.
v3.9 (2026-05-11) — Limpieza de acantilados de límites en las cuatro dimensiones agrupadas restantes, después de auditar cada parte de la puntuación por equidad. Fijo: (1) un acantilado invertido-V perverso en la curva de Tiempo de Actividad al 95% — pasar de 94.99% → 95.00% de tiempo de actividad perdió 4 puntos (la rama del 95-99% comenzó en 0 en lugar de coincidir con el máximo de la rama inferior de 4). El mismo tipo de incentivo inverso que acabamos de arreglar en Calidad del Operador (v3.8). (2) Los umbrales de Razonabilidad de Comisión linealizados — pre-v3.9, un aumento de comisión del 0.01% a través de un límite de cubo podría perder hasta 2.5 puntos. Ahora por partes lineal con pendientes cada vez más pronunciadas que preservan los valores del cubo en los límites (comisiones bajas apenas penalizadas, comisiones extractivas castigadas duro). (3) Los umbrales de Confiabilidad de Entrega deliveryRatio linealizados — el mismo patrón, acantilados de hasta 2 puntos eliminados. (4) Los umbrales de cubo de Tiempo Restante linealizados — acantilados más pequeños (máximo 2 puntos en el límite de 14 días) pero aún presentes en una dimensión pequeña; ahora suave. Rendimiento Neto, Participación MIRROR, y Perfil de Capacidad fueron auditados y confirmados justos-tal-cual (ya lineal/continuo). Límite total sin cambios en 100. Sin regresiones de puntuación por diseño; los únicos validadores cuyas puntuaciones se mueven son aquellos que sucedieron estar sentados exactamente en un límite de cubo anterior.
v3.8 (2026-05-11) — Dimensión de Calidad del Operador auditada y reescrita después de una revisión de equidad. Tres correcciones enviadas juntas. (1) Se eliminó un incentivo perverso — un operador conocido con una puntuación FTSO de nivel medio (p. ej. 50) puntuaba 4 pts, pero el mismo operador abandonando completamente FTSO puntuaba 7 pts. Bajo v3.8 la puntuación es max(línea base de verificación, derivada-FTSO), por lo que la participación FTSO solo puede ayudar, nunca dañar. (2) Se introdujo un nivel de verificación intermedio — operadores con nombres descubiertos automáticamente de Flaremetrics o FSE (pero no aún en el mapa curado KNOWN_VALIDATORS) obtienen +3 en lugar de 0, suavizando el acantilado anterior de 7→0. (3) Expone ambas señales en el detalle de desglose cuando la verificación gana sobre una puntuación FTSO baja (p. ej. "Operador curado · FTSO 45") para que los operadores entiendan exactamente de dónde viene su puntuación. El límite de 12 pts se mantiene sin cambios; sin rebalance necesario porque los cambios solo amplían la distribución de puntuación en la parte inferior (recompensando verificación parcial) sin cambiar la superior.
v3.7 (2026-05-11) — Dimensión de Confianza Comunitaria auditada y expandida después de una revisión de equidad del operador. Tres adiciones: (1) Agregación de operador de múltiples nodos — operadores que ejecutan múltiples nodos P-Chain (AU, FlareBus, Aureus Ox, Kiln, etc.) ahora tienen su conteo de delegadores y stake total agregados para las señales de conteo de Confianza + concentración, por lo que no se penalizan por distribuir la misma base de delegadores en múltiples nodos. (2) Señal de retención de delegación de 30 días (±0.5 pt) — distingue validadores en crecimiento / estables / encogiéndose usando una comparación de ventana deslizante. La dimensión de solo instantánea de Confianza no podría distinguir estos pre-v3.7. (3) Trayectoria de auto-bond de 30 días (±0.5 pt) — recompensa a operadores que aumentan su auto-bond con el tiempo, penaliza a aquellos que silenciosamente desvinculan. Distinto de la penalización de cambio súbito que solo captura caídas grandes individuales. Límite rebalanceado: Confianza 10 → 11, Capacidad 8 → 7. Correcciones de bugs de la auditoría: (a) auto-bond cero ahora golpea correctamente la penalización sub-FIP-10 (previamente una puerta `selfBondFLR > 0` dejaba escape del auto-bond de exactamente-0). (b) proporciones de auto-bond pequeño entre piso FIP-10 y 5% ahora renderizan el porcentaje actual en el panel de desglose para que los operadores vean qué cierra la brecha a los niveles +1 / +2. (c) bonificación de longevidad ahora inmune al borrado — se resuelve a presencia de época de scripts de recompensas cuando primer-observado KV es artificialmente fresco.
v3.6 (2026-05-11) — Dos correcciones a la detección de MIRROR, enviadas juntas. (a) La detección ahora lee de dos fuentes canónicas: eventos RewardClaimed(claimType=3) en cadena del RewardManager V2 Y asignaciones claimType=3 en el JSON Merkle oficial de FSP (los mismos datos que la herramienta de firma propia de Flare consume). Cualquiera de las señales es suficiente — captura validadores cuyo MIRROR ha sido asignado pero no aún reclamado en cadena. (b) La verificación cruzada contra Merkle reveló un bug de formato de clave separado: los validadores:mirror-stats tenían claves NodeID Hex20/cb58 mezcladas (el indexador en cadena escribió hex cuando un validador aún no estaba en nuestra lista de nombre curado), mientras que cada consumidor de UI buscaba solo por cb58 — así que ~95 validadores' status fue invisible para la pantalla. La búsqueda ahora normaliza ambos formatos en toda la tabla de validadores, panel de desglose de puntuación, API pública mirror-stats, tarjeta Posiciones de Staking de la página Rendimiento, y panel de proveedores FTSO. Los validadores afectados vieron sus dimensiones de Participación MIRROR + Calidad del Operador y FlareWatch Score general elevarse 9-10 puntos en el siguiente ciclo de cron. Descubierto vía un informe de proveedor FTSO (FlareBus, 2026-05-11) — crédito y gracias. Su retroalimentación mejoró materialmente la vista de cada delegador de la red, no solo sus puntuaciones.
v3.5 (2026-05-09) — Rendimiento Neto ahora anclado a mediana contra APR de red (un validador en la mediana puntúa 12/18, los mejores desempeños llegan a 18, el cuartil inferior cae a 0). Dimensión de Confianza absorbida alineación de auto-bond como cuarto componente (auto-bond proporcional recompensa por skin-in-the-game; piso sub-FIP-10 toma pequeña penalización). Nueva insignia "NUEVO Xd" expone validadores que FlareWatch ha observado solo por <30 días para que los apostadores puedan ver cuándo el track record es delgado.
v3.4 (2026-05-09) — Dimensión de Tiempo de Actividad ahora mezcla tiempo de actividad instantáneo RPC con proporción histórica de elegibilidad de época FIP-10. Pre-v3.4 la dimensión era no discriminatoria (92.9% de validadores tenían 100% de tiempo de actividad RPC). Proporción de confiabilidad derivada de epochsUptimeEligible / epochsObserved en las últimas 8 épocas de scripts de recompensas — una señal de serie temporal que diferencia significativamente validadores que ocasionalmente fallan condiciones mínimas de FIP-10 de aquellos que no.
v3.3 (2026-05-09) — Dimensión de Entrega ahora usa tasa media ponderada por tiempo exponencial (épocas recientes cuentan más, constante de decaimiento 0.85) y aplica penalización de varianza (coeficiente de variación × 0.5, limitado a −30%). Computado de datos de recompensas-scripts por época — tamaño de muestra se lleva a través como el amortiguador de confianza existente.
v3.2 (2026-05-09) — Confianza Comunitaria de múltiples señales (conteo + concentración + longevidad); seguimiento de primer-observado-por-FlareWatch persistido en KV para la bonificación de longevidad; borde de fin de stake (validadores dentro de 14 días de expiración puntúan 0 en Tiempo Restante ya que no pueden aceptar delegaciones nuevas bajo FIP-10); página de metodología hecha pública; canal de retroalimentación de operador expuesto; versión de algoritmo marcada en cada registro de puntuación en caché.
v3.1 (2026-05-09) — Cableada dimensión de Entrega desde datos de scripts de recompensas; suavizada Calidad del Operador (interpolación lineal), Capacidad (función tienda), y Confianza (escala logarítmica); reclasificada FSP-conocida + claimType=3 cero como MIRROR "inactivo" en lugar de "sin datos"; persistida scoreBreakdown servidor-lado para que cliente no recompute sin entradas completas.
v3 (2026-05-09) — Reemplazó bonificación de identidad binaria con Calidad del Operador continua. Añadió Participación MIRROR como dimensión dedicada con paso de comisión. Hizo capacidad limitada neutral en lugar de penalización de 0-pt. Eliminó doble-conteo de APY/comisión vía Rendimiento Neto. Recalibrados bandas (Nivel Superior 90+, Fuerte/Bueno/Aceptable/Por debajo de mediana).
v2 (pre-2026-05-09) — Puntuación original de 8 dimensiones (Tiempo de Actividad / APY / Comisión / Identidad / Capacidad / Confianza / Tiempo / Entrega). Retirada debido a doble-conteo APY/Comisión, penalización de identidad binaria, penalización de capacidad limitada, sin dimensión MIRROR. Documentada para referencia histórica.
FlareWatch FTSO delegation addresses. Flare (chainId 14): 0x973B899Fe1422efDdeBE1d54E9A6487a70966aC5. Songbird (chainId 19): 0xaf4eF2A0Ecf8d914Db6b721D3eb79C46CA612796.