Skip to content

Quarantine Haircut

Compare
Choose a tag to compare
@djrtwo djrtwo released this 20 May 21:36
· 4585 commits to master since this release
077577a

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 to SigningData (#1740)
  • Remove PERSISTENT_ COMMITTEE_PERIOD in favor of SHARD_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)

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.

Testing, Repo, etc

  • Move sanity dir under phase_0 (#1769)
  • Add new rewards test format (#1747, #1826)
  • Test double proposer slashings and exits (#1781)
  • Update to remerkleable v0.1.16 (#1833)