El mito de los múltiples servidores stratum:
¿Ayuda realmente minar más cerca?
Un análisis basado en datos sobre la latencia, stale shares y riesgo de orphan en mining pools de criptomonedas.
Para monedas con tiempos de bloque de 60 segundos o más, conectarse a un servidor stratum geográficamente más cercano no proporciona ninguna ventaja significativa. Las diferencias de latencia son despreciables comparadas con el tiempo de bloque, el hashrate no se ve afectado en absoluto por el ping, y el aumento de stale shares al minar entre continentes es inferior al 0,1%.
Datos reales de la red
Todos los números de este análisis se basan en datos reales de la mainnet de C64Chain, pero las conclusiones se aplican a cualquier moneda CryptoNote o RandomX con tiempos de bloque similares.
| Escenario de latencia | Tiempo de ida y vuelta |
|---|---|
| Misma región (EU↔EU, Asia↔Asia) | ~20ms |
| Intercontinental (EU↔Asia) | ~200ms |
Las 3 operaciones sensibles a la latencia
1. Entrega de trabajo — Nueva plantilla de bloque
Cuando alguien en la red encuentra un bloque, el pool debe enviar a los miners un nuevo trabajo para que dejen de minar el bloque anterior (ahora stale). Esta es una de las principales causas de stale shares y shares rechazados.
→ Propagación P2P al daemon (~1-5s)
→ Stratum consulta al daemon (hasta 1s de intervalo)
→ Stratum envía trabajo al miner (latencia de red)
| Configuración | RTT consulta al daemon | Ventana de stale en peor caso |
|---|---|---|
| Daemon local + stratum local | ~1ms | ~1,0s |
| Daemon remoto (EU) + stratum local | ~200ms | ~1,2s |
Trabajo stale adicional: ~200ms. Relativo a un tiempo de bloque de 300s: 200ms / 300.000ms = 0,067% de hashrate desperdiciado.
Imagine que está en un examen de 5 horas y pierde 0,36 segundos porque el reloj de su pared está ligeramente atrasado respecto al oficial. Esa es la escala de esta "desventaja".
2. Envío de shares — El caso normal (99,999% de los shares)
El miner encuentra un share → lo envía al stratum → el stratum valida localmente → registra en la base de datos.
| Configuración | Validación del hash | Escritura en BD | ¿El miner espera? |
|---|---|---|---|
| Todo local | <1ms | <1ms | No |
| Base de datos remota (WAN) | <1ms (RandomX local!) | ~200ms | No |
El miner NO espera la escritura en la base de datos. El stratum valida el hash localmente con RandomX, envía "aceptado" de vuelta al miner inmediatamente, y luego escribe en la base de datos de forma asíncrona. El miner continúa hasheando a máxima velocidad durante todo el proceso.
Cuando deposita una carta en un buzón, no se queda parado esperando a que llegue a su destino. Se va y sigue con sus asuntos. Aquí es lo mismo — el miner envía el share y sigue hasheando.
3. Envío de solución de bloque — La ruta crítica (pero rara)
Esta es la única operación donde la latencia podría teóricamente costar dinero real. Cuando un share cumple con la dificultad de la red, el stratum debe enviarlo al daemon lo más rápido posible.
→ Stratum valida el hash (RandomX local, <1ms)
→ Stratum llama submit_block en el daemon
→ Daemon LOCAL: <1ms RTT
→ Daemon REMOTO: ~200ms RTT
→ El daemon valida + propaga vía P2P
¿200ms de retraso adicional realmente causan orphans?
Un orphan ocurre cuando dos miners encuentran bloques válidos casi al mismo tiempo y solo uno sobrevive. Calculemos la probabilidad usando datos reales de la red:
// Valores reales de la red C64Chain
Hashrate de la red: 1.000.000 H/s
Dificultad de la red: 300.000.000
Tasa de bloques (λ): 1.000.000 / 300.000.000 = 0,00333 bloques/seg
P(bloque competidor en 200ms) = 1 - e(-0,00333 × 0,2)
= 1 - e(-0,000667)
≈ 0,000667
= 0,067%
Imagine que está pescando en un lago enorme con otra persona. La probabilidad de que ambos pesquen un pez en los mismos 0,2 segundos es esencialmente cero. Así de improbable es una carrera de bloques en una moneda con tiempo de bloque de 5 minutos.
Daemon local vs. daemon remoto
| Aspecto | Daemon local | Daemon remoto (WAN) |
|---|---|---|
| Latencia plantilla de trabajo | <1ms | ~200ms |
| Latencia envío de bloque | <1ms | ~200ms |
| Tasa de stale shares | ~0,33% | ~0,40% |
| Aumento de riesgo de orphan | Línea base | +0,067% |
| Espacio en disco requerido | Blockchain completa | Ninguno |
| Ancho de banda | Tráfico de sincronización P2P | Solo llamadas RPC |
| Mantenimiento | Debe mantenerse sincronizado | Cero |
| Modo de fallo | Sobrevive a caídas WAN | Muerto ante caída WAN |
Un daemon local no se trata de velocidad — se trata de resiliencia. Si el enlace WAN cae durante 30 segundos, un daemon local mantiene el stratum funcionando. Sin uno, cualquier fallo de Internet entre continentes mata toda la operación para esos miners.
Un daemon local es como tener un generador de respaldo en casa. Las luces siguen encendidas aunque la línea eléctrica principal caiga brevemente. Sin él, cada parpadeo de Internet mata todo el pool para esos miners.
¿Se beneficia el miner de 20ms vs 300ms de ping?
La pregunta central: ¿un miner en Asia se beneficia de conectarse a un servidor stratum en Asia (20ms de ping) frente al servidor EU (300ms de ping)?
Impacto en el hashrate: cero
La latencia no reduce el hashrate. Punto.
El ciclo de mining se ejecuta continuamente. Ya sea que la respuesta "aceptado" regrese en 20ms o 300ms, el miner sigue hasheando a máxima velocidad. No hay pausa, no hay espera, no hay dependencia del tiempo de ida y vuelta.
while (true) {
nonce++
hash = RandomX(blob, nonce)
if (hash < share_target) {
send_share(nonce) // no bloqueante, dispara y olvida
}
// continúa inmediatamente — NO espera por "aceptado"
}
Impacto en stale shares: despreciable
Cuando aparece un nuevo bloque, el trabajo llega al miner 280ms después con una conexión de 300ms frente a 20ms. Durante esos 280ms, el miner hashea el bloque anterior (stale).
Tiempo stale adicional: 280ms
Tiempo de bloque: 300.000ms
Aumento tasa de stale: 280 / 300.000 = 0,093%
Un miner a 10 KH/s produce aproximadamente 2,8 hashes stale adicionales por transición de bloque. Con 288 bloques/día, eso son ~806 hashes desperdiciados de un total de 864.000.000 hashes/día.
Retraso en descubrimiento de bloque
Si el miner encuentra un bloque, la solución viaja por el sistema con latencia adicional de ida:
| Configuración del miner | Miner → Stratum | Stratum → Daemon | Retraso total |
|---|---|---|---|
| 20ms ping + daemon local | 10ms | 1ms | 11ms |
| 20ms ping + daemon remoto | 10ms | 100ms | 110ms |
| 300ms ping + daemon local | 150ms | 1ms | 151ms |
| 300ms ping + daemon remoto | 150ms | 100ms | 250ms |
Diferencia en el peor caso: 239ms. Probabilidad de orphan por ese retraso adicional: sigue siendo solo ~0,067%.
Piense en el mining como una lotería donde rasca boletos continuamente. No importa si la tienda está a 1 minuto o a 5 minutos de la oficina de lotería — usted sigue rascando a la misma velocidad sin importar la distancia. La única pequeña desventaja es que cuando los números ganadores cambian, se entera unos segundos después y podría rascar un boleto antiguo adicional. Pero rasca millones de boletos al día, así que ese boleto desperdiciado no tiene importancia.
¿Cuándo importa realmente la latencia?
| Tiempo de bloque | Ejemplo | Impacto stale (300ms) | Riesgo de orphan | ¿Importa la latencia? |
|---|---|---|---|---|
| 1 segundo | Solana | 30% | Muy alto | SÍ — crítico |
| 10 segundos | — | 3% | Alto | Sí — significativo |
| 15 segundos | antiguo Ethereum | 2% | Moderado | Apreciable |
| 60 segundos | — | 0,5% | Bajo | Apenas |
| 300 segundos | C64Chain | 0,1% | Despreciable | No |
| 600 segundos | Monero | 0,05% | Despreciable | No |
La regla general: la latencia importa cuando es una fracción significativa del tiempo de bloque. Para más contexto sobre tiempos de bloque y cómo se relacionan con mining, consulte nuestra guía para empezar. Para C64Chain con bloques de 5 minutos, incluso la latencia intercontinental es un error de redondeo.
Conclusión
| Factor | Impacto del stratum remoto | ¿Vale la pena optimizar? |
|---|---|---|
| Hashrate | Ninguna diferencia | No |
| Stale shares | +0,07–0,09% | No |
| Riesgo de orphan | 1 de 3.000 bloques | Solo si la moneda es muy valiosa |
| Resiliencia WAN | Stratum muere ante caída | Sí — la razón real |
Para miners: Conéctese al servidor stratum que prefiera. Su hashrate y ganancias serán idénticos ya esté a 20ms o 300ms de distancia. Las diferencias son menores que la varianza normal de suerte del pool.
Para operadores de pool: La única razón legítima para ejecutar servidores stratum regionales es la resiliencia de disponibilidad ante caídas WAN — no la velocidad. Si su enlace intercontinental es estable, una única ubicación de stratum es perfectamente adecuada para tiempos de bloque de 60 segundos o más.
El mito desmentido: "Stratum más cercano = más monedas" es falso para cualquier moneda con un tiempo de bloque superior a 30 segundos. Las matemáticas no mienten — 200ms de latencia en un tiempo de bloque de 300 segundos es una diferencia del 0,067%, completamente eclipsada por la varianza normal de suerte en mining del 10–50%.
Artículos relacionados
Comprendiendo la dificultad de mining
Qué significa la dificultad, cómo se ajusta y por qué importa para su mining.
Stale shares y shares rechazados
Qué causa los stale shares y shares rechazados, y cómo solucionarlos.
Mining solitario vs mining en pool
Las matemáticas detrás del mining solitario vs en pool y cuándo tiene sentido cada uno.