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

Shard node #1

Open
wants to merge 152 commits into
base: interop
Choose a base branch
from
Open

Shard node #1

wants to merge 152 commits into from

Conversation

villanuevawill
Copy link

Major WIP in progress. The shard chain is compiling and running end-to-end. Also contains major changes to the beacon chain.
Lots of cleanup needed!

Cleanup Tasks:

  • Update to latest spec (pull in current master from sigp)
  • Move some chain_spec values into shard_state_types to make for easier ShardSlot, Slot, Epoch, Period conversions
  • Refactor the shard state processing functions into its own package
  • Clean up errors trickling up for the shard chain (too much duplication from the beacon chain and leftovers).
  • Build proper error handling for state processing functions. Particularly, follow the design patterns from block_processing and epoch_processing
  • Introduce Shard struct instead of just a u64
  • Refactor chain_spec values to be exactly in line with the spec. Add the new configs in as well
  • Refactor store and eth2 lmd_ghost directory to operate on Generics. Too much duplication currently
  • Refactor some loops into iterators (improve on Rust paradigms)
  • Comments / doc comments!!
  • Include verification of attestations within the op_pool

Core Functionality

  • Plug in Scout to per_shard_block_processing
  • Build out the rest of the state processing functions from the spec
  • Command line tooling to inject the wasm for the EE and add the block data in realtime
  • Add persistence

Harness

  • Complete harness logic
  • ShardStateBuilder for Genesis block

Efficiency Gains

  • Refactor block/state iterators to take advantage of log search in history_accumulator or build a linear cache/vector of historical roots (probably the better option)
  • Plug in metrics/prometheus and begin using it to benchmark functions, etc.

Tests

  • Builders, builders, builders :)
  • Expand beacon state tests to accommodate recent additions
  • Tests for shard state processing and other logic in addition to Shard Chain tests

Future

  • Harness adds multiple shard chains
  • Further logic, transaction types in beacon chain
  • Partials/proof for receipts from the shard chain (deltas as well)
  • Some basic networking
  • RPC interface/functions
  • Lots of simulations (relay markets, crosslink clients, etc.)

wilbarnes and others added 28 commits September 25, 2019 11:54
…ction that always grabs beacon state at epoch boundary
@villanuevawill villanuevawill changed the base branch from master to interop November 12, 2019 01:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants