¿Cómo generar un objetivo de bitcoin a partir de la dificultad?

Leyendo el manual de slushpool para el protocolo Stratum encontré que:

"La dificultad compartida predeterminada es 1 (el objetivo big-endian para la dificultad 1 es 0x00000000ffff0000000000000000000000000000000000000000000000000000 )"

¿Alguien sabe cómo generar esta representación big-endian larga de 64 caracteres del número 1? Agradecería cualquier código en Java.

Gracias

Respuestas (1)

Me temo que no conozco Java, pero el objetivo se resuelve de la siguiente manera:

target = maximum target / difficulty

Nota: El objetivo máximo es 0x00000000FFFF0000000000000000000000000000000000000000000000000000(que en decimal es 26959535291011309493156476344723991336010898738574164086137773096960)

Por lo tanto:

target = maximum target / difficulty
target = 26959535291011309493156476344723991336010898738574164086137773096960 / 1
target = 26959535291011309493156476344723991336010898738574164086137773096960

Entonces, si vuelves a convertir eso a hexadecimal, obtienes:

0xFFFF0000000000000000000000000000000000000000000000000000

Luego puede simplemente rellenar ceros a la izquierda para que tenga 64 caracteres:

0x00000000FFFF0000000000000000000000000000000000000000000000000000

http://learnmeabitcoin.com/manual/guide/difficulty#finding-the-target-using-the-difficulty

Gracias por su información. Leí más sobre el protocolo Stratum y descubrí que la dificultad actual de la red se almacena en la variable nBits.
Así que ahora tengo que averiguar cómo puedo convertir los nBits a Target.