Skip to content

Engine API: replace INVALID_TERMINAL_BLOCK with INVALID + lvh=0x00..00 - #217

Merged
djrtwo merged 2 commits into
ethereum:mainfrom
mkalinin:rework-invalid-terminal-block
May 13, 2022
Merged

Engine API: replace INVALID_TERMINAL_BLOCK with INVALID + lvh=0x00..00#217
djrtwo merged 2 commits into
ethereum:mainfrom
mkalinin:rework-invalid-terminal-block

Conversation

@mkalinin

@mkalinin mkalinin commented May 5, 2022

Copy link
Copy Markdown
Contributor

Implements Option 3 from #212, that is:

  • Replace INVALID_TERMINAL_BLOCK status with {status: INVALID, latestValidHash=0x00..00} which simplifies the spec and CL implementations
  • Fix a blind spot in the spec when merge transition block is itself INVALID by returning {status: INVALID, latestValidHash=0x00..00}

A list of places where according to this change EL must respond {status: INVALID, latestValidHash=0x00..00}:

  • Replacement of INVALID_TERMINAL_BLOCK
    • Invalid terminal PoW block is encountered during payload validation process
    • Invalid terminal PoW is referenced by headBlockHash in fcU call
  • New requirement
    • Invalid merge transition block is encountered during payload validation process

This proposal does not break existing testnets which have already transitioned to PoS e.g. Kiln.

Note: INVALID_TERMINAL_BLOCK status should be removed from Optimistic Sync spec if this PR is merged.

@djrtwo djrtwo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm okay with this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants