Gas

每個塊的最大數據儲存量

  • November 7, 2017

我想知道智能合約每個塊可以儲存多少數據。

例如:gas 限制目前約為 6,700,000,儲存 32 字節字需要 20,000 gas。那麼EVM每個塊最多可以儲存335字節(6.7M / 20k)的數據嗎?這個推理正確嗎?

正確,除了 335 個 32 字節字不是 335 個字節,即 10720 個字節。這是一個非常粗略的估計,因為您需要減去 21000 內在氣體,即為您的交易中執行的其他操作碼支付的氣體,並且您的交易必須作為區塊的第一個也是唯一的交易包含在內。

此外,20000 gas 是新分配的儲存槽的價格,如果您要更新以前分配的儲存槽,您只需支付 5000 gas。

此外,儲存實際上並不包含在塊中。該塊僅包含全域狀態樹根雜湊。儲存數據駐留在客戶端節點狀態數據庫(geth 中的 leveldb)中。

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