In order to provide more visibility into the block processing performance of op-node + its execution client, this pr attempts to add logs to surface data for plotting mgasps (Mgas per second) for every block.
This is similar to the log written by op-gethhere, however this pr attempts to provide a more holistic view of mgasps by logging duration of the entire block processing lifecycle instead of just the engineApi.NewPayload portion of block processing. The entire lifecycle consists of the following sequential engineApi calls:
Why do I not see any of these logs emitted by op-node? Does that event handler only get triggered by a certain sync type (execution-layer versus consensus-layer)?
Answer: For block processing of P2P blocks as verifier, there is still an older payload processing function, that does not use those events. It’s attached to the engine-controller. I am keen to remove that and to make it consistent with the sequencing / block replication codepath.
Should we include TryUpdateEngineEvent processing time in total_time value?
Overview
In order to provide more visibility into the block processing performance of op-node + its execution client, this pr attempts to add logs to surface data for plotting
mgasps
(Mgas per second) for every block.This is similar to the log written by
op-geth
here, however this pr attempts to provide a more holistic view ofmgasps
by logging duration of the entire block processing lifecycle instead of just theengineApi.NewPayload
portion of block processing. The entire lifecycle consists of the following sequentialengineApi
calls:engineApi.ForkchoiceUpdate
(with block attributes)engineApi.GetPayload
engineApi.NewPayload
engineApi.ForkchoiceUpdate
Event state machine
Built new l2 block
seal_time
(covers GetPayload)build_time
(covers ForkchoiceUpdate + GetPayload)Inserted block
build_time
(ForkchoiceUpdate + GetPayload)import_time
(NewPayload)total_time
mgasps
Open questions
op-node
? Does that event handler only get triggered by a certain sync type (execution-layer
versusconsensus-layer
)?TryUpdateEngineEvent
processing time intotal_time
value?Metadata
Closes https://github.com/ethereum-optimism/platforms-team/issues/446