Warum ist die „Blockanzahl“ immer ein Vielfaches von 192?

Ich verwende den Light-Node-Client für rinkeby mit dem Befehl:

geth --rinkeby --syncmode=light --rpc --rpcapi personal,db,net,eth,web3

Das Terminal läuft ununterbrochen und ich beende es nicht, wenn ich den Laptop-Monitor schließe. Wenn sich der Laptop im Ruhezustand befindet (der Monitor ist geschlossen), beendet der Knoten die Synchronisierung. Und wenn ich den Laptop wieder aufnehme (den Monitor wieder öffne), beginnt der Knoten mit der Synchronisierung.

Beim Importieren der „neuen Blockheader“ ist die „Blockanzahl immer ein Vielfaches von 192 (Beispiel: count=192 | count=1344 | count=576), bis der vollständige Import abgeschlossen ist.

Warum in Vielfachen von 192? Warum nicht 50 oder 100?

Log-Trace:

INFO [06-03|01:29:38] Imported new block headers count=1 elapsed=75.603ms number=2393660 hash=12f7ae…f39bd4 ignored=0 INFO [06-03|01:29:38] Imported new block headers count=0 elapsed=129.563µs number=2393660 hash=12f7ae…f39bd4 ignored=1 INFO [06-03|13:35:03] Imported new block headers count=192 elapsed=330.559ms number=2393852 hash=609755…460a4e ignored=0 INFO [06-03|13:35:04] Imported new block headers count=192 elapsed=462.307ms number=2394044 hash=320d10…133b2e ignored=0 INFO [06-03|13:35:05] Imported new block headers count=192 elapsed=771.555ms number=2394236 hash=f0e2f4…32160b ignored=0 INFO [06-03|13:35:08] Imported new block headers count=192 elapsed=2.406s number=2394428 hash=8df410…bff82b ignored=0 INFO [06-03|13:35:09] Imported new block headers count=192 elapsed=1.123s number=2394620 hash=3b472e…304d40 ignored=0 INFO [06-03|13:35:11] Imported new block headers count=1344 elapsed=1.589s number=2395964 hash=f11335…bdb486 ignored=0 INFO [06-03|13:35:16] Imported new block headers count=576 elapsed=5.749s number=2396540 hash=83b56f…2d34b7 ignored=0 INFO [06-03|13:35:17] Imported new block headers count=22 elapsed=88.833ms number=2396562 hash=4a2013…e490b5 ignored=0 INFO [06-03|13:37:08] Imported new block headers count=8 elapsed=46.601ms number=2396570 hash=14f9a5…9bf85e ignored=0

Antworten (1)

Warum in Vielfachen von 192?

Es ist nur eine Konstante .

MaxHeaderFetch  = 192 // Amount of block headers to be fetched per retrieval request

Warum nicht 50 oder 100?

Weil 50 und 100 kein Oktal ist. Das Oktalzahlensystem , oder kurz oct, ist das Zahlensystem zur Basis 8 und verwendet die Ziffern 0 bis 7. Das Oktalsystem, das in CS weit verbreitet ist.

Danke! Wenn ich mir die anderen [Konstanten] ( github.com/ethereum/go-ethereum/blob/… ) anschaue, die wie ( MaxHashFetch = 512und MaxBlockFetch = 128) definiert sind, nehme ich an, dass sie ein Vielfaches von „8“ sind. Richtig?
Ja, Bytes müssen ausgerichtet werden.