Mining

乙太坊挖礦節點如何保持與網路的時間一致?

  • August 9, 2019

我們已經確定了父塊上的時間戳必須在子塊的時間戳之前 子塊的時間戳可以早於父塊嗎?.

如何考慮不同礦工電腦上時鐘設置的差異?

乙太坊節點(無論是否挖礦)都需要有準確的時間,否則它們將無法連接到對等節點和網路(https://github.com/ethereum/go-ethereum/wiki/Connecting-to-the -網路)。

節點可以容忍時間上的微小差異,但隨著一個節點的時間遠離協調 UTC 時間(每個NTP),其對等點的數量將減少,最終它將有零個對等點並與網路斷開連接。

礦工 M 想要一個與網路一致的時間,以便其他礦工將建立在 M 開采的區塊上。

區塊必須在合理的 Unix 時間內,否則礦工不太可能在時間戳不合理的區塊上建構。(

編輯:為清楚起見,在乙太坊中,關於時間戳的唯一規則時間戳必須大於前一個時間戳。沒有其他規則:白皮書wiki等舊文件可能會提到 15 分鐘(900 秒),以下是更正:

白皮書

檢查區塊的時間戳是否大於引用的前一個區塊的時間戳,並且距離未來不到 15 分鐘

維基

block.timestamp <= now + 900 是block.timestamp > parent.timestamp 嗎?(嚴格來說更大)

不幸的是,過時的錯誤資訊已被其他人(例如此處此處)獲取。

黃皮是正式規範,請參見塊頭有效性(第 4.4.4 節,等式 48)。

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