Contract-Design
使用事件而不是專用索引變數有什麼好處?
再會。
我試圖掌握 EVM 中事件的概念,但我無法理解使用事件的動機是什麼。為什麼不使用專門的公共索引來保存資訊呢?事件數據不就是像普通變數一樣儲存在區塊鏈上嗎?
一如既往,感謝您的幫助。
- 事件是外部事物(例如使用者界面)的內置方式,用於通知來自區塊鏈的事物。發出事件時,會通知該事件的觀察者。更新合約變數時不會發生通知。
- 事件的儲存方式不同,並且比使用合約儲存 便宜得多。合約不能直接訪問日誌。
事件不在 EVM 中(你不會在黃皮書中找到它們);Solidity 和 Serpent 中的事件是 EVM 中 LOG 操作碼的包裝器。