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.
48 lines
1.4 KiB
Text
48 lines
1.4 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.5;
|
|
nodesep = 0.1;
|
|
|
|
edge [ penwidth = 1.75, fontname="Sans" ]
|
|
node [ penwidth = 1.75, shape = "box", fontname="Sans"]
|
|
graph [ penwidth = 1.75, fontname="Sans" ]
|
|
|
|
ibd -> block:f1 -> sync [dir="back"];
|
|
|
|
ibd [ label = "IBD\nNode", shape="none" ];
|
|
sync [ label = "Sync\nNode", shape="none" ];
|
|
|
|
block [ shape="plaintext", label=<
|
|
<table border="2" cellborder="1" cellpadding="5">
|
|
<tr>
|
|
<td colspan="4" port="f1" border="0" cellpadding="4"><b>Block 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">block</font></td>
|
|
<td border="1"><i>Size</i><br/><font face="courier">215</font></td>
|
|
<td border="1"><i>Checksum</i><br/><font face="courier">934d270a</font></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4" border="0"><i>Payload</i></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4" border="1"><i>Serialized Block</i><br/><font face="courier">010000006fe2...58eeac00000000</font></td>
|
|
</tr>
|
|
|
|
</table>>];
|
|
|
|
label = "First block message sent to Initial Blocks Download (IBD) node"
|
|
}
|