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.
73 lines
2.2 KiB
Text
73 lines
2.2 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.2;
|
|
nodesep = 0.1;
|
|
|
|
edge [ penwidth = 1.75, fontname="Sans" ]
|
|
node [ penwidth = 1.75, shape = "box", fontname="Sans"]
|
|
graph [ penwidth = 1.75, fontname="Sans" ]
|
|
|
|
ibd -> inv:f1 -> sync [ dir = "back" ];
|
|
|
|
ibd [ label = "IBD\nNode", shape="none" ];
|
|
sync [ label = "Sync\nNode", shape="none" ];
|
|
|
|
inv [ shape="plaintext", label=<
|
|
<table border="2" cellborder="1">
|
|
<tr>
|
|
<td colspan="4" port="f1" border="0" cellpadding="4"><b>Inv 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">inv</font></td>
|
|
<td border="1"><i>Size</i><br/><font face="courier">18003</font></td>
|
|
<td border="1"><i>Checksum</i><br/><font face="courier">25173c57</font></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4" border="0"><i>Payload</i></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4"><i>Number Of Inventories (Max 500 In Reply To GetBlocks) </i><br /><font face="courier">500</font></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="4">
|
|
<table border="0">
|
|
<tr>
|
|
<td colspan="2"><i>Inventory Entries</i></td>
|
|
</tr>
|
|
<tr>
|
|
<td><i>Type</i></td>
|
|
<td><i>Unique Identifier (For Blocks, A Header Hash)</i></td>
|
|
</tr>
|
|
<tr>
|
|
<td><font face="courier">block</font></td>
|
|
<td><font face="courier">4860eb18bf1b1620...688e9a8300000000</font></td>
|
|
</tr>
|
|
<tr>
|
|
<td><font face="courier">block</font></td>
|
|
<td><font face="courier">bddd99ccfda39da1...065f626a00000000</font></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2"><i>...............498 more inventory entries...............</i></td>
|
|
</tr>
|
|
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>>];
|
|
|
|
label = "First inv message reply sent to Initial Blocks Download (IBD) node"
|
|
}
|