So in theory, throughput in Elrond increases with the number of nodes. However in practice, if the network size grows really large.. say to 1 million nodes, then broadcast becomes an issue? Is there a sweet spot until which the throughput can linearly increase?
Our "Adaptive State Sharding" approach, does not need to broadcast all messages over the entire network. The network sharding, partitioning the nodes in smaller groups, optimizes communication so that messages are only broadcast inside the shard to around 600 nodes. We are also considering grouping accounts that generate a large number of transactions between them in the same shard, to remove the cross-shard communication overhead. With 1 million nodes we could have ~1600 shards and here the communication with the Meta-chain could introduce an non neglectable overhead, so that the throughput does no longer increase linearly. We are also taking into account the actual usage of our network when increasing the number of shards: although with 1 million nodes we could create ~1600 shards, we could get away just fine with 150 shards, reducing potential cross-shard communication by 90%. Future tests will further guide us towards the sweet spot, but right now the bandwidth of the Meta-Chain seems to limit our linear scalability. Each shard sends a 5 KB message to the Meta-Chain and an upper limit right now could be 1000 shards: 5 KB * 1000 shards = 5 MB have to be received every round by the Meta-Chain, processed and sent back to shards. As internet speeds and processing power increase, the upper limit could also increase.