我正在阅读 Event 的文档,遇到了这段话。有人能简单解释一下吗?
您可以将属性“indexed”添加到最多三个参数中,将它们添加到称为“topics”的特殊数据结构中,而不是日志的数据部分。主题只能容纳一个单词(32字节),因此如果对于索引参数使用引用类型,则该值的Keccak-256哈希存储为主题。
以什么数据结构在以太坊上存储交易?
如何在交易中存储事件?
如何存储索引参数?
如何存储引用类型的索引参数?
我正在阅读 Event 的文档,遇到了这段话。有人能简单解释一下吗?
您可以将属性“indexed”添加到最多三个参数中,将它们添加到称为“topics”的特殊数据结构中,而不是日志的数据部分。主题只能容纳一个单词(32字节),因此如果对于索引参数使用引用类型,则该值的Keccak-256哈希存储为主题。
以什么数据结构在以太坊上存储交易?
如何在交易中存储事件?
如何存储索引参数?
如何存储引用类型的索引参数?
我只能回答问题1和2。
交易被存储在帕特里夏·默克尔树中,也称为交易Trie。交易Trie的根节点存储在区块头中,所有交易都被追加到区块主体中。
参见:https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/
事件不在交易或区块链上存储。它们存储在交易收据中。节点通过Receipts Trie存储TX收据。此外,收据树的根节点存储在区块头上。