Releases: ethereum/consensus-specs
Electabuzz
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 addget_custody_columns
#3715 - Fix
EIP7594_FORK_VERSION
test #3730
Cryptography
Shout out to @kevaundray, @jtraglia, and @asn-d6!
- Rename
CELLS_PER_BLOB
toCELLS_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
torecover_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
andg2_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
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 ofMAX_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
inNUMBER_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
Denebian Whale
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 inadd_polynomialcoeff
helper #3581 - [Cryptography] Public methods must accept raw bytes #3579
- [Cryptography] Initial refactor of
recover_polynomial()
#3591
Testing, repo, etc
Psychrolutes marcidus
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)
Testing, repo, etc
Serve It Up
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
Prove It
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
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
to4096
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
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 tov0.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
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
- 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