试图从stratum协议了解nbits值

the*_*tus 6 bitcoin dogecoin-api

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

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

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

我看这里,这里也尝试了.NET功能BitConverter.Int64BitsToDouble.

有人能帮助我理解nbits值的含义吗?

max*_*kin 12

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

这里完全描述难以编码.

十六进制表示形式0x1b3cc366由两部分组成:

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

这意味着有效散列应该小于0x3cc366000000000000000000000000000000000000000000000000(它恰好0x1b= 27个字节长).

困难的浮点表示显示当前目标比在创世块中使用的目标更难.

Satoshi决定0x1d00ffff用作创世块的难度,因此目标是 0x00ffff0000000000000000000000000000000000000000000000000000.

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

$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605
Run Code Online (Sandbox Code Playgroud)