-
Notifications
You must be signed in to change notification settings - Fork 21
Sharding roadmap
tempzc edited this page Dec 3, 2019
·
1 revision
The roadmap is an active area of research. The outline below is only intended to provide flavour, with more details in specifications (which have been released for phases 0 and 1 as of 14 Dec 2018, as linked to below). It is intended for this document to be maintained with ongoing R&D.
Contents
-
Ethereum 2.0
- Phase 0: PoS beacon chain without shards
- Phase 1: Basic sharding without EVM
- Phase 2: EVM state transition function
- Phase 3: Light client state protocol
- Phase 4: Cross-shard transactions: see here and more.
- Phase 5: Tight coupling with main chain security: here and more.
- Phase 6: Super-quadratic or exponential sharding
- Ethereum 3.0
- PoS beacon chain using Casper FFG for finality
- Validators create an RNG via RANDAO in block proposals
- Validators organize into proposers and attestation committees from the output of the RNG
- Validators create crosslinks for stubbed shards
- See the phase 0 spec FMI.
- Blobs (Binary Large Objects) are collated in shards without transactions (which require execution)
- Proposers submit blobs
- Notaries
- For more details, see the phase 1 spec and implementations.
- Full nodes only
- Asynchronous cross-contract calls only
- Account abstraction
- eWASM; the eWASM team is working on Ethereum 2.0 integration after being developed (although not integrated in production yet?) with 1.0 clients.
- TBC: archive accumulators: History, state, and asynchronous accumulators in the stateless model and Batching and cyclic partitioning of logs and Double-batched Merkle log accumulator
- Storage rent: here and here; bandwidth fees; and other mechanism design to internalize costs while improving UI.
- Executors
- State-minimized clients. Stateless clients are not ideal as we don't want to offload all storage into secondary markets, rather we can give people a choice to pay storage rent on the blockchain or pay for it in secondary markets.
- Internally-synchronous zones: mind map including architectures
- See also here
- Data availability proofs: A note on data availability and erasure coding, Sharding and data forgetfulness
- Internally fork-free sharding
- Manager shard: may be difficult with the latest spec as it uses a beacon chain rather than a contract.
- Recursively, shards within shards within shards... Again, this may be difficult with the latest spec as it uses a beacon chain rather than a contract.
- Load balancing: Wikipedia, search results. Related: History, state, and asynchronous accumulators in the stateless model, State minimized implementation on current evm
And a lot more: https://ethresear.ch/c/sharding.
- Casper CBC integration. See here FMI.
- zk-STARKs, e.g. via StarkWare; videos here, here and here, as well as a paper here (the abstract is a more succinct intro than the videos), while the full paper is more detailed; and
- heterogeneous sharding
- Outdated: Are there any ideas that’s potentially more useful than implementing sharding?.
For more information see Sharding introduction R&D compendium and Sharding FAQs.
golang <3
Installing Elastos.ELA.SideChain.ESC
Issue handling workflow (draft proposal)