Sharding is a popular layer-1 scaling solution used to increase transaction throughput. The technique is a form of database partitioning that can be applied to blockchain distributed ledgers. A network and its nodes are divided into different shards to spread the workload and improve transaction speed. Each shard manages a subset of the whole network's activity, meaning it has its own transactions, nodes, and separate blocks. With sharding, there is no need for each node to maintain a fu...