improvement getNextExtranonce2 and create getRandomExtranonce2

This commit is contained in:
Lucas Campos 2024-01-08 08:42:16 -03:00
parent 57f9482e48
commit b84372676a

View File

@ -136,21 +136,37 @@ bool checkValid(unsigned char* hash, unsigned char* target) {
return valid; return valid;
} }
void getNextExtranonce2(int extranonce2_size, char *extranonce2) { /**
* get random extranonce2
*/
void getRandomExtranonce2(int extranonce2_size, char *extranonce2) {
uint8_t b0, b1, b2, b3;
unsigned long extranonce2_number = strtoul(extranonce2, NULL, 10); b0 = rand() % 256;
extranonce2_number++; b1 = rand() % 256;
b2 = rand() % 256;
b3 = rand() % 256;
memset(extranonce2, '0', 2 * extranonce2_size); unsigned long extranonce2_number = b3 << 24 | b2 << 16 | b1 << 8 | b0;
if (extranonce2_number > long(pow(10, 2 * extranonce2_size))) {
return; char format[] = "%00x";
sprintf(&format[1], "%02dx", extranonce2_size * 2);
sprintf(extranonce2, format, extranonce2_number);
} }
char next_extranounce2[2 * extranonce2_size + 1]; /**
memset(extranonce2, '0', 2 * extranonce2_size); * get linear extranonce2
ultoa(extranonce2_number, next_extranounce2, 10); */
memcpy(extranonce2 + (2 * extranonce2_size) - long(log10(extranonce2_number)) - 1 , next_extranounce2, strlen(next_extranounce2)); void getNextExtranonce2(int extranonce2_size, char *extranonce2) {
extranonce2[2 * extranonce2_size] = 0; unsigned long extranonce2_number = strtoul(extranonce2, NULL, 10);
extranonce2_number++;
char format[] = "%00x";
sprintf(&format[1], "%02dx", extranonce2_size * 2);
sprintf(extranonce2, format, extranonce2_number);
} }
miner_data init_miner_data(void){ miner_data init_miner_data(void){