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. )
1 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.
-
Ignoring block creation and so on, is the transaction propagation between nodes in the millions of transactions per second, or higher (billions?)– InformoCommented Oct 17, 2017 at 19:49
-
22500 TPS per shard. The number of shards is somewhat arbitrary. A hundred or a thousand shards seems very reasonable to me as the initial number of shards used in Ethereum (and is in line with the number proposed). Ten shards would approximately equal the average TPS throughput of VISA given the above assumptions.– lungjCommented Oct 17, 2017 at 21:02