From 1933adedbfc2a188a704628147d537eb62325a8e Mon Sep 17 00:00:00 2001 From: james-prysm <90280386+james-prysm@users.noreply.github.com> Date: Fri, 5 Sep 2025 12:20:13 -0500 Subject: [PATCH] update to v1.6.0-alpha.6 (#15658) * wip workspace update * update ethspecify yml * fixing ethspecify * fixing ethspecify * fixing loader test * changelog and reverting something in configs * adding bad hash --- WORKSPACE | 10 ++--- changelog/james-prysm_alpaha6-spec-tests.md | 3 ++ config/params/loader_test.go | 6 ++- specrefs/.ethspecify.yml | 7 ++-- specrefs/configs.yml | 6 +-- specrefs/functions.yml | 46 ++++++++++++--------- 6 files changed, 45 insertions(+), 33 deletions(-) create mode 100644 changelog/james-prysm_alpaha6-spec-tests.md diff --git a/WORKSPACE b/WORKSPACE index 4c53ba39f6..72941cb5f8 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -253,16 +253,16 @@ filegroup( url = "https://github.com/ethereum/EIPs/archive/5480440fe51742ed23342b68cf106cefd427e39d.tar.gz", ) -consensus_spec_version = "v1.6.0-alpha.5" +consensus_spec_version = "v1.6.0-alpha.6" load("@prysm//tools:download_spectests.bzl", "consensus_spec_tests") consensus_spec_tests( name = "consensus_spec_tests", flavors = { - "general": "sha256-BXuEb1XbeSft0qzVFnoB8KC0YR1qM3ybT5lKUDbUWn8=", - "minimal": "sha256-EjwSHgBbWSoy5hm9V+A/bVMabyojaKsBNPrRtuPVq4k=", - "mainnet": "sha256-OGWMzarzaV1B9mVpy48/DCUbhjfX+b64pAxWwPLWhAs=", + "general": "sha256-7wkWuahuCO37uVYnxq8Badvi+jY907pBj68ixL8XDOI=", + "minimal": "sha256-Qy/f27N0LffS/ej7VhIubwDejD6LMK0VdenKkqtZVt4=", + "mainnet": "sha256-3H7mu5yE+FGz2Wr/nc8Nd9aEu93YoEpsYtn0zBSoeDE=", }, version = consensus_spec_version, ) @@ -278,7 +278,7 @@ filegroup( visibility = ["//visibility:public"], ) """, - integrity = "sha256-FQWR5EZuVcQGR0ol9vpd7eunnfGexJ/7J3xycrFEJbU=", + integrity = "sha256-uvz3XfMTGfy3/BtQQoEp5XQOgrWgcH/5Zo/gR0iiP+k=", strip_prefix = "consensus-specs-" + consensus_spec_version[1:], url = "https://github.com/ethereum/consensus-specs/archive/refs/tags/%s.tar.gz" % consensus_spec_version, ) diff --git a/changelog/james-prysm_alpaha6-spec-tests.md b/changelog/james-prysm_alpaha6-spec-tests.md new file mode 100644 index 0000000000..be0f6a6daf --- /dev/null +++ b/changelog/james-prysm_alpaha6-spec-tests.md @@ -0,0 +1,3 @@ +### Changed + +- Updated consensus spec from v1.6.0-alpha.5 to v1.6.0-alpha.6 \ No newline at end of file diff --git a/config/params/loader_test.go b/config/params/loader_test.go index e272b3334c..c9ea23dad2 100644 --- a/config/params/loader_test.go +++ b/config/params/loader_test.go @@ -24,8 +24,8 @@ import ( // These are variables that we don't use in Prysm. (i.e. future hardfork, light client... etc) // IMPORTANT: Use one field per line and sort these alphabetically to reduce conflicts. var placeholderFields = []string{ - "AGGREGRATE_DUE_BPS", - "AGGREGRATE_DUE_BPS_GLOAS", + "AGGREGATE_DUE_BPS", + "AGGREGATE_DUE_BPS_GLOAS", "ATTESTATION_DEADLINE", "ATTESTATION_DUE_BPS", "ATTESTATION_DUE_BPS_GLOAS", @@ -42,6 +42,8 @@ var placeholderFields = []string{ "EIP7732_FORK_VERSION", "EIP7805_FORK_EPOCH", "EIP7805_FORK_VERSION", + "EIP7928_FORK_EPOCH", + "EIP7928_FORK_VERSION", "EPOCHS_PER_SHUFFLING_PHASE", "GLOAS_FORK_EPOCH", "GLOAS_FORK_VERSION", diff --git a/specrefs/.ethspecify.yml b/specrefs/.ethspecify.yml index 31ff149b56..c2afce6e74 100644 --- a/specrefs/.ethspecify.yml +++ b/specrefs/.ethspecify.yml @@ -1,4 +1,4 @@ -version: v1.6.0-alpha.5 +version: v1.6.0-alpha.6 style: full specrefs: @@ -61,7 +61,7 @@ exceptions: configs: # Not implemented (placeholders) - - AGGREGRATE_DUE_BPS#phase0 + - AGGREGATE_DUE_BPS#phase0 - ATTESTATION_DUE_BPS#phase0 - CONTRIBUTION_DUE_BPS#altair - PROPOSER_REORG_CUTOFF_BPS#phase0 @@ -69,7 +69,7 @@ exceptions: - SYNC_MESSAGE_DUE_BPS#altair # Not implemented: gloas (future fork) - - AGGREGRATE_DUE_BPS_GLOAS#gloas + - AGGREGATE_DUE_BPS_GLOAS#gloas - ATTESTATION_DUE_BPS_GLOAS#gloas - CONTRIBUTION_DUE_BPS_GLOAS#gloas - GLOAS_FORK_EPOCH#gloas @@ -168,6 +168,7 @@ exceptions: # Not implemented: phase0 - calculate_committee_fraction#phase0 + - compute_fork_version#phase0 - compute_pulled_up_tip#phase0 - filter_block_tree#phase0 - get_aggregate_and_proof#phase0 diff --git a/specrefs/configs.yml b/specrefs/configs.yml index ea8f7d13c6..b3177e8db2 100644 --- a/specrefs/configs.yml +++ b/specrefs/configs.yml @@ -18,11 +18,11 @@ ALTAIR_FORK_VERSION: Version = '0x01000000' -- name: AGGREGRATE_DUE_BPS +- name: AGGREGATE_DUE_BPS sources: [] spec: | - - AGGREGRATE_DUE_BPS: uint64 = 6667 + + AGGREGATE_DUE_BPS: uint64 = 6667 - name: ATTESTATION_PROPAGATION_SLOT_RANGE diff --git a/specrefs/functions.yml b/specrefs/functions.yml index e0d153622a..ea2247b63c 100644 --- a/specrefs/functions.yml +++ b/specrefs/functions.yml @@ -510,37 +510,42 @@ - file: beacon-chain/core/signing/signing_root.go search: func ComputeForkDigest( spec: | - - def compute_fork_digest(current_version: Version, genesis_validators_root: Root) -> ForkDigest: - """ - Return the 4-byte fork digest for the ``current_version`` and ``genesis_validators_root``. - This is a digest primarily used for domain separation on the p2p layer. - 4-bytes suffices for practical separation of forks/chains. - """ - return ForkDigest(compute_fork_data_root(current_version, genesis_validators_root)[:4]) - - -- name: compute_fork_digest#fulu - sources: [] - spec: | - + def compute_fork_digest( genesis_validators_root: Root, - # [New in Fulu:EIP7892] epoch: Epoch, ) -> ForkDigest: """ - Return the 4-byte fork digest for the ``version`` and ``genesis_validators_root`` - XOR'd with the hash of the blob parameters for ``epoch``. + Return the 4-byte fork digest for the ``genesis_validators_root`` at a given ``epoch``. This is a digest primarily used for domain separation on the p2p layer. 4-bytes suffices for practical separation of forks/chains. """ fork_version = compute_fork_version(epoch) base_digest = compute_fork_data_root(fork_version, genesis_validators_root) - blob_parameters = get_blob_parameters(epoch) + return ForkDigest(base_digest[:4]) + +- name: compute_fork_digest#fulu + sources: [] + spec: | + + def compute_fork_digest( + genesis_validators_root: Root, + epoch: Epoch, + ) -> ForkDigest: + """ + Return the 4-byte fork digest for the ``genesis_validators_root`` at a given ``epoch``. + + This is a digest primarily used for domain separation on the p2p layer. + 4-bytes suffices for practical separation of forks/chains. + """ + fork_version = compute_fork_version(epoch) + base_digest = compute_fork_data_root(fork_version, genesis_validators_root) + + # [Modified in Fulu:EIP7892] # Bitmask digest with hash of blob parameters + blob_parameters = get_blob_parameters(epoch) return ForkDigest( bytes( xor( @@ -6088,7 +6093,7 @@ - file: beacon-chain/core/blocks/payload.go search: func ProcessPayload( spec: | - + def process_execution_payload( state: BeaconState, body: BeaconBlockBody, execution_engine: ExecutionEngine ) -> None: @@ -6100,7 +6105,8 @@ assert payload.prev_randao == get_randao_mix(state, get_current_epoch(state)) # Verify timestamp assert payload.timestamp == compute_time_at_slot(state, state.slot) - # [Modified in Fulu:EIP7892] Verify commitments are under limit + # [Modified in Fulu:EIP7892] + # Verify commitments are under limit assert ( len(body.blob_kzg_commitments) <= get_blob_parameters(get_current_epoch(state)).max_blobs_per_block