Apply suggestions from @djrtwo review
Co-authored-by: Danny Ryan <dannyjryan@gmail.com>
This commit is contained in:
parent
856eea4986
commit
15ef2f30d2
|
@ -202,7 +202,7 @@ always by simultaneously respected.
|
|||
|
||||
### Why allow invalid payloads on the P2P network?
|
||||
|
||||
The specification allows blocks with invalid payloads to propagate across
|
||||
The specification allows blocks with invalid execution payloads to propagate across
|
||||
gossip and via RPC calls. The reasoning for this is as follows:
|
||||
|
||||
1. Optimistic nodes must listen to block gossip to obtain a view of the head of
|
||||
|
@ -213,8 +213,8 @@ gossip and via RPC calls. The reasoning for this is as follows:
|
|||
to requests for the parent via RPC.
|
||||
4. Therefore, optimistic nodes must send optimistic blocks via RPC.
|
||||
|
||||
So, to prevent network segregation from optimistic nodes accidentally sending
|
||||
invalid payloads, nodes should never downscore/disconnect nodes due to invalid
|
||||
So, to prevent network segregation from optimistic nodes inadvertently sending
|
||||
invalid execution payloads, nodes should never downscore/disconnect nodes due to such invalid
|
||||
payloads. This does open the network to some DoS attacks from invalid execution
|
||||
payloads, but the scope of actors is limited to validators who can put those
|
||||
payloads in valid (and slashable) beacon blocks. Therefore, it is argued that
|
||||
|
|
|
@ -116,16 +116,16 @@ from an execution engine. I.e., perform the following transitions:
|
|||
- `SYNCING` -> `INVALID`
|
||||
|
||||
When a block transitions from `SYNCING` -> `VALID`, all *ancestors* of the
|
||||
block MUST also transition from `SYNCING` -> `VALID`. Such a block is no longer
|
||||
block MUST also transition from `SYNCING` -> `VALID`. Such a block and any previously `SYNCING` ancestors are no longer
|
||||
considered "optimistically imported".
|
||||
|
||||
When a block transitions from `SYNCING` -> `INVALID`, all *descendants* of the
|
||||
block MUST also transition from `SYNCING` -> `INVALID`.
|
||||
|
||||
When a block transitions from the `SYNCING` state it is removed from the set of
|
||||
When a block transitions from the `SYNCING` state, it is removed from the set of
|
||||
`store.optimistic_roots`.
|
||||
|
||||
When a "merge block" (i.e. a block which enables execution) is declared to be
|
||||
When a "merge block" (i.e. the first block which enables execution in a chain) is declared to be
|
||||
`VALID` by an execution engine (either directly or indirectly), the full
|
||||
[`validate_merge_block`][] MUST be run against the merge block. If the block
|
||||
fails [`validate_merge_block`][], the merge block MUST be treated the same as
|
||||
|
|
Loading…
Reference in New Issue