Skip to content

Releases: ethereum/consensus-specs

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

Delivery at Dawn

13 Mar 17:36
4afe398
Compare
Choose a tag to compare

v1.4.0 -- Delivery at Dawn -- is the mainnet release for the Deneb upgrade that went live on March 13, 2024.

PR showing full diff can be found here: #3621

Phase0

  • [non-substantive] Refactor with new constant UINT64_MAX_SQRT: #3608

Testing, repo, etc

Denebian Whale

15 Feb 19:29
2c0fcee
Compare
Choose a tag to compare
Denebian Whale Pre-release
Pre-release

v1.4.0-beta.7 -- Denebian Whale -- is a beta release for the coming Deneb upgrade.

This release sets the mainnet Deneb fork epoch (DENEB_FORK_EPOCH) value.

Note that to be cautious, we still use the beta pre-release to avoid any last-minute updates. We will bump to v1.4.0 right after the mainnet fork is activated.

PR showing full diff can be found here: #3598

Phase 0

Beacon chain

  • Handle integer_squareroot bound case #3600

Deneb

  • Schedule Deneb for Mainnet #3597

EIP-7594 (PeerDAS)

  • [Cryptography] Optimization: reduce len() calls in add_polynomialcoeff helper #3581
  • [Cryptography] Public methods must accept raw bytes #3579
  • [Cryptography] Initial refactor of recover_polynomial() #3591

Testing, repo, etc

  • Add py.typed file for mypy #3588 #3594
  • Add EIP-7514 higher-churn-limit-to-lower tests #3602

Psychrolutes marcidus

18 Jan 16:40
7402712
Compare
Choose a tag to compare
Psychrolutes marcidus Pre-release
Pre-release

v1.4.0-beta.6 -- Psychrolutes marcidus -- is a beta release for upcoming Deneb devnets.

This release adds new field g1_monomial to the trusted setup file. It can be found at the upstream. The latest sha256
checksum: f8e44a31ebf0a6d0734dcb301b0716e2c77f3ae18ed0cab0870fbcc2ca55616f

PR showing full diff can be found here: #3578

Phase 0

Fork choice

  • Confirmation rule prerequisite - fork choice filter change #3431

Networking

  • Align gossip validation for aggregates with single attestations #3552
  • Use fork choice to determine finalized_checkpoint in gossip validation #3543

Light client

  • Refactoring #3569, #3571
  • Rename _INDEX generalized index constants to _GINDEX #3537, #3563
  • Gossip additional LightClientFinalityUpdate on new supermajority #3549
  • Use types for representing LC Merkle branches #3563

SSZ

  • byte type and canonical JSON mapping #3506

Whisk

  • Add WHISK fork only tests #3442

EIP-7594 (WIP - still in its early stages)

  • EIP-7594: Add cryptography specs for sampling #3557, #3583

Testing, repo, etc

  • Pyspec refactoring #3562, #3567
  • Pyspec dockerization #3477, #3573
  • Consider fork transitions when using get_sync_aggregate #3572
  • Add guard when fill_prev_epoch is True in epoch 0 by #3570
  • Add transition test case of non-empty pre-state historical_roots #3585

Serve It Up

04 Dec 18:33
ffa95b7
Compare
Choose a tag to compare
Serve It Up Pre-release
Pre-release

v1.4.0-beta.5 -- Serve It Up -- is a beta release for upcoming Deneb devnets.

#3551 clarifies when a client can be unblocked on serving beacon blocks and blob side cars. Although this will help clients conform to a more optimal behaviour, it is not a breaking change (v1.4.0-beta.4 can be transparently swapped and interop with v1.4.0-beta.5).

_PR showing full diff can be found here: #3554

Phase 0

  • Clarify when clients can serve blocks in byRoot RPC methods #3551

Deneb

  • Clarify when clients can serve blocks and sidecars in byRoot RPC methods #3551
  • [non-substantive] Remove unused DOMAIN_BLOB_SIDECAR #3542
  • [non-substantive] Remove SignedBlobSidecar refs from p2p spec #3541
  • [non-substantive] Move blob_sidecar_{subnet_id} to "Blob subnets" section #3556

Testing, repo, etc

  • Fix FC tests by removing extra tick #3548
  • Ensure on_tick precondition time >= store.time in fork-choice tests #3550
  • Add randomized block blob_kzg_commitment_merkle_proof cases #3555

Prove It

02 Nov 19:55
4de1d15
Compare
Choose a tag to compare
Prove It Pre-release
Pre-release

