Skip to content

Releases: ethereum/consensus-specs

The Great Machine

27 Sep 22:14
67fd797
Compare
Choose a tag to compare

Release

v1.1.0 -- The Great Machine -- is the mainnet release of Altair specs, including the epoch chosen for the planned mainnet upgrade on Oct 27, 2021 (#2625). This marks the first major upgrade to the Great Machine since genesis in late 2020.

Merge interop specs remain stable from v1.1.0-beta.5 other than the addition of the terminal blockhash override (#2617) [not required for initial interop] and some new consensus tests (#2630). Due to the inclusion of additional consensus test vectors, we recommend targeting v1.1.0 tests prior to initial interop.

PR showing full diff can be found here: #2631

Altair

  • Add ALTAIR_FORK_EPOCH for mainnet configuration (#2625)

Merge

  • Add terminal block hash override (#2617)

Testing, repo, etc

  • Add a number of Merge tests (#2630)
  • Add merkle proof test generator (#2629)
  • Remove deprecated pip.main() call in setup.py (#2623)

KIC 9832227

24 Sep 21:46
91f5e56
Compare
Choose a tag to compare
KIC 9832227 Pre-release
Pre-release

Release

v1.1.0-beta.5 -- KIC 9832227 -- is a minor release in preparation for initial Merge interop 🏺. Although we still expect much refinement and testing of specifications in the coming months, Merge specs have matured so that client teams now have a stable target.

Huge shoutout to @mkalinin and the many other contributors that have worked so hard getting the Merge specs into clean place for the next wave of engineering 🙏

Altair specifications remain entirely stable and are slated for a mainnet release in the coming days.

PR showing full diff can be found here: #2624

Merge

  • Verify terminal PoW block after call to state_transition (#2595)
  • Add extra_data field to the execution payload (#2606)
  • [bugfix] Fix random validation (#2609)
  • Set the value of the random field to the previous slot randao_mix (#2581)
  • Hardcode terminal total difficulty (#2605)
  • Update execution engine calls to match EIP and engine API where possible (#2613)
  • Remove extraneous merge gossip validation conditions (#2621)

Sharding

  • Remove beacon_block_root field from ShardBlob (#2615)

Testing, repo, etc

The Chandrasekhar Limit

10 Sep 02:48
e558618
Compare
Choose a tag to compare
Pre-release

Release

v1.1.0-beta.4 -- The Chandrasekhar Limit -- is a minor release that focuses on expanded test coverage (again!), along with a couple of minor iterations on the Merge spec.

Warning: To facilitate the testing of the scaled validator churn limit while avoiding the use of a >300k validator set, minimal config has been altered to reduce the CHURN_LIMIT_QUOTIENT. To our knowledge, minimal is not currently used for any testnets so shouldn't cause much issue, but be careful to port the config update to your testing infrastructure.

PR showing full diff can be found here: #2592

Merge

  • [non-substantive] Change transition_td to terminal_td in the merge spec (#2575)
  • Add TTD override setting (#2587)

Testing, repo, etc

  • Tests
    • Improve performance of randomized block tests (#2572)
    • Fix test_invalid_signature_bad_domain (#2583)
    • Add back in dropped eth1 voting tests (#2584)
    • Fix testing helper process_and_sign_block_without_header_validations (#2579)
    • Add test cases to ensure coverage with exited validators (#2580)
    • Fix fork choice on_block tests and update test format (#2577)
    • Add rewards spec test with exit in current epoch (#2588)
    • Add churn tests for when churn limit scales with v-set size (#2586)
    • Add sync committee tests with exited and withdrawable members (#2591)
    • Fix sync agg test for mainnet (#2594)
  • Add timing information to spec test generation (#2571)
  • Fix merge_mods in test generators (#2578)
  • Allow spec tests author to batch tests under one handler name (#2576)
  • Create SECURITY.txt (#2574)

Moon Rock Market

26 Aug 13:09
9be1e12
Compare
Choose a tag to compare
Moon Rock Market Pre-release
Pre-release

Release

v1.1.0-beta.3 -- Moon Rock Market -- is a minor release that focuses on expanded Altair test coverage, along with major improvements and refinements to the Merge and Sharding specs.

Massive shout-out to @ralexstokes for creating a framework for massively increasing block transition test coverage (#2567) 🐳💪

The Merge has been rebased on both London (#2533) and Altair specifications (#2530), and is now equipped with a first iteration of the p2p spec (#2531). With these core elements in place, the consensus Merge specs are ready for their next wave of client development.

Sharding saw a major redesign in its data market through the separation of block producers and builders. This shifts the economic responsibility of network data availability into the hands of well-incentivized, specialized actors called "builders". This aids in the democratization of shard-data MEV, reduces the bandwidth of data-tx gossip, and eases networking assumptions/requirements for validators. Nice work on this @protolambda 🙌

PR showing full diff can be found here: #2561

P.S. This release also included the Great Renaming (#2555) so there is a lot of noise in the diff. Our apologies for the one-time inconvenience 🙏

Phase 0

  • Fix fork choice store checkpoint inconsistency issue (#2518)

Altair

  • Rename the eth2_* functions to eth_* (#2536)

Merge

  • Add base merge p2p spec (#2531)
  • Rebase Merge spec with London (#2533)
  • Change base_fee_per_gas type to Bytes32 (#2550)
  • Minor typos, renames, and formatting (#2564)

Sharding

  • Shard builder <> proposer separation (#2486)
  • Minor typos, renames, and formatting (#2540, #2563, #2565)

Testing, repo, etc

  • Great renaming (#2555, #2557)
  • Rework and add some on_block tests (#2487)
  • Refactor sync committee tests (#2554)
  • Extend randomized block tests to all phases (#2559)
  • Add tests for the Altair BLS helpers (#2539)
  • Add test for exited validators during inactivity leak (#2542)
  • Add broad-spectrum randomized block tests (#2568)
  • Fix test-gen skip counter (#2567)

Mach'acuay

23 Jul 15:54
05d3ec2
Compare
Choose a tag to compare
Mach'acuay Pre-release
Pre-release

Release

v1.1.0-beta.2 -- Mach'acuay -- is a minor iteration on beta.1 including a tightening of sync gossip validations (#2528) and some more tests for sync aggregate edge cases (#2523).

Additionally, Merge transition conditions were tightened up to reduce PoW attack surface (#2522) and the Merge core logic was rebased to Altair (#2530).

Great work on the Altair devnets to all the engineers! Shoutout to @parithosh for leading that effort 🙌

PR showing full diff can be found here: #2529

Altair

Networking

  • Require sync committee contributions to have at least one participant (#2528)

Merge

  • Enforce terminal PoW block to be on the cusp (#2522)
  • Rebase the Merge onto Altair base functionality (#2530)

Sharding

  • Simplify get_start_shard function (#2488)

Testing, repo, etc

  • Add tests for SyncAggregate with no participants and all zero signature (#2523)
  • Bump remerkleable to v0.1.22 [CI speedup!] (#2524)

Astrophotography

13 Jul 22:50
8270224
Compare
Choose a tag to compare
Astrophotography Pre-release
Pre-release

Release

v1.1.0-beta.1 -- Astrophotography -- marks the shift from Altair alpha to beta pre-releases. This follows the launch of the first devnet including all mainnet clients, a milestone that means all client teams have worked through the entirety of the Altair specs, provided technical feedback, and managed to interoperate.

Now that we have reached a beta release of Altair, there will be no more breaking changes made to Altair consensus specs unless critical security issues are found.

In addition to the symbolic beta release, this release greatly increases test coverage of Altair. Huge shout-out to @hwwhww and @ralexstokes on this front.

Finally, @mcdee did some analysis on the choice of 4 for target sync committee aggregators and showed that this number was insufficient for there to be a high probability of at least one aggregator per subnet per slot. This configuration value was bumped to 16. See #2514 for more details and analysis. (Note: this is the only substantive change within beta.1)

PR showing full diff can be found here: #2513

Altair

Networking

  • Set number of target sync committee aggregators to 16 (#2514)
  • [non-substantive] Rename a few instances of signature to message (#2509)

Testing, repo, etc

Only 9096

24 Jun 19:37
5567478
Compare
Choose a tag to compare
Only 9096 Pre-release
Pre-release

Release

v1.1.0-alpha.8 pre-release -- Only 9096 -- fixes a race condition in sync committee gossip identified by @ajsutton in early devnets. See #2491 for a more complete description of the issue and the fix.

In addition to this critical fix for Altair, there has been some continued refinement of The Merge and Sharding and a few additional consensus vectors added to the mix.

PR showing full diff can be found here: #2493

Altair

Networking

  • Eliminate sync committee message race condition (#2491)

R&D

  • Add randao to execution payload (#2479)
  • General merge cleanups (#2472)
  • Continued refinement of Sharding specs (#2482, #2483, #2484)

Testing, repo, etc

  • Add a few missing slashing tests (#2478)
  • Encode, decodem and randomize ssz Union types in test vector generation (#2497)

Blue Loop

08 Jun 20:17
34fc0a5
Compare
Choose a tag to compare
Blue Loop Pre-release
Pre-release

Release

v1.1.0-alpha.7 pre-release -- Blue Loop -- fixes an issue identified by @potuz that led to high variance in validator rewards due to the magnitude and structure of sync committee rewards. Additionally, it makes a number of non-substantive cleanups as well as a couple of small bug patches.

Both Merge and Sharding progress continue! The first full specification of the PoW -> PoS transition process is contained in this release (#2462), and there is plenty of continued iteration and refinement of the R&D sharding specs.

PR showing full diff can be found here: #2468

Altair

Beacon chain

  • Modify sync committee logic and parameters to reduce variance (#2453)
  • [Non-substantive] Minor Altair cosmetic polishing (#2464)
  • [Non-substantive] Move BLS extensions to new file in Altair (#2438)
  • [Non-substantive] Sync Committee vs Aggregate naming consistencies (#2469)

Networking

  • Add clock disparity tolerance for sync subnets (#2451)
  • Add message.topic to gossipsub message-id in Altair (#2475)
  • Clarify p2p validation conditions for Altair sync committees (#2474)

Validator

  • [Bugfix] Add missing block_root in SyncCommitteeSignature (#2466)
  • [Non-substantive] Rename SyncCommitteeSignature to SyncCommitteeMessages (#2446)

R&D

  • Merge transition process with computed transition total difficulty (#2462)
  • Continued refinement of Sharding specs (#2449, #2436, #2455, #2452)

Simple Serialize

  • Reduce Union-type selector to 1 byte and other union type cleanups (#2445, #2456, #2458)

Testing, repo, etc

  • Fix bug in Altair transition tests with missing state root [already built into alpha.6 test vectors] (#2443)
  • Bump mypy to v0.812 (#2467)
  • Inactivity updates test generation, implement new participation flag updates testing [already built into alpha.6 vectors] (#2435)
  • Add some invariant checks to pyspec unit tests (#2444)

Protostellar Evolution

21 May 21:26
0347c52
Compare
Choose a tag to compare
Pre-release

Release

v1.1.0-alpha.6 pre-release -- Protostellar Evolution -- cleans up client configuration through the further separation of "constants", "presets", and "configuration" (#2390). This effort, spearheaded by @protolambda, will allow for stricter typing for better compile-time guarantees as well as simpler network configurations.

Additionally, we've added some more Altair test coverage (#2426) as well as the ResourceUnavailable error code for BlocksByRange requests (#2430).

PR showing full diff can be found here: #2431

Altair

Beacon chain

  • More Altair fork transition tests (#2426)

Phase 0

Networking

  • Add ResourceUnavailable error code with more guidance (#2430)

Testing, repo, etc

  • Seperation of Constant, Preset, and Configuration variables (#2390)

The Broken Star

18 May 22:31
4a27f85
Compare
Choose a tag to compare
The Broken Star Pre-release
Pre-release

Release

v1.1.0-alpha.5 pre-release -- The Broken Star -- fixes a critical error in the definition of PARTICIPATION_FLAG_WEIGHTS identified by @terencechain (#2419) during alpha.4 testing.

PR showing full diff can be found here: #2424

Altair

Beacon chain

  • [Bugfix] Fix head weight in PARTICIPATION_FLAG_WEIGHTS (#2419)

R&D