Skip to content

Releases: ethereum/consensus-specs

Ampharos

22 Nov 22:16
e262b34
Compare
Choose a tag to compare
Ampharos Pre-release
Pre-release

v1.5.0-alpha.9 -- Ampharos -- is the alpha release for the coming Electra upgrade.

PR showing full diff can be found here: #3982

Bellatrix

  • Synchronously check all transactions to have non-zero length #3885

Electra

  • Separate type for unaggregated network attestations #3900
  • Update validator spec to handle execution requests #3976
  • Fix validator fields in get_validator_from_deposit #3978
  • Fix withdrawals bug and add more tests #3979
  • Rename index vars in get_attesting_indices #3996
  • Exclude empty requests in requests list #3998
  • Add missed exit checks to consolidation processing #4000
  • Ensure non-zero bits for each committee bitfield comprising an aggregate #4002

EIP-7594 (PeerDAS)

  • Rebase eip7594 onto Electra #3893
  • Specify data column sidecar verification functions to run #3963
  • Add MAX_BLOBS_PER_BLOCK_EIP7594 and corresponding configs #4008

Networking

  • Deprecate TTFB, RESP_TIMEOUT, introduce rate limiting recommendations #3767

Testing, repo, etc

  • Encode zero-length hex-strings with quotes #3754
  • Avoid generating empty transactions in tests #3884
  • Fix blob transaction serialization to use RLP #3904
  • Move deposit contract rules to its own Makefile #3940
  • Add new check_mods function for generators #3970
  • In README, move outdated specs to new section #3973
  • Fix invalid file references in markdown files #3975
  • Add misc beacon chain operations tests #3980
  • Add more epoch processing tests #3984
  • Add gen-modcheck CI check #3986
  • Add more transition tests #3990
  • Fix all pytest warnings #3989
  • Upgrade pylint & split config files #3991
  • Add test to check that pending deposits are sorted at fork #3995

Voltorb

08 Oct 23:28
c1e509b
Compare
Choose a tag to compare
Voltorb Pre-release
Pre-release

v1.5.0-alpha.8 -- Voltorb -- is the alpha release for the coming Electra upgrade.

PR showing full diff can be found here: #3965

Electra

  • Move execution_requests after parent_beacon_block_root #3967
  • Pass execution_requests to Engine API as a list of bytes #3969

Testing, repo, etc

  • Move yield pre-state after pre-state setup #3960
  • Add Electra test_process_withdrawals path to testgen #3966

Zeraora

04 Oct 20:24
30ecf2c
Compare
Choose a tag to compare
Zeraora Pre-release
Pre-release

v1.5.0-alpha.7 -- Zeraora -- is the alpha release for the coming Electra upgrade.

PR showing full diff can be found here: #3954

Deneb

  • Use bls.Scalar as the base class for BLSFieldElement #3907

Electra

  • Add a note on attester_slashing topic modification #3941
  • Use get_max_effective_balance in process_effective_balance_updates #3948
  • Fix partial withdrawals count bug #3943
  • Remove get_active_balance #3949
  • Remove queue_entire_balance_and_reset_validator #3951
  • Switch to compounding when consolidating with source==target #3918
  • Queue deposit requests and apply them during epoch processing #3818

EIP-7594 (PeerDAS)

  • Reject invalid DataColumnSidecar for zero blobs #3953

Testing, repo, etc

  • Fix merkle multiproof documentation #3928
  • Improve check_toc rule in Makefile #3937
  • Replace links to eth2.0-specs with consensus-specs #3934
  • Add test vector generation badge to readme #3933
  • Simplify output from make pyspec #3938
  • Fix Electra sanity testgen for blocks #3939
  • Fix insufficient effective balance test and add a balance test #3947
  • Add a negative test for full exit has partial withdrawal #3946
  • Add a negative test for inactive validator for withdrawal request #3945

Mareep

19 Sep 21:27
cb03c85
Compare
Choose a tag to compare
Mareep Pre-release
Pre-release

v1.5.0-alpha.6 -- Mareep -- is the alpha release for the coming Electra upgrade.

PR showing full diff can be found here: #3920

Altair

  • Simplify is_better_update condition #3816

