Попробуйте петлю. Граф от 1 до миллиарда. Hash тех. Включить большую случайную соль.
Например:
xxxxxxxxxxxxxxxxxxxxxxxxxx00000001
xxxxxxxxxxxxxxxxxxxxxxxxxx00000002
xxxxxxxxxxxxxxxxxxxxxxxxxx00000003
xxxxxxxxxxxxxxxxxxxxxxxxxx00000004
...
xxxxxxxxxxxxxxxxxxxxxxxxxx99999996
xxxxxxxxxxxxxxxxxxxxxxxxxx99999997
xxxxxxxxxxxxxxxxxxxxxxxxxx99999998
xxxxxxxxxxxxxxxxxxxxxxxxxx99999999
Хорошо, я взял ваш совет.
Я выбрал блок (# 277316, хэш 0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4), и я сделал петлю с одноразовым номером от 0 до 2 ^ 20:
#! / USR / бен / окр питон
импорт hashlib
nomefile ="dist_hash"
maxnonce = 2 ** 20
версия = '00000002'
previousblockhash = '0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569'
merkleroot = 'c91c008c26e50763e9f548bb8b2fc323735f73577effbc55502c51eb4cc7cf2e'
Отметка времени = '52be093a'
difficultytarget = '1903a30c'
Nonce = 0
Защиту byteswap (а):
б = '';
для я в диапазоне (0, длина (а) / 2 + 1): B = A [2 * I: 2 * I + 2] + б
возвращение б
заголовок = byteswap (версия) + byteswap (previousblockhash) + byteswap (merkleroot) + byteswap (метка времени) + byteswap (difficultytarget)
с открытой (nomefile, 'W'), как F:
f.write ("NONCE" + "\ Т \ т" + "БЛОК HEADER HASH" + "\ п")
для временного значения в диапазоне (0, maxnonce): # 924591752 лучших
nonce_st = byteswap ("{0: 0} {1} х".format (одноразовое значение, 8)) #format: шестигранные (8 байт), обратный порядок байты
hash_result = hashlib.sha256 ((заголовок + nonce_st) .decode ( 'шестигранной')). дайджеста ()
hash_result = hashlib.sha256 (hash_result) .hexdigest ()
f.write ("{0: 0} {1}".format (Nonce, 8) + "\ т" + Byteswap (hash_result) + "\ п")
Вывод отсортирован по возрастанию хеш:
NONCE БЛОК HEADER HASH
00073675 00001161c27946bfbc99e631e5cfd1bf979c27bd68207991cb97e3d054c3192b
00563775 00001f485a9ad567aeb6a18a514f28b807f6a5c43a166debdc74b7ac46a765ea
00108164 000024a77201aaa21f86a43878bc50ef8be511105b403cad9c4b99e6f6b5563c
00172165 00002f3ea713eef6411ca3b2ead29ce859b1330d05df76a298bed3cf9807d666
00661616 000033f44a25e97b6dca43e4ba8dc9fe0e0b48777cc936f774433ce6244c71d4
...
...
00052351 ffffaa0a77c61b614e110c280bbb06c6d48561df1d6b064e4718a75ca97d509f
00845204 ffffc35f3b2a105c5a9d057b03e5eea26bb83f5d6482070be0eaa28a4dcb2f6b
00999281 ffffc4ee9128c730094017f32614562b434c3c782263b4adeb2a64fdc14a8584
00245490 ffffe3579d3529b5fe46b12db6eb472a6d5df707d4a738b7259ea7b2c62bae9b
00282384 ffffef1566a137349da9e6e02ecd638c7508933c08428f099a7f0808f10d7c6f
Последнее распределение цифр:
ТОТ = 2 ^ 20 = 1048576
последний
цифра фр. Проб. UNIF. -> 1/16 = 0.0625
0 62401 0,062401
1 62764 0,062764
2 62608 0,062608
3 62638 0,062638
4 62465 0,062465
5 62695 0,062695
6 62351 0,062351
7 62706 0,062706
8 62093 0,062093 -> MIN = -0,000407 = -0,65%
9 62340 0,06234
10 (а) 62884 0,062884 -> MAX = +0.000384 = + 0,61%
11 (б) 62412 0,062412
12 (с) 62455 0,062455
13 (д) 62204 0,062204
14 (е) 62220 0,06222
15 (е) 62764 0,062764
и последнее распределение 2 цифры:
Последние 2
цифры фр. Проб. UNIF. -> 1/256 = 0,00390625
78 (4E) 3751 0,003751 MIN -> -0,00015525 = -3,97%
...........................................
...........................................
47 (8А) 4117 0,004117 MAX -> +0.00021075 = + 5,40%