Execution
- - -Table of Contents
- - -Overview
-This is an experimental section and may be changed in the future. It is not required -for the initial release.
-After the full execution of a block, the set of logs that are emitted MUST be merklized and -included in the block header. This commitment MUST be included as the block header's -extra data field. The events are serialized with using Simple Serialize aka SSZ.
-The goal of committing to data in the extra data field is to make commitments to data required to -verify executing messages easier. The commitment could also commit to the set of executing messages -instead of just the logs which represent all possible initiating messages that originate in the block. -This would reduce rounds of communication for nodes that use proofs to verify executing messages.
-Name | Value |
---|---|
MAX_LOG_DATA_SIZE | uint64(2**24) or 16,777,216 |
MAX_MESSAGES_PER_BLOCK | uint64(2**20) or 1,048,576 |
class Log(Container):
- address: ExecutionAddress
- topics: List[bytes32, 4]
- data: ByteList[MAX_LOG_DATA_SIZE]
- transaction_hash: bytes32
- transaction_index: uint64
- log_index: uint64
-
-logs = List[Log, MAX_MESSAGES_PER_BLOCK](
- log_0, log_1, log_2, ...)
-
-block.extra_data = logs.hash_tree_root()
-
-Security Considerations
-TODO