@jessquit
If we use the second model (each node has a direct connection to the Internet of a certain bandwidth) than it is easy to show "hops" is faster. Consider a case with N=25 nodes.
Let
t = propagation time
B = bandwidth = 1 Gbps
Q = bits transmitted = 1 Gbits
L = lag (one-way ping time) 0.5 seconds
then
t = L + Q/B
If you send to to all nodes in parallel, it takes
t = 0.5 + (25 * 10^9 / 10^9) = 25.5 seconds
If you send to only four nodes first, this hop takes
t1 = 0.5 + (4 * 10^9 / 10^9) = 4.5 seconds
The second hop now has five (5) nodes sending data to the remaining 20 nodes that don't yet have the block. The last hope also takes 4.5 seconds:
t2 = 0.5 + (4 * 10^9 / 10^9) = 4.5 seconds
The total time is thus
t1 + t2 = 4.5 + 4.5 = 9 seconds
So, using this model, it takes 25.5 seconds to send the block in parallel, and 9 seconds to send the block over two hops.
But remember, what I'm using above is just a model. If we use the model where every node has a direct fiber connection (not packet switched) to every other node, then parallel _is_ fastest. The "truth" is probably somewhere between both models.
EDIT: fixed math error
If we use the second model (each node has a direct connection to the Internet of a certain bandwidth) than it is easy to show "hops" is faster. Consider a case with N=25 nodes.
Let
t = propagation time
B = bandwidth = 1 Gbps
Q = bits transmitted = 1 Gbits
L = lag (one-way ping time) 0.5 seconds
then
t = L + Q/B
If you send to to all nodes in parallel, it takes
t = 0.5 + (25 * 10^9 / 10^9) = 25.5 seconds
If you send to only four nodes first, this hop takes
t1 = 0.5 + (4 * 10^9 / 10^9) = 4.5 seconds
The second hop now has five (5) nodes sending data to the remaining 20 nodes that don't yet have the block. The last hope also takes 4.5 seconds:
t2 = 0.5 + (4 * 10^9 / 10^9) = 4.5 seconds
The total time is thus
t1 + t2 = 4.5 + 4.5 = 9 seconds
So, using this model, it takes 25.5 seconds to send the block in parallel, and 9 seconds to send the block over two hops.
But remember, what I'm using above is just a model. If we use the model where every node has a direct fiber connection (not packet switched) to every other node, then parallel _is_ fastest. The "truth" is probably somewhere between both models.
EDIT: fixed math error
Last edited: