Skip to content

rm `signing_root`

Compare
Choose a tag to compare
@djrtwo djrtwo released this 12 Dec 19:44
· 6282 commits to master since this release
e7c5d64

Release

This release handles some structural cleanups, fork choice fixes/enhancements, some minor bugs, and increased test coverage. v0.9.3 is intended to be the stable target for clients and testnets until BLS updates are released in January.

The deepest and most exciting change here was led by @protolambda to completely remove signing_root (#1491) from SSZ and the rest of the spec. This removal allows for better caching of objects, no need for ZERO (invalid) signatures in consensus, and a generally cleaner representation of objects and signatures.

Changelog

PR showing full diff can be found here: #1507

Phase 0

Beacon chain

  • remove signing_root and add explicit signed message containers (#1491)
  • ensure attestation slot and target epoch are coherent (#1509)
  • fix activation queue rate and enforce only activate upon finality (#1514)
  • disallow duplicate indices in indexed attestation (#1516)
  • additional proposer tests for increased coverage (#1518)

Fork choice

  • remove duplicate validation in on_attestation (#1492)
  • filter out non-viable branches when call to get_head (#1495)
  • clean up handle of slots (#1510)
  • ensure best_justified_checkpoint updates to the best available (#1508)
  • ensure attestation slot and target epoch are coherent (#1509)

Validator

Stable other than some changes made to signing_root and wrapper objects

Networking

Stable other than some changes made to signing_root and wrapper objects

Deposit contract

  • bump vyper compiler to b13 to match formal verification effort (#1491)

Simple Serialize

  • remove signing_root (#1491)

BLS

Warning: Bug exists in BLS hash to G2 in the current spec. The hash and increment approach will be deprecated after standardization so the bug is to be untouched for now_

Significant changes are to be released in January. The proposed standard has moved forward in the IETF process and is deemed stable. A PR updating to this version of the BLS spec is under review in #1499.

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.