Solidity
映射的實際 gas 成本是多少,是否有任何大小限制?
我想估計在表單的映射中儲存任意多個元素的成本
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
插入,最終覆蓋其他內容的可能性就越大。
請參閱對類似問題的回复。簡而言之:您可以在映射中儲存任意數量的元素。