Testnet hat bekanntlich eine „20-Minuten-Regel“: Wird innerhalb von 20 Minuten kein Block gefunden, sinkt die Mining Difficulty auf 1, bis ein Block gefunden wird.
Aus einigen Experimenten geht hervor, dass die Funktion von Bitcoin getdifficulty
die Schwierigkeit des letzten Blocks meldet. Wenn also der letzte Block unter der 20-Minuten-Regel abgebaut wurde, getdifficulty
wird 1 zurückgegeben.
Wie finde ich in diesem Fall den "echten" Schwierigkeitsgrad? Das heißt, die Schwierigkeit, die für einen Block erforderlich wäre, der weniger als 20 Minuten nach dem vorherigen eingereicht wird?
Der beste Ansatz, den ich bisher gefunden habe, ist, der Blockchain zurück zu folgen, bis ich einen Block mit einer anderen Schwierigkeit als 1 finde (oder weniger als 20 Minuten nach dem Block davor). Dies ist jedoch fehleranfällig, wenn kürzlich eine Schwierigkeitsanpassung stattgefunden hat.
Bitcoin muss jederzeit die wirkliche Schwierigkeit kennen; kann ich es abfragen?
Sie können den getblocktemplate
RPC-Befehl verwenden und sich das Feld ansehen target
.
Steven Rose
Nate Eldredge
Nate Eldredge