Dynamic State Sharding
There are two types of State Sharding - Static State Sharding & Dynamic State Sharding.
Static Sharding | Dynamic Sharding |
---|---|
Shards pre-exist | Shards are formed as needed |
Shards address space is pre-determined | Process transaction assigned to the shard |
Asynchronous processing of multi-shard transaction | Synchronous processing of multi-shard transactions |
No composability for cross shard transactions | Atomic composability for all transactions |
The most general approach to sharding is to divide the address space of accounts into multiple fixed-size regions called shards. Nodes in the network are assigned to different shards.
In a dynamic state sharding system like Shardeum, shards can adapt to changes in network conditions. It involves splitting or merging shards, adding or removing nodes from shards, or reassigning nodes to different shards. Reorganization can help maintain an optimal balance between the system's load and resources, ensuring the network operates efficiently and securely. Shard reorganization happens through various algorithms that respond to changes in real time.
In Shardeum, each validator covers a unique range of addresses and only needs to execute transactions assigned to it and store respective state changes. Although each validator covers a unique range of addresses, some validators cover the same addresses in the sense of overlap, thus adding redundancy. Ensuring every address in Shardeum has the required redundancy of at least 128 validators.
Compared to Static State Sharding, Dynamic State Sharding allows the number of shards and their composition to change dynamically based on network conditions. This adaptability enables Dynamic State Sharding to optimize the system's performance and resource allocation with increased efficiency.