Frage

Ich schaue mir das an Stratum-Protokoll und ich habe ein Problem mit dem nbits-Wert der Methode mining.notify.Ich habe Schwierigkeiten, es zu berechnen, ich gehe davon aus, dass es an der Währungsschwierigkeit liegt.

Ich rufe eine Benachrichtigung aus einem Dogecoin-Pool ab und sie gab 1b3cc366 zurück und zu diesem Zeitpunkt war die Schwierigkeit 1078,52975077.

Ich gehe hier davon aus, dass 1b3cc366 bei der Konvertierung 1078,52975077 ergeben sollte.Aber ich schaffe es anscheinend nicht, die Konvertierung richtig durchzuführen.

Ich habe geschaut Hier, Hier und habe auch die .NET-Funktion ausprobiert BitConverter.Int64BitsToDouble.

Kann mir jemand helfen zu verstehen, was der Nbit-Wert bedeutet?

War es hilfreich?

Lösung

Du hast Recht, nbits ist die aktuelle Netzwerkschwierigkeit.

Die Schwierigkeit der Kodierung wird ausführlich beschrieben Hier.

Hexadezimale Darstellung wie 0x1b3cc366 besteht aus zwei Teilen:

  • 0x1b – Anzahl der Bytes in einem Ziel
  • 0x3cc366 -- Zielpräfix

Das bedeutet, dass der gültige Hash kleiner sein sollte als 0x3cc366000000000000000000000000000000000000000000000000 (Es ist genau 0x1b = 27 Byte lang).

Die Gleitkommadarstellung des Schwierigkeitsgrads zeigt, um wie viel das aktuelle Ziel schwieriger ist als das im Genesis-Block verwendete.

Satoshi entschied sich für die Verwendung 0x1d00ffff als Schwierigkeit für den Genesis-Block, so war das Ziel0x00ffff0000000000000000000000000000000000000000000000000000.

Und 1078,52975077 gibt an, um wie viel das aktuelle Ziel größer ist als das ursprüngliche Ziel:

$ echo 'ibase=16;FFFF0000000000000000000000000000000000000000000000000000 / 3CC366000000000000000000000000000000000000000000000000' | bc -l
1078.52975077482646448605
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top