Solidity

映射的實際 gas 成本是多少,是否有任何大小限制?

  • March 20, 2017

我想估計在表單的映射中儲存任意多個元素的成本BYTES32 -> BYTES32。我在這裡看到一個STORAGEADD操作需要花費 20000 gas, 我相信這是將元素添加到映射的指令(是否正確?)

今天的 gas 價格是 20 gwei,所以 20 * 10^9 wei 總共有 20000 * 20 * 10^9 * 10^-18 = 0.0004 ether ~ 0.0048 USD(1 ETH = 12 USD)。

它是否正確,我可以在映射中放入多少元素(忽略 gas 價格限制)是否有任何限制?

總儲存由 256 位定址的 32 字節插槽組成。這給了我們2^256 * 32可以使用的字節。當您將項目添加到 amapping時,它會被發送到儲存計算的隨機位置sha3請參閱此答案

將項目添加到映射永遠不會失敗,因為總會有一個sha3-calculated 位置來放置資訊。當然,越接近2^256插入,最終覆蓋其他內容的可能性就越大。

請參閱對類似問題的回复簡而言之:您可以在映射中儲存任意數量的元素。

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