Skip to content

Commit f25aac6

Browse files
committed
Add MetadataV3 with custody_subnet_count
1 parent a3a6c91 commit f25aac6

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

specs/electra/p2p-interface.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,39 @@ The specification of these changes continues in the same format as the network s
1111
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
1212

1313
- [Modifications in Electra](#modifications-in-electra)
14+
- [MetaData](#metadata)
1415
- [The gossip domain: gossipsub](#the-gossip-domain-gossipsub)
1516
- [Topics and messages](#topics-and-messages)
1617
- [Global topics](#global-topics)
1718
- [`beacon_aggregate_and_proof`](#beacon_aggregate_and_proof)
1819
- [`beacon_attestation_{subnet_id}`](#beacon_attestation_subnet_id)
20+
- [The Req/Resp domain](#the-reqresp-domain)
21+
- [Messages](#messages)
22+
- [GetMetaData v3](#getmetadata-v3)
1923

2024
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
2125
<!-- /TOC -->
2226

2327
## Modifications in Electra
2428

29+
### MetaData
30+
31+
The `MetaData` stored locally by clients is updated with an additional field to communicate the custody subnet count.
32+
33+
```
34+
(
35+
seq_number: uint64
36+
attnets: Bitvector[ATTESTATION_SUBNET_COUNT]
37+
syncnets: Bitvector[SYNC_COMMITTEE_SUBNET_COUNT]
38+
custody_subnet_count: uint64
39+
)
40+
```
41+
42+
Where
43+
44+
- `seq_number`, `attnets`, and `syncnets` have the same meaning defined in the Altair document.
45+
- `custody_subnet_count` represents the node's custody subnet count. Clients MAY reject ENRs with a value less than `CUSTODY_REQUIREMENT`.
46+
2547
### The gossip domain: gossipsub
2648

2749
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
5779
The following validations are added:
5880
* [REJECT] `len(committee_indices) == 1`, where `committee_indices = get_committee_indices(attestation)`.
5981
* [REJECT] `attestation.data.index == 0`
82+
83+
### The Req/Resp domain
84+
85+
#### Messages
86+
87+
##### GetMetaData v3
88+
89+
**Protocol ID:** `/eth2/beacon_chain/req/metadata/3/`
90+
91+
No Request Content.
92+
93+
Response Content:
94+
95+
```
96+
(
97+
MetaData
98+
)
99+
```
100+
101+
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.

0 commit comments

Comments
 (0)