v1.4.0-beta.4 -- Prove It -- is a beta release for upcoming Deneb devnets. Note, this contains a substantial breaking change to how Blobs are sent around on the p2p (#3531, #3540) and is expected to delay the next devnet(s) by a few weeks as clients incorporate (largely simplifying!) changes.

Shout-out to @terencechain and @potuz for re-opening the conversation about how Blobs are sent around on the p2p and massive shout-out 🙏 to @fradamt for suggesting the utilization of BeaconBlockHeaders and merkle proofs to allay the ongoing concerns.

_PR showing full diff can be found here: #3536

Phase 0

  • Allow honest validators to reorg late blocks #3034

Deneb

  • Reject blobs which reference already finalized parent blocks #3529
  • Add blob sidecar inclusion proof and other relevant p2p changes #3531 #3540
  • Suggest sidecars by root callers verify blob sidecars #3535
  • [non-substantive Clarify not to invalidate valid and available (wrt blobs) blocks #3526
  • [non-substantive] Update block production description in validator doc to more precisely reflect the latest flow #3533
  • [non-substantive] Remove BLOB_TX_TYPE from spec (and move to tests) #3534

The Summoning

18 Oct 17:20
820f62d
Compare
Choose a tag to compare
The Summoning Pre-release
Pre-release

v1.4.0-beta.3 -- The Summoning -- is a beta release for the upcoming Deneb devnet-10 and potentially beyond.

Shout-out to @tbenr for identifying a critical blob gossip condition late in the game! 🙌

PR showing full diff can be found here: #3523

Deneb

EIP-4844

  • Change minimal preset FIELD_ELEMENTS_PER_BLOB to 4096 and use the mainnet KZG ceremony trusted setup output #3521
  • Add new gossip rule to REJECT sidecars with index >= MAX_BLOBS_PER_BLOCK #3525

Experimental R&D

Whisk

  • Use add_validator_to_registry in whisk #3486

Testing, repo, etc

Flow Control Valve

18 Sep 17:32
ff9963f
Compare
Choose a tag to compare
Flow Control Valve Pre-release
Pre-release

v1.4.0-beta.2 -- -- is a beta release for the upcoming Deneb devnet-9 and potentially beyond. It introduces EIP-7514, which applies the maximum activation churn limit. Additionally, it adds a fork-choice rule proposer boost adjustment.

Special thanks to @wenceslas-sanchez for making contributions via the EPF program.

PR showing full diff can be found here: #3504

Phase0

  • [Fork choice] Apply proposer boost to the first block in case of equivocation #3352

Deneb

EIP-7514

Experimental R&D

Whisk

  • Move non-preset values to config #3482 #3485
  • Do not mutate candidates during cooldown #3483
  • Pin curdleproofs package dependency to v0.1.1 #3495

Testing, repo, etc

  • [New test vectors] Add Deneb fork choice tests #3463
  • [Test vectors paths update] Rename BLS/KZG suite name #3484
  • Fix redundant SSZ generic tests #3468
  • Fix test generator multiprocessing mode bug #3473
  • Fix verify_blob_kzg_proof_batch test format description #3471
  • Remove old warnings for in-development specs #3494
  • Typo fixes: #3476 #3503
  • Fix link to libp2p Yamux specification #3493

Sagittarius A*'s Superhot Bizarre Gaseous Globule

31 Jul 15:40
4149133
Compare
Choose a tag to compare

v1.4.0-beta.1 -- Sagittarius A*'s Superhot Bizarre Gaseous Globule -- is a beta release for the upcoming Deneb devnet-8 and potentially beyond. Deneb is stable other than the "data gas" -> "blob gas" renaming (#3461).

Additionally, a number of additional Deneb tests have been added (#3459, #3457, #3464), some small iterations made in R&D EIPs, and a handful of build/CI refactors.

PR showing full diff can be found here: #3465

Deneb

  • EIP-4844
    • Add test cases to execution payload processing #3459
    • More deneb 4844 tests #3457
    • Rename "data gas" to "blob gas" #3461
  • EIP-7045
    • Fix and reward fork transition test #3464

Experimental R&D

  • EIP-7002: Execution layer triggerable exits #3349
  • WHISK: Fix some nits in whisk spec #3452
  • EIP-6914: Update the equivocating indices in the fork-choice store #3446

Testing, repo, etc

  • Auto manage SpecBuilder prev fork inheritance #3436
  • Refactor setup.py #3393
  • Upgrade wheel, pip, and setuptools with make install_test #3443
  • Add --fork-list arg to testgen #3456