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 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
{% 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@ghost1542
Copy link
Contributor

@harding Very clear, thanks!

@harding
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 harding deleted the headers-first branch February 25, 2015 01:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants