Releases: ethereum/consensus-specs
KIC 9832227
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 slotrandao_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 fromShardBlob
(#2615)
Testing, repo, etc
The Chandrasekhar Limit
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
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 toeth_*
(#2536)
Merge
- Add base merge p2p spec (#2531)
- Rebase Merge spec with London (#2533)
- Change
base_fee_per_gas
type toBytes32
(#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
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
Astrophotography
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
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
Blue Loop
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 gossipsubmessage-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
toSyncCommitteeMessages
(#2446)
R&D
- Merge transition process with computed transition total difficulty (#2462)
- Continued refinement of Sharding specs (#2449, #2436, #2455, #2452)
Simple Serialize
Testing, repo, etc
- Fix bug in Altair transition tests with missing state root [already built into alpha.6 test vectors] (#2443)
- Bump
mypy
tov0.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
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
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
Alpha Aquilae
Release
v1.1.0-alpha.4
pre-release enhances a few features and cleans up a number of issues identified since alpha.3
while greatly expanding test coverage.
This is expected to be the final pre-release before a spec freeze in one week. To that end, there was much deep review and enhanced testing. This should be the last, large Altair release diff.
Make sure you note the new fork transition spec test type (#2363) that tests a series of block transitions across the fork boundary. Shoutout to @ralexstokes for putting that together!
On the R&D front, much refinement continues in the Merge and Sharding specs. Merge is increasingly stable and tested with a few known items left to tackle, while the Sharding spec is still in heavy refinement (thanks to all the sharding implementers for the many spec fixes and enhancements!).
PR showing full diff can be found here: #2410
Altair
Beacon chain
- Use
ALTAIR_FORK_EPOCH
instead ofALTAIR_FORK_SLOT
(#2342) - Provide function for starting cleanly from
Altair
specification (#2323) - Altair comments and minor logic cleanups (#2374)
- Remove sync committee aggregates list in favor if a single aggregate (#2370)
- Adjust sync committee size and duration (#2371)
- [Bugfix] Use stable sync committee indices when processing block rewards (#2394)
- Clarify fork upgrade conditions for Altair (#2404)
- Restrict sync committee period calculation boundaries (#2406)
- Participation flag and incentive review (#2399)
- Update inactivity penalty deltas processing (#2395)
- Ensure indices are ordered [source, target, head] everywhere (#2411)
- Map attestation participation to flag deltas in fork transition (#2373, #2408)
- Enhanced Altair testing (#2334, #2363)
Validator
- Adjust subnet count to reflect smaller sync committees (#2376)
- Add logic for handling sync committee assignment off by one issue (#2400)
- Update validator guide with restricted sync committee computation (#2407)
- Return non-duplicated sync committee subnets (#2409)
Network
- Respect subcommittees in gossip validations for Altair (#2329)
- Add
syncnets
data to AltairMetaData
(#2352) - Minor naming cleanup (#2362)
- Add logic for handling sync committee assignment off by one issue (#2400)
BlocksByRange
under weak subjectivity (#2131)- Remove
ResourceUnavailable
error code for more discussion (#2413)
Sync Protocol
- Updates to Altair light client sync protocol (#2378)
R&D
- Continued refinement of Merge specs (#2336, #2398, #2385)
- Continued refinement of Sharding specs (#2339, #2348, #2350, #2351, #2356, #2358, #2359, #2361, #2367, #2384, #2396, #2386, #2368)
- Add Merge test vectors (#2341, #2380)