From d216321d663ed39dccbbfdf224eae8ec0cbe6218 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:06:35 -0500 Subject: [PATCH 01/14] Move eip7594 directory to new fulu directory --- specs/{_features/eip7594 => fulu}/beacon-chain.md | 0 specs/{_features/eip7594 => fulu}/das-core.md | 0 specs/{_features/eip7594 => fulu}/fork-choice.md | 0 specs/{_features/eip7594 => fulu}/fork.md | 0 specs/{_features/eip7594 => fulu}/p2p-interface.md | 0 specs/{_features/eip7594 => fulu}/peer-sampling.md | 0 .../eip7594 => fulu}/polynomial-commitments-sampling.md | 0 specs/{_features/eip7594 => fulu}/validator.md | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename specs/{_features/eip7594 => fulu}/beacon-chain.md (100%) rename specs/{_features/eip7594 => fulu}/das-core.md (100%) rename specs/{_features/eip7594 => fulu}/fork-choice.md (100%) rename specs/{_features/eip7594 => fulu}/fork.md (100%) rename specs/{_features/eip7594 => fulu}/p2p-interface.md (100%) rename specs/{_features/eip7594 => fulu}/peer-sampling.md (100%) rename specs/{_features/eip7594 => fulu}/polynomial-commitments-sampling.md (100%) rename specs/{_features/eip7594 => fulu}/validator.md (100%) diff --git a/specs/_features/eip7594/beacon-chain.md b/specs/fulu/beacon-chain.md similarity index 100% rename from specs/_features/eip7594/beacon-chain.md rename to specs/fulu/beacon-chain.md diff --git a/specs/_features/eip7594/das-core.md b/specs/fulu/das-core.md similarity index 100% rename from specs/_features/eip7594/das-core.md rename to specs/fulu/das-core.md diff --git a/specs/_features/eip7594/fork-choice.md b/specs/fulu/fork-choice.md similarity index 100% rename from specs/_features/eip7594/fork-choice.md rename to specs/fulu/fork-choice.md diff --git a/specs/_features/eip7594/fork.md b/specs/fulu/fork.md similarity index 100% rename from specs/_features/eip7594/fork.md rename to specs/fulu/fork.md diff --git a/specs/_features/eip7594/p2p-interface.md b/specs/fulu/p2p-interface.md similarity index 100% rename from specs/_features/eip7594/p2p-interface.md rename to specs/fulu/p2p-interface.md diff --git a/specs/_features/eip7594/peer-sampling.md b/specs/fulu/peer-sampling.md similarity index 100% rename from specs/_features/eip7594/peer-sampling.md rename to specs/fulu/peer-sampling.md diff --git a/specs/_features/eip7594/polynomial-commitments-sampling.md b/specs/fulu/polynomial-commitments-sampling.md similarity index 100% rename from specs/_features/eip7594/polynomial-commitments-sampling.md rename to specs/fulu/polynomial-commitments-sampling.md diff --git a/specs/_features/eip7594/validator.md b/specs/fulu/validator.md similarity index 100% rename from specs/_features/eip7594/validator.md rename to specs/fulu/validator.md From 761eabbb3350c80095312a7e6affa8ced8275956 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:12:57 -0500 Subject: [PATCH 02/14] Rename some EIP7594 names to Fulu --- specs/fulu/das-core.md | 2 +- specs/fulu/fork-choice.md | 4 +-- specs/fulu/fork.md | 31 +++++++++---------- specs/fulu/p2p-interface.md | 14 ++++----- specs/fulu/peer-sampling.md | 4 +-- specs/fulu/polynomial-commitments-sampling.md | 2 +- 6 files changed, 28 insertions(+), 29 deletions(-) diff --git a/specs/fulu/das-core.md b/specs/fulu/das-core.md index b3e8a23a48..25576bc1f4 100644 --- a/specs/fulu/das-core.md +++ b/specs/fulu/das-core.md @@ -1,4 +1,4 @@ -# EIP-7594 -- Data Availability Sampling Core +# Fulu -- Data Availability Sampling Core **Notice**: This document is a work-in-progress for researchers and implementers. diff --git a/specs/fulu/fork-choice.md b/specs/fulu/fork-choice.md index ed91ab1d46..8677254e78 100644 --- a/specs/fulu/fork-choice.md +++ b/specs/fulu/fork-choice.md @@ -1,4 +1,4 @@ -# EIP-7594 -- Fork Choice +# Fulu -- Fork Choice ## Table of contents @@ -67,7 +67,7 @@ def on_block(store: Store, signed_block: SignedBeaconBlock) -> None: ) assert store.finalized_checkpoint.root == finalized_checkpoint_block - # [Modified in EIP7594] + # [Modified in Fulu:EIP7594] assert is_data_available(hash_tree_root(block)) # Check the block is valid and compute the post-state diff --git a/specs/fulu/fork.md b/specs/fulu/fork.md index 4f2c17561f..e496467212 100644 --- a/specs/fulu/fork.md +++ b/specs/fulu/fork.md @@ -1,4 +1,4 @@ -# EIP7594 -- Fork Logic +# Fulu -- Fork Logic **Notice**: This document is a work-in-progress for researchers and implementers. @@ -12,7 +12,7 @@ - [Helper functions](#helper-functions) - [Misc](#misc) - [Modified `compute_fork_version`](#modified-compute_fork_version) -- [Fork to EIP7594](#fork-to-eip7594) +- [Fork to Fulu](#fork-to-fulu) - [Fork trigger](#fork-trigger) - [Upgrading the state](#upgrading-the-state) @@ -20,7 +20,7 @@ ## Introduction -This document describes the process of EIP7594 upgrade. +This document describes the process of Fulu upgrade. ## Configuration @@ -28,8 +28,8 @@ Warning: this configuration is not definitive. | Name | Value | | - | - | -| `EIP7594_FORK_VERSION` | `Version('0x06000000')` | -| `EIP7594_FORK_EPOCH` | `Epoch(18446744073709551615)` **TBD** | +| `FULU_FORK_VERSION` | `Version('0x06000000')` | +| `FULU_FORK_EPOCH` | `Epoch(18446744073709551615)` **TBD** | ## Helper functions @@ -42,8 +42,8 @@ def compute_fork_version(epoch: Epoch) -> Version: """ Return the fork version at the given ``epoch``. """ - if epoch >= EIP7594_FORK_EPOCH: - return EIP7594_FORK_VERSION + if epoch >= FULU_FORK_EPOCH: + return FULU_FORK_VERSION if epoch >= ELECTRA_FORK_EPOCH: return ELECTRA_FORK_VERSION if epoch >= DENEB_FORK_EPOCH: @@ -57,23 +57,22 @@ def compute_fork_version(epoch: Epoch) -> Version: return GENESIS_FORK_VERSION ``` -## Fork to EIP7594 +## Fork to Fulu ### Fork trigger -EIP7594 does not need a hard fork. We only add this fork doc for compiling this new feature in pyspec. +TBD. This fork is defined for testing purposes, the EIP may be combined with other consensus-layer upgrade. +For now, we assume the condition will be triggered at epoch `FULU_FORK_EPOCH`. -For now, we assume the condition will be triggered at epoch `EIP7594_FORK_EPOCH`. - -Note that for the pure EIP7594 networks, we don't apply `upgrade_to_eip7594` since it starts with EIP7594 version logic. +Note that for the pure Fulu networks, we don't apply `upgrade_to_fulu` since it starts with Fulu version logic. ### Upgrading the state -If `state.slot % SLOTS_PER_EPOCH == 0` and `compute_epoch_at_slot(state.slot) == EIP7594_FORK_EPOCH`, -an irregular state change is made to upgrade to EIP7594. +If `state.slot % SLOTS_PER_EPOCH == 0` and `compute_epoch_at_slot(state.slot) == FULU_FORK_EPOCH`, +an irregular state change is made to upgrade to Fulu. ```python -def upgrade_to_eip7594(pre: electra.BeaconState) -> BeaconState: +def upgrade_to_fulu(pre: electra.BeaconState) -> BeaconState: epoch = electra.get_current_epoch(pre) post = BeaconState( # Versioning @@ -82,7 +81,7 @@ def upgrade_to_eip7594(pre: electra.BeaconState) -> BeaconState: slot=pre.slot, fork=Fork( previous_version=pre.fork.current_version, - current_version=EIP7594_FORK_VERSION, # [Modified in EIP7594] + current_version=FULU_FORK_VERSION, # [Modified in Fulu] epoch=epoch, ), # History diff --git a/specs/fulu/p2p-interface.md b/specs/fulu/p2p-interface.md index 1f8172961e..3df35ef223 100644 --- a/specs/fulu/p2p-interface.md +++ b/specs/fulu/p2p-interface.md @@ -1,4 +1,4 @@ -# EIP-7594 -- Networking +# Fulu -- Networking **Notice**: This document is a work-in-progress for researchers and implementers. @@ -57,7 +57,7 @@ The specification of these changes continues in the same format as the network s ### Configuration -*[New in EIP7594]* +*[New in Fulu:EIP7594]* | Name | Value | Description | |------------------------------------------------|----------------------------------------------------------|---------------------------------------------------------------------------| @@ -284,7 +284,7 @@ Clients MUST respond with at least the blob sidecars of the first blob-carrying **Protocol ID:** `/eth2/beacon_chain/req/data_column_sidecars_by_root/1/` -*[New in EIP7594]* +*[New in Fulu:EIP7594]* The `` field is calculated as `context = compute_fork_digest(fork_version, genesis_validators_root)`: @@ -292,7 +292,7 @@ The `` field is calculated as `context = compute_fork_digest(fork | `fork_version` | Chunk SSZ type | |------------------------|-----------------------------| -| `EIP7594_FORK_VERSION` | `eip7594.DataColumnSidecar` | +| `FULU_FORK_VERSION` | `fulu.DataColumnSidecar` | Request Content: @@ -321,7 +321,7 @@ No more than `MAX_REQUEST_DATA_COLUMN_SIDECARS` may be requested at a time. The response MUST consist of zero or more `response_chunk`. Each _successful_ `response_chunk` MUST contain a single `DataColumnSidecar` payload. -Clients MUST support requesting sidecars since `minimum_request_epoch`, where `minimum_request_epoch = max(finalized_epoch, current_epoch - MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS, EIP7594_FORK_EPOCH)`. If any root in the request content references a block earlier than `minimum_request_epoch`, peers MAY respond with error code `3: ResourceUnavailable` or not include the data column sidecar in the response. +Clients MUST support requesting sidecars since `minimum_request_epoch`, where `minimum_request_epoch = max(finalized_epoch, current_epoch - MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS, FULU_FORK_EPOCH)`. If any root in the request content references a block earlier than `minimum_request_epoch`, peers MAY respond with error code `3: ResourceUnavailable` or not include the data column sidecar in the response. Clients MUST respond with at least one sidecar, if they have it. Clients MAY limit the number of blocks and sidecars in the response. @@ -340,7 +340,7 @@ The `` field is calculated as `context = compute_fork_digest(fork | `fork_version` | Chunk SSZ type | |------------------------|-----------------------------| -| `EIP7594_FORK_VERSION` | `eip7594.DataColumnSidecar` | +| `FULU_FORK_VERSION` | `fulu.DataColumnSidecar` | Request Content: @@ -371,7 +371,7 @@ The request MUST be encoded as an SSZ-container. The response MUST consist of zero or more `response_chunk`. Each _successful_ `response_chunk` MUST contain a single `DataColumnSidecar` payload. -Let `data_column_serve_range` be `[max(current_epoch - MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS, EIP7594_FORK_EPOCH), current_epoch]`. +Let `data_column_serve_range` be `[max(current_epoch - MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS, FULU_FORK_EPOCH), current_epoch]`. Clients MUST keep a record of data column sidecars seen on the epoch range `data_column_serve_range` where `current_epoch` is defined by the current wall-clock time, and clients MUST support serving requests of data columns on this range. diff --git a/specs/fulu/peer-sampling.md b/specs/fulu/peer-sampling.md index 853bf88ff0..d8b05bba13 100644 --- a/specs/fulu/peer-sampling.md +++ b/specs/fulu/peer-sampling.md @@ -1,4 +1,4 @@ -# EIP-7594 -- Peer Sampling +# Fulu -- Peer Sampling **Notice**: This document is a work-in-progress for researchers and implementers. @@ -23,7 +23,7 @@ ## Introduction -The purpose of this document is to complement [EIP-7594 -- Data Availability Sampling Core](das-core.md) by specifying the peer sampling functionality of the full PeerDAS protocol. Initially, this functionality may not be implemented by all clients. In such cases, it is replaced by [subnet sampling](das-core.md#subnet-sampling), which is an extension of the custody component of the protocol. +The purpose of this document is to complement [Fulu -- Data Availability Sampling Core](das-core.md) by specifying the peer sampling functionality of the full PeerDAS protocol. Initially, this functionality may not be implemented by all clients. In such cases, it is replaced by [subnet sampling](das-core.md#subnet-sampling), which is an extension of the custody component of the protocol. ## Helper functions diff --git a/specs/fulu/polynomial-commitments-sampling.md b/specs/fulu/polynomial-commitments-sampling.md index f3844756cb..c85e870896 100644 --- a/specs/fulu/polynomial-commitments-sampling.md +++ b/specs/fulu/polynomial-commitments-sampling.md @@ -1,4 +1,4 @@ -# EIP-7594 -- Polynomial Commitments Sampling +# Fulu -- Polynomial Commitments Sampling ## Table of contents From 14bfa7897d3da52c9d97f115a7d463c810a140f9 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:15:35 -0500 Subject: [PATCH 03/14] Rename & fixup spec builder --- pysetup/spec_builders/__init__.py | 4 ++-- pysetup/spec_builders/{eip7594.py => fulu.py} | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) rename pysetup/spec_builders/{eip7594.py => fulu.py} (95%) diff --git a/pysetup/spec_builders/__init__.py b/pysetup/spec_builders/__init__.py index c5bbcf39eb..f6e05fc5b9 100644 --- a/pysetup/spec_builders/__init__.py +++ b/pysetup/spec_builders/__init__.py @@ -4,8 +4,8 @@ from .capella import CapellaSpecBuilder from .deneb import DenebSpecBuilder from .electra import ElectraSpecBuilder +from .fulu import FuluSpecBuilder from .whisk import WhiskSpecBuilder -from .eip7594 import EIP7594SpecBuilder from .eip6800 import EIP6800SpecBuilder from .eip7732 import EIP7732SpecBuilder @@ -14,6 +14,6 @@ builder.fork: builder for builder in ( Phase0SpecBuilder, AltairSpecBuilder, BellatrixSpecBuilder, CapellaSpecBuilder, DenebSpecBuilder, - ElectraSpecBuilder, WhiskSpecBuilder, EIP7594SpecBuilder, EIP6800SpecBuilder, EIP7732SpecBuilder, + ElectraSpecBuilder, FuluSpecBuilder, WhiskSpecBuilder, EIP6800SpecBuilder, EIP7732SpecBuilder, ) } diff --git a/pysetup/spec_builders/eip7594.py b/pysetup/spec_builders/fulu.py similarity index 95% rename from pysetup/spec_builders/eip7594.py rename to pysetup/spec_builders/fulu.py index e3177da8ca..3cd0c1c467 100644 --- a/pysetup/spec_builders/eip7594.py +++ b/pysetup/spec_builders/fulu.py @@ -1,11 +1,11 @@ from typing import Dict from .base import BaseSpecBuilder -from ..constants import EIP7594 +from ..constants import FULU -class EIP7594SpecBuilder(BaseSpecBuilder): - fork: str = EIP7594 +class FuluSpecBuilder(BaseSpecBuilder): + fork: str = FULU @classmethod def imports(cls, preset_name: str): From 28719cdebf322ab09870043cdb603e1950724d1f Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:19:42 -0500 Subject: [PATCH 04/14] Rename eip7594 to fulu, p1 --- .circleci/config.yml | 12 ++++---- .github/workflows/run-tests.yml | 2 +- .gitignore | 2 +- Makefile | 2 +- pysetup/constants.py | 2 +- scripts/build_run_docker_tests.sh | 2 +- tests/core/pyspec/eth2spec/test/context.py | 2 +- .../merkle_proof/test_single_merkle_proof.py | 6 ++-- .../networking/test_get_custody_columns.py | 20 ++++++------- .../test/eip7594/unittests/das/test_das.py | 20 ++++++------- .../test_polynomial_commitments.py | 18 +++++------ .../unittests/test_config_invariants.py | 6 ++-- .../test/eip7594/unittests/test_custody.py | 10 +++---- .../test/eip7594/unittests/test_networking.py | 30 +++++++++---------- .../test/eip7594/unittests/test_security.py | 4 +-- .../pyspec/eth2spec/test/helpers/constants.py | 2 +- .../pyspec/eth2spec/test/utils/kzg_tests.py | 2 +- tests/generators/kzg_7594/main.py | 2 +- tests/generators/merkle_proof/main.py | 10 +++---- tests/generators/networking/main.py | 6 ++-- 20 files changed, 80 insertions(+), 80 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 17db49b3a9..80d44bef37 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -155,7 +155,7 @@ jobs: command: make citest fork=electra - store_test_results: path: tests/core/pyspec/test-reports - test-whisk: + test-fulu: docker: - image: cimg/python:3.12.4 working_directory: ~/specs-repo @@ -165,10 +165,10 @@ jobs: - restore_pyspec_cached_venv - run: name: Run py-tests - command: make citest fork=whisk + command: make citest fork=fulu - store_test_results: path: tests/core/pyspec/test-reports - test-eip7594: + test-whisk: docker: - image: cimg/python:3.12.4 working_directory: ~/specs-repo @@ -178,7 +178,7 @@ jobs: - restore_pyspec_cached_venv - run: name: Run py-tests - command: make citest fork=eip7594 + command: make citest fork=whisk - store_test_results: path: tests/core/pyspec/test-reports table_of_contents: @@ -239,10 +239,10 @@ workflows: - test-electra: requires: - install_pyspec_test - - test-whisk: + - test-fulu: requires: - install_pyspec_test - - test-eip7594: + - test-whisk: requires: - install_pyspec_test - table_of_contents diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 20e824de3b..84c5d9cee8 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -86,7 +86,7 @@ jobs: needs: [lint,codespell,table_of_contents] strategy: matrix: - version: ["phase0", "altair", "bellatrix", "capella", "deneb", "electra", "whisk", "eip7594"] + version: ["phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu", "whisk"] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index ad62aa177e..57cd180030 100644 --- a/.gitignore +++ b/.gitignore @@ -22,8 +22,8 @@ tests/core/pyspec/eth2spec/bellatrix/ tests/core/pyspec/eth2spec/capella/ tests/core/pyspec/eth2spec/deneb/ tests/core/pyspec/eth2spec/electra/ +tests/core/pyspec/eth2spec/fulu/ tests/core/pyspec/eth2spec/whisk/ -tests/core/pyspec/eth2spec/eip7594/ tests/core/pyspec/eth2spec/eip6800/ tests/core/pyspec/eth2spec/eip7732/ diff --git a/Makefile b/Makefile index 7a3ebbf6c6..48b1b4fbf6 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ MARKDOWN_FILES = $(wildcard $(SPEC_DIR)/*/*.md) \ $(wildcard $(SPEC_DIR)/_features/*/*/*.md) \ $(wildcard $(SSZ_DIR)/*.md) -ALL_EXECUTABLE_SPEC_NAMES = phase0 altair bellatrix capella deneb electra whisk eip6800 eip7594 eip7732 +ALL_EXECUTABLE_SPEC_NAMES = phase0 altair bellatrix capella deneb electra fulu whisk eip6800 eip7732 # The parameters for commands. Use `foreach` to avoid listing specs again. COVERAGE_SCOPE := $(foreach S,$(ALL_EXECUTABLE_SPEC_NAMES), --cov=eth2spec.$S.$(TEST_PRESET_TYPE)) PYLINT_SCOPE := $(foreach S,$(ALL_EXECUTABLE_SPEC_NAMES), ./eth2spec/$S) diff --git a/pysetup/constants.py b/pysetup/constants.py index 6bf22865b2..0959e795c4 100644 --- a/pysetup/constants.py +++ b/pysetup/constants.py @@ -5,7 +5,7 @@ CAPELLA = 'capella' DENEB = 'deneb' ELECTRA = 'electra' -EIP7594 = 'eip7594' +FULU = 'fulu' EIP6800 = 'eip6800' WHISK = 'whisk' EIP7732 = 'eip7732' diff --git a/scripts/build_run_docker_tests.sh b/scripts/build_run_docker_tests.sh index 91aa2c8ae1..1716a4774c 100755 --- a/scripts/build_run_docker_tests.sh +++ b/scripts/build_run_docker_tests.sh @@ -10,7 +10,7 @@ # Set variables -ALL_EXECUTABLE_SPECS=("phase0" "altair" "bellatrix" "capella" "deneb" "electra" "whisk" "eip7594") +ALL_EXECUTABLE_SPECS=("phase0" "altair" "bellatrix" "capella" "deneb" "electra" "fulu" "whisk") TEST_PRESET_TYPE=minimal FORK_TO_TEST=phase0 WORKDIR="//consensus-specs//tests//core//pyspec" diff --git a/tests/core/pyspec/eth2spec/test/context.py b/tests/core/pyspec/eth2spec/test/context.py index 8b2e8de6d3..37ca20bb78 100644 --- a/tests/core/pyspec/eth2spec/test/context.py +++ b/tests/core/pyspec/eth2spec/test/context.py @@ -558,7 +558,7 @@ def wrapper(*args, spec: Spec, **kw): with_deneb_and_later = with_all_phases_from(DENEB) with_electra_and_later = with_all_phases_from(ELECTRA) with_whisk_and_later = with_all_phases_from(WHISK, all_phases=ALLOWED_TEST_RUNNER_FORKS) -with_eip7594_and_later = with_all_phases_from(EIP7594, all_phases=ALLOWED_TEST_RUNNER_FORKS) +with_fulu_and_later = with_all_phases_from(EIP7594, all_phases=ALLOWED_TEST_RUNNER_FORKS) class quoted_str(str): diff --git a/tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/test_single_merkle_proof.py b/tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/test_single_merkle_proof.py index 4bd5fb4912..b614793f73 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/test_single_merkle_proof.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/test_single_merkle_proof.py @@ -2,7 +2,7 @@ from eth2spec.test.context import ( spec_state_test, - with_eip7594_and_later, + with_fulu_and_later, with_test_suite_name, ) from eth2spec.test.helpers.block import ( @@ -62,14 +62,14 @@ def _run_blob_kzg_commitments_merkle_proof_test(spec, state, rng=None): @with_test_suite_name("BeaconBlockBody") -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test def test_blob_kzg_commitments_merkle_proof__basic(spec, state): yield from _run_blob_kzg_commitments_merkle_proof_test(spec, state) @with_test_suite_name("BeaconBlockBody") -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test def test_blob_kzg_commitments_merkle_proof__random_block_1(spec, state): rng = random.Random(1111) diff --git a/tests/core/pyspec/eth2spec/test/eip7594/networking/test_get_custody_columns.py b/tests/core/pyspec/eth2spec/test/eip7594/networking/test_get_custody_columns.py index 97cc948db5..d3be42ce16 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/networking/test_get_custody_columns.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/networking/test_get_custody_columns.py @@ -3,7 +3,7 @@ from eth2spec.test.context import ( single_phase, spec_test, - with_eip7594_and_later, + with_fulu_and_later, ) @@ -33,7 +33,7 @@ def _run_get_custody_columns(spec, rng, node_id=None, custody_group_count=None): yield 'result', 'meta', python_list_result -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__min_node_id_min_custody_group_count(spec): @@ -41,7 +41,7 @@ def test_get_custody_columns__min_node_id_min_custody_group_count(spec): yield from _run_get_custody_columns(spec, rng, node_id=0, custody_group_count=0) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__min_node_id_max_custody_group_count(spec): @@ -51,7 +51,7 @@ def test_get_custody_columns__min_node_id_max_custody_group_count(spec): custody_group_count=spec.config.NUMBER_OF_CUSTODY_GROUPS) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__max_node_id_min_custody_group_count(spec): @@ -59,7 +59,7 @@ def test_get_custody_columns__max_node_id_min_custody_group_count(spec): yield from _run_get_custody_columns(spec, rng, node_id=2**256 - 1, custody_group_count=0) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__max_node_id_max_custody_group_count(spec): @@ -70,7 +70,7 @@ def test_get_custody_columns__max_node_id_max_custody_group_count(spec): ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__max_node_id_max_custody_group_count_minus_1(spec): @@ -81,7 +81,7 @@ def test_get_custody_columns__max_node_id_max_custody_group_count_minus_1(spec): ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__short_node_id(spec): @@ -89,7 +89,7 @@ def test_get_custody_columns__short_node_id(spec): yield from _run_get_custody_columns(spec, rng, node_id=1048576, custody_group_count=1) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__1(spec): @@ -97,7 +97,7 @@ def test_get_custody_columns__1(spec): yield from _run_get_custody_columns(spec, rng) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__2(spec): @@ -105,7 +105,7 @@ def test_get_custody_columns__2(spec): yield from _run_get_custody_columns(spec, rng) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns__3(spec): diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/das/test_das.py b/tests/core/pyspec/eth2spec/test/eip7594/unittests/das/test_das.py index dd0a80fda4..f18e52b149 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/unittests/das/test_das.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/unittests/das/test_das.py @@ -4,7 +4,7 @@ spec_test, single_phase, with_config_overrides, - with_eip7594_and_later, + with_fulu_and_later, ) from eth2spec.test.helpers.blob import ( get_sample_blob, @@ -16,7 +16,7 @@ def chunks(lst, n): return [lst[i:i + n] for i in range(0, len(lst), n)] -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_compute_matrix(spec): @@ -41,7 +41,7 @@ def test_compute_matrix(spec): assert blob == input_blobs[blob_index] -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_recover_matrix(spec): @@ -68,7 +68,7 @@ def test_recover_matrix(spec): assert recovered_matrix == matrix -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_extended_sample_count__1(spec): @@ -77,7 +77,7 @@ def test_get_extended_sample_count__1(spec): spec.get_extended_sample_count(allowed_failures) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_extended_sample_count__2(spec): @@ -86,7 +86,7 @@ def test_get_extended_sample_count__2(spec): spec.get_extended_sample_count(allowed_failures) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_extended_sample_count__3(spec): @@ -95,7 +95,7 @@ def test_get_extended_sample_count__3(spec): spec.get_extended_sample_count(allowed_failures) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_extended_sample_count__lower_bound(spec): @@ -103,7 +103,7 @@ def test_get_extended_sample_count__lower_bound(spec): spec.get_extended_sample_count(allowed_failures) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_extended_sample_count__upper_bound(spec): @@ -111,7 +111,7 @@ def test_get_extended_sample_count__upper_bound(spec): spec.get_extended_sample_count(allowed_failures) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_extended_sample_count__upper_bound_exceed(spec): @@ -119,7 +119,7 @@ def test_get_extended_sample_count__upper_bound_exceed(spec): expect_assertion_error(lambda: spec.get_extended_sample_count(allowed_failures)) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @with_config_overrides({ 'NUMBER_OF_COLUMNS': 128, diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/test_polynomial_commitments.py b/tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/test_polynomial_commitments.py index 1d72b142af..b935c212e4 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/test_polynomial_commitments.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/test_polynomial_commitments.py @@ -3,7 +3,7 @@ spec_test, single_phase, expect_assertion_error, - with_eip7594_and_later, + with_fulu_and_later, ) from eth2spec.test.helpers.blob import ( get_sample_blob, @@ -11,7 +11,7 @@ from eth2spec.utils.bls import BLS_MODULUS -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_fft(spec): @@ -45,7 +45,7 @@ def test_fft(spec): assert individual_evaluation == poly_eval[i] -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_coset_fft(spec): @@ -84,7 +84,7 @@ def test_coset_fft(spec): assert individual_evaluation == poly_eval[i] -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_construct_vanishing_polynomial(spec): @@ -108,7 +108,7 @@ def test_construct_vanishing_polynomial(spec): assert all(a != spec.BLSFieldElement(0) for a in zero_poly_eval_brp[start:end]) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_verify_cell_kzg_proof_batch_zero_cells(spec): @@ -121,7 +121,7 @@ def test_verify_cell_kzg_proof_batch_zero_cells(spec): ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_verify_cell_kzg_proof_batch(spec): @@ -173,7 +173,7 @@ def test_verify_cell_kzg_proof_batch(spec): ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_verify_cell_kzg_proof_batch_invalid(spec): @@ -229,7 +229,7 @@ def test_verify_cell_kzg_proof_batch_invalid(spec): ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_recover_cells_and_kzg_proofs(spec): @@ -268,7 +268,7 @@ def test_recover_cells_and_kzg_proofs(spec): assert proofs == recovered_proofs -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_multiply_polynomial_degree_overflow(spec): diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_config_invariants.py b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_config_invariants.py index 624976a350..6be2a3f64c 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_config_invariants.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_config_invariants.py @@ -1,11 +1,11 @@ from eth2spec.test.context import ( single_phase, spec_test, - with_eip7594_and_later, + with_fulu_and_later, ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_invariants(spec): @@ -20,7 +20,7 @@ def test_invariants(spec): ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_polynomical_commitments_sampling(spec): diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_custody.py b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_custody.py index 7e7cef3421..dcd08ce1d2 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_custody.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_custody.py @@ -2,7 +2,7 @@ expect_assertion_error, spec_test, single_phase, - with_eip7594_and_later, + with_fulu_and_later, ) @@ -21,7 +21,7 @@ def run_get_custody_columns(spec, peer_count, custody_group_count): assert len(columns) == len(set(columns)) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns_peers_within_number_of_columns(spec): @@ -31,7 +31,7 @@ def test_get_custody_columns_peers_within_number_of_columns(spec): run_get_custody_columns(spec, peer_count, custody_group_count) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns_peers_more_than_number_of_columns(spec): @@ -41,7 +41,7 @@ def test_get_custody_columns_peers_more_than_number_of_columns(spec): run_get_custody_columns(spec, peer_count, custody_group_count) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns_maximum_groups(spec): @@ -50,7 +50,7 @@ def test_get_custody_columns_maximum_groups(spec): run_get_custody_columns(spec, peer_count, custody_group_count) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_get_custody_columns_custody_size_more_than_number_of_groups(spec): diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_networking.py b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_networking.py index 931cc9c1d1..cb4a9e0f92 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_networking.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_networking.py @@ -3,7 +3,7 @@ single_phase, spec_state_test, spec_test, - with_eip7594_and_later, + with_fulu_and_later, ) from eth2spec.debug.random_value import ( RandomizationMode, @@ -45,7 +45,7 @@ def compute_data_column_sidecar(spec, state): # Tests for verify_data_column_sidecar -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar__valid(spec, state): @@ -53,7 +53,7 @@ def test_verify_data_column_sidecar__valid(spec, state): assert spec.verify_data_column_sidecar(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar__invalid_zero_blobs(spec, state): @@ -64,7 +64,7 @@ def test_verify_data_column_sidecar__invalid_zero_blobs(spec, state): assert not spec.verify_data_column_sidecar(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar__invalid_index(spec, state): @@ -73,7 +73,7 @@ def test_verify_data_column_sidecar__invalid_index(spec, state): assert not spec.verify_data_column_sidecar(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar__invalid_mismatch_len_column(spec, state): @@ -82,7 +82,7 @@ def test_verify_data_column_sidecar__invalid_mismatch_len_column(spec, state): assert not spec.verify_data_column_sidecar(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar__invalid_mismatch_len_kzg_commitments(spec, state): @@ -91,7 +91,7 @@ def test_verify_data_column_sidecar__invalid_mismatch_len_kzg_commitments(spec, assert not spec.verify_data_column_sidecar(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecars__invalid_mismatch_len_kzg_proofs(spec, state): @@ -103,7 +103,7 @@ def test_verify_data_column_sidecars__invalid_mismatch_len_kzg_proofs(spec, stat # Tests for verify_data_column_sidecar_kzg_proofs -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar_kzg_proofs__valid(spec, state): @@ -111,7 +111,7 @@ def test_verify_data_column_sidecar_kzg_proofs__valid(spec, state): assert spec.verify_data_column_sidecar_kzg_proofs(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar_kzg_proofs__invalid_wrong_column(spec, state): @@ -120,7 +120,7 @@ def test_verify_data_column_sidecar_kzg_proofs__invalid_wrong_column(spec, state assert not spec.verify_data_column_sidecar_kzg_proofs(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar_kzg_proofs__invalid_wrong_commitment(spec, state): @@ -129,7 +129,7 @@ def test_verify_data_column_sidecar_kzg_proofs__invalid_wrong_commitment(spec, s assert not spec.verify_data_column_sidecar_kzg_proofs(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar_kzg_proofs__invalid_wrong_proof(spec, state): @@ -141,7 +141,7 @@ def test_verify_data_column_sidecar_kzg_proofs__invalid_wrong_proof(spec, state) # Tests for verify_data_column_sidecar_inclusion_proof -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar_inclusion_proof__valid(spec, state): @@ -149,7 +149,7 @@ def test_verify_data_column_sidecar_inclusion_proof__valid(spec, state): assert spec.verify_data_column_sidecar_inclusion_proof(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar_inclusion_proof__invalid_missing_commitment(spec, state): @@ -158,7 +158,7 @@ def test_verify_data_column_sidecar_inclusion_proof__invalid_missing_commitment( assert not spec.verify_data_column_sidecar_inclusion_proof(sidecar) -@with_eip7594_and_later +@with_fulu_and_later @spec_state_test @single_phase def test_verify_data_column_sidecar_inclusion_proof__invalid_duplicate_commitment(spec, state): @@ -170,7 +170,7 @@ def test_verify_data_column_sidecar_inclusion_proof__invalid_duplicate_commitmen # Tests for compute_subnet_for_data_column_sidecar -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_compute_subnet_for_data_column_sidecar(spec): diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_security.py b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_security.py index 282433b9c9..d93560d037 100644 --- a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_security.py +++ b/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_security.py @@ -1,7 +1,7 @@ from eth2spec.test.context import ( spec_test, single_phase, - with_eip7594_and_later, + with_fulu_and_later, with_phases, ) from eth2spec.test.helpers.constants import ( @@ -9,7 +9,7 @@ ) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase @with_phases([MAINNET]) diff --git a/tests/core/pyspec/eth2spec/test/helpers/constants.py b/tests/core/pyspec/eth2spec/test/helpers/constants.py index 284dc32f03..3130e64d7f 100644 --- a/tests/core/pyspec/eth2spec/test/helpers/constants.py +++ b/tests/core/pyspec/eth2spec/test/helpers/constants.py @@ -18,8 +18,8 @@ CUSTODY_GAME = SpecForkName('custody_game') DAS = SpecForkName('das') ELECTRA = SpecForkName('electra') +FULU = SpecForkName('fulu') WHISK = SpecForkName('whisk') -EIP7594 = SpecForkName('eip7594') EIP7732 = SpecForkName('eip7732') # diff --git a/tests/core/pyspec/eth2spec/test/utils/kzg_tests.py b/tests/core/pyspec/eth2spec/test/utils/kzg_tests.py index 071efd4a2e..7566e9c981 100644 --- a/tests/core/pyspec/eth2spec/test/utils/kzg_tests.py +++ b/tests/core/pyspec/eth2spec/test/utils/kzg_tests.py @@ -6,7 +6,7 @@ ) from eth2spec.utils import bls -from eth2spec.eip7594 import spec +from eth2spec.fulu import spec ############################################################################### diff --git a/tests/generators/kzg_7594/main.py b/tests/generators/kzg_7594/main.py index 814a840537..08eb82701f 100644 --- a/tests/generators/kzg_7594/main.py +++ b/tests/generators/kzg_7594/main.py @@ -6,7 +6,7 @@ from eth_utils import encode_hex -from eth2spec.eip7594 import spec +from eth2spec.fulu import spec from eth2spec.gen_helpers.gen_base import gen_runner, gen_typing from eth2spec.test.helpers.constants import EIP7594 from eth2spec.test.helpers.typing import SpecForkName diff --git a/tests/generators/merkle_proof/main.py b/tests/generators/merkle_proof/main.py index 9ae985b865..4a787f5737 100644 --- a/tests/generators/merkle_proof/main.py +++ b/tests/generators/merkle_proof/main.py @@ -1,4 +1,4 @@ -from eth2spec.test.helpers.constants import DENEB, ELECTRA, EIP7594 +from eth2spec.test.helpers.constants import DENEB, ELECTRA, FULU from eth2spec.gen_helpers.gen_from_tests.gen import run_state_test_generators, combine_mods, check_mods @@ -6,16 +6,16 @@ deneb_mods = {key: 'eth2spec.test.deneb.merkle_proof.test_' + key for key in [ 'single_merkle_proof', ]} - _new_eip7594_mods = {key: 'eth2spec.test.eip7594.merkle_proof.test_' + key for key in [ + electra_mods = deneb_mods + _new_fulu_mods = {key: 'eth2spec.test.fulu.merkle_proof.test_' + key for key in [ 'single_merkle_proof', ]} - electra_mods = deneb_mods - eip_7594_mods = combine_mods(_new_eip7594_mods, electra_mods) + fulu_mods = combine_mods(_new_fulu_mods, electra_mods) all_mods = { DENEB: deneb_mods, ELECTRA: electra_mods, - EIP7594: eip_7594_mods, + FULU: fulu_mods, } check_mods(all_mods, "merkle_proof") diff --git a/tests/generators/networking/main.py b/tests/generators/networking/main.py index 52b94929f7..3217c2cce2 100644 --- a/tests/generators/networking/main.py +++ b/tests/generators/networking/main.py @@ -1,14 +1,14 @@ -from eth2spec.test.helpers.constants import EIP7594 +from eth2spec.test.helpers.constants import FULU from eth2spec.gen_helpers.gen_from_tests.gen import run_state_test_generators, check_mods if __name__ == "__main__": - eip7594_mods = {key: 'eth2spec.test.eip7594.networking.test_' + key for key in [ + fulu_mods = {key: 'eth2spec.test.fulu.networking.test_' + key for key in [ 'get_custody_columns', ]} all_mods = { - EIP7594: eip7594_mods + FULU: fulu_mods } check_mods(all_mods, "networking") From 6a306f7c4530536c9b47c17bf67872c1c02d08a0 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:24:22 -0500 Subject: [PATCH 05/14] Rename eip7594 to fulu, p2 --- configs/mainnet.yaml | 8 ++++---- configs/minimal.yaml | 8 ++++---- presets/mainnet/eip7594.yaml | 2 +- presets/minimal/eip7594.yaml | 2 +- pysetup/md_doc_paths.py | 4 ++-- specs/fulu/p2p-interface.md | 8 ++++---- tests/core/pyspec/eth2spec/test/context.py | 4 ++-- .../eth2spec/test/deneb/fork_choice/test_on_block.py | 12 ++++++------ tests/core/pyspec/eth2spec/test/helpers/constants.py | 6 +++--- tests/generators/kzg_7594/main.py | 8 ++++---- 10 files changed, 31 insertions(+), 31 deletions(-) diff --git a/configs/mainnet.yaml b/configs/mainnet.yaml index f010bec54d..403823075c 100644 --- a/configs/mainnet.yaml +++ b/configs/mainnet.yaml @@ -53,9 +53,9 @@ DENEB_FORK_EPOCH: 269568 # March 13, 2024, 01:55:35pm UTC # Electra ELECTRA_FORK_VERSION: 0x05000000 ELECTRA_FORK_EPOCH: 18446744073709551615 # temporary stub -# EIP7594 -EIP7594_FORK_VERSION: 0x06000000 # temporary stub -EIP7594_FORK_EPOCH: 18446744073709551615 +# FULU +FULU_FORK_VERSION: 0x06000000 # temporary stub +FULU_FORK_EPOCH: 18446744073709551615 # WHISK WHISK_FORK_VERSION: 0x08000000 # temporary stub WHISK_FORK_EPOCH: 18446744073709551615 @@ -173,7 +173,7 @@ WHISK_EPOCHS_PER_SHUFFLING_PHASE: 256 # `Epoch(2)` WHISK_PROPOSER_SELECTION_GAP: 2 -# EIP7594 +# FULU NUMBER_OF_COLUMNS: 128 NUMBER_OF_CUSTODY_GROUPS: 128 DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 diff --git a/configs/minimal.yaml b/configs/minimal.yaml index 449dd3c421..9050339f17 100644 --- a/configs/minimal.yaml +++ b/configs/minimal.yaml @@ -52,9 +52,9 @@ DENEB_FORK_EPOCH: 18446744073709551615 # Electra ELECTRA_FORK_VERSION: 0x05000001 ELECTRA_FORK_EPOCH: 18446744073709551615 -# EIP7594 -EIP7594_FORK_VERSION: 0x06000001 -EIP7594_FORK_EPOCH: 18446744073709551615 +# FULU +FULU_FORK_VERSION: 0x06000001 +FULU_FORK_EPOCH: 18446744073709551615 # WHISK WHISK_FORK_VERSION: 0x08000001 WHISK_FORK_EPOCH: 18446744073709551615 @@ -172,7 +172,7 @@ MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 WHISK_EPOCHS_PER_SHUFFLING_PHASE: 4 WHISK_PROPOSER_SELECTION_GAP: 1 -# EIP7594 +# FULU NUMBER_OF_COLUMNS: 128 NUMBER_OF_CUSTODY_GROUPS: 128 DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 diff --git a/presets/mainnet/eip7594.yaml b/presets/mainnet/eip7594.yaml index 813febf26d..84111aba28 100644 --- a/presets/mainnet/eip7594.yaml +++ b/presets/mainnet/eip7594.yaml @@ -1,4 +1,4 @@ -# Mainnet preset - EIP7594 +# Mainnet preset - FULU # Misc # --------------------------------------------------------------- diff --git a/presets/minimal/eip7594.yaml b/presets/minimal/eip7594.yaml index 847719a421..1204822fb8 100644 --- a/presets/minimal/eip7594.yaml +++ b/presets/minimal/eip7594.yaml @@ -1,4 +1,4 @@ -# Minimal preset - EIP7594 +# Minimal preset - FULU # Misc # --------------------------------------------------------------- diff --git a/pysetup/md_doc_paths.py b/pysetup/md_doc_paths.py index 0f0d1c8593..2c4539eeb6 100644 --- a/pysetup/md_doc_paths.py +++ b/pysetup/md_doc_paths.py @@ -8,7 +8,7 @@ DENEB, ELECTRA, WHISK, - EIP7594, + FULU, EIP6800, EIP7732, ) @@ -22,7 +22,7 @@ DENEB: CAPELLA, ELECTRA: DENEB, WHISK: CAPELLA, - EIP7594: ELECTRA, + FULU: ELECTRA, EIP6800: DENEB, EIP7732: ELECTRA, } diff --git a/specs/fulu/p2p-interface.md b/specs/fulu/p2p-interface.md index 3df35ef223..95d6ffbb86 100644 --- a/specs/fulu/p2p-interface.md +++ b/specs/fulu/p2p-interface.md @@ -9,7 +9,7 @@ - [Introduction](#introduction) -- [Modifications in EIP-7594](#modifications-in-eip-7594) +- [Modifications in Fulu](#modifications-in-fulu) - [Preset](#preset) - [Configuration](#configuration) - [Containers](#containers) @@ -43,11 +43,11 @@ ## Introduction -This document contains the consensus-layer networking specification for EIP7594. +This document contains the consensus-layer networking specification for Fulu. The specification of these changes continues in the same format as the network specifications of previous upgrades, and assumes them as pre-requisite. -## Modifications in EIP-7594 +## Modifications in Fulu ### Preset @@ -163,7 +163,7 @@ Where ### The gossip domain: gossipsub -Some gossip meshes are upgraded in the EIP-7594 fork to support upgraded types. +Some gossip meshes are upgraded in the Fulu fork to support upgraded types. #### Topics and messages diff --git a/tests/core/pyspec/eth2spec/test/context.py b/tests/core/pyspec/eth2spec/test/context.py index 37ca20bb78..8c960cfc75 100644 --- a/tests/core/pyspec/eth2spec/test/context.py +++ b/tests/core/pyspec/eth2spec/test/context.py @@ -8,7 +8,7 @@ from .exceptions import SkippedTest from .helpers.constants import ( PHASE0, ALTAIR, BELLATRIX, CAPELLA, DENEB, ELECTRA, - EIP7594, + FULU, WHISK, MINIMAL, ALL_PHASES, @@ -558,7 +558,7 @@ def wrapper(*args, spec: Spec, **kw): with_deneb_and_later = with_all_phases_from(DENEB) with_electra_and_later = with_all_phases_from(ELECTRA) with_whisk_and_later = with_all_phases_from(WHISK, all_phases=ALLOWED_TEST_RUNNER_FORKS) -with_fulu_and_later = with_all_phases_from(EIP7594, all_phases=ALLOWED_TEST_RUNNER_FORKS) +with_fulu_and_later = with_all_phases_from(FULU, all_phases=ALLOWED_TEST_RUNNER_FORKS) class quoted_str(str): diff --git a/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py b/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py index 905cb390eb..2845af4634 100644 --- a/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py +++ b/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py @@ -7,7 +7,7 @@ from eth2spec.test.helpers.constants import ( DENEB, - EIP7594, + FULU, ) from eth2spec.test.helpers.block import ( @@ -39,7 +39,7 @@ def get_block_with_blob(spec, state, rng=None): return block, blobs, blob_kzg_proofs -@with_all_phases_from_except(DENEB, [EIP7594]) +@with_all_phases_from_except(DENEB, [FULU]) @spec_state_test def test_simple_blob_data(spec, state): rng = Random(1234) @@ -74,7 +74,7 @@ def test_simple_blob_data(spec, state): yield 'steps', test_steps -@with_all_phases_from_except(DENEB, [EIP7594]) +@with_all_phases_from_except(DENEB, [FULU]) @spec_state_test def test_invalid_incorrect_proof(spec, state): rng = Random(1234) @@ -102,7 +102,7 @@ def test_invalid_incorrect_proof(spec, state): yield 'steps', test_steps -@with_all_phases_from_except(DENEB, [EIP7594]) +@with_all_phases_from_except(DENEB, [FULU]) @spec_state_test def test_invalid_data_unavailable(spec, state): rng = Random(1234) @@ -130,7 +130,7 @@ def test_invalid_data_unavailable(spec, state): yield 'steps', test_steps -@with_all_phases_from_except(DENEB, [EIP7594]) +@with_all_phases_from_except(DENEB, [FULU]) @spec_state_test def test_invalid_wrong_proofs_length(spec, state): rng = Random(1234) @@ -158,7 +158,7 @@ def test_invalid_wrong_proofs_length(spec, state): yield 'steps', test_steps -@with_all_phases_from_except(DENEB, [EIP7594]) +@with_all_phases_from_except(DENEB, [FULU]) @spec_state_test def test_invalid_wrong_blobs_length(spec, state): rng = Random(1234) diff --git a/tests/core/pyspec/eth2spec/test/helpers/constants.py b/tests/core/pyspec/eth2spec/test/helpers/constants.py index 3130e64d7f..627243be87 100644 --- a/tests/core/pyspec/eth2spec/test/helpers/constants.py +++ b/tests/core/pyspec/eth2spec/test/helpers/constants.py @@ -37,12 +37,12 @@ *MAINNET_FORKS, ELECTRA, # Experimental patches - EIP7594, + FULU, ) # The forks that have light client specs LIGHT_CLIENT_TESTING_FORKS = (*[item for item in MAINNET_FORKS if item != PHASE0], ELECTRA) # The forks that output to the test vectors. -TESTGEN_FORKS = (*MAINNET_FORKS, ELECTRA, EIP7594, WHISK) +TESTGEN_FORKS = (*MAINNET_FORKS, ELECTRA, FULU, WHISK) # Forks allowed in the test runner `--fork` flag, to fail fast in case of typos ALLOWED_TEST_RUNNER_FORKS = (*ALL_PHASES, WHISK, EIP7732) @@ -57,7 +57,7 @@ ELECTRA: DENEB, # Experimental patches WHISK: CAPELLA, - EIP7594: ELECTRA, + FULU: ELECTRA, EIP7732: ELECTRA, } diff --git a/tests/generators/kzg_7594/main.py b/tests/generators/kzg_7594/main.py index 08eb82701f..d01ddf2878 100644 --- a/tests/generators/kzg_7594/main.py +++ b/tests/generators/kzg_7594/main.py @@ -8,7 +8,7 @@ from eth2spec.fulu import spec from eth2spec.gen_helpers.gen_base import gen_runner, gen_typing -from eth2spec.test.helpers.constants import EIP7594 +from eth2spec.test.helpers.constants import FULU from eth2spec.test.helpers.typing import SpecForkName from eth2spec.test.utils.kzg_tests import ( CELL_RANDOM_VALID1, @@ -566,7 +566,7 @@ def cases_fn() -> Iterable[gen_typing.TestCase]: bls.use_arkworks() gen_runner.run_generator("kzg_7594", [ # EIP-7594 - create_provider(EIP7594, 'compute_cells_and_kzg_proofs', case_compute_cells_and_kzg_proofs), - create_provider(EIP7594, 'verify_cell_kzg_proof_batch', case_verify_cell_kzg_proof_batch), - create_provider(EIP7594, 'recover_cells_and_kzg_proofs', case_recover_cells_and_kzg_proofs), + create_provider(FULU, 'compute_cells_and_kzg_proofs', case_compute_cells_and_kzg_proofs), + create_provider(FULU, 'verify_cell_kzg_proof_batch', case_verify_cell_kzg_proof_batch), + create_provider(FULU, 'recover_cells_and_kzg_proofs', case_recover_cells_and_kzg_proofs), ]) From 0302dbf75673fda1087db05aed5f2a3717b90cd9 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:27:39 -0500 Subject: [PATCH 06/14] Fix order & capitalization --- configs/mainnet.yaml | 24 ++++++++++++------------ configs/minimal.yaml | 20 ++++++++++---------- pysetup/md_doc_paths.py | 4 ++-- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/configs/mainnet.yaml b/configs/mainnet.yaml index 403823075c..c4f3e48c53 100644 --- a/configs/mainnet.yaml +++ b/configs/mainnet.yaml @@ -53,7 +53,7 @@ DENEB_FORK_EPOCH: 269568 # March 13, 2024, 01:55:35pm UTC # Electra ELECTRA_FORK_VERSION: 0x05000000 ELECTRA_FORK_EPOCH: 18446744073709551615 # temporary stub -# FULU +# Fulu FULU_FORK_VERSION: 0x06000000 # temporary stub FULU_FORK_EPOCH: 18446744073709551615 # WHISK @@ -167,23 +167,23 @@ MAX_BLOBS_PER_BLOCK_ELECTRA: 9 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 -# Whisk -# `Epoch(2**8)` -WHISK_EPOCHS_PER_SHUFFLING_PHASE: 256 -# `Epoch(2)` -WHISK_PROPOSER_SELECTION_GAP: 2 - -# FULU +# Fulu NUMBER_OF_COLUMNS: 128 NUMBER_OF_CUSTODY_GROUPS: 128 DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384 SAMPLES_PER_SLOT: 8 CUSTODY_REQUIREMENT: 4 -TARGET_BLOBS_PER_BLOCK_EIP7594: 9 -MAX_BLOBS_PER_BLOCK_EIP7594: 12 -# `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_EIP7594` -MAX_REQUEST_BLOB_SIDECARS_EIP7594: 1536 +TARGET_BLOBS_PER_BLOCK_FULU: 9 +MAX_BLOBS_PER_BLOCK_FULU: 12 +# `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_FULU` +MAX_REQUEST_BLOB_SIDECARS_FULU: 1536 + +# Whisk +# `Epoch(2**8)` +WHISK_EPOCHS_PER_SHUFFLING_PHASE: 256 +# `Epoch(2)` +WHISK_PROPOSER_SELECTION_GAP: 2 # EIP7732 MAX_REQUEST_PAYLOADS: 128 diff --git a/configs/minimal.yaml b/configs/minimal.yaml index 9050339f17..afb99949a4 100644 --- a/configs/minimal.yaml +++ b/configs/minimal.yaml @@ -52,7 +52,7 @@ DENEB_FORK_EPOCH: 18446744073709551615 # Electra ELECTRA_FORK_VERSION: 0x05000001 ELECTRA_FORK_EPOCH: 18446744073709551615 -# FULU +# Fulu FULU_FORK_VERSION: 0x06000001 FULU_FORK_EPOCH: 18446744073709551615 # WHISK @@ -168,21 +168,21 @@ MAX_BLOBS_PER_BLOCK_ELECTRA: 9 # MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152 -# Whisk -WHISK_EPOCHS_PER_SHUFFLING_PHASE: 4 -WHISK_PROPOSER_SELECTION_GAP: 1 - -# FULU +# Fulu NUMBER_OF_COLUMNS: 128 NUMBER_OF_CUSTODY_GROUPS: 128 DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128 MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384 SAMPLES_PER_SLOT: 8 CUSTODY_REQUIREMENT: 4 -TARGET_BLOBS_PER_BLOCK_EIP7594: 9 -MAX_BLOBS_PER_BLOCK_EIP7594: 12 -# `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_EIP7594` -MAX_REQUEST_BLOB_SIDECARS_EIP7594: 1536 +TARGET_BLOBS_PER_BLOCK_FULU: 9 +MAX_BLOBS_PER_BLOCK_FULU: 12 +# `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_FULU` +MAX_REQUEST_BLOB_SIDECARS_FULU: 1536 + +# Whisk +WHISK_EPOCHS_PER_SHUFFLING_PHASE: 4 +WHISK_PROPOSER_SELECTION_GAP: 1 # EIP7732 MAX_REQUEST_PAYLOADS: 128 diff --git a/pysetup/md_doc_paths.py b/pysetup/md_doc_paths.py index 2c4539eeb6..ff081ad5ab 100644 --- a/pysetup/md_doc_paths.py +++ b/pysetup/md_doc_paths.py @@ -7,8 +7,8 @@ CAPELLA, DENEB, ELECTRA, - WHISK, FULU, + WHISK, EIP6800, EIP7732, ) @@ -21,8 +21,8 @@ CAPELLA: BELLATRIX, DENEB: CAPELLA, ELECTRA: DENEB, - WHISK: CAPELLA, FULU: ELECTRA, + WHISK: CAPELLA, EIP6800: DENEB, EIP7732: ELECTRA, } From 2106e729bceb4c92f33589350f0cad3ad7cc4c01 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:28:52 -0500 Subject: [PATCH 07/14] Rename files --- presets/mainnet/{eip7594.yaml => fulu.yaml} | 0 presets/minimal/{eip7594.yaml => fulu.yaml} | 0 tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/__init__.py | 0 .../eth2spec/test/{eip7594 => fulu}/merkle_proof/__init__.py | 0 .../{eip7594 => fulu}/merkle_proof/test_single_merkle_proof.py | 0 .../pyspec/eth2spec/test/{eip7594 => fulu}/networking/__init__.py | 0 .../test/{eip7594 => fulu}/networking/test_get_custody_columns.py | 0 .../pyspec/eth2spec/test/{eip7594 => fulu}/unittests/__init__.py | 0 .../eth2spec/test/{eip7594 => fulu}/unittests/das/__init__.py | 0 .../eth2spec/test/{eip7594 => fulu}/unittests/das/test_das.py | 0 .../unittests/polynomial_commitments/__init__.py | 0 .../polynomial_commitments/test_polynomial_commitments.py | 0 .../test/{eip7594 => fulu}/unittests/test_config_invariants.py | 0 .../eth2spec/test/{eip7594 => fulu}/unittests/test_custody.py | 0 .../eth2spec/test/{eip7594 => fulu}/unittests/test_networking.py | 0 .../eth2spec/test/{eip7594 => fulu}/unittests/test_security.py | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename presets/mainnet/{eip7594.yaml => fulu.yaml} (100%) rename presets/minimal/{eip7594.yaml => fulu.yaml} (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/__init__.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/merkle_proof/__init__.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/merkle_proof/test_single_merkle_proof.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/networking/__init__.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/networking/test_get_custody_columns.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/__init__.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/das/__init__.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/das/test_das.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/polynomial_commitments/__init__.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/polynomial_commitments/test_polynomial_commitments.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/test_config_invariants.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/test_custody.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/test_networking.py (100%) rename tests/core/pyspec/eth2spec/test/{eip7594 => fulu}/unittests/test_security.py (100%) diff --git a/presets/mainnet/eip7594.yaml b/presets/mainnet/fulu.yaml similarity index 100% rename from presets/mainnet/eip7594.yaml rename to presets/mainnet/fulu.yaml diff --git a/presets/minimal/eip7594.yaml b/presets/minimal/fulu.yaml similarity index 100% rename from presets/minimal/eip7594.yaml rename to presets/minimal/fulu.yaml diff --git a/tests/core/pyspec/eth2spec/test/eip7594/__init__.py b/tests/core/pyspec/eth2spec/test/fulu/__init__.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/__init__.py rename to tests/core/pyspec/eth2spec/test/fulu/__init__.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/__init__.py b/tests/core/pyspec/eth2spec/test/fulu/merkle_proof/__init__.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/__init__.py rename to tests/core/pyspec/eth2spec/test/fulu/merkle_proof/__init__.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/test_single_merkle_proof.py b/tests/core/pyspec/eth2spec/test/fulu/merkle_proof/test_single_merkle_proof.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/merkle_proof/test_single_merkle_proof.py rename to tests/core/pyspec/eth2spec/test/fulu/merkle_proof/test_single_merkle_proof.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/networking/__init__.py b/tests/core/pyspec/eth2spec/test/fulu/networking/__init__.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/networking/__init__.py rename to tests/core/pyspec/eth2spec/test/fulu/networking/__init__.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/networking/test_get_custody_columns.py b/tests/core/pyspec/eth2spec/test/fulu/networking/test_get_custody_columns.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/networking/test_get_custody_columns.py rename to tests/core/pyspec/eth2spec/test/fulu/networking/test_get_custody_columns.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/__init__.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/__init__.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/__init__.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/__init__.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/das/__init__.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/das/__init__.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/das/__init__.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/das/__init__.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/das/test_das.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/das/test_das.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/das/test_das.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/das/test_das.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/__init__.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/polynomial_commitments/__init__.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/__init__.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/polynomial_commitments/__init__.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/test_polynomial_commitments.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/polynomial_commitments/test_polynomial_commitments.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/polynomial_commitments/test_polynomial_commitments.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/polynomial_commitments/test_polynomial_commitments.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_config_invariants.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_config_invariants.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/test_config_invariants.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/test_config_invariants.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_custody.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_custody.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/test_custody.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/test_custody.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_networking.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_networking.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/test_networking.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/test_networking.py diff --git a/tests/core/pyspec/eth2spec/test/eip7594/unittests/test_security.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_security.py similarity index 100% rename from tests/core/pyspec/eth2spec/test/eip7594/unittests/test_security.py rename to tests/core/pyspec/eth2spec/test/fulu/unittests/test_security.py From f9c1ce519fc389f3e2e184d92e343b529aee6487 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Tue, 22 Oct 2024 11:47:07 -0500 Subject: [PATCH 08/14] Update core readme --- README.md | 1 + specs/fulu/fork-choice.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c3a57c6256..f7acc28706 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Features are researched and developed in parallel, and then consolidated into se | Seq. | Code Name | Fork Epoch | Specs | | - | - | - | - | | 5 | **Electra** | TBD |
  • Core
    • [Beacon Chain changes](specs/electra/beacon-chain.md)
    • [Electra fork](specs/electra/fork.md)
  • Additions
    • [Light client sync protocol changes](specs/electra/light-client/sync-protocol.md) ([fork](specs/electra/light-client/fork.md), [networking](specs/electra/light-client/p2p-interface.md))
    • [Honest validator guide changes](specs/electra/validator.md)
    • [P2P networking](specs/electra/p2p-interface.md)
