@@ -29,6 +29,7 @@ It consists of four main sections:
29
29
- [Global topics](#global-topics)
30
30
- [`beacon_block`](#beacon_block)
31
31
- [`beacon_aggregate_and_proof`](#beacon_aggregate_and_proof)
32
+ - [`bls_to_execution_change`](#bls_to_execution_change)
32
33
- [`voluntary_exit`](#voluntary_exit)
33
34
- [`proposer_slashing`](#proposer_slashing)
34
35
- [`attester_slashing`](#attester_slashing)
@@ -279,7 +280,14 @@ Bellatrix:
279
280
| - | - |
280
281
| `beacon_block` | `SignedBeaconBlock` (modified) |
281
282
282
- Note that the ForkDigestValue path segment of the topic separates the old and the new beacon_block topics.
283
+ Capella:
284
+
285
+ | Name | Message Type |
286
+ | - | - |
287
+ | `beacon_block` | `SignedBeaconBlock` (modified) |
288
+ | `bls_to_execution_change` | `SignedBLSToExecutionChange` |
289
+
290
+ Note that the `ForkDigestValue` path segment of the topic separates the old and the new `beacon_block` topics.
283
291
284
292
Clients MUST reject (fail validation) messages containing an incorrect type, or invalid payload.
285
293
@@ -332,6 +340,7 @@ The following validations MUST pass before forwarding the `signed_beacon_block`
332
340
in such a case _do not_ `REJECT`, instead `IGNORE` this message.
333
341
334
342
Modified in Bellatrix due to the inner `BeaconBlockBody` change.
343
+
335
344
In addition to the gossip validations for this topic from prior specifications,
336
345
the following validations MUST pass before forwarding the `signed_beacon_block` on the network.
337
346
Alias `block = signed_beacon_block.message`, `execution_payload = block.body.execution_payload`.
@@ -351,6 +360,10 @@ The following gossip validation from prior specifications MUST NOT be applied if
351
360
352
361
- [REJECT] The block's parent (defined by `block.parent_root`) passes validation.
353
362
363
+ Modified in Capella:
364
+ The *type* of the payload of this topic changes to the (modified) `SignedBeaconBlock` found in Capella.
365
+ Specifically, this type changes with the addition of `bls_to_execution_changes` to the inner `BeaconBlockBody`.
366
+
354
367
###### `beacon_aggregate_and_proof`
355
368
356
369
The `beacon_aggregate_and_proof` topic is used to propagate aggregated attestations (as `SignedAggregateAndProof`s)
@@ -385,6 +398,19 @@ The following validations MUST pass before forwarding the `signed_aggregate_and_
385
398
`get_checkpoint_block(store, aggregate.data.beacon_block_root, finalized_checkpoint.epoch)
386
399
== store.finalized_checkpoint.root`
387
400
401
+ ###### `bls_to_execution_change`
402
+
403
+ (Added in Capella)
404
+
405
+ This topic is used to propagate signed bls to execution change messages to be included in future blocks.
406
+
407
+ The following validations MUST pass before forwarding the `signed_bls_to_execution_change` on the network:
408
+
409
+ - _[IGNORE]_ `current_epoch >= CAPELLA_FORK_EPOCH`,
410
+ where `current_epoch` is defined by the current wall-clock time.
411
+ - _[IGNORE]_ The `signed_bls_to_execution_change` is the first valid signed bls to execution change received
412
+ for the validator with index `signed_bls_to_execution_change.message.validator_index`.
413
+ - _[REJECT]_ All of the conditions within `process_bls_to_execution_change` pass validation.
388
414
389
415
###### `voluntary_exit`
390
416
@@ -939,6 +965,7 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:
939
965
| `GENESIS_FORK_VERSION` | `phase0.SignedBeaconBlock` |
940
966
| `ALTAIR_FORK_VERSION` | `altair.SignedBeaconBlock` |
941
967
| `BELLATRIX_FORK_VERSION` | `bellatrix.SignedBeaconBlock` |
968
+ | `CAPELLA_FORK_VERSION` | `capella.SignedBeaconBlock` |
942
969
943
970
##### BeaconBlocksByRoot
944
971
@@ -995,6 +1022,7 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:
995
1022
| `GENESIS_FORK_VERSION` | `phase0.SignedBeaconBlock` |
996
1023
| `ALTAIR_FORK_VERSION` | `altair.SignedBeaconBlock` |
997
1024
| `BELLATRIX_FORK_VERSION` | `bellatrix.SignedBeaconBlock` |
1025
+ | `CAPELLA_FORK_VERSION` | `capella.SignedBeaconBlock` |
998
1026
999
1027
##### Ping
1000
1028
0 commit comments