Но ведь в лайте сложность считается по другому. в цгмайнере ведь:
d64 = truediffone;
if (opt_scrypt)
d64 *= (double)65536;
d64 /= diff;
Если сделать так, будет работать?
static uint8_t diff_to_bits(double diff)
{
// uint64_t diff64;
uint64_t diff64 = 0x0000ffff00000000ULL; //Для BTC: 0x00000000ffff00000000ULL
uint8_t i;
diff /= 0.9999847412109375;
diff *= (double)2147483648.0;
if (diff > 0x8000000000000000ULL)
diff = 0x8000000000000000ULL;
/* Convert it to an integer */
diff64 = diff;
for (i = 0; diff64; i++, diff64 >>= 1);
return i;
}
Одинаково сложность считается.
Просто в для майнинга лайте сложность искусственно занижается чтобы майнить легче было.
Вобщем диф это целое число. Чем число меньше тем майнить (находить блок для дифа) - сложнее. Чем диф больше - тем майнить легче. В битке как видишь максимальный диф ограничен числом 0x8000000000000000ULL. Это чтобы совсем уж халявные блоки майнерам не доставались ни при каких условиях.
Ну попробуй закомментарить это условие и домножить диф на 65536 или еще на что-нибудь побольше. Это будет означать только то, что ты разрешишь в своем майнере искать более простые блоки.