Unter der Annahme eines Intervalls, in dem kein Block gefunden wird, wissen wir, wie oft der typische Miner seine Blocktransaktionsliste mit neuen Transaktionen aus dem Mempool aktualisiert?
Ich habe eine Referenz gefunden , die darauf hindeutet, dass die Standardaktualisierungszeit 60 Sekunden beträgt, aber ich bin mir nicht sicher, welche Software die Pools verwenden, um ihre Sperrtransaktionslisten zu generieren.
Willkommen auf der Seite!
Dies hängt vom verwendeten Protokoll ab.
Bei einigen Protokollen bestimmt der Pool, wie oft die Transaktionsliste aktualisiert wird, und bei anderen wird sie vom Mining-Client definiert.
In Stratum sendet der Pool dem Miner einen neuen Merkle-Zweig, wenn er einen neuen Block sieht oder wenn eine bestimmte Zeit vergangen ist. Standardmäßig aktualisiert es die Liste der Transaktionen alle 60 Sekunden .
Dies ist natürlich nur eine Vorgabe; ein Poolbetreiber kann dies ändern.
In getblocktemplate mit longpoll sendet der Pool neue Arbeit bei Blockwechsel oder nach 60 Sekunden. (Zumindest für Bitcoin.)
// Wait to respond until either the best block changes, OR a minute has passed and there are more transactions
...
checktxtime = boost::get_system_time() + boost::posix_time::minutes(1);
In getblocktemplate ohne Longpoll sucht der Miner hin und wieder nach neuer Arbeit. „Hin und wieder“ ist Miner-definiert.
cgminer macht es alle 60 Sekunden:
static void gen_gbt_work(struct pool *pool, struct work *work)
...
if (now.tv_sec - pool->tv_lastwork.tv_sec > 60)
bfgminer kann vom Benutzer konfiguriert werden, ist jedoch standardmäßig auf 60 Sekunden eingestellt:
--scan-time <arg> Upper bound on time spent scanning current work, in seconds (default: 60)
Das Ändern der Arbeit, nachdem das Netzwerk einen neuen Block gefunden hat, und alle 60 Sekunden ist bei weitem die häufigste Vorgehensweise.
stratum protocol doesn't have a default interval to push new work
Technisch gesehen definiert das Stratum-Protokoll nicht, wie oft Sie neue Arbeit pushen. In der Praxis verwendet jeder die Implementierung von slush, und die Implementierung von slush tut dies standardmäßig alle 60 Sekunden.
Nick Odell