试图从stratum协议中理解nbits值
-
23-12-2019 - |
题
我在看 地层协议 我对挖掘的nbits值有问题。通知方法。我有麻烦计算它,我假设这是货币难度。
我从一个dogecoin池中拉出一个通知,它返回了1b3cc366,当时的难度是1078.52975077。
我在这里假设1b3cc366在转换时应该给我1078.52975077。但我似乎无法做正确的转换。
我看过了 这里, 这里 并且还尝试了.NET功能 BitConverter.Int64BitsToDouble.
有人可以帮助我理解nbits值意味着什么?
解决方案
你说得对, nbits
是当前的网络难度。
困难编码是通俗易懂地描述 这里.
十六进制表示像 0x1b3cc366
由两部分组成:
0x1b
--目标中的字节数0x3cc366
--目标前缀
这意味着有效的散列应该小于 0x3cc366000000000000000000000000000000000000000000000000
(正是 0x1b
=27字节长)。
难度的浮点表示显示当前目标比创世块中使用的目标更难。
Satoshi决定使用 0x1d00ffff
作为创世块的一个困难,所以目标是
0x00ffff0000000000000000000000000000000000000000000000000000
.
而1078.52975077是当前目标比初始目标大多少:
$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605
不隶属于 StackOverflow