Skip to content

Releases: ethereum/consensus-specs

Látigo Cepa

27 Oct 01:34
4c67744
Compare
Choose a tag to compare
Látigo Cepa Pre-release
Pre-release

v1.3.0-alpha.0 -- Látigo Cepa -- is an alpha release containing withdrawal tests.

PR showing full diff can be found here: #3055

R&D

Withdrawals (Capella)

  • Remove fully_withdrawn_epoch field from Validator #2998 #3029
  • Add validator_index to Withdrawal #3050

Sharding and 4844

  • Introduce bytes_to_bls_field helper #3015
  • Fix bit_reversal_permutation helper's comment #3017
  • Update ExecutionPayload with EIP-4844 fee market changes #3004
  • Fix the notes of P2P-interface and the typo of validator guide #3019
  • Fix type annotation #3021
  • Modify MIN_EPOCHS_FOR_BLOBS_SIDECARS_REQUESTS to 18 days #3047
  • EIP4844: couple beacon block and blob sidecar for p2p #3046

Testing, repo, etc

  • Add partial withdrawal balance tests #3010
  • Fix typos #3023 #3039
  • Bump dep packages version and fix lint issues #3018 #3060
  • Add some Capella sanity tests #3024
  • Remove work-in-progress notes in Bellatrix specs #3033
  • Add Capella test vectors #3040

Ailuropoda melanoleuca

22 Sep 17:56
f8ae982
Compare
Choose a tag to compare

v1.2.0 -- Ailuropoda melanoleuca -- is a semi-major release containing all production mainnet Bellatrix specifications.

Additionally, work continues on various R&D specifications such as Withdrawals and 4844.

PR showing full diff can be found here: #2999

R&D

Withdrawals

Sharding and 4844

  • Modify hash_to_bls_field logic #2981
  • Fixing EIP-4844 function names #3005

Testing, repo, etc

  • Extend fork_choice test format with on_payload_info #2965
  • Add optimistic sync tests #2982
  • Add test_process_deposit::test_key_validate_invalid #2989
  • Update BLS test format: output null for invalid case #3001

Green and Colorado

18 Aug 18:59
30b66a1
Compare
Choose a tag to compare
Green and Colorado Pre-release
Pre-release

v1.2.0-rc.3 -- Green and Colorado -- is a release candidate for Mainnet Bellatrix. This release contains additional important Bellatrix consensus test vectors.

Note: TERMINAL_TOTAL_DIFFICULTY was reassessed and confirmed on All Core Devs on 2022/8/18.

Note2: "Release candidate" (rc) distinction will be held on releases until after the mainnet Bellatrix upgrade. Once Mainnet runs the rule-set defined here a non-rc release will be made.

_PR showing full diff can be found here: #2977

Testing, repo, etc

  • Add tests of processing objects of N-2 fork version #2976

Rhone and Arve

16 Aug 15:18
a865bf6
Compare
Choose a tag to compare
Rhone and Arve Pre-release
Pre-release

v1.2.0-rc.2 -- Rhone and Arve -- is a release candidate for Mainnet Bellatrix. This release includes the Mainnet BELLATRIX_FOR_EPOCH as well as the tentative TERMINAL_TOTAL_DIFFICULTY. Additionally, it includes a small number of new Bellatrix tests as well as many R&D updates to withdrawals, light clients, and 4844/sharding.

Note: TERMINAL_TOTAL_DIFFICULTY assessed and potentially adjusted to better target Sept 15, 2022, please monitor for further refinement releases.

Note2: "Release candidate" (rc) distinction will be held on releases until after the mainnet Bellatrix upgrade. Once Mainnet runs the rule-set defined here a non-rc release will be made.

_PR showing full diff can be found here: #2970

Bellatrix

  • Merge mainnet ttd and bellatrix values #2969
  • Opti-sync: How to apply latestValidHash when payload is INVALID #2954
  • Opti-sync: Elaborate on why sync optimistically #2958
  • Opti-sync: extend optimistic node definition #2955

R&D

Light client

  • Allow light client to verify signatures at period boundary #2805
  • Remove fork_version from LightClientUpdate #2916
  • Allow LightClientUpdate with genesis finality #2924
  • Allow passing redundant next_sync_committee #2927
  • Root next_sync_committee in attested_header #2932
  • Add LightClientBootstrap #2935
  • Add functions for deriving light client data #2938
  • Add LightClient(Finality|Optimistic)Update #2944
  • Manually trigger LightClientStore force updates #2947
  • Describe light client sync process #2951
  • Define libp2p protocol for light client sync #280

Withdrawals

  • Partial withdrawals #2862
  • Fix Name Discrepancy (WITHDRAWAL_QUEUE_LIMIT) #2921

