Bitcoin full node and query server

Jun 30, 2021

View in context in the libbitcoin Slack #general mirror.

evoskuil19:49
Data is stored as soon as the cost of producing invalid data reaches an arbitrary threshold. This is a denial-of-service feature. For headers this is specified in config as an amount of time from the present clock. The header chain must reach this relative height before block downloading begins. This is referred to as being "current". If the header chain is not current, no blocks are downloaded. If there is a current header, all headers preceding it are downloaded in parallel. They are stored as txs and associations as that happens. This is performed entirely independent of order. Standard deviation is used to detect slower peers in the block downloading, which are disconnected if they fall below a configurable threshold. This results in an acceleration of downloading, and unloads peers that appear to be overloaded. This is not done by header downloading, as we want all peers to have an opportunity to define the strong chain, so header download tends to be slow relative to the amount of data processed.