Solidity

塊.時間戳

  • February 9, 2022

我試圖了解什麼是 `block.timestamp’ 我的契約中有以下程式碼:

require(block.timestamp >= publicSalesStartTime, "Not started yet");

block.timestamp 返回什麼?簡單的答案是“目前區塊的時間戳” 但是,是已經開采的區塊還是正在收集交易並將很快開采的新區塊?

長答案:這是塊被開采的時間,以秒為單位。請注意,這不是在 EVM 中執行程式碼的時間。發生什麼了?礦工選擇一些交易並用這些交易探勘區塊。礦工選擇區塊被開采的時刻。它不需要執行智能合約程式碼來探勘區塊,只需驗證此類交易是否簽名良好且有效。

簡短的回答:交易在“內部”是塊的時間。

是後者。它是包含此交易的區塊的時間戳。請注意,在許多案例中,依賴區塊的時間戳並不完全安全。這是因為礦工可以在一定範圍內操縱區塊時間戳,所以我會謹慎依賴它。

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