Sharding and 4844

  • EIP-4844: Remove shard field from BlobsSidecar #2914
  • Optimizing EIP-4844 block validation (using KZG proofs) #2915
  • Executable EIP-4844 specs #2937
  • WIP implementation of Danksharding #2792

Testing, repo, etc

  • Tidy up README.md specs list #2903
  • Include Bellatrix p2p interface specs into pyspec #2930
  • Add summary diagnostics to spec test gen #2926
  • More execution payload tests and cleanup old ones #2961
  • A few more bellatrix tests #2962

Bopsten

23 May 11:26
e43b1f7
Compare
Choose a tag to compare
Bopsten Pre-release
Pre-release

v1.2.0-rc.1 -- Bopsten -- is semi-major version release candidate as we move into upgrading the long-standing public testnets for the Merge. There will be no breaking changes between this release candidate and the final v1.2.0 release unless late, unexpected issues are found in the testnet upgrades.

Additionally, this release contains a few important Phase 0 (thus affecting all phases) fixes, deprecations, and clarifications. Please review these and ensure software releases contain these updates prior to mainnet Bellatrix.

PR showing full diff can be found here: #2896

Phase 0

Beacon chain

  • Add new DomainType for application usage with "internal" namespace #2884

Fork choice

  • Remove equivocating validators from fork choice consideration #2845
  • [Bugfix] Require fork choice to run before proposal #2878 #2897
  • Update PROPOSER_SCORE_BOOST to 40 percent #2895

Validator

  • Update 0x01 withdrawal credentials to balance update (no code exec) #2854

Networking

  • Ignore subset aggregates #2847
  • Ignore Aggregates Which Are Following the Wrong Finalized Checkpoint #2846
  • Deprecate BeaconBlocksByRange.step #2856

Bellatrix

Fork choice

  • Add safe_block_hash and set to Justified #2851 #2858 #2876
  • Update PROPOSER_SCORE_BOOST to 40 percent #2895

Optimistic sync

  • Optimistically import any post-merge block #2844
  • Remove justified block from optimistic candidate conditions #2881
  • Remove INVALID_TERMINAL_BLOCK #2891
  • Remove API restrictions for optimistic sync #2869

R&D

Light client

Withdrawals

  • A withdrawals push version #2836

Sharding and 4844

  • Add CL specs for Shard Blob Transactions #2850

Testing, repo, etc

  • Output attester_slashing data to fork choice test vectors #2849 #2877
  • Add invalid large withdrawable epoch test #2887
  • Ensure that the SSZ object classes are ordered when building #2837
  • Bump milagro bls binding version #2893
  • Misc, fixes, typos, etc #2870 #2872 #2889 #2899

Umbenennen

01 Mar 16:49
9f643d8
Compare
Choose a tag to compare

