Go-Ethereum

為什麼“塊數”總是 192 的倍數?

  • June 3, 2018

我正在使用以下命令為 rinkeby 執行輕節點客戶端:

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

終端連續執行,當我關閉筆記型電腦顯示器時我不會退出它。當筆記型電腦休眠(監視器關閉)時,節點停止同步。當我恢復筆記型電腦(重新打開顯示器)時,節點開始同步。

在導入“新塊頭”時,“塊”始終是 192 的倍數(範例:)count=192 | count=1344 | count=576,直到完全導入完成。

為什麼是 192 的倍數?為什麼不是 50 或 100?

日誌跟踪:

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

為什麼是 192 的倍數?

這只是一個常數

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

為什麼不是 50 或 100?

因為 50 和 100 不是八進制數。八進制數字系統,或簡稱oct,是以8為基數的數字系統,使用數字0到7。oct系統在CS中廣泛使用。

引用自:https://ethereum.stackexchange.com/questions/50306