По команде "/difficulty" нода отдает значение минимальной сложности: 3384487.7704139897. Может конечно очень глупый вопрос, но это в каких единицах?
Эта единица так и называется - сложность. Есть несколько сложностей: сложность шары, минимальная сложность шары, сложность пула, сложность блока. Лучше не надо забивать себе голову.
Но ведь для SHA-256 асика сложность решаемой шары выражается как степень двойки, как сопоставить эти значения?
Как степень двойки представлены хеши (случайные числа от 0 до 2*256-1) а не сложность. Сложность это соотношение сложности пула к цели.
Прочтите теорию:
- сложность -
http://bitcoinfactswiki.github.io/Difficulty/- цель -
http://bitcoinfactswiki.github.io/Target/Сложность по отношению к шаре это своеобразный диапазон (ширина пропускания) от минимальной до максимума имеющей смысл для нахождения шары сложности. Если асик будет решать шару со сложностью меньше минимальной он будет только флудить.
По команде "/difficulty" выводится минимальная сложность Best share.
Её видно также если кликнуть на страничке
http://crypto.office-on-the.net:9332/static/classic/ по значению "Best share:"
P2Pool > Share 563b319d
Parent: 125d9228
Children:
Type: NewShare
Local data
Verified: true
Time first seen: Wed Apr 12 2017 02:11:09 GMT+0600 (1491941469.657235)
Peer first received from: 5.9.143.40,46806
Share data
Timestamp: Wed Apr 12 2017 02:10:08 GMT+0600 (1491941408)
Difficulty: 34166186.80246197
Minimum difficulty: 3008350.230408694
...
Вот в исходниках.
Это вывод в index.html на странице статистики и по команде /difficulty:
share_diff=parseFloat(global_stats.min_difficulty);
$('#share_difficulty').text(share_diff.toFixed(3) +
' (' + formatInt(share_diff*65536) + ')');
и /difficulty берёт напрямую из из
https://github.com/p2pool/p2pool/blob/master/p2pool/bitcoin/data.py#L226web_root.putChild('difficulty', WebInterface(lambda: bitcoin_data.target_to_difficulty(node.tracker.items[node.best_share_var.value].max_target)))
А это для страницы статистики из
https://github.com/p2pool/p2pool/blob/master/p2pool/web.py#L108min_difficulty=bitcoin_data.target_to_difficulty(node.tracker.items[node.best_share_var.value].max_target),
из
https://github.com/p2pool/p2pool/blob/master/p2pool/bitcoin/data.py#L226def target_to_difficulty(target):
assert 0 <= target and isinstance(target, (int, long)), target
if target >= 2**256: warnings.warn('target >= 2**256!')
return (0xffff0000 * 2**(256-64) + 1)/(target + 1)
Для большего понимания нужно разобрать исходники биткоина и пула. Но лучше не в этой теме.
Я думаю здесь не стоит более углубляться в программирование. Есть хорошие wiki где многое описано:
https://en.bitcoin.it,
http://bitcoinfactswiki.github.io/,
en.bitcoinwiki.org,
https://en.bitcoin.it/wiki/P2Pool