This repository has been archived by the owner on Nov 6, 2020. It is now read-only.
Import of locally mined block takes more than 3 seconds #9070
Labels
F3-annoyance 💩
The client behaves within expectations, however this “expected behaviour” itself is at issue.
M4-core ⛓
Core client code / Rust.
P5-sometimesoon 🌲
Issue is worth doing soon.
Milestone
Given the current Ethereum network conditions we observed that it takes Parity sometimes up to 3 second to import a locally mined block and propagate it to other nodes.
We managed to capture a full timeline of one such example:
Log from the block import from the local parity node:
Log from the block import from a remote parity node (with a direct connection to the node that mined the block):
Which means that more than 3 seconds were spent between a block solution being found an the block being propagated to other nodes. This represents over 20% of the normal Ethereum block time and might be an explanation for the high uncle rate we are currently observing.
The parity node is running on a dedicated server with a local NVMe disk, 32 GB of RAM and a 4GHz CPU and the following settings: --cache-size=20000 --notify-work= --relay-set strict --force-sealing --reseal-on-txs "none" --reseal-on-uncle --tx-queue-gas=auto
I admit, this is an extrem example, but generally we see from our logs that locally submitted block take ~ 10 times more to be imported compared to the normal block import speed (while a remote block gets imported in around ~50-100ms a locally mined block takes between 300-1000ms).
Ideally the new block should be propagated to the network before any other local work is done. Also the import time seem to be directly correlated with the amount of transactions in the block / pool as we see nearly instant import times on Ethereum Classic blocks.
The text was updated successfully, but these errors were encountered: