stratum プロトコルから nbits 値を理解しようとしています
-
23-12-2019 - |
質問
私はそれを見ています 層プロトコル mining.notify メソッドの nbits 値に問題があります。計算するのが難しいのですが、通貨の難しさのせいだと思います。
dogecoin プールから通知を取得すると 1b3cc366 が返され、その時点での難易度は 1078.52975077 でした。
ここでは、1b3cc366 を変換すると 1078.52975077 が得られると仮定します。しかし、変換を正しく行うことができないようです。
見てきました ここ, ここ .NET関数も試しました BitConverter.Int64BitsToDouble.
nbits 値が何を意味するのかを理解できる人はいますか?
解決
あなたが正しいです、 nbits
現在のネットワークの難易度です。
エンコードの難易度について詳しく説明されています ここ.
次のような 16 進数表現 0x1b3cc366
次の 2 つの部分で構成されます。
0x1b
-- ターゲット内のバイト数0x3cc366
-- ターゲットプレフィックス
これは、有効なハッシュが以下である必要があることを意味します 0x3cc366000000000000000000000000000000000000000000000000
(まさにその通りです 0x1b
= 27 バイト長)。
難易度の浮動小数点表現は、現在のターゲットがジェネシス ブロックで使用されているものよりどれだけ難しいかを示します。
サトシは使うことにした 0x1d00ffff
ジェネシスブロックの難易度として、ターゲットは0x00ffff0000000000000000000000000000000000000000000000000000
.
1078.52975077 は、現在の目標が最初の目標よりどのくらい大きいかです。
$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605