Gas

就 SSTORE 而言,storage_location 是什麼?

  • April 16, 2021

我注意到氣體表狀態:

((value != 0) && (storage_location == 0)) ?20000 : 5000

SSTORE. 這是什麼意思storage_location

((value != 0) && (storage_location == 0)) ?20000 : 5000

這基本上是說將任何給定的儲存位置(即儲存槽)從 0 設置為 20,000 gas 需要花費 20,000 gas,value之後更改其值需要 5,000 gas。

因此storage_location,以上將意味著我們正在考慮的儲存中的任何插槽。

例如,如果我們正在考慮儲存中的插槽號 5,那麼在上面的虛擬碼storage_location中將設置為 5,我們正在檢查其目前值是否為 0。


黃皮書的附錄 G 是這樣說的:

Gsset   20000  Paid for an SSTORE operation when the storage value is set to non-zero from zero.
Gsreset 5000   Paid for an SSTORE operation when the storage value’s zeroness remains unchanged or
is set to zero

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