Definición de dificultad y tasa de hash de Ethereum

Estoy tratando de entender el hashrate de geth y la configuración de dificultad de Ethereum. Estoy ejecutando una red de prueba privada y configuro la dificultad en un valor fijo (a big.NewInt(250)) como se describe en https://ethereum.stackexchange.com/a/7159/5293 . Comienzo la minería de CPU en geth usando un hilo con miner.start(1). Luego mido el hashrate con eth.hashrate, por lo general es un valor entre 8 y 12 (digamos h = 10 H/s en promedio). Medí el tiempo de bloqueo promedio minando durante 15 minutos y fue de alrededor de 65 segundos.

Ahora, me gustaría usar la configuración de dificultad y el hashrate para calcular el tiempo de bloqueo esperado. Si lo calculara de la forma en que se usan los términos 'dificultad' (d) y 'hashrate' (h) en Bitcoin, obtendría

t = 2 ^ 32 * d / h,

que ni siquiera está cerca de los 65 segundos.

Estoy ejecutando geth en una CPU Intel(R) Core(TM) i5, con 2,80 GHz. Supongo que el valor h = 10 H/s es bastante inútil, ya que debería ser mucho más alto (pero ¿de dónde viene entonces)? Con mi procesador, asumo que no puedo llegar más alto que tal vez h = 50 kH/s. Sin embargo, para producir los 65 segundos, necesitaría una tasa de hash de

h = 2 ^ 32 * d / t = 1.7 * 10 ^ 10

que es mucho más alto que mi hashrate máximo.

No, no es así como se calcula la dificultad. ¿Ha revisado el papel amarillo en la página 6 ecuaciones 39 a 44 ?
Sí, verifiqué las ecuaciones 39-44. Pero como establecí la dificultad en un valor fijo, creo que solo las ecuaciones 39 y 40 son relevantes para mí. Por lo tanto, mi dificultad D(H) siempre es D_0 = 250. Entonces, un bloque válido debe tener un hash menor o igual a (2^256) / 250.

Respuestas (1)

No tienes razón.

  1. La probabilidad de que el hash sea una solución del problema es 1/d.
  2. La cantidad promedio de hash que se calculará para resolver el problema esingrese la descripción de la imagen aquí
  3. Entonces, la cantidad promedio de hashes por bloque es 250.
  4. Dado que su tasa de hash es 10H/S, podemos calcular el tiempo promedio: 25 segundos. Que no es tu número exacto, pero lo que sea.

La fórmula exacta que estás preguntando es t = d / h.