Protocol
網路時間究竟是如何採樣的?
網路時間究竟是如何採樣的?
是否像一個節點在發送之前標記數據一樣簡單,接收節點在所有其他活動之前記錄目前時間,然後獲取差異?還是涉及到更複雜的事情?
程式碼連結將不勝感激。
比特幣區塊頭用作比特幣的時間戳系統。無論哪個礦工找到下一個區塊,都包含他們的系統時間戳,並且網路要麼同意它是有效的,要麼因為超出了他們的接受範圍而將其丟棄。
比特幣以 nTimeOffset 的邊距來驗證時間,這是由比特幣詢問其他節點他們認為是什麼時間並取中位數來設置的。您可以通過查看 util.cpp 中的 AddTimeData 來找到此程式碼,可在此處找到:https ://github.com/bitcoin/bitcoin/blob/master/src/util.cpp
還應該注意的是,一些礦工,主要是 ASIC,進行瞭如此多的雜湊運算,以至於他們實際上使用滾動時間將時間戳推到未來幾秒鐘以獲得額外的工作集:https ://en.bitcoin.it/wiki/Getwork#滾動時間