Synchronization
同步:為什麼startingBlock 領先於currentBlock?
> eth.syncing { currentBlock: 908716, highestBlock: 928604, knownStates: 0, pulledStates: 0, startingBlock: 908891 }
看起來同步是從塊 908891 開始的,雖然目前塊是 908716。那麼塊 908717..908890 是如何同步的呢?
startingBlock: QUANTITY - 導入開始的塊(只會在同步到達他的頭部後重置)
currentBlock: QUANTITY - 目前區塊,與 eth_blockNumber 相同
查看 Geth 原始碼,
# StartingBlock is the block number at which synchronisation started. startingBlock: Long! # CurrentBlock is the point at which synchronisation has presently reached. currentBlock: Long!
因此,startingBlock 是您最初開始同步的點,即當您第一次載入客戶端時,而目前塊是您已取得的進度。當您開始同步客戶端時,highestBlock == startingBlock。
換句話說,當您開始同步時
目前塊 <= 起始塊 <= 最高塊
但是,隨著同步的進行,您會期望目前塊(您鏈同步的塊)通過起點。
起始塊 <= 目前塊 <= 最高塊
最終,
目前塊 === 最高塊
並且
eth.syncing
將返回零參考: