Security

我怎樣才能找到發件人的氣體限制?

  • January 12, 2020

有沒有辦法檢查發件人的氣體限制?

如果發件人設置的太低,我會接受他設置的任何氣體量並立即返回而不會達到限制。

我正在嘗試減輕 Fomo3D 類型的攻擊。

gasLimit 是塊的屬性,但我將您的問題解釋為“提供了交易氣體”。

如果我沒記錯的話,你不能一直回到為交易提供的氣體,但你可以在交易執行時觀察氣體,msg.gas這會給你在該步驟中剩餘的氣體,從金額已發送到您的功能。

msg 對象的屬性是什麼,我如何列出它們?

乍一看,我質疑使用你描述的那個。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

相關:在伊斯坦布爾更新後 transfer() 是否仍然安全?

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