Load balancing between shards


The Sharding phase 1 spec notes that Super-quadratic sharding and load balancing is currently an active area of research and seems to prioritize all other areas above it (ie load balancing is the final phase of 6 phases). Is that because load balancing is considered the least difficult problem to solve and so it is listed last? What is the tradeoff for leaving it later?

Assuming that collator shuffling for every period relies on pseudo random generation and that shard_count=100, how does the Sharding Manager Contract actually determine the effective distribution of collations among shards? I have in mind this image from the very useful Sharding Infograph:

To what extent does storage rent, currently prioritized at Phase 2, and state size per shard, impact the need to solve load balancing sooner? If these areas do not necessitate solving the problem earlier what about the cross-shard transactions of Phase 4?

It’s not that I’m a cheerleader for load balancing, as important as it will eventually be. I’m just curious :slight_smile:



The reason why we’re delaying it is basically that it’s relatively low value with relatively high complexity. It’s worth it eventually, but having any scaling at all is priority #1.