Security
我怎樣才能找到發件人的氣體限制?
有沒有辦法檢查發件人的氣體限制?
如果發件人設置的太低,我會接受他設置的任何氣體量並立即返回而不會達到限制。
我正在嘗試減輕 Fomo3D 類型的攻擊。
gasLimit 是塊的屬性,但我將您的問題解釋為“提供了交易氣體”。
如果我沒記錯的話,你不能一直回到為交易提供的氣體,但你可以在交易執行時觀察氣體,
msg.gas
這會給你在該步驟中剩餘的氣體,從金額已發送到您的功能。乍一看,我質疑使用你描述的那個。FOMO 的建立是為了讓最後一個人獲勝,這是一種有趣的方式,可以肯定的是。發送到獲勝交易的氣體並不重要。之後是塊的構成。
獲勝者在獲得最終位置後,通過發送高耗油量(什麼和在哪裡不如燃氣那麼重要)來排擠競爭性交易。如果這與實際的 FOMO 契約有關,那麼我錯過了那個細節。FOMO 為幾個區塊設置了 DoS 競爭的激勵機制。
目前尚不清楚在 FOMO 契約中是否有任何措施可以防止這種情況發生,而是仔細考慮您的遊戲規則。
希望能幫助到你。
合約無法訪問交易中的 gas 限制。
也許
msg.gas
可以使用,但應該避免使用特定於 gas 的程式碼,因為 gas 成本可以而且將會改變。例如,SLOAD 的 gas 成本在 2016 年從 50 提高到 200,並在 2019 年在EIP 1884中再次提高,其中一些影響描述在: https ://chainsecurity.com/istanbul-hardfork-eips-increasing-gas-costs -和更多/
UNGAS也可能在未來實施移除
msg.gas
。