7

Stratumプロトコルを調べていますが、mining.notify メソッドの nbits 値に問題があります。私はそれを計算するのに苦労しています、それは通貨の難しさだと思います.

dogecoin プールから通知を取得すると、1b3cc366 が返され、その時点での難易度は 1078.52975077 でした。

ここでは、変換すると 1b3cc366 が 1078.52975077 になると想定しています。しかし、私は変換を正しく行うことができないようです。

私はherehereを見て、.NET 関数BitConverter.Int64BitsToDoubleも試しました。

nbits 値が何を意味するのかを理解するのを手伝ってくれる人はいますか?

4

1 に答える 1

13

そうです、nbits現在のネットワークの問題です。

エンコーディングの難しさについては、こちらで詳しく説明しています。

のような 16 進表現0x1b3cc366は、次の 2 つの部分で構成されます。

  • 0x1b-- ターゲットのバイト数
  • 0x3cc366-- ターゲットプレフィックス

0x3cc366000000000000000000000000000000000000000000000000これは、有効なハッシュが(正確に0x1b= 27 バイトの長さ)未満であることを意味します。

難易度の浮動小数点表現は、現在のターゲットがジェネシス ブロックで使用されているものよりどれだけ難しいかを示します。

サトシ0x1d00ffffはジェネシスブロックの難易度として使うことにしたので、ターゲットは 0x00ffff0000000000000000000000000000000000000000000000000000.

1078.52975077 は、現在のターゲットが最初のターゲットよりどれだけ大きいかを示します。

$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605
于 2014-03-04T01:19:26.770 に答える