-
Notifications
You must be signed in to change notification settings - Fork 480
Closed
Description
Problem
Merge transition block (the first PoS block in the chain) is a direct child of a terminal PoW block. Currently, Engine API spec prescribes EL to respond with {status: INVALID, latestValidHash: validAncestorHash, validationError: null | message} if transition block appears to be INVALID.
The problem is that validAncestorHash in this case should reference a terminal PoW block which isn't in CL's block tree. This makes CL client's behaviour underspecified.
Options
- Leave the spec as it is. If transition block appears to be
INVALIDCL gets a response withvalidAncestorHash: terminalBlockHash, then it invalidates transition block and stops further traversing because the parent of transition beacon block doesn't have a payload at all (it's filled with zeroes) - Return
INVALID_TERMINAL_BLOCKwhich explicitly tells CL to invalidate a subchain starting from a transition block - Remove
INVALID_TERMINAL_BLOCK, and make EL respond with{status INVALID, latestValidHash: 0x00...00}when either terminal PoW block or transition block isINVALID. Then CL will naturally stop block tree traversing at a pre-transition block
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels