Skip to content

Commit 33a8e19

Browse files
authored
Merge branch 'ethereum:dev' into update-readme-deps
2 parents bb4c5d1 + ca04b1e commit 33a8e19

File tree

20 files changed

+104
-98
lines changed

20 files changed

+104
-98
lines changed

.circleci/config.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ commands:
3535
description: "Restore the cache with pyspec keys"
3636
steps:
3737
- restore_cached_venv:
38-
venv_name: v24-pyspec
38+
venv_name: v25-pyspec
3939
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "requirements_preinstallation.txt" }}
4040
save_pyspec_cached_venv:
4141
description: Save a venv into a cache with pyspec keys"
4242
steps:
4343
- save_cached_venv:
44-
venv_name: v24-pyspec
44+
venv_name: v25-pyspec
4545
reqs_checksum: cache-{{ checksum "setup.py" }}-{{ checksum "requirements_preinstallation.txt" }}
4646
venv_path: ./venv
4747
restore_deposit_contract_tester_cached_venv:
@@ -60,7 +60,7 @@ commands:
6060
jobs:
6161
checkout_specs:
6262
docker:
63-
- image: circleci/python:3.9
63+
- image: cimg/python:3.12.4
6464
working_directory: ~/specs-repo
6565
steps:
6666
# Restore git repo at point close to target branch/revision, to speed up checkout
@@ -80,7 +80,7 @@ jobs:
8080
- ~/specs-repo
8181
install_pyspec_test:
8282
docker:
83-
- image: circleci/python:3.9
83+
- image: cimg/python:3.12.4
8484
working_directory: ~/specs-repo
8585
steps:
8686
- restore_cache:
@@ -92,7 +92,7 @@ jobs:
9292
- save_pyspec_cached_venv
9393
test-phase0:
9494
docker:
95-
- image: circleci/python:3.9
95+
- image: cimg/python:3.12.4
9696
working_directory: ~/specs-repo
9797
steps:
9898
- restore_cache:
@@ -105,7 +105,7 @@ jobs:
105105
path: tests/core/pyspec/test-reports
106106
test-altair:
107107
docker:
108-
- image: circleci/python:3.9
108+
- image: cimg/python:3.12.4
109109
working_directory: ~/specs-repo
110110
steps:
111111
- restore_cache:
@@ -118,7 +118,7 @@ jobs:
118118
path: tests/core/pyspec/test-reports
119119
test-bellatrix:
120120
docker:
121-
- image: circleci/python:3.9
121+
- image: cimg/python:3.12.4
122122
working_directory: ~/specs-repo
123123
steps:
124124
- restore_cache:
@@ -131,7 +131,7 @@ jobs:
131131
path: tests/core/pyspec/test-reports
132132
test-capella:
133133
docker:
134-
- image: circleci/python:3.9
134+
- image: cimg/python:3.12.4
135135
working_directory: ~/specs-repo
136136
steps:
137137
- restore_cache:
@@ -144,7 +144,7 @@ jobs:
144144
path: tests/core/pyspec/test-reports
145145
test-deneb:
146146
docker:
147-
- image: circleci/python:3.9
147+
- image: cimg/python:3.12.4
148148
working_directory: ~/specs-repo
149149
steps:
150150
- restore_cache:
@@ -157,7 +157,7 @@ jobs:
157157
path: tests/core/pyspec/test-reports
158158
test-electra:
159159
docker:
160-
- image: circleci/python:3.9
160+
- image: cimg/python:3.12.4
161161
working_directory: ~/specs-repo
162162
steps:
163163
- restore_cache:
@@ -170,7 +170,7 @@ jobs:
170170
path: tests/core/pyspec/test-reports
171171
test-whisk:
172172
docker:
173-
- image: circleci/python:3.9
173+
- image: cimg/python:3.12.4
174174
working_directory: ~/specs-repo
175175
steps:
176176
- restore_cache:
@@ -183,7 +183,7 @@ jobs:
183183
path: tests/core/pyspec/test-reports
184184
test-eip7594:
185185
docker:
186-
- image: circleci/python:3.9
186+
- image: cimg/python:3.12.4
187187
working_directory: ~/specs-repo
188188
steps:
189189
- restore_cache:
@@ -205,7 +205,7 @@ jobs:
205205
command: sudo npm install -g [email protected] && make check_toc
206206
codespell:
207207
docker:
208-
- image: circleci/python:3.9
208+
- image: cimg/python:3.12.4
209209
working_directory: ~/specs-repo
210210
steps:
211211
- checkout
@@ -214,7 +214,7 @@ jobs:
214214
command: pip install 'codespell<3.0.0,>=2.0.0' --user && make codespell
215215
lint:
216216
docker:
217-
- image: circleci/python:3.9
217+
- image: cimg/python:3.12.4
218218
working_directory: ~/specs-repo
219219
steps:
220220
- restore_cache:
@@ -270,7 +270,7 @@ jobs:
270270
- /nix
271271
install_deposit_contract_web3_tester:
272272
docker:
273-
- image: circleci/python:3.9
273+
- image: cimg/python:3.12.4
274274
working_directory: ~/specs-repo
275275
steps:
276276
- restore_cache:
@@ -282,7 +282,7 @@ jobs:
282282
- save_deposit_contract_tester_cached_venv
283283
test_deposit_contract_web3_tests:
284284
docker:
285-
- image: circleci/python:3.9
285+
- image: cimg/python:3.12.4
286286
working_directory: ~/specs-repo
287287
steps:
288288
- restore_cache:

