Solidity

在區塊鏈中儲存時間戳的正確方法是什麼?

  • July 23, 2020

我正在嘗試使用block.timestampor將時間戳儲存在區塊鏈中now。但這不斷發出警告

“block.timestamp”的使用:“block.timestamp”在一定程度上會受到礦工的影響。這意味著礦工可以在一定程度上“選擇”block.timestamp 來改變開採區塊中交易的結果。

儲存時間戳的正確方法是什麼?這是好習慣嗎?

沒有其他方法可以獲取目前時間戳。now是的別名block.timestamp,是的,它可能會受到礦工的影響(有點)。但這是最好的。

大多數情況下,礦工沒有理由影響時間戳。在極少數情況下,當可能的獎勵足夠大時,他們可能會受到激勵來影響它。當礦工有自己的交易要開採時,這種情況可能是一些基於時間的賭博/彩票,需要特定的時間戳才能獲得更好的獲勝機會。

在某些情況下,使用block.number是一種更安全的選擇,因為它不受礦工的影響。它可以以與時間戳類似的方式使用,因為塊以相當規則的間隔發生。這裡有更多資訊,例如https://ethereum.stackexchange.com/a/10942/31933

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