Voy a arruinar mucho la terminología aquí. Estoy tratando de entender el algoritmo de Bitcoin y quería usar este minero JS: https://github.com/howardchung/jsminer . Específicamente, estoy tratando de entender cómo construir los datos que alguien intenta hacer hash. Intentan hacer esto en el minero JS de la siguiente manera
var header = version + prevhash + merkle_root + ntime + nbits + '00000000' + '000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000';
curr_block.data = header;
Estoy siguiendo la mayor parte de esto, usando la wiki de Bitcoin como referencia, pero lo que no puedo entender en absoluto es cuáles son estas dos últimas constantes numéricas: '00000000' y la más grande que comienza con "0000008". Los he visto aparecer en otros ejemplos, pero no puedo entender por qué son necesarios o si estos son valores codificados en el minero JS que no deberían estar allí en la vida real. Cualquier ayuda es apreciada.
El primero 00000000
es por el momento. El nonce se cambia para obtener un encabezado de bloque diferente sin volver a seleccionar transacciones. Es lo que se usa principalmente para encontrar un hash de bloque válido.
La cadena larga de bytes que comienza con 0000008
es el relleno SHA-256. En realidad, no es parte del encabezado del bloque y lo que sea que esté haciendo el hash SHA-256 debería descubrir y agregar este relleno por usted. Es parte del paso de preprocesamiento para SHA-256.
dave
andres chow
dave
andres chow