试图从stratum协议了解nbits值

时间:2014-02-27 04:56:19

标签: bitcoin dogecoin-api

我正在查看stratum protocol,我遇到了mining.notify方法的nbits值问题。我无法计算它,我认为这是货币难度。

我从一个dogecoin池中提取通知,它返回1b3cc366,当时难度为1078.52975077。

我假设1b3cc366在转换时应该给我1078.52975077。但我似乎无法正确转换。

我看过herehere并尝试了.NET函数BitConverter.Int64BitsToDouble

有人可以帮我理解nbits值的含义吗?

1 个答案:

答案 0 :(得分:10)

你是对的,nbits是目前的网络难度。

编码难度很大here

0x1b3cc366这样的十六进制表示由两部分组成:

  • 0x1b - 目标中的字节数
  • 0x3cc366 - 目标前缀

这意味着有效散列应小于0x3cc366000000000000000000000000000000000000000000000000(正好是0x1b = 27个字节)。

难度的浮点表示显示当前目标比创世块中使用的目标更难。

Satoshi决定使用0x1d00ffff作为创世块的难度,所以目标是 0x00ffff0000000000000000000000000000000000000000000000000000

而1078.52975077是当前目标大于初始目标:

$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605