[Ethereum] What’s the transaction-throughput on Ethereum (how fast the nodes can replicate transactions, not transactions per second)

nodestransactions

Ethereum does roughly 10-30 transactions per second (TPS), and Proof-of-Work is a bottleneck there, so Casper (proof-of-stake) should increase the TPS. What is the transaction throughput on Ethereum, how fast can the nodes disperse transactions to the entire network (ignoring how fast blocks can be built. )

Best Answer

Back-of-the-envelope estimate. Sharding is Ethereum's way of achieving high TPS.

If you're looking at the future of Ethereum, then you're probably looking at a future involving sharding. In this case, you only have to make sure the appropriate shard gets your transaction as a propagation delay. With a group of about 100 validators per shard with each validator in the group connected to 10 other validators, you can be 2 hops away from every validator in your group. Transactions can come from either other validators or someone from outside your validator cluster. Even a naïve algorithm will "only" reduce your bandwidth by a factor of 10. I assume CPU cycles and I/O is much faster than network bandwidth.

If every node is connected to 100 other nodes, even with a large amount of overlap -- say, essentially, you're only connected to 20 nodes that are distinct from your "near neighbours", and there is one node per person on the planet, we can make some assumptions about efficient routing and find you'd never have to be more than 8 hops away from the required validator cluster. If we assume the average packet has to propagate across North America (some will be closer, some will be farther), then that's around a half second propagation delay. If we have a well-known set of validators, we can actually directly connect to one of the ones involved in your transaction, as with a client-server architecture.

If you have validators on a 1Gbps pipe, you can receive ~100Mbps' worth of transactions in your cluster. That's 2500 transactions per second per shard with a propagation time of the latency between you and one of the shard's nodes + internal shard propagation delays. That's closer to a bit over one trip around the "world", worst-case, or about 400ms.