Vlad Zamfir, an Ethereum researcher, coded up a proof-of-concept for Ethereum sharding at this week’s ETHBerlin hackathon.
Vlad and several other hackathon participants built a system of three shards: a root shard and two child shards. Like a regular blockchain, each shard is a chain of blocks containing transactions. Unlike a regular blockchain, each shard stores cross-shard communication information: logs of messages received from other shards and logs of messages sent to other shards.
Watch Vlad’s video explanation:
This attempt at sharding is far from the production-ready version but some parts of the code will be important in the actual implementation of sharding.
The proof-of-concept repository is available on GitHub for everyone to download and try out for themselves.
Quick info on sharding
Sharding is a proposed solution for Ethereum’s scalability problem. Each Ethereum node needs to process and store all transactions, which puts insurmountable constraints on the network’s scaling. Sharding proposes to break the blockchain into smaller fragments called shards which are then allocated across the network. For more information, read the Casper + sharding specification.