Wie finde ich die "echte" Schwierigkeit im Testnet?

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 getdifficultydie Schwierigkeit des letzten Blocks meldet. Wenn also der letzte Block unter der 20-Minuten-Regel abgebaut wurde, getdifficultywird 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?

Warum sollte Bitcoin es immer wissen müssen? Wenn die 20-Minuten-Regel hart ist, akzeptiert Bitcoin einfach jeden neuen Block, den es nach 20 Minuten erhält. Aber ich habe noch nie von dieser Regel gehört. Können Sie mir sagen, wo Sie davon erfahren haben?
@StevenRoose: en.bitcoin.it/wiki/Testnet : "Außerdem, wenn in 20 Minuten kein Block gefunden wurde, wird die Schwierigkeit automatisch für einen einzelnen Block auf das Minimum zurückgesetzt, danach kehrt sie zu ihrem vorherigen Wert zurück."
@StevenRoose: Wenn Bitcoin einen Block erhält, der weniger als 20 Minuten neuer ist als der vorherige, muss es die „echte“ Schwierigkeit nutzen, um zu entscheiden, ob es akzeptiert wird.

Antworten (1)

Sie können den getblocktemplateRPC-Befehl verwenden und sich das Feld ansehen target.