Попытка понять значение nbits из протокола stratum

StackOverflow https://stackoverflow.com//questions/22059359

  •  23-12-2019
  •  | 
  •  

Вопрос

я смотрю на протокол слоя и у меня возникла проблема со значением nbits метода Mining.notify.У меня проблемы с расчетами, я предполагаю, что это сложность с валютой.

Я извлекаю уведомление из пула dogecoin, и оно возвращает 1b3cc366, а сложность на тот момент составляла 1078,52975077.

Я предполагаю, что 1b3cc366 должен дать мне 1078,52975077 при преобразовании.Но я не могу сделать преобразование правильно.

я посмотрел здесь, здесь а также попробовал функцию .NET BitConverter.Int64BitsToDouble.

Может ли кто-нибудь помочь мне понять, что означает значение nbits?

Это было полезно?

Решение

Ты прав, nbits текущая сложность сети.

Подробно описана сложность кодирования. здесь.

Шестнадцатеричное представление, например 0x1b3cc366 состоит из двух частей:

  • 0x1b -- количество байтов в цели
  • 0x3cc366 -- целевой префикс

Это означает, что действительный хэш должен быть меньше, чем 0x3cc366000000000000000000000000000000000000000000000000 (это точно 0x1b = длина 27 байт).

Представление сложности с плавающей запятой показывает, насколько текущая цель сложнее той, которая используется в блоке генезиса.

Сатоши решил использовать 0x1d00ffff как сложность для блока генезиса, поэтому целью была0x00ffff0000000000000000000000000000000000000000000000000000.

А 1078,52975077 — это то, насколько текущая цель больше начальной:

$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top