mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
This commit provides a detailed overview of the current block download method, which I've retroactively named blocks-first for parallelism with headers-first. New And Significantly Revised: * New Initial Block Download (IBD) section (h3) with Blocks-First subsection (h4) * New Orphan Block subsection (under Blocks Broadcasting) describing orphan blocks and how they're handled under blocks-first. Also includes a simple illustration of the difference between orphan blocks and stale blocks. Thanks to luke-jr for his s/orphan block/stale block/ commit a couple months ago---that made this commit much easier. Edits: * Cleaned up a couple cases missed by previous s/orphan/stale/ commit because they used past tense (orphaned). * In P2P reference section, mentioned that a `block` message can be sent unsolicited by miners. * Mention that `getheaders` and `headers` were added in protocol version 31800. * Moved a few internal links around and added a few new internal links. Administrivia: * Started adding "TODOv0.10" in HTML comments to places that need to be updated when 0.10 is released so that I can easily git grep for that tag later.
57 lines
1.8 KiB
Text
57 lines
1.8 KiB
Text
digraph {
|
|
// This file is licensed under the MIT License (MIT) available on
|
|
// http://opensource.org/licenses/MIT.
|
|
|
|
size=6.25;
|
|
rankdir=LR
|
|
splines = "false";
|
|
ranksep = 0.4;
|
|
nodesep = 0.1;
|
|
|
|
edge [ penwidth = 1.75, fontname="Sans" ]
|
|
node [ penwidth = 1.75, shape = "box", fontname="Sans"]
|
|
graph [ penwidth = 1.75, fontname="Sans" ]
|
|
|
|
ibd -> getblocks:f1 -> sync;
|
|
|
|
ibd [ label = "IBD\nNode", shape="none" ];
|
|
sync [ label = "Sync\nNode", shape="none" ];
|
|
|
|
getblocks [ shape="plaintext", label=<
|
|
<table border="2" cellborder="1">
|
|
<tr>
|
|
<td colspan="4" port="f1" border="0" cellpadding="4"><b>GetBlocks Message</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4" border="0"><i>Message Header</i></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td border="1"><i>Start String</i><br/><font face="courier">f9beb4d9</font></td>
|
|
<td border="1"><i>Command</i><br/><font face="courier">getblocks</font></td>
|
|
<td border="1"><i>Size</i><br/><font face="courier">677</font></td>
|
|
<td border="1"><i>Checksum</i><br/><font face="courier">52be83ef</font></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4" border="0"><i>Payload</i></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="2"><i>Protocol Version</i><br /><font face="courier">70002</font></td>
|
|
<td colspan="2"><i>Header Hash Count</i><br /><font face="courier">20</font></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4"><i>Header Hashes (Highest-Height First)</i><br /><font face="courier">db773c8f3b90ef...64f64f00000000<br/>459f16a1c695d0...f66d8000000000</font><br/><i>......18 more header hashes......</i></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4"><i>Stopping Hash (Zero Is "No Stop")</i><br /><font face="courier">00000000000000...00000000000000</font></td>
|
|
</tr>
|
|
|
|
</table>>];
|
|
|
|
label = "Second getblocks message sent from Initial Blocks Download (IBD) node"
|
|
}
|