Gas

乙太坊事件日誌最大大小

  • May 10, 2016

我正在考慮通過發出事件將一些數據儲存在日誌中,但我無法輕易找到以下問題的答案:

  1. 一個事件的總大小限制是多少?
  2. 我可以在事件日誌數據中儲存大量 string32 嗎?它們使用什麼編碼?
  3. 需要多少費用?

流程將是:將交易發送到包含字元串的合約 -> 合約完成其工作 -> 合約發出帶有作業結果 + 傳遞的字元串的事件。

也歡迎就這個想法提出一般性建議。

大多數可能的答案都在黃皮書中。 根據公式 20,第 5 頁:

日誌條目 O 是記錄器地址 Oa 、一系列 32 字節日誌主題 Ot 和一些字節數據 Od 的元組

  1. 數據沒有大小限制:您將受到您擁有多少乙太幣的限制。(當然還有塊氣體限制。)
  2. 如果使用 Solidity,您似乎只能記錄單個bytes32數據。但是上面的黃皮書很清楚,日誌數據的字節數沒有限制。Solidity 最多允許 4 個主題(EVM 支持的最大值)。
  3. 附錄 G 是所有 gas 成本的表格,這裡是與 LOG 相關的價格。375 gas 用於 LOG 操作。每個主題 375 gas。LOG 操作數據的每個字節需要 8 個氣體。

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