Contract-Design

使用事件而不是專用索引變數有什麼好處?

  • June 10, 2016

再會。

我試圖掌握 EVM 中事件的概念,但我無法理解使用事件的動機是什麼。為什麼不使用專門的公共索引來保存資訊呢?事件數據不就是像普通變數一樣儲存在區塊鏈上嗎?

一如既往,感謝您的幫助。

  1. 事件是外部事物(例如使用者界面)的內置方式,用於通知來自區塊鏈的事物。發出事件時,會通知該事件的觀察者。更新合約變數時不會發生通知。
  2. 事件的儲存方式不同,並且比使用合約儲存 便宜得多。合約不能直接訪問日誌。

事件不在 EVM 中(你不會在黃皮書中找到它們);Solidity 和 Serpent 中的事件是 EVM 中 LOG 操作碼的包裝器。

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