Electra

  • Update correlation penalty computation #3882
  • Move requests out of execution_payload into beacon_block.body #3875
  • Remove stale comment on latest_execution_payload_header #3929
  • Remove unnecessary signing domain for consolidations #3915
  • Minor fixes on Electra spec and test helper #3914
  • Simplify name of helper get_validator_max_effective_balance #3909
  • Harmonize process_withdrawals spec with 3761 #3905

EIP-7594 (PeerDAS)

  • Use explicit csc integer size #3897
  • Change csc types to back to uint64 #3908
  • Delete g2_lincomb in poly-commits-sampling spec #3913

EIP-7732 (ePBS)

  • Fix some typos #3902
  • Modify ExecutionPayloadEnvelopeByRoot #3890
  • Refactor beacon chain state transition function #3898
  • Require the builder is active and non-slashed #3888

Testing, repo, etc

  • Update python to 3.12.4 #3880
  • Fix the install_pyspec_test CI check #3894
  • Fix test vector generators to work with Python 3.12 #3927
  • Add cronjob for test vector generation #3922
  • Update README and dependencies #3879
  • Randomize validator index in partial withdrawal test #3892
  • Get rid of compute_state_by_epoch_processing_to #3878
  • Ensure EL block hash is updated when beacon parent root is overridden #3881
  • Fix yield statement in test_get_custody_columns #3931

Pincurchin

21 Aug 07:33
01aab85
Compare
Choose a tag to compare
Pincurchin Pre-release
Pre-release

v1.5.0-alpha.5 -- Pincurchin -- is the alpha release for the coming Electra upgrade.

This is the spec target for peerdas-devnet-2.

PR showing full diff can be found here: #3889

Bellatrix and Capella fork choice

  • [non-substantive] Minor refactoring by removing redundant copy() #3877

Experimental

EIP-7594 (PeerDAS)

DAS Core
  • Disable peer sampling & add minimal fork choice #3870 #3883
  • [non-substantive] Remove matrix specific configuration value #3887

Tynamo

09 Aug 08:16
f4e3908
Compare
Choose a tag to compare
Tynamo Pre-release
Pre-release

v1.5.0-alpha.4 -- Tynamo -- is the alpha release for the coming Electra upgrade.