| +| 6 | **Fulu** | TBD |
  • Core
    • [Fulu fork](specs/fulu/fork.md)
    • [Data availability sampling core](specs/fulu/das-core.md)
    • [Polynomial commitments sampling](specs/fulu/polynomial-commitments-sampling.md)
    • [Fork choice changes](specs/fulu/fork.md)
  • Additions
    • [P2P networking](specs/fulu/p2p-interface.md)
    • [Peer sampling](specs/fulu/peer-sampling.md)
| ### Outdated Specifications diff --git a/specs/fulu/fork-choice.md b/specs/fulu/fork-choice.md index 8677254e78..4a20906804 100644 --- a/specs/fulu/fork-choice.md +++ b/specs/fulu/fork-choice.md @@ -16,7 +16,7 @@ ## Introduction -This is the modification of the fork choice accompanying EIP-7594. +This is the modification of the fork choice accompanying Fulu. ## Helpers From 607547efb9c8b2a8035f03d83acc415e5e201438 Mon Sep 17 00:00:00 2001 From: Justin Traglia <95511699+jtraglia@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:37:09 -0600 Subject: [PATCH 09/14] Update comments for FULU_FORK_* --- configs/mainnet.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/mainnet.yaml b/configs/mainnet.yaml index c4f3e48c53..9972817aca 100644 --- a/configs/mainnet.yaml +++ b/configs/mainnet.yaml @@ -54,8 +54,8 @@ DENEB_FORK_EPOCH: 269568 # March 13, 2024, 01:55:35pm UTC ELECTRA_FORK_VERSION: 0x05000000 ELECTRA_FORK_EPOCH: 18446744073709551615 # temporary stub # Fulu -FULU_FORK_VERSION: 0x06000000 # temporary stub -FULU_FORK_EPOCH: 18446744073709551615 +FULU_FORK_VERSION: 0x06000000 +FULU_FORK_EPOCH: 184467440737095516155 # temporary stub # WHISK WHISK_FORK_VERSION: 0x08000000 # temporary stub WHISK_FORK_EPOCH: 18446744073709551615 From f15d116949c1f44463c17cfdccc49174dec02303 Mon Sep 17 00:00:00 2001 From: Justin Traglia <95511699+jtraglia@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:47:44 -0600 Subject: [PATCH 10/14] Fix mistake --- configs/mainnet.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/mainnet.yaml b/configs/mainnet.yaml index 9972817aca..dadb261b44 100644 --- a/configs/mainnet.yaml +++ b/configs/mainnet.yaml @@ -55,7 +55,7 @@ ELECTRA_FORK_VERSION: 0x05000000 ELECTRA_FORK_EPOCH: 18446744073709551615 # temporary stub # Fulu FULU_FORK_VERSION: 0x06000000 -FULU_FORK_EPOCH: 184467440737095516155 # temporary stub +FULU_FORK_EPOCH: 18446744073709551615 # temporary stub # WHISK WHISK_FORK_VERSION: 0x08000000 # temporary stub WHISK_FORK_EPOCH: 18446744073709551615 From b504270fb01b041cb3d20adaff7fa365aa4b6777 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Wed, 11 Dec 2024 08:57:13 -0600 Subject: [PATCH 11/14] Make changes after rebasing --- specs/fulu/beacon-chain.md | 10 ++--- specs/fulu/p2p-interface.md | 38 +++++++++---------- specs/fulu/validator.md | 10 ++--- .../fulu/unittests/test_config_invariants.py | 10 ++--- .../test/fulu/unittests/test_custody.py | 2 +- .../core/pyspec/eth2spec/test/helpers/blob.py | 6 +-- .../pyspec/eth2spec/test/helpers/forks.py | 10 ++--- .../test/utils/randomized_block_tests.py | 2 +- 8 files changed, 44 insertions(+), 44 deletions(-) diff --git a/specs/fulu/beacon-chain.md b/specs/fulu/beacon-chain.md index 8f30e683e7..5dca6580f5 100644 --- a/specs/fulu/beacon-chain.md +++ b/specs/fulu/beacon-chain.md @@ -1,4 +1,4 @@ -# EIP7594 -- The Beacon Chain +# Fulu -- The Beacon Chain **Notice**: This document is a work-in-progress for researchers and implementers. @@ -27,8 +27,8 @@ | Name | Value | Description | | - | - | - | -| `TARGET_BLOBS_PER_BLOCK_EIP7594` | `uint64(9)` | *[New in EIP7594]* Target number of blobs in a single block limited by `MAX_BLOBS_PER_BLOCK_EIP7594` | -| `MAX_BLOBS_PER_BLOCK_EIP7594` | `uint64(12)` | *[New in EIP7594]* Maximum number of blobs in a single block limited by `MAX_BLOB_COMMITMENTS_PER_BLOCK` | +| `TARGET_BLOBS_PER_BLOCK_FULU` | `uint64(9)` | *[New in Fulu:EIP7594]* Target number of blobs in a single block limited by `MAX_BLOBS_PER_BLOCK_FULU` | +| `MAX_BLOBS_PER_BLOCK_FULU` | `uint64(12)` | *[New in Fulu:EIP7594]* Maximum number of blobs in a single block limited by `MAX_BLOB_COMMITMENTS_PER_BLOCK` | #### Execution payload @@ -45,7 +45,7 @@ def process_execution_payload(state: BeaconState, body: BeaconBlockBody, executi # Verify timestamp assert payload.timestamp == compute_timestamp_at_slot(state, state.slot) # Verify commitments are under limit - assert len(body.blob_kzg_commitments) <= MAX_BLOBS_PER_BLOCK_EIP7594 # [Modified in EIP7594] + assert len(body.blob_kzg_commitments) <= MAX_BLOBS_PER_BLOCK_FULU # [Modified in Fulu:EIP7594] # Verify the execution payload is valid versioned_hashes = [kzg_commitment_to_versioned_hash(commitment) for commitment in body.blob_kzg_commitments] assert execution_engine.verify_and_notify_new_payload( @@ -54,7 +54,7 @@ def process_execution_payload(state: BeaconState, body: BeaconBlockBody, executi versioned_hashes=versioned_hashes, parent_beacon_block_root=state.latest_block_header.parent_root, execution_requests=body.execution_requests, - target_blobs_per_block=TARGET_BLOBS_PER_BLOCK_EIP7594, # [Modified in EIP7594] + target_blobs_per_block=TARGET_BLOBS_PER_BLOCK_FULU, # [Modified in Fulu:EIP7594] ) ) # Cache execution payload header diff --git a/specs/fulu/p2p-interface.md b/specs/fulu/p2p-interface.md index 95d6ffbb86..7dbb16432c 100644 --- a/specs/fulu/p2p-interface.md +++ b/specs/fulu/p2p-interface.md @@ -64,7 +64,7 @@ The specification of these changes continues in the same format as the network s | `DATA_COLUMN_SIDECAR_SUBNET_COUNT` | `128` | The number of data column sidecar subnets used in the gossipsub protocol | | `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 | -| `MAX_REQUEST_BLOB_SIDECARS_EIP7594` | `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_EIP7594` | Maximum number of blob sidecars in a single request | +| `MAX_REQUEST_BLOB_SIDECARS_FULU` | `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_FULU` | Maximum number of blob sidecars in a single request | ### Containers @@ -174,7 +174,7 @@ Some gossip meshes are upgraded in the Fulu fork to support upgraded types. *Updated validation* - _[REJECT]_ The length of KZG commitments is less than or equal to the limitation defined in Consensus Layer -- - i.e. validate that `len(body.signed_beacon_block.message.blob_kzg_commitments) <= MAX_BLOBS_PER_BLOCK_EIP7594` + i.e. validate that `len(body.signed_beacon_block.message.blob_kzg_commitments) <= MAX_BLOBS_PER_BLOCK_FULU` ##### Blob subnets @@ -215,21 +215,21 @@ The following validations MUST pass before forwarding the `sidecar: DataColumnSi **Protocol ID:** `/eth2/beacon_chain/req/blob_sidecars_by_root/3/` -*[Modified in EIP7594]* +*[Modified in Fulu:EIP7594]* The `` field is calculated as `context = compute_fork_digest(fork_version, genesis_validators_root)`: [1]: # (eth2spec: skip) -| `fork_version` | Chunk SSZ type | -|------------------------|-----------------------| -| `EIP7594_FORK_VERSION` | `eip7594.BlobSidecar` | +| `fork_version` | Chunk SSZ type | +|---------------------|--------------------| +| `FULU_FORK_VERSION` | `fulu.BlobSidecar` | Request Content: ``` ( - List[BlobIdentifier, MAX_REQUEST_BLOB_SIDECARS_EIP7594] + List[BlobIdentifier, MAX_REQUEST_BLOB_SIDECARS_FULU] ) ``` @@ -237,27 +237,27 @@ Response Content: ``` ( - List[BlobSidecar, MAX_REQUEST_BLOB_SIDECARS_EIP7594] + List[BlobSidecar, MAX_REQUEST_BLOB_SIDECARS_FULU] ) ``` *Updated validation* -No more than `MAX_REQUEST_BLOB_SIDECARS_EIP7594` may be requested at a time. +No more than `MAX_REQUEST_BLOB_SIDECARS_FULU` may be requested at a time. ##### BlobSidecarsByRange v3 **Protocol ID:** `/eth2/beacon_chain/req/blob_sidecars_by_range/3/` -*[Modified in EIP7594]* +*[Modified in Fulu:EIP7594]* The `` field is calculated as `context = compute_fork_digest(fork_version, genesis_validators_root)`: [1]: # (eth2spec: skip) -| `fork_version` | Chunk SSZ type | -|------------------------|-----------------------| -| `EIP7594_FORK_VERSION` | `eip7594.BlobSidecar` | +| `fork_version` | Chunk SSZ type | +|---------------------|--------------------| +| `FULU_FORK_VERSION` | `fulu.BlobSidecar` | Request Content: @@ -272,13 +272,13 @@ Response Content: ``` ( - List[BlobSidecar, MAX_REQUEST_BLOB_SIDECARS_EIP7594] + List[BlobSidecar, MAX_REQUEST_BLOB_SIDECARS_FULU] ) ``` *Updated validation* -Clients MUST respond with at least the blob sidecars of the first blob-carrying block that exists in the range, if they have it, and no more than `MAX_REQUEST_BLOB_SIDECARS_EIP7594` sidecars. +Clients MUST respond with at least the blob sidecars of the first blob-carrying block that exists in the range, if they have it, and no more than `MAX_REQUEST_BLOB_SIDECARS_FULU` sidecars. ##### DataColumnSidecarsByRoot v1 @@ -290,8 +290,8 @@ The `` field is calculated as `context = compute_fork_digest(fork [1]: # (eth2spec: skip) -| `fork_version` | Chunk SSZ type | -|------------------------|-----------------------------| +| `fork_version` | Chunk SSZ type | +|---------------------|--------------------------| | `FULU_FORK_VERSION` | `fulu.DataColumnSidecar` | Request Content: @@ -338,8 +338,8 @@ The `` field is calculated as `context = compute_fork_digest(fork [1]: # (eth2spec: skip) -| `fork_version` | Chunk SSZ type | -|------------------------|-----------------------------| +| `fork_version` | Chunk SSZ type | +|---------------------|--------------------------| | `FULU_FORK_VERSION` | `fulu.DataColumnSidecar` | Request Content: diff --git a/specs/fulu/validator.md b/specs/fulu/validator.md index 0fddad4ebe..b8781e8ad6 100644 --- a/specs/fulu/validator.md +++ b/specs/fulu/validator.md @@ -1,4 +1,4 @@ -# EIP7594 -- Honest Validator +# Fulu -- Honest Validator ## Table of contents @@ -17,14 +17,14 @@ ## Introduction -This document represents the changes to be made in the code of an "honest validator" to implement EIP7594. +This document represents the changes to be made in the code of an "honest validator" to implement Fulu. ## Prerequisites This document is an extension of the [Electra -- Honest Validator](../electra/validator.md) guide. All behaviors and definitions defined in this document, and documents it extends, carry over unless explicitly noted or overridden. -All terminology, constants, functions, and protocol mechanics defined in the updated Beacon Chain doc of [EIP7594](./beacon-chain.md) are requisite for this document and used throughout. +All terminology, constants, functions, and protocol mechanics defined in the updated Beacon Chain doc of [Fulu](./beacon-chain.md) are requisite for this document and used throughout. Please see related Beacon Chain doc before continuing and use them as a reference throughout. ## Block proposal @@ -56,8 +56,8 @@ def prepare_execution_payload(state: BeaconState, suggested_fee_recipient=suggested_fee_recipient, withdrawals=withdrawals, parent_beacon_block_root=hash_tree_root(state.latest_block_header), - target_blobs_per_block=TARGET_BLOBS_PER_BLOCK_EIP7594, # [Modified in EIP7594] - max_blobs_per_block=MAX_BLOBS_PER_BLOCK_EIP7594, # [Modified in EIP7594] + target_blobs_per_block=TARGET_BLOBS_PER_BLOCK_FULU, # [Modified in Fulu:EIP7594] + max_blobs_per_block=MAX_BLOBS_PER_BLOCK_FULU, # [Modified in Fulu:EIP7594] ) return execution_engine.notify_forkchoice_updated( head_block_hash=parent_hash, diff --git a/tests/core/pyspec/eth2spec/test/fulu/unittests/test_config_invariants.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_config_invariants.py index 6be2a3f64c..57b40f6e2c 100644 --- a/tests/core/pyspec/eth2spec/test/fulu/unittests/test_config_invariants.py +++ b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_config_invariants.py @@ -27,13 +27,13 @@ def test_polynomical_commitments_sampling(spec): assert spec.FIELD_ELEMENTS_PER_EXT_BLOB == 2 * spec.FIELD_ELEMENTS_PER_BLOB -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_networking(spec): - assert spec.config.TARGET_BLOBS_PER_BLOCK_EIP7594 <= spec.config.MAX_BLOBS_PER_BLOCK_EIP7594 - assert spec.config.MAX_BLOBS_PER_BLOCK_EIP7594 <= spec.MAX_BLOB_COMMITMENTS_PER_BLOCK + assert spec.config.TARGET_BLOBS_PER_BLOCK_FULU <= spec.config.MAX_BLOBS_PER_BLOCK_FULU + assert spec.config.MAX_BLOBS_PER_BLOCK_FULU <= spec.MAX_BLOB_COMMITMENTS_PER_BLOCK assert ( - spec.config.MAX_REQUEST_BLOB_SIDECARS_EIP7594 == - spec.config.MAX_REQUEST_BLOCKS_DENEB * spec.config.MAX_BLOBS_PER_BLOCK_EIP7594 + spec.config.MAX_REQUEST_BLOB_SIDECARS_FULU == + spec.config.MAX_REQUEST_BLOCKS_DENEB * spec.config.MAX_BLOBS_PER_BLOCK_FULU ) diff --git a/tests/core/pyspec/eth2spec/test/fulu/unittests/test_custody.py b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_custody.py index dcd08ce1d2..fa2fcbc7dc 100644 --- a/tests/core/pyspec/eth2spec/test/fulu/unittests/test_custody.py +++ b/tests/core/pyspec/eth2spec/test/fulu/unittests/test_custody.py @@ -59,7 +59,7 @@ def test_get_custody_columns_custody_size_more_than_number_of_groups(spec): expect_assertion_error(lambda: spec.get_custody_groups(node_id, custody_group_count)) -@with_eip7594_and_later +@with_fulu_and_later @spec_test @single_phase def test_compute_columns_for_custody_group_out_of_bound_custody_group(spec): diff --git a/tests/core/pyspec/eth2spec/test/helpers/blob.py b/tests/core/pyspec/eth2spec/test/helpers/blob.py index e0d82da1a0..f89b1ff527 100644 --- a/tests/core/pyspec/eth2spec/test/helpers/blob.py +++ b/tests/core/pyspec/eth2spec/test/helpers/blob.py @@ -4,7 +4,7 @@ from eth2spec.test.helpers.forks import ( is_post_electra, - is_post_eip7594, + is_post_fulu, ) @@ -107,8 +107,8 @@ def get_sample_blob_tx(spec, blob_count=1, rng=random.Random(5566), is_valid_blo def get_max_blob_count(spec): - if is_post_eip7594(spec): - return spec.config.MAX_BLOBS_PER_BLOCK_EIP7594 + if is_post_fulu(spec): + return spec.config.MAX_BLOBS_PER_BLOCK_FULU elif is_post_electra(spec): return spec.config.MAX_BLOBS_PER_BLOCK_ELECTRA else: diff --git a/tests/core/pyspec/eth2spec/test/helpers/forks.py b/tests/core/pyspec/eth2spec/test/helpers/forks.py index e261e3a754..4bb3d54ed3 100644 --- a/tests/core/pyspec/eth2spec/test/helpers/forks.py +++ b/tests/core/pyspec/eth2spec/test/helpers/forks.py @@ -1,6 +1,6 @@ from .constants import ( PHASE0, ALTAIR, BELLATRIX, CAPELLA, DENEB, - ELECTRA, WHISK, EIP7732, EIP7594, + ELECTRA, FULU, WHISK, EIP7732, PREVIOUS_FORK_OF, ) @@ -41,12 +41,12 @@ def is_post_electra(spec): return is_post_fork(spec.fork, ELECTRA) -def is_post_whisk(spec): - return is_post_fork(spec.fork, WHISK) +def is_post_fulu(spec): + return is_post_fork(spec.fork, FULU) -def is_post_eip7594(spec): - return is_post_fork(spec.fork, EIP7594) +def is_post_whisk(spec): + return is_post_fork(spec.fork, WHISK) def is_post_eip7732(spec): diff --git a/tests/core/pyspec/eth2spec/test/utils/randomized_block_tests.py b/tests/core/pyspec/eth2spec/test/utils/randomized_block_tests.py index df67872880..0e4727b794 100644 --- a/tests/core/pyspec/eth2spec/test/utils/randomized_block_tests.py +++ b/tests/core/pyspec/eth2spec/test/utils/randomized_block_tests.py @@ -251,7 +251,7 @@ def random_block_capella(spec, state, signed_blocks, scenario_state, rng=Random( def random_block_deneb(spec, state, signed_blocks, scenario_state, rng=Random(3456)): block = random_block_capella(spec, state, signed_blocks, scenario_state, rng=rng) # TODO: more commitments. blob_kzg_commitments: List[KZGCommitment, MAX_BLOBS_PER_BLOCK] - # TODO: add MAX_BLOBS_PER_BLOCK_EIP7594 at fulu + # TODO: add MAX_BLOBS_PER_BLOCK_FULU at fulu opaque_tx, _, blob_kzg_commitments, _ = get_sample_blob_tx( spec, blob_count=rng.randint(0, spec.config.MAX_BLOBS_PER_BLOCK), rng=rng) block.body.execution_payload.transactions.append(opaque_tx) From 2b75f5f015a52682469a781065688fcc23b7e3fc Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Wed, 11 Dec 2024 12:00:17 -0600 Subject: [PATCH 12/14] Fix table formatting --- specs/fulu/p2p-interface.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/specs/fulu/p2p-interface.md b/specs/fulu/p2p-interface.md index 7dbb16432c..abebbffecc 100644 --- a/specs/fulu/p2p-interface.md +++ b/specs/fulu/p2p-interface.md @@ -59,12 +59,12 @@ The specification of these changes continues in the same format as the network s *[New in Fulu:EIP7594]* -| Name | Value | Description | -|------------------------------------------------|----------------------------------------------------------|---------------------------------------------------------------------------| -| `DATA_COLUMN_SIDECAR_SUBNET_COUNT` | `128` | The number of data column sidecar subnets used in the gossipsub protocol | -| `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 | -| `MAX_REQUEST_BLOB_SIDECARS_FULU` | `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_FULU` | Maximum number of blob sidecars in a single request | +| Name | Value | Description | +|------------------------------------------------|-------------------------------------------------------|---------------------------------------------------------------------------| +| `DATA_COLUMN_SIDECAR_SUBNET_COUNT` | `128` | The number of data column sidecar subnets used in the gossipsub protocol | +| `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 | +| `MAX_REQUEST_BLOB_SIDECARS_FULU` | `MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_FULU` | Maximum number of blob sidecars in a single request | ### Containers From cb84461215be481a1f2ae68c99555859207983d5 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Wed, 11 Dec 2024 12:01:24 -0600 Subject: [PATCH 13/14] Delete unnecessary comments --- tests/generators/kzg_4844/main.py | 1 - tests/generators/kzg_7594/main.py | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/generators/kzg_4844/main.py b/tests/generators/kzg_4844/main.py index a4d3544bdf..2e125ba9d9 100644 --- a/tests/generators/kzg_4844/main.py +++ b/tests/generators/kzg_4844/main.py @@ -598,7 +598,6 @@ def cases_fn() -> Iterable[gen_typing.TestCase]: if __name__ == "__main__": bls.use_arkworks() gen_runner.run_generator("kzg", [ - # DENEB create_provider(DENEB, 'blob_to_kzg_commitment', case01_blob_to_kzg_commitment), create_provider(DENEB, 'compute_kzg_proof', case02_compute_kzg_proof), create_provider(DENEB, 'verify_kzg_proof', case03_verify_kzg_proof), diff --git a/tests/generators/kzg_7594/main.py b/tests/generators/kzg_7594/main.py index d01ddf2878..0c7222fd21 100644 --- a/tests/generators/kzg_7594/main.py +++ b/tests/generators/kzg_7594/main.py @@ -565,7 +565,6 @@ def cases_fn() -> Iterable[gen_typing.TestCase]: if __name__ == "__main__": bls.use_arkworks() gen_runner.run_generator("kzg_7594", [ - # EIP-7594 create_provider(FULU, 'compute_cells_and_kzg_proofs', case_compute_cells_and_kzg_proofs), create_provider(FULU, 'verify_cell_kzg_proof_batch', case_verify_cell_kzg_proof_batch), create_provider(FULU, 'recover_cells_and_kzg_proofs', case_recover_cells_and_kzg_proofs), From deb5241fd694f8f15f1806166b269527aa9ef771 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Wed, 11 Dec 2024 12:12:14 -0600 Subject: [PATCH 14/14] Update table entry for Fulu in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7acc28706..e6ce14ec36 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Features are researched and developed in parallel, and then consolidated into se | Seq. | Code Name | Fork Epoch | Specs | | - | - | - | - | | 5 | **Electra** | TBD |
  • Core
    • [Beacon Chain changes](specs/electra/beacon-chain.md)
    • [Electra fork](specs/electra/fork.md)
  • Additions
    • [Light client sync protocol changes](specs/electra/light-client/sync-protocol.md) ([fork](specs/electra/light-client/fork.md), [networking](specs/electra/light-client/p2p-interface.md))
    • [Honest validator guide changes](specs/electra/validator.md)
    • [P2P networking](specs/electra/p2p-interface.md)
| -| 6 | **Fulu** | TBD |
  • Core
    • [Fulu fork](specs/fulu/fork.md)
    • [Data availability sampling core](specs/fulu/das-core.md)
    • [Polynomial commitments sampling](specs/fulu/polynomial-commitments-sampling.md)
    • [Fork choice changes](specs/fulu/fork.md)
  • Additions
    • [P2P networking](specs/fulu/p2p-interface.md)
    • [Peer sampling](specs/fulu/peer-sampling.md)
| +| 6 | **Fulu** | TBD |
  • Core
    • [Beacon Chain changes](specs/fulu/beacon-chain.md)
    • [Fulu fork](specs/fulu/fork.md)
    • [Data availability sampling core](specs/fulu/das-core.md)
    • [Polynomial commitments sampling](specs/fulu/polynomial-commitments-sampling.md)
    • [Fork choice changes](specs/fulu/fork-choice.md)
  • Additions
    • [Honest validator guide changes](specs/fulu/validator.md)
    • [P2P networking](specs/fulu/p2p-interface.md)
    • [Peer sampling](specs/fulu/peer-sampling.md)
| ### Outdated Specifications