[Ethereum] What are the average transaction propagation times in Ethereum for reaching 50% and 95% of nodes

statisticstransaction-propagation

What are the average transaction propagation times in Ethereum for reaching 50% and 95% of nodes? That is, once a transaction is generated on a given node, how long does it take on average to reach 50% and 95% of nodes in the Ethereum network?

Vitalik mentions a paper presenting block propagation statistics for Bitcoin:
https://blog.ethereum.org/2014/07/11/toward-a-12-second-block-time/

"According to a 2013 paper from Decker and Wattenhofer in Zurich, once
a miner produces a block on average it takes 6.5 seconds for the block
to reach 50% of nodes, 40 seconds for it to reach 95% of nodes and the
mean delay is 12.6 seconds."

It would be interesting to have similar statistics for Ethereum transaction propagation times.

Best Answer

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.