Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev Docs: Add Section About Headers-First IBD #736

Merged
merged 2 commits into from Feb 20, 2015

Conversation

@harding
Copy link
Contributor

harding commented Feb 5, 2015

Preview: http://dg0.dtrt.org/en/developer-guide#headers-first

This adds a short section describing headers-first Initial Block Download (IBD) to the developer guide. This was originally part of pull #660, but it has been substansially rewritten. (And, I hope, improved.) Specifics:

  • Add flowchart illustration to blocks-first section to match new headers-first flowchart
  • Add new headers-first (IBD) section
  • Revise Block Broadcasting section to describe non-IBD block transmission workflow
  • Add paragraph about how headers-first avoids handling orphan blocks to the Orphan Blocks section
* Add flowchart illustration to blocks-first section to match new
  headers-first flowchart

* Add new headers-first initial block download (IBD) section

* Revise Block Broadcasting section

* Add paragraph about orphan block handling in headers-first to the
  Orphan Blocks section
@harding harding added the Dev Docs label Feb 7, 2015
{% include helpers/subhead-links.md %}
{% autocrossref %}
At the start of a connection with a peer, both nodes send `getblocks` messages containing the hash of the latest known block. If a peer believes they have newer blocks or a longer chain, that peer will send an `inv` message which includes a list of up to 500 hashes of newer blocks, stating that it has the longer chain. The receiving node would then request these blocks using the command `getdata`, and the remote peer would reply via `block`<!--noref--> messages. After all 500 blocks have been processed, the node can request another set with `getblocks`, until the node is caught up with the network. Blocks are only accepted when validated by the receiving node.
Bitcoin Core 0.10.0 uses a initial block download (IBD) method called

This comment has been minimized.

Copy link
@saivann

saivann Feb 19, 2015

Contributor

@harding s/a initial/an initial/ maybe?

@saivann

This comment has been minimized.

Copy link
Contributor

saivann commented Feb 19, 2015

@harding Very clear, thanks!

@harding

This comment has been minimized.

Copy link
Contributor Author

harding commented Feb 19, 2015

@saivann thanks! I fixed the typo you found.

In the absence of critical feedback, this pull will be merged around 13:00 UTC Friday.

@harding harding merged commit 3d7ba83 into bitcoin-dot-org:master Feb 20, 2015
harding added a commit that referenced this pull request Feb 20, 2015
@harding harding deleted the harding:headers-first branch Feb 25, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.