Después de leer varios documentos, todavía no me queda completamente claro qué determina el aumento de la dificultad y cómo los niveles de dificultad de Ethereum difieren de los de Bitcoin.
En la última semana, la dificultad saltó de alrededor de 11 a más de 17, mientras que GH/s fluctuó entre 800,00 y 1400,00, pero sin una correlación clara entre los dos.
¿Se ha introducido ahora la "bomba de dificultad"? Y si es así, ¿hay alguna forma de aproximar o calcular cuánta dificultad probablemente aumentará en los próximos 6 a 12 meses?
Relacionado: si es poco probable que Serenity / PoS se presente hasta principios del próximo año, ¿ha habido alguna sugerencia del equipo de desarrollo de que los efectos de esta "bomba de dificultad" se reducirán en los lanzamientos de Homestead o Metropolis?
Desde https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2.md :
La dificultad de la minería se calcula a partir de la diferencia de tiempo entre bloques. La fórmula exacta cambiará en Homestead. El símbolo //
a continuación denota división entera.
block_diff = parent_diff + parent_diff // 2048 * (1 if block_timestamp - parent_timestamp < 13 else -1) + int(2**((block.number // 100000) - 2))
block_diff = parent_diff + parent_diff // 2048 * max(1 - (block_timestamp - parent_timestamp) // 10, -99) + int(2**((block.number // 100000) - 2))
EDITAR:
El problema con la fórmula de la frontera y la razón del cambio fue que la versión de la frontera no tiene en cuenta qué tan lejos de 13 segundos estaba el tiempo de bloqueo. Un bloque extraído 1 segundo después del anterior tiene el mismo efecto en la dificultad que uno extraído después de 12 segundos. Esto hace que la dificultad de los bloques se ajuste a un tiempo de bloque medio en lugar de a una media .
Una vez más, consulte el EIP para obtener más detalles.
Ben Vickers
señorchico
block_diff = parent_diff + parent_diff // 2048 + int(2**((block.number // 100000) - 2))
Si el tiempo entre los dos últimos bloques fue mayor a 13 segundos, la dificultad baja:block_diff = parent_diff - parent_diff // 2048 + int(2**((block.number // 100000) - 2))
thomas jay prisa