Skip to content
  • v0.10.0
  • 2e3fcc1
  • Compare
    Choose a tag to compare
    Search for a tag
  • v0.10.0
  • 2e3fcc1
  • Compare
    Choose a tag to compare
    Search for a tag

@djrtwo djrtwo released this Jan 11, 2020


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

Phase 0

Beacon chain

  • 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)
  • Move GENESIS_SLOT/GENESIS_EPOCH to constants as they were not truly configurable in the first place (#1556)
  • Add additional Deposit test cases (#1558)
  • Very minor cosmetic cleanups. No breaking changes and no renamings! (#1525)

Fork choice



  • 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)

Deposit contract

  • Version bump to integrate a recent fix in the vyper compiler (#1539)

Simple Serialize

  • Rename BytesN to ByteVector and Bytes to ByteList to 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.

Assets 2
You can’t perform that action at this time.