Files
nanoreth/crates/engine/tree/docs/mermaid/engine.mmd
2025-02-12 12:28:35 +00:00

27 lines
1.1 KiB
Plaintext

flowchart TD
subgraph EngineTask[Engine]
Block
-->|Execute transactions sequentially| Execute[Execute transaction]
--> CollectStateUpdates[Collect all accounts and storage slots that were modified]
end
subgraph TransactionThread[Prewarming thread]
Prewarm[Execute transaction on top of previous block]
--> CollectPrefetchTargets[Collect all accounts and storage slots that were modified]
end
subgraph StateRootTask[State Root Task thread]
StateRootMessage::PrefetchProofs
StateRootMessage::StateUpdate
StateRootMessage::FinishedStateUpdates
StateRootMessage::RootCalculated
end
newPayloadRequest[engine_newPayload request] --> Block
Block -->|Start prewarming each transaction in a separate thread| Prewarm
CollectPrefetchTargets --> StateRootMessage::PrefetchProofs
CollectStateUpdates --> StateRootMessage::StateUpdate
Execute -->|All transactions finished executing| StateRootMessage::FinishedStateUpdates
StateRootMessage::RootCalculated
--> newPayloadResponse[engine_newPayload response]