Releases: ethereum/consensus-specs
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)
Testing, Repo, etc
Beige Gorgon
Release
v1.1.0-alpha.3
pre-release cleans up some outstanding issues found in in alpha.2
.
Other than a number of minor fixes and cleanups (thank you for all of the feedback!), the primary change in this pre-release is the fixing of incentives to preserve the intended base_reward
invariant (#2266). Huge shout-out to @barnabemonnot for modeling the incentives and identifying a minor error in the specification.
PR showing full diff can be found here: #2306
Altair
Beacon chain
- Fix incentives to preserve intended
base_reward
invariant (#2276) - [non-substantive] Add missing signature domains to config files (#2266)
- [non-substantive] Simplify balance calculation in
process_sync_committee
(#2294) - [non-substantive] Set temporary
ALTAIR_FORK_SLOT
to max int value (#2287)
Validator
- Fix selection proof copy (#2299)
- [non-substantive] Fix incorrect use of block root (#2277)
- [non-substantive] Fix aggregation bit example (#2279)
Network
- [non-substantive] Optimize order of Altair gossip validation conditions (#2293)
R&D
- Core of Merge specs merged into
dev
(#2257, #2281) - Modularize sharding features: Sharding, Custody Game, and Data Availability Sampling (#2254)
- Update
ShardBlob
header structure to accommodate slashing (#2302)
Testing, Repo, etc
- Fix
test_filtered_block_tree
test generator (#2272)
Half of 'em just look like dots
Release
v1.1.0-alpha.2
is a small iteration on last week's alpha.1
.
This release fixes some issues in the test generators and makes some minor, non-substantive cleanups.
PR showing full diff can be found here: #2262
Phase 0
Beacon chain
Stable!
Note: process_justification_and_finalization
was refactored to utilize a weigh_justification_and_finalization
helper to facilitate cleaner spec writing in subsequent phases (#2258)
Altair
Beacon chain
- Utilize
weigh_justification_and_finalization
to reduce code duplication (#2258) - Rename in-state sync sub-committee to avoid name collision with aggregation sub-committees (#2255)
Validator
Ensure Altair validator guide is executable (#2256)
Testing, Repo, etc
Stargazer
Release
v1.1.0-alpha.1
is the first pre-release for the upcoming Altair
upgrade.
Although all core features are in place, we expect some iteration as client teams begin to implement.
PR showing full diff can be found here: #2230
Phase 0
Beacon chain
Stable with respect to features!
Note: process_final_updates
was removed and replaced with sub-functions mapping to the different components of prior functionality. This non-substantive change facilitates cleaner spec writing in subsequent phases.
Networking
Stable other than one minor gossip validation added -- require gossip blocks to have a higher slot than their parent (#2196).
Weak subjectivity
Updated with extended weak subjectivity period calculations and sample values.
Altair
Beacon chain
All features for Altair upgrade in place. Features include:
- Sync committees to support light clients
- Incentive accounting reform to reduce spec complexity
- Modified attestation rewards to increase incentive compatibility
- Per validator inactivity leak
- Penalty parameter updates toward maximally punitive parameters
Note: No major additions nor subtractions to this feature-set are expected unless unless unexpected security or engineering issues are uncovered. That said, minor adjustments based on engineering feedback should be expected.
Fork
Provides a function for upgrading the Phase 0 BeaconState
to an Altair BeaconState
.
ALTAIR_FORK_SLOT
TBD.
Validator
Core Altair features in place, including:
- Including sync committee aggregates in beacon blocks
- Handling new validator sync committee assignments
Networking
Core Altair features in place, including:
- Upgraded
beacon_block
gossip topic for new Altair type - Added gossip topics and validations for sync committee messages
- Upgrade path for Req/Resp domain to handle cross-fork types
Note: Some of the particulars of the sync aggregation protocol might still be refined before the main release of v1.1.0
specs.
Sync protocol
Describes a minimal version of the light client sync protocol that leverages the new Altair sync committees.
This protocol is illustrative of how to build light clients using this new feature, but this should not be considered exhaustive with respect to viable designs.
Phase 1 (sharding)
Sharding spec is considered unstable and should only be used for educational purposes. Expect deep changes.
Testing, Repo, etc
Contractual Control
Release
v1.0.1
release adds support for the 0x01
withdrawal prefix -- ETH1_ADDRESS_WITHDRAWAL_PREFIX
-- enabling a new withdrawal credential type that is a 20-byte eth1 address.
Note: This is entirely non-substantive with respect to eth2 consensus and clients today. Instead (similar to the 0x00
prefix) it is a commitment to support withdrawals of a particular type in the future. A few additional deposit consensus tests were added to ensure clients can process the 0x01
prefix as well as "malformed" prefixes/credentials.
PR showing full diff can be found here: #2211
Feature original spec'd and discussed in this PR then cherry-picked to master
: #2149