Tidy
This commit is contained in:
parent
26e934b1e1
commit
da6cad8767
|
@ -14,7 +14,7 @@ blocks without verifying the execution payloads. This partial sync is called an
|
|||
|`SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY`| `96` | slots
|
||||
|
||||
*Note: the `SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY` must be user-configurable. See
|
||||
[Failure Recovery](#failure-recovery).
|
||||
[Fork Choice Poisoning](#fork-choice-poisoning).*
|
||||
|
||||
## Helpers
|
||||
|
||||
|
@ -64,6 +64,9 @@ conditions are met:
|
|||
1. The current slot (as per the system clock) is at least `SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY` ahead of
|
||||
the slot of the block being imported. I.e., `should_optimistically_import_block(current_slot) == True`.
|
||||
|
||||
*See [Fork Choice Poisoning](#fork-choice-poisoning) for the motivations behind
|
||||
these conditions.*
|
||||
|
||||
## How to optimistically import blocks
|
||||
|
||||
To optimistically import a block:
|
||||
|
@ -126,7 +129,14 @@ If the justified checkpoint transitions from `SYNCING` -> `INVALID`, a
|
|||
consensus engine MAY choose to alert the user and force the application to
|
||||
exit.
|
||||
|
||||
## Failure Recovery
|
||||
## Fork Choice
|
||||
|
||||
Consensus engines MUST support removing from fork choice blocks that transition
|
||||
from `SYNCING` to `INVALID`. Specifically, a block deemed `INVALID` at any
|
||||
point MUST NOT be included in the canonical chain and the weights from those
|
||||
`INVALID` blocks MUST NOT be applied to any `VALID` or `SYNCING` ancestors.
|
||||
|
||||
### Fork Choice Poisoning
|
||||
|
||||
During the merge transition it is possible for an attacker to craft a
|
||||
`BeaconBlock` with an execution payload that references an
|
||||
|
@ -158,13 +168,6 @@ disaster recovery:
|
|||
- `--safe_slots_to_import_optimistically`: modifies the
|
||||
`SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY`.
|
||||
|
||||
## Fork Choice
|
||||
|
||||
Consensus engines MUST support removing from fork choice blocks that transition
|
||||
from `SYNCING` to `INVALID`. Specifically, a block deemed `INVALID` at any
|
||||
point MUST NOT be included in the canonical chain and the weights from those
|
||||
`INVALID` blocks MUST NOT be applied to any `VALID` or `SYNCING` ancestors.
|
||||
|
||||
## Checkpoint Sync (Weak Subjectivity Sync)
|
||||
|
||||
A consensus engine MAY assume that the `ExecutionPayload` of a block used for
|
||||
|
|
Loading…
Reference in New Issue