Skip to content

Commit 1e2058b

Browse files
potuzmkalinin
andauthored
Make explicit that the child of LVH is INVALID (#254)
* Make explicit that the child of LVH is INVALID * Update src/engine/specification.md Co-authored-by: Mikhail Kalinin <[email protected]> * add null option for validhash * specify that null is only allowed when the block does not exist * Andrew+Misha's comment Co-authored-by: Mikhail Kalinin <[email protected]>
1 parent 8e43f27 commit 1e2058b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/engine/specification.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,13 @@ Payload validation process consists of validating a payload with respect to the
219219

220220
3. Client software **MUST** validate a payload according to the block header and execution environment rule set with modifications to these rule sets defined in the [Block Validity](https://eips.ethereum.org/EIPS/eip-3675#block-validity) section of [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675#specification):
221221
* If validation succeeds, the response **MUST** contain `{status: VALID, latestValidHash: payload.blockHash}`
222-
* If validation fails, the response **MUST** contain `{status: INVALID, latestValidHash: validHash}` where `validHash` is the block hash of the most recent *valid* ancestor of the invalid payload. That is, the valid ancestor of the payload with the highest `blockNumber`
223-
* If the most recent valid ancestor is a PoW block, `latestValidHash` **MUST** be set to `0x0000000000000000000000000000000000000000000000000000000000000000`
222+
* If validation fails, the response **MUST** contain `{status: INVALID, latestValidHash: validHash}` where `validHash` **MUST** be:
223+
- The block hash of the ancestor of the invalid payload satisfying the following two conditions:
224+
- It is fully validated and deemed `VALID`
225+
- Any other ancestor of the invalid payload with a higher `blockNumber` is `INVALID`
226+
- `0x0000000000000000000000000000000000000000000000000000000000000000` if the above conditions are satisfied by a PoW block.
227+
- `null` if client software cannot determine the ancestor of the invalid
228+
payload satisfying the above conditions.
224229
* Client software **MUST NOT** surface an `INVALID` payload over any API endpoint and p2p interface.
225230

226231
4. Client software **MAY** provide additional details on the validation error if a payload is deemed `INVALID` by assigning the corresponding message to the `validationError` field.

0 commit comments

Comments
 (0)