Ich versuche, die Hashrate von geth und die Schwierigkeitseinstellung von Ethereum zu verstehen. Ich betreibe ein privates Testnetz und setze die Schwierigkeit auf einen festen Wert (auf big.NewInt(250)
), wie von https://ethereum.stackexchange.com/a/7159/5293 beschrieben . Ich starte das CPU-Mining in Geth über einen Thread mit miner.start(1)
. Dann messe ich die Hashrate mit eth.hashrate
, das ist normalerweise ein Wert zwischen 8 und 12 (sagen wir h = 10 H/s im Durchschnitt). Ich habe die durchschnittliche Blockzeit durch 15-minütiges Mining gemessen und sie betrug ungefähr 65 Sekunden.
Jetzt möchte ich die Schwierigkeitseinstellung und die Hashrate verwenden, um die erwartete Blockzeit zu berechnen. Wenn ich es so berechnen würde, wie die Begriffe „Schwierigkeit“ (d) und „Hashrate“ (h) in Bitcoin verwendet werden, würde ich erhalten
t = 2^32 * d / h,
das ist nicht einmal annähernd 65 Sekunden.
Ich verwende geth auf einer Intel(R) Core(TM) i5-CPU mit 2,80 GHz. Ich nehme an, dass der Wert h = 10 H/s eher unbrauchbar ist, da er viel höher sein sollte (aber wo kommt er dann her)? Bei meinem Prozessor würde ich davon ausgehen, dass ich nicht höher als vielleicht h = 50 kH/s komme. Um die 65 Sekunden zu erhalten, bräuchte ich jedoch eine Hash-Rate von
h = 2^32 * d / t = 1,7 * 10^10
was viel höher ist als meine maximale Hashrate.
Du hast nicht recht.
Die genaue Formel, nach der Sie fragen, lautet t = d / h.
q9f
Pold