Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modularize Phase1 into post-Merge features: Sharding, Custody Game, Data Availability Sampling #2254

Merged
merged 91 commits into from
Mar 30, 2021

Conversation

protolambda
Copy link
Contributor

@protolambda protolambda commented Mar 17, 2021

This takes the older phase1 PRs #2146 and #2172 and rebases it onto dev (including the new Merge)

Progress:

  • Rebase DAS PR by @vbuterin onto latest The-Merge work
  • Rebase out clutter (generated files and such) that got into the old DAS PR
  • Clean up old shard code, remove ShardTransition accounting in favor of independent shard blobs.
  • Remove legacy light client design in favor of new Altair design.
  • Split custody game, DAS, and base sharding docs
  • Remove old phase1 pyspec building
  • Refactor custody game logic out of sharding, implement as extension instead.
  • Update block processing and epoch processing to call Altair and Merge-fork processing functions, not just phase0
    • blocked by merge work, waiting for that branch to adopt Altair changes. rebase of Merge in Altair in future PRs, use phase0 for now.
  • Update BeaconState type in sharding spec to support Merge.
  • Update DAS spec to implement discv5.1 based long-range sample method (for Future PR maybe?)
  • Clean up old phase1 references in testing
  • Retain proof of custody testing (no proof of custody executable spec, tests are being skipped for now)
  • Ratain start-shard unit tests (no sharding executable spec, tests are being skipped for now)
  • Drop shard-transition tests in favor of new data-availability focused shards (no strict transitions, just data linked into beacon chain)
  • Update block processing and epoch processing helpers with missing merge/sharding/proof-of-custody methods, dropping shard-transition related processing.
  • Add phase naming for SHARDING, CUSTODY_GAME, DAS to tag tests with (to be enabled later). Note: custody tests need more in-depth updates, as the sharding design changed.
  • Update Makefile to drop older phase1 work
  • Drop old phase1 configs, split into new feature configs.
  • Update README

The bigger picture of this PR is to accelerate sharding after the merge, and enable early testnets to have shard-data, while DAS and proof of custody continue to be developed. Features, not phases.

@protolambda protolambda mentioned this pull request Mar 17, 2021
18 tasks
@ethereum ethereum deleted a comment from 304s304 Mar 17, 2021
@protolambda protolambda added scope:custody scope:DAS Data Availability Sampling (DAS) scope:sharding Sharding labels Mar 18, 2021
vbuterin and others added 24 commits March 26, 2021 22:37
…fining the new SSZ class with the new field classes
Co-authored-by: dankrad <dankrad@ethereum.org>
Co-authored-by: dankrad <dankrad@ethereum.org>
Co-authored-by: dankrad <dankrad@ethereum.org>
Co-authored-by: dankrad <dankrad@ethereum.org>
Co-authored-by: terence tsao <terence@prysmaticlabs.com>
@protolambda protolambda changed the base branch from merge-work to dev March 26, 2021 21:39
@protolambda protolambda marked this pull request as ready for review March 27, 2021 00:14
@protolambda protolambda changed the title phase1 rebased Modularize Phase1 into post-Merge features: Sharding, Proof of Custody, Data Availability Sampling Mar 27, 2021
@protolambda protolambda changed the title Modularize Phase1 into post-Merge features: Sharding, Proof of Custody, Data Availability Sampling Modularize Phase1 into post-Merge features: Sharding, Custody Game, Data Availability Sampling Mar 27, 2021
@hwwhww
Copy link
Contributor

hwwhww commented Mar 29, 2021

And:

  • Fix test generators. There are some from eth2spec.test.context import PHASE1 in testgen main.pys.

🙏

Copy link
Contributor

@djrtwo djrtwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lots of minor formatting and link fixes

configs/mainnet/sharding.yaml Outdated Show resolved Hide resolved
Makefile Show resolved Hide resolved
configs/minimal/sharding.yaml Outdated Show resolved Hide resolved
configs/minimal/sharding.yaml Outdated Show resolved Hide resolved
specs/custody_game/custody-game.md Outdated Show resolved Hide resolved
specs/sharding/beacon-chain.md Outdated Show resolved Hide resolved
specs/sharding/beacon-chain.md Outdated Show resolved Hide resolved
specs/sharding/beacon-chain.md Outdated Show resolved Hide resolved
specs/sharding/beacon-chain.md Outdated Show resolved Hide resolved
tests/core/pyspec/eth2spec/test/context.py Show resolved Hide resolved
@hwwhww hwwhww mentioned this pull request Mar 30, 2021
@djrtwo djrtwo merged commit 51db499 into dev Mar 30, 2021
@djrtwo djrtwo deleted the phase1-rebased branch March 30, 2021 13:24
protolambda added a commit that referenced this pull request Mar 30, 2021
@protolambda protolambda mentioned this pull request Mar 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
phase1 scope:custody scope:DAS Data Availability Sampling (DAS) scope:sharding Sharding
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants