Static Time-outs

Bitcoin relies on static time-outs in order to prevent blocking while tolerating network outages, congestion, and slow connections. Blocking can occur, for example, when a node stops responding during communication.

Given that Bitcoin runs atop an overlay network, communication latency and reliability pose a major challenge to the correct operation of the system.

For example, in Bitcoin version 0.10, the Bitcoin developers introduced a block download time-out of 20 minutes.[1]

Similarly, for transactions, the Bitcoin developers introduced a 2-minute timeout. Note that the choice of the time-out is a nontrivial task and depends on a number of parameters such as bandwidth, object size, latency, processing power, and the Bitcoin version of each node. On the one hand, overly long time-outs might deteriorate the quality of service of the whole network and can be abused to conduct, for example, double-spending attacks [8]. On the other hand, short timeouts might hinder effective communication under varying network conditions or when communicating with slow peers.

  • [1] Available from https://github.com/bitcoin/bitcoin/pull/5608.
 
Source
< Prev   CONTENTS   Source   Next >