.github/workflows/generate_vectors.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
- name: Setup Python
3333
uses: actions/setup-python@v5
3434
with:
35-
python-version: '3.10'
35+
python-version: '3.12.4'
3636
cache: ''
3737
- name: Clean up Spec Repository
3838
run: |

.github/workflows/run-tests.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
- name: Setup Python
4646
uses: actions/setup-python@v5
4747
with:
48-
python-version: '3.10'
48+
python-version: '3.12.4'
4949
cache: ''
5050
- name: Check codespell
5151
run: make codespell
@@ -55,10 +55,12 @@ jobs:
5555
steps:
5656
- name: Checkout repository
5757
uses: actions/checkout@v4
58+
- name: Setup Rust for dependencies
59+
uses: actions-rust-lang/setup-rust-toolchain@v1
5860
- name: Setup Python
5961
uses: actions/setup-python@v5
6062
with:
61-
python-version: '3.10'
63+
python-version: '3.12.4'
6264
cache: ''
6365
- name: Install pyspec requirements
6466
run: make install_test
@@ -76,10 +78,12 @@ jobs:
7678
steps:
7779
- name: Checkout repository
7880
uses: actions/checkout@v4
81+
- name: Setup Rust for dependencies
82+
uses: actions-rust-lang/setup-rust-toolchain@v1
7983
- name: Setup Python
8084
uses: actions/setup-python@v5
8185
with:
82-
python-version: '3.10'
86+
python-version: '3.12.4'
8387
cache: ''
8488
- name: set TEST_PRESET_TYPE
8589
if: github.event.inputs.test_preset_type != ''

configs/mainnet.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ WHISK_PROPOSER_SELECTION_GAP: 2
161161

162162
# EIP7594
163163
NUMBER_OF_COLUMNS: 128
164-
MAX_CELLS_IN_EXTENDED_MATRIX: 768
165164
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
166165
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
167166
SAMPLES_PER_SLOT: 8

configs/minimal.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ WHISK_PROPOSER_SELECTION_GAP: 1
160160

161161
# EIP7594
162162
NUMBER_OF_COLUMNS: 128
163-
MAX_CELLS_IN_EXTENDED_MATRIX: 768
164163
DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128
165164
MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384
166165
SAMPLES_PER_SLOT: 8

docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Rename the build stage from 'base' to 'builder' for clarification and code readability
2-
FROM python:3.11.0-slim-bullseye as builder
2+
FROM python:3.12.4-slim-bullseye as builder
33

44
ENV DEBIAN_FRONTEND=noninteractive \
55
WORKDIR=/consensus-specs \

pysetup/spec_builders/eip7594.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ def hardcoded_custom_type_dep_constants(cls, spec_object) -> str:
2727
'FIELD_ELEMENTS_PER_CELL': spec_object.preset_vars['FIELD_ELEMENTS_PER_CELL'].value,
2828
'FIELD_ELEMENTS_PER_EXT_BLOB': spec_object.preset_vars['FIELD_ELEMENTS_PER_EXT_BLOB'].value,
2929
'NUMBER_OF_COLUMNS': spec_object.config_vars['NUMBER_OF_COLUMNS'].value,
30-
'MAX_CELLS_IN_EXTENDED_MATRIX': spec_object.config_vars['MAX_CELLS_IN_EXTENDED_MATRIX'].value,
3130
}
3231

3332
@classmethod

requirements_preinstallation.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
pip>=23.1.2
2-
wheel>=0.40.0
3-
setuptools>=68.0.0
4-
pylint>=3.0.0
1+
pip>=24.0.0
2+
wheel>=0.44.0
3+
setuptools>=72.0.0
4+
pylint>=3.2.0

