Open rkrasiuk opened 9 months ago
To add some more context here, we do perform a similar check here
This happens after make_canonical
and the check is only performed if make_canonical
returns a VALID response. Given that cd89
and all its ancestors should exist in the blockchain tree, SYNCING is definitely the wrong response here
This issue is stale because it has been open for 21 days with no activity.
Description
The chain formed by forkchoice update fields (
finalized -> safe -> head
) is not validated by the consensus engine and it erroneously responds with FCU statusSyncing
Hive
At the time of writing the test covering this behavior is named
Inconsistent Head in ForkchoiceState (Paris)
under engine-api test suite.Test breakdown
The simulation sends following Engine API requests to the client:
After analyzing the chains formed by these blocks, we can see that head
0xcd89..ac71
can never extend chain formed by0x4446..7652
and0x2e65..51f7
.Solution
After validating the existence of the head block in the blockchain tree, we should validate that it forms a valid chain by extending safe and finalized blocks.