Beim gepoolten Mining scheint es drei verschiedene Begriffe für die Schwierigkeit bei der Verwendung zu geben. Anscheinend verwendet das Stratum-Protokoll bdiff
, BTCGuild verwendet pdiff
, und Ldiff
ist für verschiedene Scrypt-Pools üblich, wie in diesem Bitcointalk-Thread erwähnt .
Was bedeuten pdiff
, bdiff
, und ldiff
? Worin unterscheiden sie sich?
Was bedeuten pdfiff, bdiff und ldiff?
Die Zahlen geben die aktuelle Schwierigkeit des/der Netzwerk(s) an.
bdiff
ist die Zielschwierigkeit des gesamten Bitcoin-Netzwerks.
ldiff
ist die Zielschwierigkeit des gesamten Litecoin-Netzwerks.
pdiff
ist die Zielschwierigkeit Ihres Pools.
Wie Sie vielleicht wissen, ist die Schwierigkeit ein Maß dafür, wie schwierig es ist, einen Hash unterhalb eines bestimmten Zielwerts zu finden.
Worin unterscheiden sie sich?
Ist bdiff 1 == pdiff 1 == ldiff 1, oder wie hängen sie zusammen?
TL;DR: Nein. Das widerspricht dem Zweck, mehrere Schwierigkeiten zu haben.
Dies ist eine mehrteilige Antwort; Ich werde versuchen, es so aufzuteilen, dass es Sinn macht.
Das Bitcoin-Netzwerk hat eine globale Blockierungsschwierigkeit ( bdiff
). Gültige Blöcke müssen einen Hash haben, der kleiner oder gleich diesem Ziel ist. Mining-Pools haben auch eine Pool-spezifische Anteilsschwierigkeit, die eine Untergrenze für Anteile festlegt ( pdiff
, normalerweise 1).
Wie wird bdiff
berechnet?
bdiff
ist eine Annäherung basierend auf einem bekannten Hash, bei dem die führenden 32 Bits Null und der Rest Eins sind.
Schwierigkeit = Schwierigkeit_1_Ziel / aktuelles_Ziel
(Ziel ist eine 256-Bit-Zahl)
„difficulty_1_target“ kann für verschiedene Arten der Schwierigkeitsmessung unterschiedlich sein. Traditionell stellt es einen Hash dar, bei dem die führenden 32 Bits Null und der Rest Eins sind (dies wird als "Pool Difficulty" oder "pdiff" bezeichnet). Das Bitcoin-Protokoll stellt Ziele als benutzerdefinierten Fließkommatyp mit begrenzter Genauigkeit dar; Infolgedessen schätzen Bitcoin-Clients die Schwierigkeit oft auf dieser Grundlage ab (dies wird als „bdiff“ bezeichnet).
Wie wird dieser Wert gespeichert?
Jeder Block speichert eine gepackte Darstellung [...] für sein tatsächliches hexadezimales Ziel. Über eine vordefinierte Formel kann daraus das Ziel abgeleitet werden. Wenn beispielsweise das gepackte Ziel im Block ist
0x1b0404cb
, ist das hexadezimale Ziel0x0404cb * 2**(8*(0x1b - 3)) = 0x00000000000404CB00000000000000000000000000000000000000000000000
Beachten Sie, dass der 0x0404cb
Wert in diesem Format ein vorzeichenbehafteter Wert ist. Der größte zulässige Wert für dieses Feld ist 0x7fffff
, während der kleinste 0x008000
. Um einen größeren Wert zu erhalten, müssen Sie ihn um ein volles Byte nach unten verschieben, einen positiven gültigen Wert.
Wie rechnet man (schätzt) bdiff
?
Angenommen, Ihr Wert ist 1 ( 0x1d00ffff
)
0x00ffff * 2**(8*(0x1d - 3)) = 0x00000000FFFF00000000000000000000000000000000000000000000000000
Das wäre
0x00000000FFFF0000000000000000000000000000000000000000000000000 / 0x00000000000404CB000000000000000000000000000000000000000000000 = 16307,420938523983
Da Litecoin auf Bitcoin ldiff
basiert, wird es genauso berechnet wie bdiff
. Es ist eine Annäherung relativ zu einem bekannten Hash (256-Bit-Zahl, bei der die führenden 32 Bits Null und der Rest Eins sind).
ldiff
wird auf die gleiche Weise berechnet bdiff
.
Sie haben beide ein Maximum von unendlich (im Grunde) und ein Minimum von 1/4096
Da Litecoin seine Wurzeln in Bitcoin hat, bedeutet dies auch, dass ldiff
es sich um einen Näherungswert handelt, nicht um einen genauen Wert.
pdiff
relativ zur jeweiligen Kryptowährung ist. Im Fall von Bitcoin- und Litecoin-Pools stellt es dasselbe dar; aber zum Beispiel in einem Namecoin-Pool ist die Schwierigkeit möglicherweise nicht 1 oder sie wird anders berechnet. Das ist verwirrend, weil die betreffende 256-Bit-Zahl 0x1d00ffff
. Die Nummer hieß zunächst gar nichts. Aber als das gepoolte Mining begann, wurde es umgangssprachlich als pdiff
. Aber es gab es schon vor dem gepoolten Mining. Pools haben es einfach als Zielschwierigkeit verwendet, und weil bdiff
es bereits eine Sache war, wurde der Name pdiff
in die Zahl transponiert 0x1d00ffff
.
Beachten Sie, dass Pools normalerweise nicht abgeschnittene Ziele verwenden und normalerweise eine Schwierigkeit von 1 verwenden. Dies bedeutet, dass es selbst innerhalb derselben Kryptowährungen wirklich keine festgelegte Definition dessen gibt, was pdiff
ist; allerdings kenne ich keine Pools/Pool-Software, die diesen Regeln widersprechen, weil sie wünschenswert sind. Denken Sie daran, dass jeder seinen Pool machen kann, was er will.
pdiff
ist relativ.
Unter der Annahme, dass es sich um einen Standardpool handelt, folgt die Berechnung im Wesentlichen der gleichen wie bdiff
, jedoch mit einer Ausnahme:
Nehmen wir an, der Zielwert ist immer noch 0x1d00ffff
. Das Wiki sagt, dass Pools normalerweise "nicht abgeschnittene Ziele" verwenden, anstatt
0x00000000FFFF0000000000000000000000000000000000000000000000000wir bekommen
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Was, wenn man es ausrechnet, ergibt
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / 0x00000000000404CB000000000000000000000000000000000000000000000 = 16307,669773817162
KJ O
Murch
KJ O