HomePhabricator

Headers-first synchronization
341735eb8f42Unpublished

Unpublished Commit ยท Learn More

Repository Importing: This repository is still importing.

Description

Headers-first synchronization

Many changes:

  • Do not use 'getblocks', but 'getheaders', and use it to build a headers tree.
  • Blocks are fetched in parallel from all available outbound peers, using a limited moving window. When one peer stalls the movement of the window, it is disconnected.
  • No more orphan blocks. At all. We only ever request a block for which we have verified the headers, and store it to disk immediately. This means that a disk-fill attack would require PoW.
  • Require protocol version 31800 for every peer (released in december 2010).
  • No more syncnode (we sync from everyone we can, though limited to 1 during initial *headers* sync).
  • Introduce some extra named constants, comments and asserts.

Details

Provenance
Pieter Wuille <pieter.wuille@gmail.com>Authored on Jul 11 2014, 22:02
deadalnixPushed on May 14 2017, 22:04
Parents
rABC992ab87114b8: Merge pull request #4942
Branches
Unknown
Tags
Unknown

Event Timeline

Pieter Wuille <pieter.wuille@gmail.com> committed rABC341735eb8f42: Headers-first synchronization (authored by Pieter Wuille <pieter.wuille@gmail.com>).Oct 14 2014, 22:42