v1.1.10 -- Umbenennen -- is minor version release for the Kiln v2 testnet. The only change for Bellatrix is a minor renaming to match to the engine API / Execution-layer (#2835).

Additionally, this release includes some light client housekeeping as well as the loosening of a gossip condition from REJECT to IGNORE (#2830). Shout-out to @arnetheduck for ensuring we don't create network level deadlocks and partitions!

PR showing full diff can be found here: #2839

Bellatrix

  • [non-substantive] Rename random -> prev_randao #2835

Light client

Phase 0

  • IGNORE attestations voting for the wrong finalized checkpoint #2830
  • Revert removal of aggregate deduplication condition #2838

Semantic Dispute

28 Jan 16:33
7c9373b
Compare
Choose a tag to compare

v1.1.9 -- Semantic Dispute -- is minor version release accompanying a breaking change to the Engine API semantics along with some minor refactors and new tests.

Additionally, this is the first release containing a full Optimistic Sync spec.

🎉Huge shoutout to @paulhauner, @ajsutton, and @mkalinin for formalizing this relatively complex, yet critical, piece of the Merge🎉

PR showing full diff can be found here: #2815

Bellatrix

  • [non-substantive] Rename receipt_root -> receipts_root #2808
  • Rename execute_payload to notify_new_payload #2817
  • Add Optimistic Sync spec #2770 #2820

Light client

  • Tidying light client specs #2798, #2797
  • Rename sync_committee_aggregate > sync_aggregate #2796

Testing, repo, etc

  • Extend Merge consensus tests #2787
  • Add randomized tests for bellatrix #2821
  • Extend SSZ test coverage #2790
  • Add CONFIG_NAME to configs #2784

Jingle Bellx

24 Dec 17:22
180855b
Compare
Choose a tag to compare

v1.1.8 -- Jingle Bellx -- is minor version release containing using the new code name -- Bellatrix -- as the next CL hard fork name. Plus, it adds some new Bellatrix fork test vectors.

PR showing full diff can be found here: #2778

Merge -> Bellatrix

All specs were modified with the new code name in #2774. The word "merge" is now mostly about the point of "merge transition".

It should be no substantive change in logic. Only the presets/configs renamings are as follows.

Beacon chain

  • Rename preset items
    • INACTIVITY_PENALTY_QUOTIENT_MERGE -> INACTIVITY_PENALTY_QUOTIENT_BELLATRIX
    • MIN_SLASHING_PENALTY_QUOTIENT_MERGE -> MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX
    • PROPORTIONAL_SLASHING_MULTIPLIER_MERGE -> PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX

Fork

  • Rename configuration items
    • MERGE_FORK_VERSION -> BELLATRIX_FORK_VERSION
    • MERGE_FORK_EPOCH -> BELLATRIX_FORK_EPOCH

Networking

  • Rename configuration items:
    • GOSSIP_MAX_SIZE_MERGE -> GOSSIP_MAX_SIZE_BELLATRIX
    • MAX_CHUNK_SIZE_MERGE -> MAX_CHUNK_SIZE_BELLATRIX

Testing, repo, etc

  • Enable Bellatrix fork tests in test generator (new test vectors): #2777
  • Set RNG seed in get_head tests: #2776

Gingerbread House

22 Dec 16:49
93c933c
Compare
Choose a tag to compare

v1.1.7 -- Gingerbread House -- is minor version release containing light-client sync protocol overhaul, fork choice rules fix, and new test vectors.

The light-client sync protocol was significantly simplified in #2746. This PR also changed the light client logic to track an "optimistic head". Note that it is still actively in development, and we will add more tests to cover more edge cases.

The fork choice rule proposer boost score calculation was fixed by correctly applying proposer score boost to ancestors of the boosted block (#2760). Thank @realbigsean for finding this issue! Also, we added some new fork choice rule ex-ante attack test cases (#2752).

This release should be non-substantive to the latest Kintsugi 🍵 except for the fork choice rule fixes.

PR showing full diff can be found here: #2771

Phase 0

Forkchoice

  • [bugfix] Fix proposer boost score calculation logic #2753 & #2760

Altair

Light-client sync protocol

  • Simplify sync protocol and update to calculate optimistic heads #2746

Merge

Forkchoice

  • Bring more clarity to notify_forkchoice_updated calls #2745

Client settings

  • Remove specs/merge/client-settings.md #2741

Sharding

  • [bugfix] Fix PRIMITIVE_ROOT_OF_UNITY constant value #2754

Testing, repo, etc

  • Re-enable dropped ssz test generators (new test vectors) #2740
  • Update per-test config to be unique per-test in spec_configured_state_test #2765
  • Add ex-ante fork choice test cases #2752

Āina-kāri

24 Nov 00:11
c81c27e
Compare
Choose a tag to compare

v1.1.6 -- Āina-kāri -- is minor version release containing critical upgrades to the fork choice and a minor iteration on the Kintsugi🍵 Merge specs.

The critical fork choice upgrades include a finalization atomicity bugfix (#2727) which can only be exploited with >1/3 slashing and the long-awaited proposer score boosting (#2730) which patches up LMD-GHOST liveness issues.

For proposer score boosting, a PROPOSER_SCORE_BOOST value of 70% is currently specified. A final tuning of this parameter might result in a +/- 10% modification in a subsequent release. We recommend building this feature immediately and begin deploying to testnets with the 70% value. If there is a change in this value, it will be known by the end of 2022 and well before the Merge.

The finalization atomicity bugfix (#2727) includes a flag for importing attestations included in blocks into the forkchoice regardless of attestation epoch and current time. The use of this flag and attestation import epoch restrictions are both under consideration. There is a chance minor details around this logic change in the coming weeks, but the core of the atomicity bugfix (and simplification) is not expected to see any change.

📣Massive shout-out to Nusret Taş, Joachim Neu, and David Tse of Stanford's Tse Lab for their invaluable work in not only identifying but remedying issues found in the forkchoice📣

PR showing full diff can be found here: #2733

Phase 0

Forkchoice

  • [bugfix] Always atomically update justified and finalized in store #2727
  • Proposer LMD Score Boosting #2730

Merge

Beacon chain

  • [non-substantive] Rename coinbase to fee_recipient #2728
  • [non-substantive] Rename is_merge_* to is_merge_transition_* #2738

Forkchoice

  • [non-substantive] Remove difficulty from PowBlock #2720

Validator

  • Add handling for exceptional genesis TTD case #2719
  • [bugfix] Fix get_pow_block_at_terminal_total_difficulty and add unit tests #2726

Testing, repo, etc

  • Extend Merge unit tests (#2723, #2737)
  • Add Merge spec coverage report targets #2721
  • Make Phase0 -> Altair fork transition tests compatible with Altair -> Merge #2706
  • Add consensus-layer test writing guide #2700