I heard some monero developers talk about sharding to help manage the size of the blockchain. Sharding is where every node only hold a small pieces of the blockchain to help deal with blockchain size growth and they all work together to validate transactions/blocks. How would something like this work in monero? Is it possible to work properly?
Currently it's still an open question but I believe it's the inevitable path if Monero adoption increases. The optimal way for a sharded distributed DB to operate is to have encoded rules for mapping from a key to a shard node. E.g., to look up a key image, use the first byte of the key as a map to one of 256 possible branches of shared containing the record. Some distributed systems use a central directory to redirect lookups to their respective nodes - these scale poorly since the central directory becomes a bottleneck itself.