dash-docs/img/dev/en-headers-first-flowchart.svg
David A. Harding 72cc5f7f9e
Dev Docs: Add Section About Headers-First IBD
* 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
2015-02-05 16:16:46 -05:00

78 lines
5.1 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
-->
<!-- Title: %3 Pages: 1 -->
<svg width="450pt" height="175pt"
viewBox="0.00 0.00 450.00 174.51" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(0.807899 0.807899) rotate(0) translate(4 212)">
<title>%3</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-212 553,-212 553,4 -4,4"/>
<text text-anchor="middle" x="274.5" y="-22.8" font-family="Sans" font-size="14.00"> </text>
<text text-anchor="middle" x="274.5" y="-7.8" font-family="Sans" font-size="14.00">Overview Of Headers&#45;First Initial Blocks Download (IBD)</text>
<!-- fsbc -->
<g id="node1" class="node"><title>fsbc</title>
<polygon fill="lightgrey" stroke="none" stroke-width="1.75" points="213.5,-208 16.5,-208 16.5,-172 213.5,-172 213.5,-208"/>
<text text-anchor="middle" x="115" y="-186.3" font-family="Sans" font-size="14.00">Fully&#45;Synced Block Chain?</text>
</g>
<!-- fshc -->
<g id="node2" class="node"><title>fshc</title>
<polygon fill="lightgrey" stroke="none" stroke-width="1.75" points="219.5,-141 10.5,-141 10.5,-105 219.5,-105 219.5,-141"/>
<text text-anchor="middle" x="115" y="-119.3" font-family="Sans" font-size="14.00">Fully&#45;Synced Header Chain?</text>
</g>
<!-- fsbc&#45;&gt;fshc -->
<g id="edge1" class="edge"><title>fsbc&#45;&gt;fshc</title>
<path fill="none" stroke="black" stroke-width="1.75" d="M115,-171.922C115,-165.702 115,-158.5 115,-151.6"/>
<polygon fill="black" stroke="black" stroke-width="1.75" points="118.5,-151.19 115,-141.19 111.5,-151.19 118.5,-151.19"/>
<text text-anchor="middle" x="129" y="-152.8" font-family="Sans" font-size="14.00"> &#160;No</text>
</g>
<!-- listen_for_new_blocks -->
<g id="node4" class="node"><title>listen_for_new_blocks</title>
<text text-anchor="middle" x="446" y="-186.3" font-family="Sans" font-size="14.00">Listen For New Blocks (Inv)</text>
</g>
<!-- fsbc&#45;&gt;listen_for_new_blocks -->
<g id="edge4" class="edge"><title>fsbc&#45;&gt;listen_for_new_blocks</title>
<path fill="none" stroke="black" stroke-width="1.75" d="M213.863,-190C251.197,-190 293.964,-190 332.533,-190"/>
<polygon fill="black" stroke="black" stroke-width="1.75" points="332.765,-193.5 342.765,-190 332.765,-186.5 332.765,-193.5"/>
<text text-anchor="middle" x="278.25" y="-196.8" font-family="Sans" font-size="14.00">Yes</text>
</g>
<!-- more_headers_than_blocks -->
<g id="node3" class="node"><title>more_headers_than_blocks</title>
<polygon fill="lightgrey" stroke="none" stroke-width="1.75" points="514.5,-74 307.5,-74 307.5,-38 514.5,-38 514.5,-74"/>
<text text-anchor="middle" x="411" y="-52.3" font-family="Sans" font-size="14.00">More Headers Than Blocks?</text>
</g>
<!-- fshc&#45;&gt;more_headers_than_blocks -->
<g id="edge2" class="edge"><title>fshc&#45;&gt;more_headers_than_blocks</title>
<path fill="none" stroke="black" stroke-width="1.75" d="M192.771,-104.922C232.969,-96.0945 282.167,-85.291 323.668,-76.1776"/>
<polygon fill="black" stroke="black" stroke-width="1.75" points="324.476,-79.5837 333.492,-74.0203 322.974,-72.7466 324.476,-79.5837"/>
<text text-anchor="middle" x="299.5" y="-85.8" font-family="Sans" font-size="14.00">No</text>
</g>
<!-- request_blocks -->
<g id="node5" class="node"><title>request_blocks</title>
<text text-anchor="middle" x="446" y="-119.3" font-family="Sans" font-size="14.00">Request Blocks (GetData)</text>
</g>
<!-- fshc&#45;&gt;request_blocks -->
<g id="edge5" class="edge"><title>fshc&#45;&gt;request_blocks</title>
<path fill="none" stroke="black" stroke-width="1.75" d="M219.73,-123C257.72,-123 300.669,-123 338.863,-123"/>
<polygon fill="black" stroke="black" stroke-width="1.75" points="338.981,-126.5 348.981,-123 338.981,-119.5 338.981,-126.5"/>
<text text-anchor="middle" x="284.25" y="-129.8" font-family="Sans" font-size="14.00">Yes</text>
</g>
<!-- request_headers -->
<g id="node6" class="node"><title>request_headers</title>
<text text-anchor="middle" x="115" y="-52.3" font-family="Sans" font-size="14.00">Request Headers (GetHeaders)</text>
</g>
<!-- fshc&#45;&gt;request_headers -->
<g id="edge3" class="edge"><title>fshc&#45;&gt;request_headers</title>
<path fill="none" stroke="black" stroke-width="1.75" d="M115,-104.922C115,-98.7016 115,-91.4999 115,-84.5999"/>
<polygon fill="black" stroke="black" stroke-width="1.75" points="118.5,-84.1896 115,-74.1896 111.5,-84.1896 118.5,-84.1896"/>
<text text-anchor="middle" x="129" y="-85.8" font-family="Sans" font-size="14.00"> &#160;No</text>
</g>
<!-- request_blocks&#45;&gt;more_headers_than_blocks -->
<g id="edge6" class="edge"><title>request_blocks&#45;&gt;more_headers_than_blocks</title>
<path fill="none" stroke="black" stroke-width="1.75" d="M431.998,-95.9964C428.049,-88.6617 423.851,-80.8669 420.256,-74.1896"/>
<polygon fill="black" stroke="black" stroke-width="1.75" points="428.981,-97.7767 436.804,-104.922 435.145,-94.4579 428.981,-97.7767"/>
<text text-anchor="middle" x="449" y="-85.8" font-family="Sans" font-size="14.00"> &#160;&#160;Yes</text>
</g>
</g>
</svg>