specs/_features/eip7594/das-core.md

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
- [`MatrixEntry`](#matrixentry)
2121
- [Helper functions](#helper-functions)
2222
- [`get_custody_columns`](#get_custody_columns)
23-
- [`compute_extended_matrix`](#compute_extended_matrix)
23+
- [`compute_matrix`](#compute_matrix)
2424
- [`recover_matrix`](#recover_matrix)
2525
- [`get_data_column_sidecars`](#get_data_column_sidecars)
2626
- [Custody](#custody)
@@ -62,7 +62,6 @@ The following values are (non-configurable) constants used throughout the specif
6262
| Name | Value | Description |
6363
| - | - | - |
6464
| `NUMBER_OF_COLUMNS` | `uint64(CELLS_PER_EXT_BLOB)` (= 128) | Number of columns in the extended data matrix |
65-
| `MAX_CELLS_IN_EXTENDED_MATRIX` | `uint64(MAX_BLOBS_PER_BLOCK * NUMBER_OF_COLUMNS)` (= 768) | The data size of `ExtendedMatrix` |
6665

6766
### Networking
6867

@@ -133,54 +132,52 @@ def get_custody_columns(node_id: NodeID, custody_subnet_count: uint64) -> Sequen
133132
])
134133
```
135134

136-
### `compute_extended_matrix`
135+
### `compute_matrix`
137136

138137
```python
139-
def compute_extended_matrix(blobs: Sequence[Blob]) -> List[MatrixEntry, MAX_CELLS_IN_EXTENDED_MATRIX]:
138+
def compute_matrix(blobs: Sequence[Blob]) -> Sequence[MatrixEntry]:
140139
"""
141-
Return the full ``ExtendedMatrix``.
140+
Return the full, flattened sequence of matrix entries.
142141
143-
This helper demonstrates the relationship between blobs and ``ExtendedMatrix``.
144-
The data structure for storing cells is implementation-dependent.
142+
This helper demonstrates the relationship between blobs and the matrix of cells/proofs.
143+
The data structure for storing cells/proofs is implementation-dependent.
145144
"""
146-
extended_matrix = []
145+
matrix = []
147146
for blob_index, blob in enumerate(blobs):
148147
cells, proofs = compute_cells_and_kzg_proofs(blob)
149148
for cell_index, (cell, proof) in enumerate(zip(cells, proofs)):
150-
extended_matrix.append(MatrixEntry(
149+
matrix.append(MatrixEntry(
151150
cell=cell,
152151
kzg_proof=proof,
153152
row_index=blob_index,
154153
column_index=cell_index,
155154
))
156-
return extended_matrix
155+
return matrix
157156
```
158157

159158
### `recover_matrix`
160159

161160
```python
162-
def recover_matrix(partial_matrix: Sequence[MatrixEntry],
163-
blob_count: uint64) -> List[MatrixEntry, MAX_CELLS_IN_EXTENDED_MATRIX]:
161+
def recover_matrix(partial_matrix: Sequence[MatrixEntry], blob_count: uint64) -> Sequence[MatrixEntry]:
164162
"""
165-
Return the recovered extended matrix.
163+
Recover the full, flattened sequence of matrix entries.
166164
167165
This helper demonstrates how to apply ``recover_cells_and_kzg_proofs``.
168-
The data structure for storing cells is implementation-dependent.
166+
The data structure for storing cells/proofs is implementation-dependent.
169167
"""
170-
extended_matrix = []
168+
matrix = []
171169
for blob_index in range(blob_count):
172170
cell_indices = [e.column_index for e in partial_matrix if e.row_index == blob_index]
173171
cells = [e.cell for e in partial_matrix if e.row_index == blob_index]
174-
175172
recovered_cells, recovered_proofs = recover_cells_and_kzg_proofs(cell_indices, cells)
176173
for cell_index, (cell, proof) in enumerate(zip(recovered_cells, recovered_proofs)):
177-
extended_matrix.append(MatrixEntry(
174+
matrix.append(MatrixEntry(
178175
cell=cell,
179176
kzg_proof=proof,
180177
row_index=blob_index,
181178
column_index=cell_index,
182179
))
183-
return extended_matrix
180+
return matrix
184181
```
185182

186183
### `get_data_column_sidecars`
@@ -241,7 +238,7 @@ At each slot, a node advertising `custody_subnet_count` downloads a minimum of `
241238

242239
## Extended data
243240

244-
In this construction, we extend the blobs using a one-dimensional erasure coding extension. The matrix comprises maximum `MAX_BLOBS_PER_BLOCK` rows and fixed `NUMBER_OF_COLUMNS` columns, with each row containing a `Blob` and its corresponding extension. `compute_extended_matrix` demonstrates the relationship between blobs and custom type `ExtendedMatrix`.
241+
In this construction, we extend the blobs using a one-dimensional erasure coding extension. The matrix comprises maximum `MAX_BLOBS_PER_BLOCK` rows and fixed `NUMBER_OF_COLUMNS` columns, with each row containing a `Blob` and its corresponding extension. `compute_matrix` demonstrates the relationship between blobs and the matrix, a potential method of storing cells/proofs.
245242

246243
## Column gossip
247244

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.5.0-alpha.4
1+
1.5.0-alpha.5

0 commit comments

Comments
 (0)