Skip to content

Releases: ethereum/consensus-specs

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

Consensus Specs: Tim's Vision

23 Jun 14:35
0d4aef4
Compare
Choose a tag to compare
Pre-release

v1.4.0-beta.0 -- Consensus Specs: Tim's Vision -- is the first beta release for the upcoming Deneb upgrade. The move from alpha to beta signifies that Deneb is considered to be feature complete and not intended to change substantively from here. That said, there may still be minor patches, configuration changes, bug fixes, and (unlikely, but possible) feature removals.

EIP 4788, 7044, and 7045 are added to the Deneb build in this release. It is expected that devnets will shift to being fully featured (rather than just 4844) in the coming weeks.

PR showing full diff can be found here: #3437

Phase 0

  • [non-substantive] Add add_validator_to_registry function to modularize for future upgrades #3311

Deneb

  • EIP-7044: Lock voluntary exit domain on capella #3288
  • EIP-7045: Increase max attestation inclusion slot #3360
  • EIP-4788: Expose parent beacon block root in EL #3421

Experimental R&D

Whisk

Testing, repo, etc

  • Lock doctoc version #3429
  • Remove manual workflow branch input #3439