Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Purpose or design rationale of this PR
Track block time, defined as the gap between the timestamps of two consecutive blocks.
Note: This is not exactly the same as the time it takes to produce a block but it's correlated. The relevant code is here:
go-ethereum/consensus/clique/clique.go
Lines 557 to 560 in 62926d4
E.g. if block
#100
is at 100s, then we set block#101
's timestamp as 103s, but in reality we seal and broadcast this block at 106s. Then, block#102
's timestamp will be set as 106 or higher. So this metric will capture the delay.I decided to track this metric in
writeBlockWithState
because this way it's tracked both in signer nodes (fromWriteBlockWithState
, called byworker
) and follower nodes (fromInsertChain
).2. PR title
Your PR title must follow conventional commits (as we are doing squash merge for each PR), so it must start with one of the following types:
3. Deployment tag versioning
Has the version in
params/version.go
been updated?4. Breaking change label
Does this PR have the
breaking-change
label?