2014-02-27 3 views
6

Ich sehe mir die stratum protocol an und habe ein Problem mit dem nbits-Wert der mining.notify-Methode. Ich habe Probleme, es zu berechnen, ich nehme an, es ist die Währungsschwierigkeit.Ich versuche, den nbits-Wert aus dem Stratum-Protokoll zu verstehen

Ich ziehe eine Benachrichtigung aus einem Dogecoin-Pool und es zurückgegeben 1b3cc366 und zu der Zeit war die Schwierigkeit 1078.52975077.

Ich gehe hier davon aus, dass 1b3cc366 sollte 1078.52975077 geben, wenn konvertiert. Aber ich kann das Umwandlungsrecht anscheinend nicht tun.

Ich habe here, here gesucht und auch die .NET-Funktion BitConverter.Int64BitsToDouble versucht.

Kann mir jemand helfen zu verstehen, was der Wert von nbits bedeutet?

Antwort

10

Sie haben Recht, nbits ist aktuelle Netzwerkschwierigkeit.

Schwierigkeit Codierung ist durchgängig here beschrieben.

Hexadezimaldarstellung wie 0x1b3cc366 besteht aus zwei Teilen:

  • 0x1b - Anzahl der Bytes in einem Ziel
  • 0x3cc366 - target prefix

Dies bedeutet, dass gültige Hash weniger sein sollte, als 0x3cc366000000000000000000000000000000000000000000000000 (es ist genau 0x1b = 27 Bytes lang).

Fließkommadarstellung der Schwierigkeit zeigt an, wie viel gegenwärtiges Ziel härter als das ist, das im Entstehungsblock verwendet wird.

Satoshi entschied sich, 0x1d00ffff als eine Schwierigkeit für den Genese-Block zu verwenden, so war das Ziel 0x00ffff0000000000000000000000000000000000000000000000000000.

Und 1078,52975077 ist, wie viel Strom Ziel ist größer als der Anfangs ein:

$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000/3CC366000000000000000000000000000000000000000000000000' | bc -l 
1078.52975077482646448605 
Verwandte Themen