25

Once a new block has been created, it is propagated to the entire network. I’d like to know how long this would take “on average”.

The propagation delay can be from several causes, and I’d additionally like to understand which one is the most significant:

  1. As I understand, blocks are not propagated before being verified and accepted, so this should contribute to propagation time.
  2. Network latency adds delay regardless of the block size.
  3. Bandwidth limitations: large blocks will take longer to transmit, and nodes with many outgoing links will take longer to transmit the block to all their neighbors.
  4. The network’s diameter.

If there are other causes of delay I’d love to hear about them.

Also, is anyone monitoring the network’s propagation delay, or any of the other network measurements I mentioned, and if so, where can I find statistics?

5
  • Possibly related - bitcoin.stackexchange.com/questions/1557/… .
    – ThePiachu
    Commented May 12, 2013 at 6:56
  • 1
    If you know it's a matter of seconds and not minutes, does that answer your question? Or do you require a more accurate answer? Commented May 12, 2013 at 14:47
  • I think that your reasons for latency are correct, but it's really hard to figure out exactly how long it takes on average. Maybe a calculation involving the rate of orphan blocks and the Poisson distribution of a block being made during the time that a block is propagating around the network?
    – lurf jurv
    Commented May 12, 2013 at 15:15
  • I think the time scale matters most, but I would be happiest to have it backed by actual figures.
    – Aviv Zohar
    Commented May 15, 2013 at 8:49
  • lurf : that would require knowing things about the number of hashes each node is capable of. Wouldn't it?
    – Aviv Zohar
    Commented May 15, 2013 at 8:52

4 Answers 4

16

According the paper 'Information propagation in the bitcoin network.' by Decker and Wattenhofer. The mean time for a node to see a block is 12.6 seconds, after 40 seconds 95% of the nodes have seen that block. This paper goes into some of the causes of propagation speed.

Block size is a dominating factor:

"For blocks, whose size is larger than 20kB, each kilobyte costs an additional 80ms delay until a majority knows about the block." -'Information propagation in the bitcoin network.'

Network Diameter does not appear to be that important as there are some very long shortest paths in bitcoin, but those paths only represent a tiny faction of the overlay network. The bitcoin network appears to be extremely well connected for most of the nodes and with a long narrow tail very very poor connections. A block may take a long time, possibly minutes to reach the last 0.0001 percent.

Bitcoin Stats have a nice website that measures block propagation speed, it is based on the research of Decker and Wattenhofer. It doesn't entirely agree with the Decker and Wattenhofer paper but it is important to understand that the bitcoin network is evolving at a breakneck pace. The bitcoin overlay network like the weather or the stock market, has the property that what was true yesterday might not be true tomorrow.

Bitcoin Stats says that for today, the mean was 5.1 seconds and 90th percentile was 22.4 seconds.

1
  • 2
    Unfortunately, Bitcoin Stats on 2017/04/05 stopped to provide daily snapshots on Bitcoin block propagation speed. Is anyone aware of a new resource for this information?
    – Remis
    Commented Nov 28, 2020 at 16:23
6

Since the introduction of BIP152: Compact Block Relay, peers announce new blocks to each other in a shorthand that provides the header and only the list of transactions included in the block. Since nodes should have already learned about the majority of unconfirmed transactions, the receivers can rebuild the block from their mempool after retrieving the remaining few missing transactions. Compact Block Relay and other relay improvements have significantly sped up the block propagation, so that it now (June 2022) takes about 0.5 s for 50% and 2.5 s for 90% of the listening nodes to announce inventory of a new block.

Chart showing the time until 50% or 90% of the listening nodes on the Bitcoin network announce a new block over the years. X-axis: July 2015 to June 2022, Y-axis: time in seconds. The chart shows that the announcement delay for 50% of the listening nodes has receded from about 9 s to about 0.5 s, while announcement delay for 90% of the listening nodes has receded from about 20 s to 2.5 s over the course from mid 2015 to mid 2022.

via dsn.kastel.kit.edu/bitcoin/

2

In 2013, a paper by Decker and Wattenhofer answered the question with detailed measurements:

Decker, Wattenhofer: "Information Propagation in the Bitcoin Network" (2013)

At current block sizes, the size of the block (via transmission and validation) matters more than the delay in requesting or propagating packets through the internet.

1

In regards to monitoring the block propagation, you could deploy a largish number of nodes and log new blocks and a time-stamp to a DB as they come in. There is probably some network size estimation requirements, but even a naive implementation should give you a good rough guess.

2
  • That's a possible way to go, but I'm guessing it would be hard to pinpoint the block creation time accurately enough. Most of the nodes you deploy will hear about the new block relatively late (assuming distribution is an exponentially growing branching process)
    – Aviv Zohar
    Commented May 15, 2013 at 8:56
  • I was commenting in regards to the network measurements part of your question. If you wanted such metrics, this might be a good way to go about measuring it. It would not tell you exact block creation time, but it would give you upper/lower bounds on the network graph. I assumed you wanted to measure the graph, not creation times.
    – Indolering
    Commented May 15, 2013 at 21:01

Not the answer you're looking for? Browse other questions tagged or ask your own question.