Skip to content

Releases: ethereum/consensus-specs

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

Chanoyu

08 Nov 15:26
58b291b
Compare
Choose a tag to compare

v1.1.5 -- Chanoyu -- is minor version release containing no substantive changes to mainnet released Phase 0 and Altair specs. Instead this is a minor iteration on the Kintsugi๐Ÿต Merge specs.

PR showing full diff can be found here: #2717

Merge

Forkchoice

  • [minor fix] validate_merge_block uses correct block hash (#2710)

Validator

  • Add payload id as a return value to notify_forkchoice_updated (#2711)
  • [minor fix] Fixes TBH activation epoch check (#2712)

Testing, repo, etc

  • Refine validate_merge_block unit tests (#2713)

Mushin

02 Nov 18:05
e45d016
Compare
Choose a tag to compare

v1.1.4 -- Mushin -- is minor version release containing no substantive changes to mainnet released Phase 0 and Altair specs. Instead this is an iterative (and breaking) release of Merge specs.

v1.1.4 serves as the stable target for the Kintsugi๐Ÿต Merge development sprint in November 2021.

Warning: Additional minor releases might be made throughout if/when issues are discovered during the sprint.

PR showing full diff can be found here: #2705

Merge

Beacon chain

  • Add TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH (#2682, #2707)
  • Remove Union from ExecutionPayload transaction type (#2684)
  • Fix gossip and tx size limits for the merge (#2686)
  • Update penalty params for Merge (#2698)
  • Remove gas validations from CL (#2699)

Forkchoice

  • Clarify call to pre-finalized notify_forkchoice_updated (#2681)
  • Clarify get_pow_block block-not-found case (#2676)

Validator

  • Remove prepare_payload (#2683)
  • State that validator must consider only fully validated blocks (#2703)
  • Update pow_chain to dict and reuse it instead of calling get_pow_block (#2694)

Networking

  • Remove extraneous Merge p2p condition (#2687)
  • Fix gossip and tx size limits for the merge (#2686)

Testing, repo, etc

  • Update remerkleable to v0.1.24 (#2674)
  • Run pytest with specific forks/phases and parallelize CI (#2678, #2679, #2688)
  • Set execution params to presets (#2702)

Protect Poutu-te-rangi

15 Oct 17:11
0eb3a86
Compare
Choose a tag to compare

Release

v1.1.3 -- Protect Poutu-te-rangi -- is minor version with additional critical Altair test vectors but with zero substantive changes to the Altair specification.

๐Ÿ™Œ Huge shoutout to @potuz for identifying a series of critical Altair fork transition tests that were missing in the consensus vectors ๐Ÿ™Œ

All clients should run these test vectors immediately!

Additionally, there is iterative progress on Merge specifications. For current Merge interop, please continue to target v1.1.2. We'll batch Merge changes at the end of the month for a new interop target.

PR showing full diff can be found here: #2670

Merge

  • Remove notify_consensus_validated (#2660)
  • Specify format for --terminal-total-difficulty (#2645)
  • base_fee_per_gas to uint256 (#2661)

Testing, repo, etc

  • Add new Altair transition tests (#2664)

Astraios

08 Oct 06:51
6ef79b1
Compare
Choose a tag to compare

Release

v1.1.2 -- Astraios -- is minor version release that fixes some of the Altair and Merge test generators. All core specifications remain stable, but due to the additional Altair test vectors, it is critical that clients build and run these additional tests as soon as possible.

PR showing full diff can be found here: #2654

Testing, repo, etc

  • Fix test generator duplicate key issue (#2651)
  • Better error logging (#2648)

Is it an Ocean or a Sea?

04 Oct 11:10
ceb17a7
Compare
Choose a tag to compare

Release

v1.1.1 -- Is it an Ocean or a Sea? -- is minor version release focused on a couple of critical fixes to Merge interop specs (#2634, #2640).

Additionally, beacon state initialization for pure Altair testnets is modified with a minor fix. This does not affect Mainnet or any current testnet instantiations.

PR showing full diff can be found here: #2641

Altair

  • Fix initialize_beacon_state_from_eth1 previous_version (#2634)

Merge

  • Fix initialize_beacon_state_from_eth1 previous_version (#2634)
  • initialize_beacon_state_from_eth1 for pre-transition merge #2640

Testing, repo, etc

  • Run tests against future forks by default (#2635)
  • Minor typos, links, etc fixes (#2632, #2633, #2638)