Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion execution/evm/execution.go
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ func (c *EngineClient) GetTxs(ctx context.Context) ([][]byte, error) {
//
// ExecMeta tracking (if store is configured):
// - Checks for already-promoted blocks to enable idempotent execution
// - Saves ExecMeta with payloadID after forkchoiceUpdatedV3 for crash recovery
// - Saves ExecMeta with the payload ID returned by forkchoiceUpdated for crash recovery
// - Updates ExecMeta to "promoted" after successful execution
func (c *EngineClient) ExecuteTxs(ctx context.Context, txs [][]byte, blockHeight uint64, timestamp time.Time, prevStateRoot []byte) (execution.ExecuteResult, error) {

Expand Down
17 changes: 10 additions & 7 deletions execution/evm/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,24 @@ type ExecMeta struct {
Height uint64
// ParentHash is the EL parent block hash used for this execution
ParentHash []byte
// PayloadID is the Engine API payload ID (optional, set after forkchoiceUpdatedV3)
// PayloadID is the Engine API payload ID (optional, set after forkchoiceUpdated)
PayloadID []byte
// BlockHash is the EL block hash once built (set after getPayloadV4)
// BlockHash is the EL block hash once built (set after getPayload)
BlockHash []byte
// StateRoot is the state root from the execution payload
StateRoot []byte
// TxHash is the hash of the transaction list for sanity checks
TxHash []byte
// Timestamp is the block timestamp
Timestamp int64
// Stage indicates the current execution stage:
// "started" - forkchoiceUpdatedV3 called, payloadID obtained
// "built" - getPayloadV4 called, payload retrieved
// "submitted" - newPayloadV4 called, payload marked VALID
// "promoted" - final forkchoiceUpdatedV3 called, block is head
// Stage indicates the current execution stage. forkchoiceUpdated (V3/V4) and
// getPayload (V4/V5/V6) negotiate their version at runtime and fall back on
// "Unsupported fork"; newPayload is picked from the payload fields (V4 or V5)
// and is not retried with another version:
// "started" - forkchoiceUpdated returned a payload ID
// "built" - getPayload returned the payload
// "submitted" - newPayload accepted the payload as VALID
// "promoted" - final forkchoiceUpdated made the block the head
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Stage string
// UpdatedAtUnix is the Unix timestamp when this metadata was last updated
UpdatedAtUnix int64
Expand Down
Loading