Contract-Design

不斷增長的合約儲存如何增加天然氣支出?

  • April 14, 2016

我對這個這個執行緒有一些進一步的問題。

為簡單起見,假設我想在乙太坊之上創建一種加密貨幣。

“處理”這種加密貨幣的合約將具有將地址與餘額相關聯的映射。

現在,讓我們想像一下,這是一種非常流行的貨幣,被全世界數百萬人使用,每年進行數十億筆交易。

隨著越來越多的人開始“註冊”以使用該代幣,合約的儲存使用量無限增長。

問題:

  1. 為了使合約執行,需要在記憶體中載入多少儲存空間?
  2. 儲存的大小是否會影響執行它所需的記憶體量?
  3. 所有這些數據是否總是儲存在鏈數據中?還是其中一些進入狀態數據?
  4. 增加契約儲存量究竟如何增加天然氣支出?

儲存的數據完全儲存在狀態中。除了您的合約在程式碼中明確載入的那些條目外,無需將任何儲存載入到 VM 記憶體中即可在合約上執行交易。

因此,gas 成本與您擁有的儲存數據量無關(除非您正在執行諸如迭代每個儲存值之類的操作)。你需要為儲存或更新一個值支付 gas,從 state 中檢索數據需要支付更少的 gas,並為從儲存中刪除值返還一些 gas。

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