Skip to content

Commit 9c18102

Browse files
committed
Bellatrix
1 parent 6cf5cdf commit 9c18102

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

spec/p2p-interface.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,14 @@ Altair topics:
273273
| `sync_committee_contribution_and_proof` | `SignedContributionAndProof` |
274274
| `sync_committee_{subnet_id}` | `SyncCommitteeMessage` |
275275

276+
Bellatrix:
277+
278+
| Name | Message Type |
279+
| - | - |
280+
| `beacon_block` | `SignedBeaconBlock` (modified) |
281+
282+
Note that the ForkDigestValue path segment of the topic separates the old and the new beacon_block topics.
283+
276284
Clients MUST reject (fail validation) messages containing an incorrect type, or invalid payload.
277285

278286
When processing incoming gossip, clients MAY descore or disconnect peers who fail to observe these constraints.
@@ -323,6 +331,26 @@ The following validations MUST pass before forwarding the `signed_beacon_block`
323331
the block MAY be queued for later processing while proposers for the block's branch are calculated --
324332
in such a case _do not_ `REJECT`, instead `IGNORE` this message.
325333

334+
Modified in Bellatrix due to the inner `BeaconBlockBody` change.
335+
In addition to the gossip validations for this topic from prior specifications,
336+
the following validations MUST pass before forwarding the `signed_beacon_block` on the network.
337+
Alias `block = signed_beacon_block.message`, `execution_payload = block.body.execution_payload`.
338+
339+
- If the execution is enabled for the block -- i.e. `is_execution_enabled(state, block.body)`
340+
then validate the following:
341+
- _[REJECT]_ The block's execution payload timestamp is correct with respect to the slot
342+
-- i.e. `execution_payload.timestamp == compute_timestamp_at_slot(state, block.slot)`.
343+
- If `exection_payload` verification of block's parent by an execution node is *not* complete:
344+
- [REJECT] The block's parent (defined by `block.parent_root`) passes all
345+
validation (excluding execution node verification of the `block.body.execution_payload`).
346+
- otherwise:
347+
- [IGNORE] The block's parent (defined by `block.parent_root`) passes all
348+
validation (including execution node verification of the `block.body.execution_payload`).
349+
350+
The following gossip validation from prior specifications MUST NOT be applied if the execution is enabled for the block -- i.e. `is_execution_enabled(state, block.body)`:
351+
352+
- [REJECT] The block's parent (defined by `block.parent_root`) passes validation.
353+
326354
###### `beacon_aggregate_and_proof`
327355

328356
The `beacon_aggregate_and_proof` topic is used to propagate aggregated attestations (as `SignedAggregateAndProof`s)
@@ -910,6 +938,7 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:
910938
| ------------------------ | -------------------------- |
911939
| `GENESIS_FORK_VERSION` | `phase0.SignedBeaconBlock` |
912940
| `ALTAIR_FORK_VERSION` | `altair.SignedBeaconBlock` |
941+
| `BELLATRIX_FORK_VERSION` | `bellatrix.SignedBeaconBlock` |
913942

914943
##### BeaconBlocksByRoot
915944

@@ -965,6 +994,7 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:
965994
| ------------------------ | -------------------------- |
966995
| `GENESIS_FORK_VERSION` | `phase0.SignedBeaconBlock` |
967996
| `ALTAIR_FORK_VERSION` | `altair.SignedBeaconBlock` |
997+
| `BELLATRIX_FORK_VERSION` | `bellatrix.SignedBeaconBlock` |
968998

969999
##### Ping
9701000

0 commit comments

Comments
 (0)