This release includes an Electra bugfix (#3868).

PR showing full diff can be found here: #3853

SSZ

  • Fix spec error in get_generalized_index function #3838

Safe block

  • Rename get_safe_execution_payload_hash -> *_block_hash #3595

Capella

  • [non-substantive] Make process_withdrawals slightly cleaner (equivalent functionality) #3761

Deneb

  • [non-substantive] Make MAX_BLOBS_PER_BLOCK a config parameter #3817

Electra

  • Fix off-by-one in process_pending_consolidations #3868

Light client

  • Update light client specifications for Electra #3811

Experimental

EIP-7594 (PeerDAS)

DAS Core
  • Clarify reconstruction and cross-seeding #3794
  • Clarify PeerDAS sampling #3782
  • Update get_data_column_sidecars to take cells/proofs #3836
Cryptography
  • Remove proof parameter from recover_cells_and_kzg_proofs #3819
  • Use "universal verification equation" in verify_cell_kzg_proof_batch #3812
  • In batch cell verification, check if there are zero cells #3835
  • In batch cell verification, take commitment for each cell #3834
  • Remove verify_cell_kzg_proof (non-batch) #3830
  • Rename column_index to cell_index in KZG spec by #3841
  • Replace recover_data with recover_polynomialcoeff #3820
  • Improve documentation in recovery code #3858
Networking
  • Add MetadataV3 with custody_subnet_count #3821

[new] EIP-7732 (Enshrined Proposer-Builder Separation, ePBS)

Testing, repo, etc

  • Bump remerkleable to v0.1.28 #3807
  • Add Electra merkle proof test vectors #3763
  • Fix typing issue when 10e10 is interpreted as float #3810
  • Update test_incorrect_not_enough_consolidation_churn_available and add assertions to test cases #3814
  • Add more Electra fork tests #3764
  • Proofread #3822 #3823 #3826 #3837 #3849 #3863 3873
  • Fix EL block hash computation for Deneb #3829
  • Fix indentation for some kzg_7594 tests #3855
  • For pytest, replace NUMBER_OF_CORES with auto #3846
  • Remove compute_cells test format #3860
  • Update test formats #3860 #3848

Twiga

14 Jun 17:09
389b2dd
Compare
Choose a tag to compare
Twiga Pre-release
Pre-release

v1.5.0-alpha.3 -- Twiga -- is the alpha release for the coming Electra upgrade.

It is the spec target of pectra-devnet-1.

PR showing full diff can be found here: #3786

Electra

  • Add Electra version of AggregateAndProof #3759
  • Properly calculate proposer probabilities #3769
  • EL-triggered consolidations #3775
  • Handle top-ups to exiting/exited validators #3776
  • Rename DepositReceipt to DepositRequest #3757
  • Rename objects with prefix ExecutionLayerXXX #3791
  • Append new committee_bits field to end of Attestation #3768
  • Switch the rest of the spec to MAX_EFFECTIVE_BALANCE_ELECTRA #3783

Experimental

EIP-7594 (PeerDAS)

DAS Core
  • Add custody settings config #3766
  • recover_cells_and_kzg_proofs & matrix refactor #3788
  • Update ENR record #3772
Cryptography
  • Add a missing check and a missing test vector for recover_all_cells #3765
  • Fix shift_polynomialcoeff #3792
  • Have a section listing Public Methods #3795
  • Rename CellID to CellIndex #3797
  • Remove compute_cells method #3796
  • Refactor cell recovery code by #3781 #3806
Networking
  • Provide max size for columns by range request #3760

[new] EIP-6800 (Verkle/Verge)

  • The Verge CL Specs #3230

Testing, repo, etc

  • Change duplicate cell id test to use 65 cell ids #3758
  • Fix typo #3771 #3773 #3801 #3805
  • Refactor #3774
  • Fix scripts/build_run_docker_tests.sh #3790
  • Adds CI to generate test vectors #3793
  • Update compute_el_header_block_hash for EIP-7685 #3778
  • Extend Tests for FFT and Coset FFT #3804

Electivire

07 May 17:43
2c1f677
Compare
Choose a tag to compare
Electivire Pre-release
Pre-release

v1.5.0-alpha.2 -- Electivire -- is the alpha release for the coming Electra upgrade.

It is the spec target of pectra-devnet-0, with bug fixes on test cases.

It also includes some essential EIP-7594 fixes for initial interop.

PR showing full diff can be found here: #3749

Phase0

  • [non-substantive] Fix typo on CommitteeIndex in p2p spec #3756

Electra

  • [non-substantive] EIP-7549: Fix typo in get_committee_indices #3740

Experimental

EIP-7594 (PeerDAS)

DAS Core
  • Fix get_custody_columns #3748
Cryptography
Networking
  • Pad column indices when calling verify_cell_kzg_proof_batch #3745
  • Add DataColumnSidecarsByRange v1 Req/Resp #3750

Testing, repo, etc

  • Remove test_consolidation.py since they are not valid test vectors #3736
  • Add decorator to all "invalid" test cases #3741
  • Add .copy() where needed in tests #3743
  • Fix rng of tests #3731
  • Github Action runner overhaul #3751

Electabuzz

27 Apr 08:44
c254443
Compare
Choose a tag to compare
Electabuzz Pre-release
Pre-release

v1.5.0-alpha.1 -- Electabuzz -- is the alpha release for the coming Electra upgrade.

It is the spec target of pectra-devnet-0, with bug fixes on test cases and new fork tests.

It also includes the new EIP-7594 (PeerDAS) tests with new test formats for general/eip7594/kzg and {mainnet, minimal}/eip7594/networking/get_custody_columns.

PR showing full diff can be found here: #3725

Electra

  • [non-substantive] Refactor upgrade_to_electra() in #3711
  • [non-substantive] Minor comment on ExecutionLayerWithdrawalRequest #3707

Experimental

EIP7594 (PeerDAS)

DAS Core
  • Make get_custody_columns return sorted values and add get_custody_columns #3715
  • Fix EIP7594_FORK_VERSION test #3730
Cryptography

Shout out to @kevaundray, @jtraglia, and @asn-d6!

  • Rename CELLS_PER_BLOB to CELLS_PER_EXT_BLOB #3694
  • Change g2_lincomb to take in G2Point #3692
  • Fix and elaborates on comments #3695
  • For compute_kzg_proof_multi remove remainder polynomial when in monomial form #3696
  • Change recover_polynomial to recover_all_cells #3702
  • Remove extra return value in construct_vanishing_polynomial #3704
  • Add more description for the kzg verify algorithm by #3703
  • Add a new config MAX_EXTENDED_MATRIX_SIZE #3708
  • Add BLS_MODULUS to places where the result of a subtraction can be negative #3709
  • Integrate new CosetEvals type by #3701
  • Use CELLS_PER_EXT_BLOB to compute the number of columns #3710
  • Make List Copy explicit in divide_polynomialcoeff #3706
  • Add asserts for public functions #3684
  • Use py-arkworks's multi-exp method inside of g1_lincomb and g2_lincomb #3714
  • Replace "proofs" with "kzg_proofs" in function names #3727
  • Fix bls.multi_exp when using py_ecc #3730

Testing, repo, etc

  • Fix and move test_multiple_consolidations_* tests to sanity block tests #3724
  • Fix consolidation test_invalid_*_signature tests #3728
  • Add Electra fork tests #3720
  • Add EIP-7594 to TESTGEN_FORKS #3721
  • Add kzg_7594 test formats #3718
  • Add initial version of kzg_7594 test generator #3693
  • Rename formats/kzg to formats/kzg_4844 #3716
  • Fix test_effective_balance_hysteresis_with_compounding_credentials test #3730
  • Enable EIP7594 merkle proof testgen and use bls.use_fastest() in default testgen #3732

Elekid

18 Apr 10:52
7bf43d1
Compare
Choose a tag to compare
Elekid Pre-release
Pre-release

v1.5.0-alpha.0 -- Elekid -- is the alpha release for the coming Electra upgrade.

Thank you all for helping with this baby Electra release! ๐Ÿฃ

PR showing full diff can be found here: #3675

Phase 0

  • [networking] Align seen_ttl with attestation lifetime #3627

Deneb

  • [non-substantive] Clarify voluntary_exits gossip topic after Capella #3651

Electra

Miscs

  • Update Electra config #3632
  • Init Electra (EIP6110 + EIP7002) #3615
  • Add EIP-7549 to Electra #3653
  • Track blob gas when upgrading to Electra #3665
  • Add EIP-7251 to Electra #3668
  • EIP-7002/7251: clarify pending partial withdrawals handling #3679

EIP-6110

  • Rename get_eth1_deposit_count function #3629

EIP-7002

  • Bugfix when processing execution layer exit request #3660
  • Some clean ups from merging EIP-7002 into Electra #3666

EIP-7251

  • Increase MAX_EFFECTIVE_BALANCE #3618
  • Fix bug in get_active_balance() #3637
  • Rename PartialWithdrawal field #3643
  • Use MIN_ACTIVATION_BALANCE instead of MAX_EFFECTIVE_BALANCE #3647
  • Remove extra queue_excess_active_balance call #3654
  • Fix EIP-7251 tests #3656
  • Rename get_churn_limit() for clarity #3676
  • Enforce Activation Rate Limit at Fork Transition #3659
  • Fix off-by-one in churn computations #3682

EIP-7549

  • Move committee index outside Attestation #3559
  • Clarify network vs on chain aggregation #3628
  • Flatten aggregate_bits #3631
  • Enable EIP-7549 on CI by #3640
  • Misc changes #3636 #3657
  • Fix has_sufficient_effective_balanc computation #3658
  • Clarify electra validator spec with EIP7549 #3669
  • Add AttesterSlashing to modified containers #3674

Experimental

EIP7594 (PeerDAS)

  • Check for degree overflow in multiply_polynomialcoeff() #3619
  • Add PeerDAS protocol #3574
  • Use FIELD_ELEMENTS_PER_EXT_BLOB in NUMBER_OF_COLUMNS #3662

Testing, repo, etc

  • Update single_merkle_proof.md test format docs #3635
  • Remove wip messages on shipped forks #3646
  • Typo fixes #3645
  • Add EIP7549 aggregation logic in testing tool #3649 #3680
  • Add EIP-7549 tests and Electra random tests #3670
  • Remove duplicate deposit processing tests #3678
  • Fix electra tests and enable testgen #3681
  • Fix broken exit tests due to change in the churn computation by #3690
  • Fix tests by #3691