Clarify names and move get_safe_block_hash to safe-block.md

This commit is contained in:
Mikhail Kalinin 2022-03-26 02:02:38 +06:00
parent c97cc6f4dc
commit bd66114f4a
2 changed files with 19 additions and 17 deletions

View File

@ -6,7 +6,8 @@
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Introduction](#introduction)
- [`get_safe_beacon_block`](#get_safe_beacon_block)
- [`get_safe_beacon_block_root`](#get_safe_beacon_block_root)
- [`get_safe_execution_payload_hash`](#get_safe_execution_payload_hash)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- /TOC -->
@ -20,12 +21,26 @@ to expose a safe block to users.
This section describes an algorithm to find a safe block.
## `get_safe_beacon_block`
## `get_safe_beacon_block_root`
```python
def get_safe_beacon_block(store: Store) -> Root:
def get_safe_beacon_block_root(store: Store) -> Root:
# Use most recent justified block as a stopgap
return store.justified_checkpoint.root
```
*Note*: Currently safe block algorithm simply returns `store.justified_checkpoint.root`
and is meant to be improved in the future.
## `get_safe_execution_payload_hash`
```python
def get_safe_execution_payload_hash(store: Store) -> Hash32:
safe_block_root = get_safe_beacon_block_root(store)
safe_block = store.blocks[safe_block_root]
# Return Hash32() if no payload is yet justified
if compute_epoch_at_slot(safe_block.slot) >= BELLATRIX_FORK_EPOCH:
return safe_block.body.execution_payload.block_hash
else:
return Hash32()
```

View File

@ -75,20 +75,7 @@ As per EIP-3675, before a post-transition block is finalized, `notify_forkchoice
##### `safe_block_hash`
The `safe_block_hash` parameter in a call to `notify_forkchoice_updated` function
MUST be set to the return value of the following function:
```python
def get_safe_block_hash(store: Store) -> Hash32:
safe_block_root = get_safe_beacon_block(store)
safe_block = store.blocks[safe_block_root]
# Return Hash32() if no payload is yet justified
if compute_epoch_at_slot(safe_block.slot) >= BELLATRIX_FORK_EPOCH:
return safe_block.body.execution_payload.block_hash
else:
return Hash32()
```
The `safe_block_hash` parameter MUST be set to return value of `get_safe_execution_payload_hash(store: Store)` function.
## Helpers