我正在查看stratum protocol,我遇到了mining.notify方法的nbits值问题。我无法计算它,我认为这是货币难度。
我从一个dogecoin池中提取通知,它返回1b3cc366,当时难度为1078.52975077。
我假设1b3cc366在转换时应该给我1078.52975077。但我似乎无法正确转换。
我看过here,here并尝试了.NET函数BitConverter.Int64BitsToDouble。
有人可以帮我理解nbits值的含义吗?
答案 0 :(得分:10)
你是对的,nbits
是目前的网络难度。
编码难度很大here。
像0x1b3cc366
这样的十六进制表示由两部分组成:
0x1b
- 目标中的字节数0x3cc366
- 目标前缀这意味着有效散列应小于0x3cc366000000000000000000000000000000000000000000000000
(正好是0x1b
= 27个字节)。
难度的浮点表示显示当前目标比创世块中使用的目标更难。
Satoshi决定使用0x1d00ffff
作为创世块的难度,所以目标是
0x00ffff0000000000000000000000000000000000000000000000000000
。
而1078.52975077是当前目标大于初始目标:
$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605