1) К какому типу я должен преобразовать одноразовый номер 00000000, чтобы получить 2e6b0a1d ???
Не уверен, что вы спрашиваете здесь. Шахтер начнется в нонсе 0 и попробовать все 2 ^ 32 возможностей, пока она не достигнет 4294967295. Это позволяет несколько хэш за изменения blockheader. После того, как все одноразовые были опробованы
2) В некоторых примерах я видел цель: ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 Как я знаю, это мое решение меньше, чем цель?
Вы реверс снова и сравнить значение (они шестнадцатеричные)
ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 становится
00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Это было бы меньше
00000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffe
000000008e93ed87e827f989e2b4343c43434d434efff
00000000 .... все остальное здесь меньше .....
Это было бы слишком большим
00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0f28ebb00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000001 .... все остальное здесь слишком велик ...
Так как только наиболее значимые цифры значения обычно можно разбить хэш в 32 бит "cunks" и просто сравнить их.
Так
00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000000.ffffffff.ffffffff.ffffffff.ffffffff.ffffffff.ffffffff.ffffffff
так, чтобы соответствовать вашему примеру целевого первого 32bit должен быть 00000000. Что-нибудь, кроме 0 слишком велико.
Так как второй сегмент 32-битный является FFFFFFFF, то любое значение хорошо (нет необходимости проверять 2-го по 8-й сегменты).
С другой стороны, если вы цель была
fffffffffffffffffffffffffffffffffffffffffffffffffffffffa00000000
который переворачивает на
00000000.afffffff.ffffffff.ffffffff.ffffffff.ffffffff.ffffffff.ffffffff
то вам нужно будет проверить, что первый сегмент <= 00000000
и второй сегмент <= afffffff