Skip to content

LAN party

Compare
Choose a tag to compare
@djrtwo djrtwo released this 11 Mar 22:55
· 5986 commits to master since this release
e2bd8c7

Release

This one has been a long time coming. This release represents a "post-audit" Phase 0 spec, ready for long-standing multi-client testnets.

πŸ’» <-> πŸ–₯ <-> πŸ’» <-> πŸ–₯ <-> πŸ’» <-> πŸ–₯ <-> πŸ’» <-> πŸ–₯ <-> πŸ’» <-> πŸ–₯ <-> πŸ’» <-> πŸ–₯ <-> πŸ’»

The bulk of this release is centered on networking -- adding some features (#1606, #1607, #1614, #1652), DoS protections (#1615, #1616, #1617), and simplifications (#1604).

The state transition saw a few modifications as well -- fixing a bug or two (#1627, #1635), adding a couple fields for enhanced usability (#1626, #1614), and making sure rewards are lock tight (#1653).

The state transition will no longer see changes unless critical bugs emerge (e.g. something like this overflow), but we do expect the network spec to see some additions, modifications, and clarifications based on this month of multi-client experimentation.

PR showing full diff can be found here: #1645

Phase 0

Beacon chain

  • Adjust hysteresis to avoid initial over-deposit incentive (#1627)
  • Add proposer_index to BeaconBlock (#1626)
  • Handle rewards overflow (#1635)
  • Add genesis_validators_root to BeaconState to support better fork separation (#1614, #1652)
  • Denominate Eth1 voting period in epochs (#1649)
  • Attestation must match target to match head for rewards (#1653)
  • Minor fixes -- typos, formatting, etc (#1568, #1567, #1619)

Fork choice

  • Pull out some helper functions for better code reuse across forks [No Substantive Change] (#1504)
  • Minor fixes -- typos, formatting, etc (#1603, #1651, #1655, #1645)

Validator

  • BeaconBlock slashing is per-slot (reflect this in v-guide) (#1612)
  • Minor fixes -- typos, formatting, etc (#1588, #1602, #1605, #1611)

Networking

  • Add libp2p-noise specification (#1607)
  • Remove head_block_root from BeaconBlocksByRange (#1604)
  • Add subnet validations for DoS resistance (#1615)
  • Add lower bound slot condition on block gossip (#1616)
  • Add DoS prevention validation conditions to additional gossipsub topics (#1617)
  • Use snappy frames to support streaming (#1606)
  • Add eth2 key/value to ENR (#1614)
  • Add fork digest to gossipsub topics for simple fork versioning of messages and to Status message (#1652)
  • Minor fixes -- typos, formatting, etc (#1569, #1648)

Deposit contract

Stable!

Simple Serialize

BLS

Stable! Although it looks like there will be a final set of minor changes introduced into the IETF spec soon

Phase 1 spec (warning: not stable)

  • Major refactor of Phase 1 to handle full shard crosslinking per slot (#1504)
  • Remove shard block chunking (#1560)

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

  • Package the pyspec (#1584)
  • Deposit contract testing cleanup and better management of python versions (#1587)
  • BLS testing nitpicks (#1610)
  • Bump in-repo version to 0.11.0 for release (#1647)
  • Minor fixes -- typos, formatting, etc (#1623, #1622, #1646, #1654)