mirror of
https://github.com/status-im/eth2.0-specs.git
synced 2025-01-22 00:20:28 +00:00
Apply PR feedback
This commit is contained in:
parent
1acb1ff24f
commit
cebf78a83e
@ -159,4 +159,6 @@ WHISK_EPOCHS_PER_SHUFFLING_PHASE: 256
|
|||||||
WHISK_PROPOSER_SELECTION_GAP: 2
|
WHISK_PROPOSER_SELECTION_GAP: 2
|
||||||
|
|
||||||
# EIP7594
|
# EIP7594
|
||||||
|
NUMBER_OF_COLUMNS: 128
|
||||||
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 32
|
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 32
|
||||||
|
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
|
||||||
|
@ -157,4 +157,6 @@ WHISK_EPOCHS_PER_SHUFFLING_PHASE: 4
|
|||||||
WHISK_PROPOSER_SELECTION_GAP: 1
|
WHISK_PROPOSER_SELECTION_GAP: 1
|
||||||
|
|
||||||
# EIP7594
|
# EIP7594
|
||||||
|
NUMBER_OF_COLUMNS: 128
|
||||||
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 32
|
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 32
|
||||||
|
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
|
||||||
|
@ -6,5 +6,3 @@
|
|||||||
FIELD_ELEMENTS_PER_CELL: 64
|
FIELD_ELEMENTS_PER_CELL: 64
|
||||||
# uint64(floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments'))
|
# uint64(floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments'))
|
||||||
KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4
|
KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4
|
||||||
# `uint64((FIELD_ELEMENTS_PER_BLOB * 2) // FIELD_ELEMENTS_PER_CELL)` (= 128)
|
|
||||||
NUMBER_OF_COLUMNS: 128
|
|
||||||
|
@ -6,5 +6,3 @@
|
|||||||
FIELD_ELEMENTS_PER_CELL: 64
|
FIELD_ELEMENTS_PER_CELL: 64
|
||||||
# uint64(floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments'))
|
# uint64(floorlog2(get_generalized_index(BeaconBlockBody, 'blob_kzg_commitments'))
|
||||||
KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4
|
KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4
|
||||||
# `uint64((FIELD_ELEMENTS_PER_BLOB * 2) // FIELD_ELEMENTS_PER_CELL)` (= 128)
|
|
||||||
NUMBER_OF_COLUMNS: 128
|
|
||||||
|
@ -17,7 +17,7 @@ from eth2spec.deneb import {preset_name} as deneb
|
|||||||
def hardcoded_custom_type_dep_constants(cls, spec_object) -> str:
|
def hardcoded_custom_type_dep_constants(cls, spec_object) -> str:
|
||||||
return {
|
return {
|
||||||
'FIELD_ELEMENTS_PER_CELL': spec_object.preset_vars['FIELD_ELEMENTS_PER_CELL'].value,
|
'FIELD_ELEMENTS_PER_CELL': spec_object.preset_vars['FIELD_ELEMENTS_PER_CELL'].value,
|
||||||
'NUMBER_OF_COLUMNS': spec_object.preset_vars['NUMBER_OF_COLUMNS'].value,
|
'NUMBER_OF_COLUMNS': spec_object.config_vars['NUMBER_OF_COLUMNS'].value,
|
||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -25,6 +25,9 @@
|
|||||||
- [The Req/Resp domain](#the-reqresp-domain)
|
- [The Req/Resp domain](#the-reqresp-domain)
|
||||||
- [Messages](#messages)
|
- [Messages](#messages)
|
||||||
- [DataColumnSidecarsByRoot v1](#datacolumnsidecarsbyroot-v1)
|
- [DataColumnSidecarsByRoot v1](#datacolumnsidecarsbyroot-v1)
|
||||||
|
- [The discovery domain: discv5](#the-discovery-domain-discv5)
|
||||||
|
- [ENR structure](#enr-structure)
|
||||||
|
- [`custody_subnet_count`](#custody_subnet_count)
|
||||||
|
|
||||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
<!-- /TOC -->
|
<!-- /TOC -->
|
||||||
@ -44,7 +47,7 @@
|
|||||||
|
|
||||||
| Name | Value | Description |
|
| Name | Value | Description |
|
||||||
|------------------------------------------|-----------------------------------|---------------------------------------------------------------------|
|
|------------------------------------------|-----------------------------------|---------------------------------------------------------------------|
|
||||||
| `MAX_REQUEST_DATA_COLUMN_SIDECARS` | `NUMBER_OF_COLUMNS` | Maximum number of data column sidecars in a single request |
|
| `MAX_REQUEST_DATA_COLUMN_SIDECARS` | `MAX_REQUEST_BLOCKS_DENEB * NUMBER_OF_COLUMNS` | Maximum number of data column sidecars in a single request |
|
||||||
| `MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS` | `2**12` (= 4096 epochs, ~18 days) | The minimum epoch range over which a node must serve data column sidecars |
|
| `MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS` | `2**12` (= 4096 epochs, ~18 days) | The minimum epoch range over which a node must serve data column sidecars |
|
||||||
|
|
||||||
### Containers
|
### Containers
|
||||||
@ -194,3 +197,15 @@ Clients MAY limit the number of blocks and sidecars in the response.
|
|||||||
Clients SHOULD include a sidecar in the response as soon as it passes the gossip validation rules.
|
Clients SHOULD include a sidecar in the response as soon as it passes the gossip validation rules.
|
||||||
Clients SHOULD NOT respond with sidecars related to blocks that fail gossip validation rules.
|
Clients SHOULD NOT respond with sidecars related to blocks that fail gossip validation rules.
|
||||||
Clients SHOULD NOT respond with sidecars related to blocks that fail the beacon chain state transition
|
Clients SHOULD NOT respond with sidecars related to blocks that fail the beacon chain state transition
|
||||||
|
|
||||||
|
### The discovery domain: discv5
|
||||||
|
|
||||||
|
#### ENR structure
|
||||||
|
|
||||||
|
##### `custody_subnet_count`
|
||||||
|
|
||||||
|
A new field is added to the ENR under the key `custody_subnet_count` to facilitate custody data column discovery.
|
||||||
|
|
||||||
|
| Key | Value |
|
||||||
|
|:-----------------------|:-------------|
|
||||||
|
| `custody_subnet_count` | SSZ `uint64` |
|
||||||
|
@ -33,6 +33,8 @@ Altair adds new messages, topics and data to the Req-Resp, Gossip and Discovery
|
|||||||
- [GetMetaData v2](#getmetadata-v2)
|
- [GetMetaData v2](#getmetadata-v2)
|
||||||
- [Transitioning from v1 to v2](#transitioning-from-v1-to-v2)
|
- [Transitioning from v1 to v2](#transitioning-from-v1-to-v2)
|
||||||
- [The discovery domain: discv5](#the-discovery-domain-discv5)
|
- [The discovery domain: discv5](#the-discovery-domain-discv5)
|
||||||
|
- [ENR structure](#enr-structure)
|
||||||
|
- [Sync committee bitfield](#sync-committee-bitfield)
|
||||||
|
|
||||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
<!-- /TOC -->
|
<!-- /TOC -->
|
||||||
@ -287,10 +289,16 @@ the responder MUST return the **InvalidRequest** response code.
|
|||||||
|
|
||||||
### The discovery domain: discv5
|
### The discovery domain: discv5
|
||||||
|
|
||||||
The `attnets` key of the ENR is used as defined in the Phase 0 document.
|
#### ENR structure
|
||||||
|
|
||||||
|
##### Sync committee bitfield
|
||||||
|
|
||||||
An additional bitfield is added to the ENR under the key `syncnets` to facilitate sync committee subnet discovery.
|
An additional bitfield is added to the ENR under the key `syncnets` to facilitate sync committee subnet discovery.
|
||||||
The length of this bitfield is `SYNC_COMMITTEE_SUBNET_COUNT` where each bit corresponds to a distinct `subnet_id` for a specific sync committee subnet.
|
The length of this bitfield is `SYNC_COMMITTEE_SUBNET_COUNT` where each bit corresponds to a distinct `subnet_id` for a specific sync committee subnet.
|
||||||
The `i`th bit is set in this bitfield if the validator is currently subscribed to the `sync_committee_{i}` topic.
|
The `i`th bit is set in this bitfield if the validator is currently subscribed to the `sync_committee_{i}` topic.
|
||||||
|
|
||||||
|
| Key | Value |
|
||||||
|
|:-------------|:-------------------------------------------------|
|
||||||
|
| `syncnets` | SSZ `Bitvector[SYNC_COMMITTEE_SUBNET_COUNT]` |
|
||||||
|
|
||||||
See the [validator document](./validator.md#sync-committee-subnet-stability) for further details on how the new bits are used.
|
See the [validator document](./validator.md#sync-committee-subnet-stability) for further details on how the new bits are used.
|
||||||
|
@ -10,8 +10,11 @@ from eth2spec.test.context import (
|
|||||||
@single_phase
|
@single_phase
|
||||||
def test_invariants(spec):
|
def test_invariants(spec):
|
||||||
assert spec.FIELD_ELEMENTS_PER_BLOB % spec.FIELD_ELEMENTS_PER_CELL == 0
|
assert spec.FIELD_ELEMENTS_PER_BLOB % spec.FIELD_ELEMENTS_PER_CELL == 0
|
||||||
assert spec.FIELD_ELEMENTS_PER_BLOB * 2 % spec.NUMBER_OF_COLUMNS == 0
|
assert spec.FIELD_ELEMENTS_PER_BLOB * 2 % spec.config.NUMBER_OF_COLUMNS == 0
|
||||||
assert spec.SAMPLES_PER_SLOT <= spec.NUMBER_OF_COLUMNS
|
assert spec.SAMPLES_PER_SLOT <= spec.config.NUMBER_OF_COLUMNS
|
||||||
assert spec.CUSTODY_REQUIREMENT <= spec.config.DATA_COLUMN_SIDECAR_SUBNET_COUNT
|
assert spec.CUSTODY_REQUIREMENT <= spec.config.DATA_COLUMN_SIDECAR_SUBNET_COUNT
|
||||||
assert spec.config.DATA_COLUMN_SIDECAR_SUBNET_COUNT <= spec.NUMBER_OF_COLUMNS
|
assert spec.config.DATA_COLUMN_SIDECAR_SUBNET_COUNT <= spec.config.NUMBER_OF_COLUMNS
|
||||||
assert spec.NUMBER_OF_COLUMNS % spec.config.DATA_COLUMN_SIDECAR_SUBNET_COUNT == 0
|
assert spec.config.NUMBER_OF_COLUMNS % spec.config.DATA_COLUMN_SIDECAR_SUBNET_COUNT == 0
|
||||||
|
assert spec.config.MAX_REQUEST_DATA_COLUMN_SIDECARS == (
|
||||||
|
spec.config.MAX_REQUEST_BLOCKS_DENEB * spec.config.NUMBER_OF_COLUMNS
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user