Add MetadataV3 with custody_subnet_count

This commit is contained in:
dapplion 2024-06-28 15:53:29 +02:00
parent a3a6c916b2
commit f25aac6adf
1 changed files with 42 additions and 0 deletions

View File

@ -11,17 +11,39 @@ The specification of these changes continues in the same format as the network s
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Modifications in Electra](#modifications-in-electra)
- [MetaData](#metadata)
- [The gossip domain: gossipsub](#the-gossip-domain-gossipsub)
- [Topics and messages](#topics-and-messages)
- [Global topics](#global-topics)
- [`beacon_aggregate_and_proof`](#beacon_aggregate_and_proof)
- [`beacon_attestation_{subnet_id}`](#beacon_attestation_subnet_id)
- [The Req/Resp domain](#the-reqresp-domain)
- [Messages](#messages)
- [GetMetaData v3](#getmetadata-v3)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- /TOC -->
## Modifications in Electra
### MetaData
The `MetaData` stored locally by clients is updated with an additional field to communicate the custody subnet count.
```
(
seq_number: uint64
attnets: Bitvector[ATTESTATION_SUBNET_COUNT]
syncnets: Bitvector[SYNC_COMMITTEE_SUBNET_COUNT]
custody_subnet_count: uint64
)
```
Where
- `seq_number`, `attnets`, and `syncnets` have the same meaning defined in the Altair document.
- `custody_subnet_count` represents the node's custody subnet count. Clients MAY reject ENRs with a value less than `CUSTODY_REQUIREMENT`.
### The gossip domain: gossipsub
Some gossip meshes are upgraded in the fork of Electra to support upgraded types.
@ -57,3 +79,23 @@ The following convenience variables are re-defined
The following validations are added:
* [REJECT] `len(committee_indices) == 1`, where `committee_indices = get_committee_indices(attestation)`.
* [REJECT] `attestation.data.index == 0`
### The Req/Resp domain
#### Messages
##### GetMetaData v3
**Protocol ID:** `/eth2/beacon_chain/req/metadata/3/`
No Request Content.
Response Content:
```
(
MetaData
)
```
Requests the MetaData of a peer, using the new `MetaData` definition given above that is extended from Altair. Other conditions for the `GetMetaData` protocol are unchanged from the Altair p2p networking document.