rm `signing_root`
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.