Quarantine Haircut
Release
This release introduces breaking changes following the release of IETF hash-to-curve draft 7 and incorporation of v0.11
testnet learnings.
Other than the new BLS spec, much of the substance is handling edge cases in the network spec and refactoring rewards/penalties for enhanced testing. Although some of these are breaking changes, the scope of changes continues to narrow with the expectation of only introducing security critical breaking changes from here on out.
PR showing full diff can be found here: #1829
Phase 0
Beacon chain
- Adjust
INACTIVITY_PENALTY_QUOTIENT
to accurately reflect intention (#1712) - Rename
SigningRoot
toSigningData
(#1740) - Remove
PERSISTENT_ COMMITTEE_PERIOD
in favor ofSHARD_COMMITTEE_PERIOD
(#1783) - Disallow empty aggregation bits in attestations (#1780)
- Change
MAX_ATTESTER_SLASHINGS
from 1 to 2 (#1794) - Ensure balances remain unchanged for optimal validators during inactivity leak (#1830)
- Non-substantive:
- Fix some
ValidatorIndex
type casting (#1714) - Minor typing fixes (#1731)
- Clarify eth1 timestamp can be less than genesis time (#1756)
- Clarify that eth1 blocks must be deep enough in chain for consideration for genesis (#1834)
- Structure rewards/penalties to allow for more granular testing (#1747, #1826)
- Fix some
Fork choice
- Add FFG-LMD vote consistency checks (#1742)
- [Non-substantive] Remove redundant check in
validate_on_attestation
(#1755)
Validator
- Use all attestation subnets in Phase 0 (#1804)
- Ensure eth1data voting can't move to past eth1data states (#1836)
- [Non-substantive] Minor cleanups and validator sanity tests (#1745)
Networking
- Require "seen" aggregates to be valid to bound cache (#1749)
- Clarify beacon committee assignments are not added to
attnets
ENR entry (#1775) - Remove interop from p2p spec (#1767)
- Bump gossipsub to
v1.1
and note extended validator enums for gossip conditions (#1796, #1828) - Clarify blocks in
BlocksByRange
must be from a single chain (#1795) - Req/Resp sizes constrained by SSZ bounds (#1800)
- Loosen restrictions for aggregate propagation to not require aggregator in bitfield (#1801)
- Use all attestation subnets in Phase 0 (#1804)
- Restrict and clarify
BlocksByRange
request (#1835)
Deposit contract
Stable!
Simple Serialize
- Fix
bitfield_bytes
type error (#1806)
BLS
- Update BLS to use IETF bls draft 2 with hash-to-curve draft 7 (#1799)
Phase 1 spec (warning: not stable)
Continued work on refining Phase 1 specs
Warning The Custody Game challenge-response is currently missing, but will be reintroduced soon when the core Phase 1 shard chain design stabilizes. Client teams looking to prototype Phase 1 should first focus on shard data mechanics, while stubbing out custody game logic.
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.