Major release centered on the integration of the IETF BLS standards into the eth2 spec (#1532). Thank you to everyone across many teams that worked on formalizing these standards, and special thanks to @CarlBeek and @kirk-baird for representing Ethereum's interests in the process.
This release also contains a deep and much needed reorganization of files/directories. The previous spec file groupings using phase number prefixes was unsustainable. Now files are nicely grouped into fork-based directories. Although the spec is internally consistent, we do expect this to break some links found in external resources. Sorry! If you find one, be a good citizen and patch it or contact the maintainer. You can read more about this change and the new directory organization here: #1564
The rest of the changes are some minor optimizations and cleanups
Most of these are generally backward compatible, and all should be very straight forward to integrate.
v0.10.0 marks a stable target for Phase 0 for multi-client testnets and security reviews. We expect some revisions in February/March pending the results from each.
PR showing full diff can be found here: #1561
- Be more explicit with some bytes-type constants (#1551)
- Allow configuration of genesis fork version to more easily separate testnets (#1554 [note two bugs to this feature fixed in #1556 and #1562])
- Make genesis delay configurable for ease of setting up testnets (#1557)
GENESIS_EPOCHto constants as they were not truly configurable in the first place (#1556)
- Add additional
Deposittest cases (#1558)
- Very minor cosmetic cleanups. No breaking changes and no renamings! (#1525)
- Use timestamp instead of block height in eth1 voting to allow for simpler caching (#1553)
- Add eager attestation broadcasting to optimize attestation propagation in the normal case (#1555)
- Allow empty lists in streamed responses (#1549)
- Validate block not from future slot (and add a small clock disparity allowance) (#1563)
- Version bump to integrate a recent fix in the vyper compiler (#1539)
ByteListto conform to naming conventions and avoid confusion (#1480)
- Integrate IETF BLS standards and use in spec throughout (#1532)
Phase 1 spec (warning: not stable)
The Phase 1 spec is currently being redesigned in accordance with the new sharding proposal. You can monitor the latest progress in #1504. Because of this redesign, the spec is highly in flux and not currently executable, thus the Phase 1 tests are currently disabled in CI.
Light client spec (warning: not stable)
Light client sync spec is under redesign in the context of the phase 1 redesign. The current light client spec can be used for general educational purposes to understand the approach we are considering, but will see heavy redesign after phase 1 stabilizes.