What is Sharding and how does it help Radix scale?

The concept of sharding in a distributed system has existed for a long time. In the simplest sense, sharding your database involves breaking up your big database into many, much smaller databases spread across multiple nodes. The goal of sharding is to move away from requiring 'full' nodes – those which store the full state of the network and every transaction that occurs.

Instead, each node stores a subset of this data and only verifies those transactions. If a node needs to know about transactions or blocks that it doesn’t store, then it finds another node with the information it needs. Radix supports a 64-bit shard space which equates to about 18.4 quintillion shards. With 2,000 tps per shard, the scalability of Radix is only constrained by the number of Nodes operating within the network.