@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: