developers/zcash-zf-dag.svg

1642 lines
127 KiB
XML
Raw Normal View History

<?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.40.1 (20161225.0304)
-->
<!-- Pages: 1 -->
<svg width="1332pt" height="4950pt"
viewBox="0.00 0.00 1332.00 4950.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 4946)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-4946 1328,-4946 1328,4 -4,4"/>
<!-- ZcashFoundation/zebra#2780 -->
<g id="node1" class="node">
<title>ZcashFoundation/zebra#2780</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2780" xlink:title="ZcashFoundation/zebra#2780&#10;Randomly evict mempool&#10;transactions based on&#10;their eviction weights" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-75.5 10,-75.5 10,-7.5 242,-7.5 242,-75.5"/>
<text text-anchor="middle" x="126" y="-60.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2780</text>
<text text-anchor="middle" x="126" y="-45.3" font-family="Times,serif" font-size="14.00" fill="#000000">Randomly evict mempool</text>
<text text-anchor="middle" x="126" y="-30.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions based on</text>
<text text-anchor="middle" x="126" y="-15.3" font-family="Times,serif" font-size="14.00" fill="#000000">their eviction weights</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2759 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#2759</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2759" xlink:title="ZcashFoundation/zebra#2759&#10;Limit the size and age of&#10;the ZIP&#45;401 rejected&#10;transaction ID list" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-91.5 288,-91.5 288,-23.5 520,-23.5 520,-91.5"/>
<text text-anchor="middle" x="404" y="-76.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2759</text>
<text text-anchor="middle" x="404" y="-61.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the size and age of</text>
<text text-anchor="middle" x="404" y="-46.3" font-family="Times,serif" font-size="14.00" fill="#000000">the ZIP&#45;401 rejected</text>
<text text-anchor="middle" x="404" y="-31.3" font-family="Times,serif" font-size="14.00" fill="#000000">transaction ID list</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2780&#45;&gt;ZcashFoundation/zebra#2759 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#2780&#45;&gt;ZcashFoundation/zebra#2759</title>
<path fill="none" stroke="#000000" d="M242.29,-48.193C253.91,-48.862 265.75,-49.543 277.47,-50.218"/>
<polygon fill="#000000" stroke="#000000" points="277.5455,-53.728 287.73,-50.808 277.9475,-46.7396 277.5455,-53.728"/>
</g>
<!-- ZcashFoundation/zebra#2744 -->
<g id="node3" class="node">
<title>ZcashFoundation/zebra#2744</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2744" xlink:title="ZcashFoundation/zebra#2744&#10;Make Mempool eviction&#10;compliant with ZIP&#45;401" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="788,-53 556,-53 556,0 788,0 788,-53"/>
<text text-anchor="middle" x="672" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2744</text>
<text text-anchor="middle" x="672" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make Mempool eviction</text>
<text text-anchor="middle" x="672" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">compliant with ZIP&#45;401</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2780&#45;&gt;ZcashFoundation/zebra#2744 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#2780&#45;&gt;ZcashFoundation/zebra#2744</title>
<path fill="none" stroke="#000000" d="M242.07,-19.781C257.47,-17.598 273.08,-15.735 288,-14.5 390.76,-5.9953 416.97,-10.439 520,-14.5 528.36,-14.83 536.98,-15.261 545.66,-15.764"/>
<polygon fill="#000000" stroke="#000000" points="545.6759,-19.2713 555.87,-16.385 546.101,-12.2843 545.6759,-19.2713"/>
</g>
<!-- ZcashFoundation/zebra#2759&#45;&gt;ZcashFoundation/zebra#2744 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#2759&#45;&gt;ZcashFoundation/zebra#2744</title>
<path fill="none" stroke="#000000" d="M520.38,-44.038C528.71,-43.074 537.14,-42.099 545.53,-41.129"/>
<polygon fill="#000000" stroke="#000000" points="546.208,-44.574 555.74,-39.949 545.4043,-37.6203 546.208,-44.574"/>
</g>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node4" class="node">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1135" xlink:title="ZcashFoundation/zebra#1135&#10;Refactor Network and&#10;NetworkUpgrade enums into&#10;structs and a trait" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-192.5 10,-192.5 10,-124.5 242,-124.5 242,-192.5"/>
<text text-anchor="middle" x="126" y="-177.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="126" y="-162.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="126" y="-147.3" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="126" y="-132.3" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node5" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title="ZcashFoundation/zebra#1011&#10;Re&#45;enable the&#10;BlockVerifier continuous_&#10;blockchain_test" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="520,-192.5 288,-192.5 288,-124.5 520,-124.5 520,-192.5"/>
<text text-anchor="middle" x="404" y="-177.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="404" y="-162.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="404" y="-147.3" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="404" y="-132.3" font-family="Times,serif" font-size="14.00" fill="#000000">blockchain_test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="#000000" d="M242.29,-158.5C253.91,-158.5 265.75,-158.5 277.47,-158.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-162.0001 287.73,-158.5 277.73,-155.0001 277.73,-162.0001"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node6" class="node">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/271" xlink:title="ZcashFoundation/zebra#271&#10;Sapling Key Agreement and&#10;KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-343 14.5,-343 14.5,-290 237.5,-290 237.5,-343"/>
<text text-anchor="middle" x="126" y="-327.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="126" y="-312.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="126" y="-297.8" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node7" class="node">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling note&#10;encryption/decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="515.5,-350.5 292.5,-350.5 292.5,-282.5 515.5,-282.5 515.5,-350.5"/>
<text text-anchor="middle" x="404" y="-335.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="404" y="-320.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note</text>
<text text-anchor="middle" x="404" y="-305.3" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="404" y="-290.3" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M237.87,-316.5C252.46,-316.5 267.46,-316.5 282.2,-316.5"/>
<polygon fill="#000000" stroke="#000000" points="282.36,-320.0001 292.36,-316.5 282.36,-313.0001 282.36,-320.0001"/>
</g>
<!-- ZcashFoundation/zebra#2362 -->
<g id="node8" class="node">
<title>ZcashFoundation/zebra#2362</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2362" xlink:title="ZcashFoundation/zebra#2362&#10;Part of ZIP 212: validate&#10;Sapling and Orchard&#10;output of coinbase&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="788,-318 556,-318 556,-235 788,-235 788,-318"/>
<text text-anchor="middle" x="672" y="-302.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2362</text>
<text text-anchor="middle" x="672" y="-287.8" font-family="Times,serif" font-size="14.00" fill="#000000">Part of ZIP 212: validate</text>
<text text-anchor="middle" x="672" y="-272.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling and Orchard</text>
<text text-anchor="middle" x="672" y="-257.8" font-family="Times,serif" font-size="14.00" fill="#000000">output of coinbase</text>
<text text-anchor="middle" x="672" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269&#45;&gt;ZcashFoundation/zebra#2362 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#269&#45;&gt;ZcashFoundation/zebra#2362</title>
<path fill="none" stroke="#000000" d="M515.72,-299.83C525.63,-298.35 535.7,-296.84 545.72,-295.35"/>
<polygon fill="#000000" stroke="#000000" points="546.3357,-298.797 555.71,-293.86 545.3031,-291.8735 546.3357,-298.797"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node9" class="node">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/325" xlink:title="ZcashFoundation/zebra#325&#10;Block Chain Scanning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-399.5 14.5,-399.5 14.5,-361.5 237.5,-361.5 237.5,-399.5"/>
<text text-anchor="middle" x="126" y="-384.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="126" y="-369.3" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id="node10" class="node">
<title>ZcashFoundation/zebra#619</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/619" xlink:title="ZcashFoundation/zebra#619&#10;Tracking: sync and&#10;validate mainnet" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-471 14.5,-471 14.5,-418 237.5,-418 237.5,-471"/>
<text text-anchor="middle" x="126" y="-455.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="126" y="-440.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="126" y="-425.8" font-family="Times,serif" font-size="14.00" fill="#000000">validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id="node11" class="node">
<title>ZcashFoundation/zebra#466</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/466" xlink:title="ZcashFoundation/zebra#466&#10;Design network&#10;integration test&#10;framework for Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="515.5,-478.5 292.5,-478.5 292.5,-410.5 515.5,-410.5 515.5,-478.5"/>
<text text-anchor="middle" x="404" y="-463.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="404" y="-448.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="404" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="404" y="-418.3" font-family="Times,serif" font-size="14.00" fill="#000000">framework for Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466</title>
<path fill="none" stroke="#000000" d="M237.87,-444.5C252.46,-444.5 267.46,-444.5 282.2,-444.5"/>
<polygon fill="#000000" stroke="#000000" points="282.36,-448.0001 292.36,-444.5 282.36,-441.0001 282.36,-448.0001"/>
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id="node12" class="node">
<title>ZcashFoundation/zebra#884</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/884" xlink:title="ZcashFoundation/zebra#884&#10;Tracking: sync&#10;correctness" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-550 14.5,-550 14.5,-497 237.5,-497 237.5,-550"/>
<text text-anchor="middle" x="126" y="-534.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="126" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="126" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000">correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id="node13" class="node">
<title>ZcashFoundation/zebra#899</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/899" xlink:title="ZcashFoundation/zebra#899&#10;Retcon new sync logic&#10;into RFC1" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="515.5,-550 292.5,-550 292.5,-497 515.5,-497 515.5,-550"/>
<text text-anchor="middle" x="404" y="-534.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="404" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="404" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000">into RFC1</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899</title>
<path fill="none" stroke="#000000" d="M237.87,-523.5C252.46,-523.5 267.46,-523.5 282.2,-523.5"/>
<polygon fill="#000000" stroke="#000000" points="282.36,-527.0001 292.36,-523.5 282.36,-520.0001 282.36,-527.0001"/>
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id="node14" class="node">
<title>ZcashFoundation/zebra#919</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/919" xlink:title="ZcashFoundation/zebra#919&#10;Rewrite&#10;`block::tests::generate`&#10;as proptest strategies." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-643.5 14.5,-643.5 14.5,-575.5 237.5,-575.5 237.5,-643.5"/>
<text text-anchor="middle" x="126" y="-628.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="126" y="-613.3" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="126" y="-598.3" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="126" y="-583.3" font-family="Times,serif" font-size="14.00" fill="#000000">as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id="node15" class="node">
<title>ZcashFoundation/zebra#1021</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1021" xlink:title="ZcashFoundation/zebra#1021&#10;Combine proptests and&#10;transcripts to perform&#10;top&#45;level integration&#10;tests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-651 288,-651 288,-568 520,-568 520,-651"/>
<text text-anchor="middle" x="404" y="-635.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="404" y="-620.8" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="404" y="-605.8" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="404" y="-590.8" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="404" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000">tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021</title>
<path fill="none" stroke="#000000" d="M237.87,-609.5C250.98,-609.5 264.42,-609.5 277.7,-609.5"/>
<polygon fill="#000000" stroke="#000000" points="277.82,-613.0001 287.82,-609.5 277.82,-606.0001 277.82,-613.0001"/>
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id="node16" class="node">
<title>ZcashFoundation/zebra#889</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/889" xlink:title="ZcashFoundation/zebra#889&#10;Tracking: inbound message&#10;handling." target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="515.5,-940 292.5,-940 292.5,-887 515.5,-887 515.5,-940"/>
<text text-anchor="middle" x="404" y="-924.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="404" y="-909.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="404" y="-894.8" font-family="Times,serif" font-size="14.00" fill="#000000">handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id="node17" class="node">
<title>ZcashFoundation/zebra#1077</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1077" xlink:title="ZcashFoundation/zebra#1077&#10;Send inbound&#10;`TransactionsById`&#10;requests to the mempool&#10;storage service" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="788,-955 556,-955 556,-872 788,-872 788,-955"/>
<text text-anchor="middle" x="672" y="-939.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="672" y="-924.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-909.8" font-family="Times,serif" font-size="14.00" fill="#000000">`TransactionsById`</text>
<text text-anchor="middle" x="672" y="-894.8" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="672" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000">storage service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M515.72,-913.5C525.52,-913.5 535.49,-913.5 545.41,-913.5"/>
<polygon fill="#000000" stroke="#000000" points="545.71,-917.0001 555.71,-913.5 545.71,-910.0001 545.71,-917.0001"/>
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id="node18" class="node">
<title>ZcashFoundation/zebra#1048</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1048" xlink:title="ZcashFoundation/zebra#1048&#10;Test translation for&#10;zebra&#45;network::{Request,&#10;Response} protocol" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-947.5 10,-947.5 10,-879.5 242,-879.5 242,-947.5"/>
<text text-anchor="middle" x="126" y="-932.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="126" y="-917.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="126" y="-902.3" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="126" y="-887.3" font-family="Times,serif" font-size="14.00" fill="#000000">Response} protocol</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889</title>
<path fill="none" stroke="#000000" d="M242.29,-913.5C255.45,-913.5 268.89,-913.5 282.12,-913.5"/>
<polygon fill="#000000" stroke="#000000" points="282.18,-917.0001 292.18,-913.5 282.18,-910.0001 282.18,-917.0001"/>
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#1080</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1080" xlink:title="ZcashFoundation/zebra#1080&#10;Send inbound&#10;`PushTransaction`s&#10;broadcasts to the mempool&#10;download and verify&#10;stream" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="788,-853.5 556,-853.5 556,-755.5 788,-755.5 788,-853.5"/>
<text text-anchor="middle" x="672" y="-838.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="672" y="-823.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-808.3" font-family="Times,serif" font-size="14.00" fill="#000000">`PushTransaction`s</text>
<text text-anchor="middle" x="672" y="-793.3" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="672" y="-778.3" font-family="Times,serif" font-size="14.00" fill="#000000">download and verify</text>
<text text-anchor="middle" x="672" y="-763.3" font-family="Times,serif" font-size="14.00" fill="#000000">stream</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id="node20" class="node">
<title>ZcashFoundation/zebra#1081</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1081" xlink:title="ZcashFoundation/zebra#1081&#10;Send inbound&#10;`AdvertiseTransactionIds`&#10;broadcasts to the mempool&#10;download &amp; verify stream" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="788,-737 556,-737 556,-654 788,-654 788,-737"/>
<text text-anchor="middle" x="672" y="-721.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="672" y="-706.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-691.8" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransactionIds`</text>
<text text-anchor="middle" x="672" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="672" y="-661.8" font-family="Times,serif" font-size="14.00" fill="#000000">download &amp; verify stream</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2104 -->
<g id="node21" class="node">
<title>ZcashFoundation/zebra#2104</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2104" xlink:title="ZcashFoundation/zebra#2104&#10;Implement a&#10;`Halo2Verifier` async&#10;service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-1033.5 10,-1033.5 10,-965.5 242,-965.5 242,-1033.5"/>
<text text-anchor="middle" x="126" y="-1018.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2104</text>
<text text-anchor="middle" x="126" y="-1003.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement a</text>
<text text-anchor="middle" x="126" y="-988.3" font-family="Times,serif" font-size="14.00" fill="#000000">`Halo2Verifier` async</text>
<text text-anchor="middle" x="126" y="-973.3" font-family="Times,serif" font-size="14.00" fill="#000000">service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2105 -->
<g id="node22" class="node">
<title>ZcashFoundation/zebra#2105</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2105" xlink:title="ZcashFoundation/zebra#2105&#10;Validate Transaction::V5&#10;Halo2 proofs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1026 288,-1026 288,-973 520,-973 520,-1026"/>
<text text-anchor="middle" x="404" y="-1010.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2105</text>
<text text-anchor="middle" x="404" y="-995.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate Transaction::V5</text>
<text text-anchor="middle" x="404" y="-980.8" font-family="Times,serif" font-size="14.00" fill="#000000">Halo2 proofs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2104&#45;&gt;ZcashFoundation/zebra#2105 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#2104&#45;&gt;ZcashFoundation/zebra#2105</title>
<path fill="none" stroke="#000000" d="M242.29,-999.5C253.91,-999.5 265.75,-999.5 277.47,-999.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-1003.0001 287.73,-999.5 277.73,-996.0001 277.73,-1003.0001"/>
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id="node23" class="node">
<title>ZcashFoundation/zebra#1400</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1400" xlink:title="ZcashFoundation/zebra#1400&#10;Test that zcashd and&#10;Zebra can sync from Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-1188 10,-1188 10,-1135 242,-1135 242,-1188"/>
<text text-anchor="middle" x="126" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="126" y="-1157.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="126" y="-1142.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra can sync from Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#2200</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2200" xlink:title="ZcashFoundation/zebra#2200&#10;Upgrade to latest tokio" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-1366.5 10,-1366.5 10,-1328.5 242,-1328.5 242,-1366.5"/>
<text text-anchor="middle" x="126" y="-1351.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2200</text>
<text text-anchor="middle" x="126" y="-1336.3" font-family="Times,serif" font-size="14.00" fill="#000000">Upgrade to latest tokio</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2163 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#2163</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2163" xlink:title="ZcashFoundation/zebra#2163&#10;Security: Spawn each&#10;initial peer handshake in&#10;a separate task, Credit:&#10;Equilibrium" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1672 288,-1672 288,-1589 520,-1589 520,-1672"/>
<text text-anchor="middle" x="404" y="-1656.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2163</text>
<text text-anchor="middle" x="404" y="-1641.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Spawn each</text>
<text text-anchor="middle" x="404" y="-1626.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peer handshake in</text>
<text text-anchor="middle" x="404" y="-1611.8" font-family="Times,serif" font-size="14.00" fill="#000000">a separate task, Credit:</text>
<text text-anchor="middle" x="404" y="-1596.8" font-family="Times,serif" font-size="14.00" fill="#000000">Equilibrium</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2163 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2163</title>
<path fill="none" stroke="#000000" d="M134.81,-1366.7C155.63,-1410.1 211.89,-1517 288,-1579.5 289.37,-1580.6 290.78,-1581.7 292.2,-1582.8"/>
<polygon fill="#000000" stroke="#000000" points="290.4617,-1585.8585 300.64,-1588.8 294.5176,-1580.1532 290.4617,-1585.8585"/>
</g>
<!-- ZcashFoundation/zebra#2573 -->
<g id="node26" class="node">
<title>ZcashFoundation/zebra#2573</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2573" xlink:title="ZcashFoundation/zebra#2573&#10;Remove redundant watch&#10;values once our Tokio&#10;dependency is updated" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1570.5 288,-1570.5 288,-1502.5 520,-1502.5 520,-1570.5"/>
<text text-anchor="middle" x="404" y="-1555.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2573</text>
<text text-anchor="middle" x="404" y="-1540.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove redundant watch</text>
<text text-anchor="middle" x="404" y="-1525.3" font-family="Times,serif" font-size="14.00" fill="#000000">values once our Tokio</text>
<text text-anchor="middle" x="404" y="-1510.3" font-family="Times,serif" font-size="14.00" fill="#000000">dependency is updated</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2573 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2573</title>
<path fill="none" stroke="#000000" d="M143.15,-1366.9C170.93,-1397.3 228.66,-1456.4 288,-1492.5 290.99,-1494.3 294.07,-1496.1 297.21,-1497.8"/>
<polygon fill="#000000" stroke="#000000" points="295.7257,-1500.9734 306.21,-1502.5 298.9661,-1494.7685 295.7257,-1500.9734"/>
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id="node27" class="node">
<title>ZcashFoundation/zebra#1086</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1086" xlink:title="ZcashFoundation/zebra#1086&#10;Remove git dependencies&#10;on Hyper, Metrics, Tower" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1484 288,-1484 288,-1431 520,-1431 520,-1484"/>
<text text-anchor="middle" x="404" y="-1468.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1086</text>
<text text-anchor="middle" x="404" y="-1453.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove git dependencies</text>
<text text-anchor="middle" x="404" y="-1438.8" font-family="Times,serif" font-size="14.00" fill="#000000">on Hyper, Metrics, Tower</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#1086 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#1086</title>
<path fill="none" stroke="#000000" d="M164.04,-1366.5C196.5,-1382.4 244.67,-1405 288,-1421.5 293.43,-1423.6 299.03,-1425.6 304.71,-1427.6"/>
<polygon fill="#000000" stroke="#000000" points="303.7153,-1430.959 314.31,-1430.9 305.9909,-1424.3392 303.7153,-1430.959"/>
</g>
<!-- ZcashFoundation/zebra#2735 -->
<g id="node28" class="node">
<title>ZcashFoundation/zebra#2735</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2735" xlink:title="ZcashFoundation/zebra#2735&#10;Upgrade tokio&#45;util from&#10;0.5.1 to 0.6.8" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1413 288,-1413 288,-1360 520,-1360 520,-1413"/>
<text text-anchor="middle" x="404" y="-1397.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2735</text>
<text text-anchor="middle" x="404" y="-1382.8" font-family="Times,serif" font-size="14.00" fill="#000000">Upgrade tokio&#45;util from</text>
<text text-anchor="middle" x="404" y="-1367.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.5.1 to 0.6.8</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2735 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2735</title>
<path fill="none" stroke="#000000" d="M242.29,-1363.8C254.03,-1365.5 265.99,-1367.1 277.83,-1368.8"/>
<polygon fill="#000000" stroke="#000000" points="277.3384,-1372.2652 287.73,-1370.2 278.3186,-1365.3342 277.3384,-1372.2652"/>
</g>
<!-- ZcashFoundation/zebra#2202 -->
<g id="node29" class="node">
<title>ZcashFoundation/zebra#2202</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2202" xlink:title="ZcashFoundation/zebra#2202&#10;Move batch cryptography&#10;flushes to a blocking&#10;thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1341.5 288,-1341.5 288,-1273.5 520,-1273.5 520,-1341.5"/>
<text text-anchor="middle" x="404" y="-1326.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="404" y="-1311.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="404" y="-1296.3" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="404" y="-1281.3" font-family="Times,serif" font-size="14.00" fill="#000000">thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202</title>
<path fill="none" stroke="#000000" d="M242.29,-1330.8C254.03,-1329.1 265.99,-1327.4 277.83,-1325.7"/>
<polygon fill="#000000" stroke="#000000" points="278.3672,-1329.1586 287.73,-1324.2 277.3185,-1322.2376 278.3672,-1329.1586"/>
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id="node30" class="node">
<title>ZcashFoundation/zebra#2201</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2201" xlink:title="ZcashFoundation/zebra#2201&#10;Move the metrics recorder&#10;to a blocking thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1255 288,-1255 288,-1202 520,-1202 520,-1255"/>
<text text-anchor="middle" x="404" y="-1239.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="404" y="-1224.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="404" y="-1209.8" font-family="Times,serif" font-size="14.00" fill="#000000">to a blocking thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201</title>
<path fill="none" stroke="#000000" d="M159.02,-1328.4C191.21,-1310.4 241.91,-1283.3 288,-1264.5 293.06,-1262.4 298.29,-1260.4 303.6,-1258.5"/>
<polygon fill="#000000" stroke="#000000" points="305.0193,-1261.7081 313.22,-1255 302.626,-1255.13 305.0193,-1261.7081"/>
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id="node31" class="node">
<title>ZcashFoundation/zebra#2268</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2268" xlink:title="ZcashFoundation/zebra#2268&#10;Replace atomics with&#10;watch or oneshot channels" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1184 288,-1184 288,-1131 520,-1131 520,-1184"/>
<text text-anchor="middle" x="404" y="-1168.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="404" y="-1153.8" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="404" y="-1138.8" font-family="Times,serif" font-size="14.00" fill="#000000">watch or oneshot channels</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268</title>
<path fill="none" stroke="#000000" d="M140.84,-1328.3C167.05,-1295.7 224.79,-1229.4 288,-1192.5 290.39,-1191.1 292.84,-1189.8 295.33,-1188.5"/>
<polygon fill="#000000" stroke="#000000" points="297.1052,-1191.5284 304.56,-1184 294.0375,-1185.2364 297.1052,-1191.5284"/>
</g>
<!-- ZcashFoundation/zebra#2391 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#2391</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2391" xlink:title="ZcashFoundation/zebra#2391&#10;Reduce the dependencies&#10;on different versions of&#10;`rand`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1112.5 288,-1112.5 288,-1044.5 520,-1044.5 520,-1112.5"/>
<text text-anchor="middle" x="404" y="-1097.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2391</text>
<text text-anchor="middle" x="404" y="-1082.3" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce the dependencies</text>
<text text-anchor="middle" x="404" y="-1067.3" font-family="Times,serif" font-size="14.00" fill="#000000">on different versions of</text>
<text text-anchor="middle" x="404" y="-1052.3" font-family="Times,serif" font-size="14.00" fill="#000000">`rand`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391</title>
<path fill="none" stroke="#000000" d="M144.81,-1328.2C171.05,-1300.7 219.13,-1247.6 252,-1196.5 272,-1165.4 260.67,-1146.4 288,-1121.5 288.98,-1120.6 289.98,-1119.7 291.01,-1118.9"/>
<polygon fill="#000000" stroke="#000000" points="293.3982,-1121.4782 299.18,-1112.6 289.1237,-1115.9348 293.3982,-1121.4782"/>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1686" xlink:title="ZcashFoundation/zebra#1686&#10;Delete isolated::Wrapper" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="788,-1508.5 556,-1508.5 556,-1470.5 788,-1470.5 788,-1508.5"/>
<text text-anchor="middle" x="672" y="-1493.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="672" y="-1478.3" font-family="Times,serif" font-size="14.00" fill="#000000">Delete isolated::Wrapper</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686</title>
<path fill="none" stroke="#000000" d="M520.38,-1471.4C528.71,-1472.4 537.14,-1473.4 545.53,-1474.4"/>
<polygon fill="#000000" stroke="#000000" points="545.3998,-1477.9087 555.74,-1475.6 546.2169,-1470.9566 545.3998,-1477.9087"/>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2112" xlink:title="ZcashFoundation/zebra#2112&#10;Integrate&#10;TurboWish/tokio&#45;console" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="788,-1452 556,-1452 556,-1399 788,-1399 788,-1452"/>
<text text-anchor="middle" x="672" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="672" y="-1421.8" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="672" y="-1406.8" font-family="Times,serif" font-size="14.00" fill="#000000">TurboWish/tokio&#45;console</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112</title>
<path fill="none" stroke="#000000" d="M520.38,-1443.6C528.71,-1442.6 537.14,-1441.6 545.53,-1440.6"/>
<polygon fill="#000000" stroke="#000000" points="546.2169,-1444.0434 555.74,-1439.4 545.3998,-1437.0913 546.2169,-1444.0434"/>
</g>
<!-- ZcashFoundation/zebra#2193 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#2193</title>
<g id="a_node35"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2193" xlink:title="ZcashFoundation/zebra#2193&#10;Redesign zebra&#45;network so&#10;it&#39;s less sensitive to&#10;message order, timing,&#10;buffer size" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1056,-1467 824,-1467 824,-1384 1056,-1384 1056,-1467"/>
<text text-anchor="middle" x="940" y="-1451.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2193</text>
<text text-anchor="middle" x="940" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000">Redesign zebra&#45;network so</text>
<text text-anchor="middle" x="940" y="-1421.8" font-family="Times,serif" font-size="14.00" fill="#000000">it&#39;s less sensitive to</text>
<text text-anchor="middle" x="940" y="-1406.8" font-family="Times,serif" font-size="14.00" fill="#000000">message order, timing,</text>
<text text-anchor="middle" x="940" y="-1391.8" font-family="Times,serif" font-size="14.00" fill="#000000">buffer size</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193</title>
<path fill="none" stroke="#000000" d="M788.38,-1425.5C796.71,-1425.5 805.14,-1425.5 813.53,-1425.5"/>
<polygon fill="#000000" stroke="#000000" points="813.74,-1429.0001 823.74,-1425.5 813.74,-1422.0001 813.74,-1429.0001"/>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#1850</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1850" xlink:title="ZcashFoundation/zebra#1850&#10;Security: Limit the&#10;number of outbound peer&#10;connections when dialing&#10;new peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="788,-1926 556,-1926 556,-1843 788,-1843 788,-1926"/>
<text text-anchor="middle" x="672" y="-1910.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1850</text>
<text text-anchor="middle" x="672" y="-1895.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="672" y="-1880.8" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound peer</text>
<text text-anchor="middle" x="672" y="-1865.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections when dialing</text>
<text text-anchor="middle" x="672" y="-1850.8" font-family="Times,serif" font-size="14.00" fill="#000000">new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2867 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#2867</title>
<g id="a_node37"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2867" xlink:title="ZcashFoundation/zebra#2867&#10;Tracking: Zebra Beta&#10;Release" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1324,-1885 1092,-1885 1092,-1832 1324,-1832 1324,-1885"/>
<text text-anchor="middle" x="1208" y="-1869.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2867</text>
<text text-anchor="middle" x="1208" y="-1854.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: Zebra Beta</text>
<text text-anchor="middle" x="1208" y="-1839.8" font-family="Times,serif" font-size="14.00" fill="#000000">Release</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#1850&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M788.3,-1878.9C874.87,-1874.7 992.93,-1868.9 1081.8,-1864.6"/>
<polygon fill="#000000" stroke="#000000" points="1082.0853,-1868.0903 1091.9,-1864.1 1081.7391,-1861.0988 1082.0853,-1868.0903"/>
</g>
<!-- ZcashFoundation/zebra#2902 -->
<g id="node38" class="node">
<title>ZcashFoundation/zebra#2902</title>
<g id="a_node38"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2902" xlink:title="ZcashFoundation/zebra#2902&#10;Security: Limit the&#10;number of outbound&#10;connections from both&#10;seed and crawler peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1056,-1989 824,-1989 824,-1906 1056,-1906 1056,-1989"/>
<text text-anchor="middle" x="940" y="-1973.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2902</text>
<text text-anchor="middle" x="940" y="-1958.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="940" y="-1943.8" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound</text>
<text text-anchor="middle" x="940" y="-1928.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections from both</text>
<text text-anchor="middle" x="940" y="-1913.8" font-family="Times,serif" font-size="14.00" fill="#000000">seed and crawler peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850&#45;&gt;ZcashFoundation/zebra#2902 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#1850&#45;&gt;ZcashFoundation/zebra#2902</title>
<path fill="none" stroke="#000000" d="M788.38,-1911.9C796.81,-1913.8 805.33,-1915.8 813.81,-1917.8"/>
<polygon fill="#000000" stroke="#000000" points="813.1976,-1921.2527 823.74,-1920.2 814.8421,-1914.4486 813.1976,-1921.2527"/>
</g>
<!-- ZcashFoundation/zebra#2902&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#2902&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M1056.4,-1908.9C1077.1,-1902 1098.5,-1894.9 1118.3,-1888.3"/>
<polygon fill="#000000" stroke="#000000" points="1119.6,-1891.5568 1128,-1885.1 1117.4069,-1884.9092 1119.6,-1891.5568"/>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id="node39" class="node">
<title>ZcashFoundation/zebra#1851</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1851" xlink:title="ZcashFoundation/zebra#1851&#10;Security: Limit the&#10;number of inbound peer&#10;connections in the&#10;listener task" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="788,-1825 556,-1825 556,-1742 788,-1742 788,-1825"/>
<text text-anchor="middle" x="672" y="-1809.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1851</text>
<text text-anchor="middle" x="672" y="-1794.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="672" y="-1779.8" font-family="Times,serif" font-size="14.00" fill="#000000">number of inbound peer</text>
<text text-anchor="middle" x="672" y="-1764.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in the</text>
<text text-anchor="middle" x="672" y="-1749.8" font-family="Times,serif" font-size="14.00" fill="#000000">listener task</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#1851&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M788.25,-1813.6C800.28,-1816.1 812.35,-1818.5 824,-1820.5 909.48,-1835.1 1006.7,-1844.6 1081.9,-1850.5"/>
<polygon fill="#000000" stroke="#000000" points="1081.6527,-1853.9913 1091.9,-1851.3 1082.211,-1847.0136 1081.6527,-1853.9913"/>
</g>
<!-- ZcashFoundation/zebra#2857 -->
<g id="node40" class="node">
<title>ZcashFoundation/zebra#2857</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2857" xlink:title="ZcashFoundation/zebra#2857&#10;Update the README goals&#10;and scope for our first&#10;Beta release" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1056,-1811.5 824,-1811.5 824,-1743.5 1056,-1743.5 1056,-1811.5"/>
<text text-anchor="middle" x="940" y="-1796.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2857</text>
<text text-anchor="middle" x="940" y="-1781.3" font-family="Times,serif" font-size="14.00" fill="#000000">Update the README goals</text>
<text text-anchor="middle" x="940" y="-1766.3" font-family="Times,serif" font-size="14.00" fill="#000000">and scope for our first</text>
<text text-anchor="middle" x="940" y="-1751.3" font-family="Times,serif" font-size="14.00" fill="#000000">Beta release</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2857&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge28" class="edge">
<title>ZcashFoundation/zebra#2857&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M1052.9,-1811.6C1072,-1817.4 1091.7,-1823.4 1110.4,-1829"/>
<polygon fill="#000000" stroke="#000000" points="1109.5164,-1832.3889 1120.1,-1831.9 1111.5216,-1825.6822 1109.5164,-1832.3889"/>
</g>
<!-- ZcashFoundation/zebra#2326 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#2326</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2326" xlink:title="ZcashFoundation/zebra#2326&#10;Security: Rate&#45;limit&#10;initial seed peer&#10;connections" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1056,-1725.5 824,-1725.5 824,-1657.5 1056,-1657.5 1056,-1725.5"/>
<text text-anchor="middle" x="940" y="-1710.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2326</text>
<text text-anchor="middle" x="940" y="-1695.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Rate&#45;limit</text>
<text text-anchor="middle" x="940" y="-1680.3" font-family="Times,serif" font-size="14.00" fill="#000000">initial seed peer</text>
<text text-anchor="middle" x="940" y="-1665.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2326&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge29" class="edge">
<title>ZcashFoundation/zebra#2326&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M1038.8,-1725.5C1044.7,-1728.4 1050.5,-1731.4 1056,-1734.5 1100.1,-1759.7 1144.4,-1797.7 1173.7,-1824.9"/>
<polygon fill="#000000" stroke="#000000" points="1171.5317,-1827.6669 1181.2,-1832 1176.3441,-1822.5835 1171.5317,-1827.6669"/>
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id="node42" class="node">
<title>ZcashFoundation/zebra#1083</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1083" xlink:title="ZcashFoundation/zebra#1083&#10;Send inbound&#10;`MempoolTransactionIds`&#10;requests to the mempool&#10;storage service" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="788,-636 556,-636 556,-553 788,-553 788,-636"/>
<text text-anchor="middle" x="672" y="-620.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="672" y="-605.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-590.8" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactionIds`</text>
<text text-anchor="middle" x="672" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="672" y="-560.8" font-family="Times,serif" font-size="14.00" fill="#000000">storage service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#936</title>
<g id="a_node43"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/936" xlink:title="ZcashFoundation/zebra#936&#10;Design: mempool&#10;transaction handling" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="515.5,-722 292.5,-722 292.5,-669 515.5,-669 515.5,-722"/>
<text text-anchor="middle" x="404" y="-706.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#936</text>
<text text-anchor="middle" x="404" y="-691.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design: mempool</text>
<text text-anchor="middle" x="404" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction handling</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077 -->
<g id="edge30" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M422.62,-722.13C448.85,-758.03 499.82,-822.11 556,-862.5 557.85,-863.83 559.74,-865.14 561.67,-866.42"/>
<polygon fill="#000000" stroke="#000000" points="559.978,-869.4911 570.3,-871.88 563.7206,-863.5756 559.978,-869.4911"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge31" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M469.22,-722.03C492.57,-731.52 519.75,-742.58 546.48,-753.45"/>
<polygon fill="#000000" stroke="#000000" points="545.3181,-756.7558 555.9,-757.28 547.9547,-750.2713 545.3181,-756.7558"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge32" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M515.72,-695.5C525.52,-695.5 535.49,-695.5 545.41,-695.5"/>
<polygon fill="#000000" stroke="#000000" points="545.71,-699.0001 555.71,-695.5 545.71,-692.0001 545.71,-699.0001"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083 -->
<g id="edge33" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M492.98,-668.92C502.15,-665.87 511.29,-662.7 520,-659.5 522.99,-658.4 542.14,-650.27 565.9,-640.1"/>
<polygon fill="#000000" stroke="#000000" points="567.3973,-643.2663 575.21,-636.11 564.6398,-636.8322 567.3973,-643.2663"/>
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id="node44" class="node">
<title>ZcashFoundation/zebra#571</title>
<g id="a_node44"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/571" xlink:title="ZcashFoundation/zebra#571&#10;Create large transaction&#10;test cases for mempool&#10;testing" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="783.5,-534.5 560.5,-534.5 560.5,-466.5 783.5,-466.5 783.5,-534.5"/>
<text text-anchor="middle" x="672" y="-519.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="672" y="-504.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="672" y="-489.3" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="672" y="-474.3" font-family="Times,serif" font-size="14.00" fill="#000000">testing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571 -->
<g id="edge34" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M508.84,-668.84C512.82,-666.03 516.57,-662.93 520,-659.5 558.17,-621.33 518.88,-582.69 556,-543.5 556.66,-542.8 557.34,-542.11 558.02,-541.44"/>
<polygon fill="#000000" stroke="#000000" points="560.6008,-543.8314 565.8,-534.6 555.9788,-538.5743 560.6008,-543.8314"/>
</g>
<!-- ZcashFoundation/zebra#2041 -->
<g id="node45" class="node">
<title>ZcashFoundation/zebra#2041</title>
<g id="a_node45"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2041" xlink:title="ZcashFoundation/zebra#2041&#10;Orchard: derive&#10;OutgoingCipherKey" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="520,-264 288,-264 288,-211 520,-211 520,-264"/>
<text text-anchor="middle" x="404" y="-248.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2041</text>
<text text-anchor="middle" x="404" y="-233.8" font-family="Times,serif" font-size="14.00" fill="#000000">Orchard: derive</text>
<text text-anchor="middle" x="404" y="-218.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutgoingCipherKey</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2041&#45;&gt;ZcashFoundation/zebra#2362 -->
<g id="edge35" class="edge">
<title>ZcashFoundation/zebra#2041&#45;&gt;ZcashFoundation/zebra#2362</title>
<path fill="none" stroke="#000000" d="M520.38,-254.44C528.81,-255.66 537.33,-256.9 545.81,-258.14"/>
<polygon fill="#000000" stroke="#000000" points="545.3412,-261.6085 555.74,-259.58 546.3458,-254.681 545.3412,-261.6085"/>
</g>
<!-- ZcashFoundation/zebra#2900 -->
<g id="node46" class="node">
<title>ZcashFoundation/zebra#2900</title>
<g id="a_node46"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2900" xlink:title="ZcashFoundation/zebra#2900&#10;Security: Limit the&#10;number of initial&#10;connection attempts to&#10;seed peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="788,-2027 556,-2027 556,-1944 788,-1944 788,-2027"/>
<text text-anchor="middle" x="672" y="-2011.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2900</text>
<text text-anchor="middle" x="672" y="-1996.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="672" y="-1981.8" font-family="Times,serif" font-size="14.00" fill="#000000">number of initial</text>
<text text-anchor="middle" x="672" y="-1966.8" font-family="Times,serif" font-size="14.00" fill="#000000">connection attempts to</text>
<text text-anchor="middle" x="672" y="-1951.8" font-family="Times,serif" font-size="14.00" fill="#000000">seed peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2900&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge36" class="edge">
<title>ZcashFoundation/zebra#2900&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M788.14,-2012.2C866.45,-2024.8 970.66,-2030.6 1056,-1997.5 1109.5,-1976.7 1155.6,-1927.4 1182.6,-1893.5"/>
<polygon fill="#000000" stroke="#000000" points="1185.6899,-1895.2311 1189.1,-1885.2 1180.1787,-1890.9151 1185.6899,-1895.2311"/>
</g>
<!-- ZcashFoundation/zebra#2900&#45;&gt;ZcashFoundation/zebra#2902 -->
<g id="edge37" class="edge">
<title>ZcashFoundation/zebra#2900&#45;&gt;ZcashFoundation/zebra#2902</title>
<path fill="none" stroke="#000000" d="M788.38,-1969C796.81,-1967.8 805.33,-1966.6 813.81,-1965.4"/>
<polygon fill="#000000" stroke="#000000" points="814.3266,-1968.8619 823.74,-1964 813.3493,-1961.9304 814.3266,-1968.8619"/>
</g>
<!-- ZcashFoundation/zebra#2901 -->
<g id="node47" class="node">
<title>ZcashFoundation/zebra#2901</title>
<g id="a_node47"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2901" xlink:title="ZcashFoundation/zebra#2901&#10;Security: Rate&#45;limit&#10;inbound peer connection&#10;attempts" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1056,-1639.5 824,-1639.5 824,-1571.5 1056,-1571.5 1056,-1639.5"/>
<text text-anchor="middle" x="940" y="-1624.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2901</text>
<text text-anchor="middle" x="940" y="-1609.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Rate&#45;limit</text>
<text text-anchor="middle" x="940" y="-1594.3" font-family="Times,serif" font-size="14.00" fill="#000000">inbound peer connection</text>
<text text-anchor="middle" x="940" y="-1579.3" font-family="Times,serif" font-size="14.00" fill="#000000">attempts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2901&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge38" class="edge">
<title>ZcashFoundation/zebra#2901&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M1042.7,-1639.6C1047.4,-1642.3 1051.8,-1645.3 1056,-1648.5 1118.5,-1696 1166.4,-1776.3 1190.6,-1822.6"/>
<polygon fill="#000000" stroke="#000000" points="1187.6013,-1824.4212 1195.3,-1831.7 1193.8208,-1821.2089 1187.6013,-1824.4212"/>
</g>
<!-- ZcashFoundation/zebra#2870 -->
<g id="node48" class="node">
<title>ZcashFoundation/zebra#2870</title>
<g id="a_node48"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2870" xlink:title="ZcashFoundation/zebra#2870&#10;Improve Zebra&#10;documentation for beta&#10;release" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="1056,-1553.5 824,-1553.5 824,-1485.5 1056,-1485.5 1056,-1553.5"/>
<text text-anchor="middle" x="940" y="-1538.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2870</text>
<text text-anchor="middle" x="940" y="-1523.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve Zebra</text>
<text text-anchor="middle" x="940" y="-1508.3" font-family="Times,serif" font-size="14.00" fill="#000000">documentation for beta</text>
<text text-anchor="middle" x="940" y="-1493.3" font-family="Times,serif" font-size="14.00" fill="#000000">release</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2870&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge39" class="edge">
<title>ZcashFoundation/zebra#2870&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M1044.4,-1553.6C1048.5,-1556.3 1052.4,-1559.3 1056,-1562.5 1137.3,-1634.6 1181.1,-1760.5 1198.7,-1822.2"/>
<polygon fill="#000000" stroke="#000000" points="1195.3466,-1823.2048 1201.4,-1831.9 1202.0902,-1821.3277 1195.3466,-1823.2048"/>
</g>
<!-- ZcashFoundation/zebra#2903 -->
<g id="node49" class="node">
<title>ZcashFoundation/zebra#2903</title>
<g id="a_node49"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2903" xlink:title="ZcashFoundation/zebra#2903&#10;Security: Track the&#10;number of open&#10;connections in Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-2067.5 10,-2067.5 10,-1999.5 242,-1999.5 242,-2067.5"/>
<text text-anchor="middle" x="126" y="-2052.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2903</text>
<text text-anchor="middle" x="126" y="-2037.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Track the</text>
<text text-anchor="middle" x="126" y="-2022.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of open</text>
<text text-anchor="middle" x="126" y="-2007.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2903&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge40" class="edge">
<title>ZcashFoundation/zebra#2903&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M234.98,-2067.5C416.46,-2117.6 787.18,-2191.4 1056,-2055.5 1123.8,-2021.2 1170.2,-1941.1 1192.6,-1894.2"/>
<polygon fill="#000000" stroke="#000000" points="1195.7921,-1895.6368 1196.9,-1885.1 1189.4631,-1892.6461 1195.7921,-1895.6368"/>
</g>
<!-- ZcashFoundation/zebra#2904 -->
<g id="node50" class="node">
<title>ZcashFoundation/zebra#2904</title>
<g id="a_node50"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2904" xlink:title="ZcashFoundation/zebra#2904&#10;Security: Track the&#10;number of open inbound&#10;and outbound connections&#10;separately" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1995 288,-1995 288,-1912 520,-1912 520,-1995"/>
<text text-anchor="middle" x="404" y="-1979.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2904</text>
<text text-anchor="middle" x="404" y="-1964.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Track the</text>
<text text-anchor="middle" x="404" y="-1949.8" font-family="Times,serif" font-size="14.00" fill="#000000">number of open inbound</text>
<text text-anchor="middle" x="404" y="-1934.8" font-family="Times,serif" font-size="14.00" fill="#000000">and outbound connections</text>
<text text-anchor="middle" x="404" y="-1919.8" font-family="Times,serif" font-size="14.00" fill="#000000">separately</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2903&#45;&gt;ZcashFoundation/zebra#2904 -->
<g id="edge41" class="edge">
<title>ZcashFoundation/zebra#2903&#45;&gt;ZcashFoundation/zebra#2904</title>
<path fill="none" stroke="#000000" d="M242.29,-2000C254.03,-1996.7 265.99,-1993.2 277.83,-1989.8"/>
<polygon fill="#000000" stroke="#000000" points="279.06,-1993.0895 287.73,-1987 277.1549,-1986.3537 279.06,-1993.0895"/>
</g>
<!-- ZcashFoundation/zebra#2904&#45;&gt;ZcashFoundation/zebra#1850 -->
<g id="edge42" class="edge">
<title>ZcashFoundation/zebra#2904&#45;&gt;ZcashFoundation/zebra#1850</title>
<path fill="none" stroke="#000000" d="M520.38,-1923.5C528.81,-1921.4 537.33,-1919.2 545.81,-1917"/>
<polygon fill="#000000" stroke="#000000" points="546.9527,-1920.3189 555.74,-1914.4 545.1795,-1913.5472 546.9527,-1920.3189"/>
</g>
<!-- ZcashFoundation/zebra#2904&#45;&gt;ZcashFoundation/zebra#2867 -->
<g id="edge43" class="edge">
<title>ZcashFoundation/zebra#2904&#45;&gt;ZcashFoundation/zebra#2867</title>
<path fill="none" stroke="#000000" d="M464.72,-1995.2C491.46,-2011.1 524.02,-2027.4 556,-2035.5 663.76,-2062.7 955.22,-2071.4 1056,-2024.5 1115.6,-1996.8 1162.5,-1933.8 1187.7,-1893.9"/>
<polygon fill="#000000" stroke="#000000" points="1190.7864,-1895.561 1193,-1885.2 1184.8083,-1891.9192 1190.7864,-1895.561"/>
</g>
<!-- ZcashFoundation/zebra#2904&#45;&gt;ZcashFoundation/zebra#1851 -->
<g id="edge44" class="edge">
<title>ZcashFoundation/zebra#2904&#45;&gt;ZcashFoundation/zebra#1851</title>
<path fill="none" stroke="#000000" d="M450.27,-1911.7C479.25,-1886.9 518.17,-1856.1 556,-1833.5 557.95,-1832.3 559.93,-1831.2 561.94,-1830"/>
<polygon fill="#000000" stroke="#000000" points="563.8119,-1832.9656 570.91,-1825.1 560.4561,-1826.8225 563.8119,-1832.9656"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node51"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/196" xlink:title="ZcashFoundation/zebra#196&#10;Tracking: transaction&#10;validation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-2227 14.5,-2227 14.5,-2174 237.5,-2174 237.5,-2227"/>
<text text-anchor="middle" x="126" y="-2211.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="126" y="-2196.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="126" y="-2181.8" font-family="Times,serif" font-size="14.00" fill="#000000">validation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#1486</title>
<g id="a_node52"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1486" xlink:title="ZcashFoundation/zebra#1486&#10;Tune RocksDB memory usage" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-2219.5 288,-2219.5 288,-2181.5 520,-2181.5 520,-2219.5"/>
<text text-anchor="middle" x="404" y="-2204.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="404" y="-2189.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tune RocksDB memory usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486 -->
<g id="edge45" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M237.87,-2200.5C250.98,-2200.5 264.42,-2200.5 277.7,-2200.5"/>
<polygon fill="#000000" stroke="#000000" points="277.82,-2204.0001 287.82,-2200.5 277.82,-2197.0001 277.82,-2204.0001"/>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node53" class="node">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node53"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2631" xlink:title="ZcashFoundation/zebra#2631&#10;Send committed spent&#10;OutPoints &amp; nullifiers to&#10;the mempool for rejection" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-2313.5 10,-2313.5 10,-2245.5 242,-2245.5 242,-2313.5"/>
<text text-anchor="middle" x="126" y="-2298.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="126" y="-2283.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="126" y="-2268.3" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="126" y="-2253.3" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#950 -->
<g id="node54" class="node">
<title>ZcashFoundation/zebra#950</title>
<g id="a_node54"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/950" xlink:title="ZcashFoundation/zebra#950&#10;Demo: compare zcashd vs&#10;zebrad ludicrous speed on&#10;syncing" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-2399.5 14.5,-2399.5 14.5,-2331.5 237.5,-2331.5 237.5,-2399.5"/>
<text text-anchor="middle" x="126" y="-2384.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="126" y="-2369.3" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="126" y="-2354.3" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="126" y="-2339.3" font-family="Times,serif" font-size="14.00" fill="#000000">syncing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#692 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#692</title>
<g id="a_node55"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/692" xlink:title="ZcashFoundation/zebra#692&#10;Use git metadata and&#10;platform info in Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-2471 14.5,-2471 14.5,-2418 237.5,-2418 237.5,-2471"/>
<text text-anchor="middle" x="126" y="-2455.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="126" y="-2440.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="126" y="-2425.8" font-family="Times,serif" font-size="14.00" fill="#000000">platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node56"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1791" xlink:title="ZcashFoundation/zebra#1791&#10;Re&#45;enable `sync_large_che&#10;ckpoints_testnet` test" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-2643 288,-2643 288,-2590 520,-2590 520,-2643"/>
<text text-anchor="middle" x="404" y="-2627.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="404" y="-2612.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable `sync_large_che</text>
<text text-anchor="middle" x="404" y="-2597.8" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1007 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#1007</title>
<g id="a_node57"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/1007" xlink:title="ZcashFoundation/zebra#1007&#10;Draft RFC: Initial draft&#10;for basic network&#10;integration testing" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="788,-2650.5 556,-2650.5 556,-2646.5 552,-2646.5 552,-2642.5 556,-2642.5 556,-2590.5 552,-2590.5 552,-2586.5 556,-2586.5 556,-2582.5 788,-2582.5 788,-2650.5"/>
<polyline fill="none" stroke="#000000" points="556,-2646.5 560,-2646.5 560,-2642.5 556,-2642.5 "/>
<polyline fill="none" stroke="#000000" points="556,-2590.5 560,-2590.5 560,-2586.5 556,-2586.5 "/>
<text text-anchor="middle" x="672" y="-2635.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="672" y="-2620.3" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="672" y="-2605.3" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="672" y="-2590.3" font-family="Times,serif" font-size="14.00" fill="#000000">integration testing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007 -->
<g id="edge46" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M520.38,-2616.5C528.71,-2616.5 537.14,-2616.5 545.53,-2616.5"/>
<polygon fill="#000000" stroke="#000000" points="545.74,-2620.0001 555.74,-2616.5 545.74,-2613.0001 545.74,-2620.0001"/>
</g>
<!-- ZcashFoundation/zebra#2331 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#2331</title>
<g id="a_node58"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2331" xlink:title="ZcashFoundation/zebra#2331&#10;Remove serde from zebra&#45;&#10;chain" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-2766 10,-2766 10,-2713 242,-2713 242,-2766"/>
<text text-anchor="middle" x="126" y="-2750.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2331</text>
<text text-anchor="middle" x="126" y="-2735.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove serde from zebra&#45;</text>
<text text-anchor="middle" x="126" y="-2720.8" font-family="Times,serif" font-size="14.00" fill="#000000">chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2560 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#2560</title>
<g id="a_node59"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2560" xlink:title="ZcashFoundation/zebra#2560&#10;Test History Tree&#10;serialization" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-2801 288,-2801 288,-2748 520,-2748 520,-2801"/>
<text text-anchor="middle" x="404" y="-2785.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2560</text>
<text text-anchor="middle" x="404" y="-2770.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test History Tree</text>
<text text-anchor="middle" x="404" y="-2755.8" font-family="Times,serif" font-size="14.00" fill="#000000">serialization</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2560 -->
<g id="edge47" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2560</title>
<path fill="none" stroke="#000000" d="M242.29,-2754.1C253.91,-2755.6 265.75,-2757.1 277.47,-2758.6"/>
<polygon fill="#000000" stroke="#000000" points="277.3693,-2762.1151 287.73,-2759.9 278.2493,-2755.1707 277.3693,-2762.1151"/>
</g>
<!-- ZcashFoundation/zebra#2042 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#2042</title>
<g id="a_node60"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2042" xlink:title="ZcashFoundation/zebra#2042&#10;zebra&#45;chain: Port array&#45;&#10;wrapper types to const&#10;generics" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-2729.5 288,-2729.5 288,-2661.5 520,-2661.5 520,-2729.5"/>
<text text-anchor="middle" x="404" y="-2714.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2042</text>
<text text-anchor="middle" x="404" y="-2699.3" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;chain: Port array&#45;</text>
<text text-anchor="middle" x="404" y="-2684.3" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper types to const</text>
<text text-anchor="middle" x="404" y="-2669.3" font-family="Times,serif" font-size="14.00" fill="#000000">generics</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042 -->
<g id="edge48" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042</title>
<path fill="none" stroke="#000000" d="M242.29,-2721.1C254.03,-2719.2 265.99,-2717.3 277.83,-2715.5"/>
<polygon fill="#000000" stroke="#000000" points="278.4165,-2718.9507 287.73,-2713.9 277.2997,-2712.0404 278.4165,-2718.9507"/>
</g>
<!-- ZcashFoundation/redjubjub#127 -->
<g id="node61" class="node">
<title>ZcashFoundation/redjubjub#127</title>
<g id="a_node61"><a xlink:href="https://github.com/ZcashFoundation/redjubjub/issues/127" xlink:title="ZcashFoundation/redjubjub#127&#10;VerificationKey should&#10;not reject small&#45;order&#10;points or the identity" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="252,-2917.5 0,-2917.5 0,-2849.5 252,-2849.5 252,-2917.5"/>
<text text-anchor="middle" x="126" y="-2902.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/redjubjub#127</text>
<text text-anchor="middle" x="126" y="-2887.3" font-family="Times,serif" font-size="14.00" fill="#000000">VerificationKey should</text>
<text text-anchor="middle" x="126" y="-2872.3" font-family="Times,serif" font-size="14.00" fill="#000000">not reject small&#45;order</text>
<text text-anchor="middle" x="126" y="-2857.3" font-family="Times,serif" font-size="14.00" fill="#000000">points or the identity</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2549 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#2549</title>
<g id="a_node62"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2549" xlink:title="ZcashFoundation/zebra#2549&#10;Fix Redjubjub to support&#10;low&#45;order Jubjub points,&#10;move small&#45;order&#10;exclusion checks to&#10;Sapling&#10;SpendAuthorizationKey and&#10;ValueCommit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-2947.5 288,-2947.5 288,-2819.5 520,-2819.5 520,-2947.5"/>
<text text-anchor="middle" x="404" y="-2932.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2549</text>
<text text-anchor="middle" x="404" y="-2917.3" font-family="Times,serif" font-size="14.00" fill="#000000">Fix Redjubjub to support</text>
<text text-anchor="middle" x="404" y="-2902.3" font-family="Times,serif" font-size="14.00" fill="#000000">low&#45;order Jubjub points,</text>
<text text-anchor="middle" x="404" y="-2887.3" font-family="Times,serif" font-size="14.00" fill="#000000">move small&#45;order</text>
<text text-anchor="middle" x="404" y="-2872.3" font-family="Times,serif" font-size="14.00" fill="#000000">exclusion checks to</text>
<text text-anchor="middle" x="404" y="-2857.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling</text>
<text text-anchor="middle" x="404" y="-2842.3" font-family="Times,serif" font-size="14.00" fill="#000000">SpendAuthorizationKey and</text>
<text text-anchor="middle" x="404" y="-2827.3" font-family="Times,serif" font-size="14.00" fill="#000000">ValueCommit</text>
</a>
</g>
</g>
<!-- ZcashFoundation/redjubjub#127&#45;&gt;ZcashFoundation/zebra#2549 -->
<g id="edge49" class="edge">
<title>ZcashFoundation/redjubjub#127&#45;&gt;ZcashFoundation/zebra#2549</title>
<path fill="none" stroke="#000000" d="M252.39,-2883.5C260.75,-2883.5 269.18,-2883.5 277.54,-2883.5"/>
<polygon fill="#000000" stroke="#000000" points="277.7,-2887.0001 287.7,-2883.5 277.7,-2880.0001 277.7,-2887.0001"/>
</g>
<!-- ZcashFoundation/zebra#1827 -->
<g id="node63" class="node">
<title>ZcashFoundation/zebra#1827</title>
<g id="a_node63"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1827" xlink:title="ZcashFoundation/zebra#1827&#10;Split `WrongVersion`&#10;errors into&#10;`OutdatedVersion` and&#10;`PreActivationVersion`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3019 10,-3019 10,-2936 242,-2936 242,-3019"/>
<text text-anchor="middle" x="126" y="-3003.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="126" y="-2988.8" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="126" y="-2973.8" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="126" y="-2958.8" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="126" y="-2943.8" font-family="Times,serif" font-size="14.00" fill="#000000">`PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#1592</title>
<g id="a_node64"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1592" xlink:title="ZcashFoundation/zebra#1592&#10;Write tests for sync&#10;hangs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3090 10,-3090 10,-3037 242,-3037 242,-3090"/>
<text text-anchor="middle" x="126" y="-3074.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="126" y="-3059.8" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="126" y="-3044.8" font-family="Times,serif" font-size="14.00" fill="#000000">hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#1817</title>
<g id="a_node65"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/1817" xlink:title="ZcashFoundation/zebra#1817&#10;Re&#45;Apply &quot;Refactor&#10;`connection.rs` to make&#10;`fail_with` errors&#10;impossible&quot; (double&#10;revert)" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="520,-3112.5 288,-3112.5 288,-3108.5 284,-3108.5 284,-3104.5 288,-3104.5 288,-3022.5 284,-3022.5 284,-3018.5 288,-3018.5 288,-3014.5 520,-3014.5 520,-3112.5"/>
<polyline fill="none" stroke="#000000" points="288,-3108.5 292,-3108.5 292,-3104.5 288,-3104.5 "/>
<polyline fill="none" stroke="#000000" points="288,-3022.5 292,-3022.5 292,-3018.5 288,-3018.5 "/>
<text text-anchor="middle" x="404" y="-3097.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="404" y="-3082.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="404" y="-3067.3" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="404" y="-3052.3" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="404" y="-3037.3" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="404" y="-3022.3" font-family="Times,serif" font-size="14.00" fill="#000000">revert)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817 -->
<g id="edge50" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M242.29,-3063.5C253.91,-3063.5 265.75,-3063.5 277.47,-3063.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-3067.0001 287.73,-3063.5 277.73,-3060.0001 277.73,-3067.0001"/>
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#1841</title>
<g id="a_node66"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1841" xlink:title="ZcashFoundation/zebra#1841&#10;ZIP&#45;252: Update Zebra and&#10;DNS Seeders with NU5&#10;heights and protocol&#10;versions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3191 10,-3191 10,-3108 242,-3108 242,-3191"/>
<text text-anchor="middle" x="126" y="-3175.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="126" y="-3160.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;252: Update Zebra and</text>
<text text-anchor="middle" x="126" y="-3145.8" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="126" y="-3130.8" font-family="Times,serif" font-size="14.00" fill="#000000">heights and protocol</text>
<text text-anchor="middle" x="126" y="-3115.8" font-family="Times,serif" font-size="14.00" fill="#000000">versions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node67"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1865" xlink:title="ZcashFoundation/zebra#1865&#10;Security: Running Zebra&#10;nodes should eventually&#10;stop trying to contact&#10;peers that always fail" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3379 10,-3379 10,-3296 242,-3296 242,-3379"/>
<text text-anchor="middle" x="126" y="-3363.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="126" y="-3348.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="126" y="-3333.8" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="126" y="-3318.8" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="126" y="-3303.8" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node68"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1956" xlink:title="ZcashFoundation/zebra#1956&#10;Zebra should store a&#10;persistent list of recent&#10;successful peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-3324.5 288,-3324.5 288,-3256.5 520,-3256.5 520,-3324.5"/>
<text text-anchor="middle" x="404" y="-3309.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="404" y="-3294.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="404" y="-3279.3" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="404" y="-3264.3" font-family="Times,serif" font-size="14.00" fill="#000000">successful peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956 -->
<g id="edge51" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M242.29,-3317.8C254.03,-3315.9 265.99,-3313.8 277.83,-3311.8"/>
<polygon fill="#000000" stroke="#000000" points="278.4165,-3315.2507 287.73,-3310.2 277.2997,-3308.3404 278.4165,-3315.2507"/>
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#1873</title>
<g id="a_node69"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1873" xlink:title="ZcashFoundation/zebra#1873&#10;Security: Zebra&#39;s address&#10;book can use all&#10;available memory" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-2564.5 288,-2564.5 288,-2496.5 520,-2496.5 520,-2564.5"/>
<text text-anchor="middle" x="404" y="-2549.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="404" y="-2534.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Zebra&#39;s address</text>
<text text-anchor="middle" x="404" y="-2519.3" font-family="Times,serif" font-size="14.00" fill="#000000">book can use all</text>
<text text-anchor="middle" x="404" y="-2504.3" font-family="Times,serif" font-size="14.00" fill="#000000">available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node70"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1875" xlink:title="ZcashFoundation/zebra#1875&#10;Zebra attempts new peer&#10;connections in a fixed,&#10;predictable order" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3465.5 10,-3465.5 10,-3397.5 242,-3397.5 242,-3465.5"/>
<text text-anchor="middle" x="126" y="-3450.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="126" y="-3435.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="126" y="-3420.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="126" y="-3405.3" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node71"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1869" xlink:title="ZcashFoundation/zebra#1869&#10;Zebra should limit the&#10;number of addresses it&#10;uses from a single Addrs&#10;response" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-2572 10,-2572 10,-2489 242,-2489 242,-2572"/>
<text text-anchor="middle" x="126" y="-2556.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="126" y="-2541.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="126" y="-2526.8" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="126" y="-2511.8" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="126" y="-2496.8" font-family="Times,serif" font-size="14.00" fill="#000000">response</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge52" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M242.29,-2566.5C264.35,-2573.3 287.2,-2580.4 308.53,-2587"/>
<polygon fill="#000000" stroke="#000000" points="307.6221,-2590.3828 318.21,-2590 309.6943,-2583.6965 307.6221,-2590.3828"/>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873 -->
<g id="edge53" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873</title>
<path fill="none" stroke="#000000" d="M242.29,-2530.5C253.91,-2530.5 265.75,-2530.5 277.47,-2530.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-2534.0001 287.73,-2530.5 277.73,-2527.0001 277.73,-2534.0001"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node72"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1890" xlink:title="ZcashFoundation/zebra#1890&#10;Zebra should support&#10;separate local bind and&#10;external advertise&#10;addresses" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3567 10,-3567 10,-3484 242,-3484 242,-3567"/>
<text text-anchor="middle" x="126" y="-3551.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="126" y="-3536.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="126" y="-3521.8" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="126" y="-3506.8" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="126" y="-3491.8" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node73"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1893" xlink:title="ZcashFoundation/zebra#1893&#10;Zebra should auto&#45;&#10;discover its own external&#10;IP address" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-3559.5 288,-3559.5 288,-3491.5 520,-3491.5 520,-3559.5"/>
<text text-anchor="middle" x="404" y="-3544.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="404" y="-3529.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="404" y="-3514.3" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="404" y="-3499.3" font-family="Times,serif" font-size="14.00" fill="#000000">IP address</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893 -->
<g id="edge54" class="edge">
<title>ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893</title>
<path fill="none" stroke="#000000" d="M242.29,-3525.5C253.91,-3525.5 265.75,-3525.5 277.47,-3525.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-3529.0001 287.73,-3525.5 277.73,-3522.0001 277.73,-3529.0001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node74"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1904" xlink:title="ZcashFoundation/zebra#1904&#10;DNS seeders and block&#10;explorers don&#39;t show&#10;Zebra nodes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-2658.5 10,-2658.5 10,-2590.5 242,-2590.5 242,-2658.5"/>
<text text-anchor="middle" x="126" y="-2643.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="126" y="-2628.3" font-family="Times,serif" font-size="14.00" fill="#000000">DNS seeders and block</text>
<text text-anchor="middle" x="126" y="-2613.3" font-family="Times,serif" font-size="14.00" fill="#000000">explorers don&#39;t show</text>
<text text-anchor="middle" x="126" y="-2598.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra nodes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge55" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M242.29,-2621.2C253.91,-2620.8 265.75,-2620.5 277.47,-2620.1"/>
<polygon fill="#000000" stroke="#000000" points="277.8366,-2623.5909 287.73,-2619.8 277.6319,-2616.5939 277.8366,-2623.5909"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node75"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1917" xlink:title="ZcashFoundation/zebra#1917&#10;Check Transaction&#10;cardinality at parse&#10;time, to limit memory&#10;usage" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3699 10,-3699 10,-3616 242,-3616 242,-3699"/>
<text text-anchor="middle" x="126" y="-3683.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="126" y="-3668.8" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="126" y="-3653.8" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="126" y="-3638.8" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="126" y="-3623.8" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node76"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1334" xlink:title="ZcashFoundation/zebra#1334&#10;After network upgrade&#10;activation, reject new&#10;connections from outdated&#10;peers" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="520,-3901 288,-3901 288,-3818 520,-3818 520,-3901"/>
<text text-anchor="middle" x="404" y="-3885.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="404" y="-3870.8" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="404" y="-3855.8" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="404" y="-3840.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="404" y="-3825.8" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node77"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/706" xlink:title="ZcashFoundation/zebra#706&#10;Justify our alternative&#10;to &quot;evicting pre&#45;upgrade&#10;peers from the peer set&#10;across a network upgrade&quot;" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="783.5,-3831 560.5,-3831 560.5,-3748 783.5,-3748 783.5,-3831"/>
<text text-anchor="middle" x="672" y="-3815.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="672" y="-3800.8" font-family="Times,serif" font-size="14.00" fill="#000000">Justify our alternative</text>
<text text-anchor="middle" x="672" y="-3785.8" font-family="Times,serif" font-size="14.00" fill="#000000">to &quot;evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="672" y="-3770.8" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="672" y="-3755.8" font-family="Times,serif" font-size="14.00" fill="#000000">across a network upgrade&quot;</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge56" class="edge">
<title>ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M520.38,-3829.1C530.34,-3826.5 540.43,-3823.9 550.43,-3821.3"/>
<polygon fill="#000000" stroke="#000000" points="551.5983,-3824.6124 560.39,-3818.7 549.8302,-3817.8394 551.5983,-3824.6124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node78"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1894" xlink:title="ZcashFoundation/zebra#1894&#10;Zebra should follow OS&#10;directory conventions&#10;better" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3277.5 10,-3277.5 10,-3209.5 242,-3209.5 242,-3277.5"/>
<text text-anchor="middle" x="126" y="-3262.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="126" y="-3247.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="126" y="-3232.3" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="126" y="-3217.3" font-family="Times,serif" font-size="14.00" fill="#000000">better</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956 -->
<g id="edge57" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M242.29,-3263.2C254.03,-3265.1 265.99,-3267.2 277.83,-3269.2"/>
<polygon fill="#000000" stroke="#000000" points="277.2997,-3272.6596 287.73,-3270.8 278.4165,-3265.7493 277.2997,-3272.6596"/>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node79"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2015" xlink:title="ZcashFoundation/zebra#2015&#10;Run coverage on the&#10;latest nightly" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3871 10,-3871 10,-3818 242,-3818 242,-3871"/>
<text text-anchor="middle" x="126" y="-3855.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="126" y="-3840.8" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="126" y="-3825.8" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node80"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2028" xlink:title="ZcashFoundation/zebra#2028&#10;Use the AtLeastOne&#10;generic type to enforce&#10;field counts" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3957.5 10,-3957.5 10,-3889.5 242,-3889.5 242,-3957.5"/>
<text text-anchor="middle" x="126" y="-3942.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="126" y="-3927.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="126" y="-3912.3" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="126" y="-3897.3" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node81"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1774" xlink:title="ZcashFoundation/zebra#1774&#10;Add a size estimator to&#10;the message encoder and&#10;serializers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4043.5 10,-4043.5 10,-3975.5 242,-3975.5 242,-4043.5"/>
<text text-anchor="middle" x="126" y="-4028.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="126" y="-4013.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="126" y="-3998.3" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="126" y="-3983.3" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node82" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node82"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2035" xlink:title="ZcashFoundation/zebra#2035&#10;Add external_addr to&#10;config (network section)" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4115 10,-4115 10,-4111 6,-4111 6,-4107 10,-4107 10,-4070 6,-4070 6,-4066 10,-4066 10,-4062 242,-4062 242,-4115"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="10,-4111 14,-4111 14,-4107 10,-4107 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="10,-4070 14,-4070 14,-4066 10,-4066 "/>
<text text-anchor="middle" x="126" y="-4099.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="126" y="-4084.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="126" y="-4069.8" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node83"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2052" xlink:title="ZcashFoundation/zebra#2052&#10;Use default port for&#10;initial peers and&#10;external addresses" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-4122.5 288,-4122.5 288,-4054.5 520,-4054.5 520,-4122.5"/>
<text text-anchor="middle" x="404" y="-4107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="404" y="-4092.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="404" y="-4077.3" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="404" y="-4062.3" font-family="Times,serif" font-size="14.00" fill="#000000">external addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052 -->
<g id="edge58" class="edge">
<title>ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052</title>
<path fill="none" stroke="#000000" d="M242.29,-4088.5C253.91,-4088.5 265.75,-4088.5 277.47,-4088.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-4092.0001 287.73,-4088.5 277.73,-4085.0001 277.73,-4092.0001"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node84"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2092" xlink:title="ZcashFoundation/zebra#2092&#10;Implement Block Header&#10;FinalSaplingRoot" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4186 10,-4186 10,-4133 242,-4133 242,-4186"/>
<text text-anchor="middle" x="126" y="-4170.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="126" y="-4155.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="126" y="-4140.8" font-family="Times,serif" font-size="14.00" fill="#000000">FinalSaplingRoot</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node85" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node85"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1973" xlink:title="ZcashFoundation/zebra#1973&#10;Automatically invalidate&#10;preselected peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4257 10,-4257 10,-4204 242,-4204 242,-4257"/>
<text text-anchor="middle" x="126" y="-4241.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="126" y="-4226.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="126" y="-4211.8" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node86"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2156" xlink:title="ZcashFoundation/zebra#2156&#10;Security: Send notfound&#10;inv items to the inv&#10;collector, Credit:&#10;Equilibrium" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-4272 288,-4272 288,-4189 520,-4189 520,-4272"/>
<text text-anchor="middle" x="404" y="-4256.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="404" y="-4241.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="404" y="-4226.8" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="404" y="-4211.8" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="404" y="-4196.8" font-family="Times,serif" font-size="14.00" fill="#000000">Equilibrium</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156 -->
<g id="edge59" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M242.29,-4230.5C253.91,-4230.5 265.75,-4230.5 277.47,-4230.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-4234.0001 287.73,-4230.5 277.73,-4227.0001 277.73,-4234.0001"/>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node87"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2292" xlink:title="ZcashFoundation/zebra#2292&#10;Cleanup MetaAddr after&#10;security fixes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4328 10,-4328 10,-4275 242,-4275 242,-4328"/>
<text text-anchor="middle" x="126" y="-4312.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="126" y="-4297.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="126" y="-4282.8" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node88" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node88"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2293" xlink:title="ZcashFoundation/zebra#2293&#10;Batch MetaAddrChanges and&#10;remove identical changes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4399 10,-4399 10,-4346 242,-4346 242,-4399"/>
<text text-anchor="middle" x="126" y="-4383.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="126" y="-4368.8" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="126" y="-4353.8" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node89"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2262" xlink:title="ZcashFoundation/zebra#2262&#10;After network upgrade&#10;activation, close&#10;existing connections to&#10;outdated peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-3800 10,-3800 10,-3717 242,-3717 242,-3800"/>
<text text-anchor="middle" x="126" y="-3784.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="126" y="-3769.8" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="126" y="-3754.8" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="126" y="-3739.8" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="126" y="-3724.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334 -->
<g id="edge60" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M240.28,-3800C253.41,-3804.8 266.85,-3809.7 280.11,-3814.5"/>
<polygon fill="#000000" stroke="#000000" points="279.126,-3817.8665 289.72,-3818 281.5215,-3811.2891 279.126,-3817.8665"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge61" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M242.34,-3767.5C257.69,-3768.5 273.22,-3769.6 288,-3770.5 375.67,-3775.9 474.67,-3780.8 550.19,-3784.2"/>
<polygon fill="#000000" stroke="#000000" points="550.0581,-3787.6977 560.22,-3784.7 550.4067,-3780.7064 550.0581,-3787.6977"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node90" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node90"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2261" xlink:title="ZcashFoundation/zebra#2261&#10;Stop sending addresses of&#10;outdated peers to other&#10;peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-3761.5 288,-3761.5 288,-3693.5 520,-3693.5 520,-3761.5"/>
<text text-anchor="middle" x="404" y="-3746.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="404" y="-3731.3" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="404" y="-3716.3" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="404" y="-3701.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261 -->
<g id="edge62" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M242.29,-3745.5C253.91,-3744.2 265.75,-3742.9 277.47,-3741.6"/>
<polygon fill="#000000" stroke="#000000" points="278.1601,-3745.0462 287.73,-3740.5 277.4138,-3738.086 278.1601,-3745.0462"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node91" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node91"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2107" xlink:title="ZcashFoundation/zebra#2107&#10;Security: Stop&#10;immediately disconnecting&#10;from nodes that send&#10;unexpected messages,&#10;Credit: Equilibrium" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-3675.5 288,-3675.5 288,-3577.5 520,-3577.5 520,-3675.5"/>
<text text-anchor="middle" x="404" y="-3660.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="404" y="-3645.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="404" y="-3630.3" font-family="Times,serif" font-size="14.00" fill="#000000">immediately disconnecting</text>
<text text-anchor="middle" x="404" y="-3615.3" font-family="Times,serif" font-size="14.00" fill="#000000">from nodes that send</text>
<text text-anchor="middle" x="404" y="-3600.3" font-family="Times,serif" font-size="14.00" fill="#000000">unexpected messages,</text>
<text text-anchor="middle" x="404" y="-3585.3" font-family="Times,serif" font-size="14.00" fill="#000000">Credit: Equilibrium</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107 -->
<g id="edge63" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M232.84,-3716.9C239.38,-3713.8 245.81,-3710.7 252,-3707.5 268.87,-3698.8 271.49,-3693.9 288,-3684.5 290.27,-3683.2 292.57,-3681.9 294.9,-3680.6"/>
<polygon fill="#000000" stroke="#000000" points="296.8418,-3683.5293 303.98,-3675.7 293.5174,-3677.369 296.8418,-3683.5293"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge64" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M504.45,-3675.6C509.75,-3678.5 514.96,-3681.5 520,-3684.5 549.52,-3702 580.9,-3723.2 607.43,-3741.9"/>
<polygon fill="#000000" stroke="#000000" points="605.6917,-3744.9585 615.87,-3747.9 609.7476,-3739.2532 605.6917,-3744.9585"/>
</g>
<!-- ZcashFoundation/zebra#2338 -->
<g id="node92" class="node">
<title>ZcashFoundation/zebra#2338</title>
<g id="a_node92"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2338" xlink:title="ZcashFoundation/zebra#2338&#10;Create Error enums in&#10;`zebrad`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4470 10,-4470 10,-4417 242,-4417 242,-4470"/>
<text text-anchor="middle" x="126" y="-4454.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2338</text>
<text text-anchor="middle" x="126" y="-4439.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create Error enums in</text>
<text text-anchor="middle" x="126" y="-4424.8" font-family="Times,serif" font-size="14.00" fill="#000000">`zebrad`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2339 -->
<g id="node93" class="node">
<title>ZcashFoundation/zebra#2339</title>
<g id="a_node93"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2339" xlink:title="ZcashFoundation/zebra#2339&#10;Downcast and match&#10;Already Verified error&#10;enums in the syncer" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-4477.5 288,-4477.5 288,-4409.5 520,-4409.5 520,-4477.5"/>
<text text-anchor="middle" x="404" y="-4462.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2339</text>
<text text-anchor="middle" x="404" y="-4447.3" font-family="Times,serif" font-size="14.00" fill="#000000">Downcast and match</text>
<text text-anchor="middle" x="404" y="-4432.3" font-family="Times,serif" font-size="14.00" fill="#000000">Already Verified error</text>
<text text-anchor="middle" x="404" y="-4417.3" font-family="Times,serif" font-size="14.00" fill="#000000">enums in the syncer</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339 -->
<g id="edge65" class="edge">
<title>ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339</title>
<path fill="none" stroke="#000000" d="M242.29,-4443.5C253.91,-4443.5 265.75,-4443.5 277.47,-4443.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-4447.0001 287.73,-4443.5 277.73,-4440.0001 277.73,-4447.0001"/>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node94" class="node">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node94"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2375" xlink:title="ZcashFoundation/zebra#2375&#10;Automatically use zebrad&#10;version for the zebra&#45;&#10;network user agent" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4556.5 10,-4556.5 10,-4488.5 242,-4488.5 242,-4556.5"/>
<text text-anchor="middle" x="126" y="-4541.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="126" y="-4526.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically use zebrad</text>
<text text-anchor="middle" x="126" y="-4511.3" font-family="Times,serif" font-size="14.00" fill="#000000">version for the zebra&#45;</text>
<text text-anchor="middle" x="126" y="-4496.3" font-family="Times,serif" font-size="14.00" fill="#000000">network user agent</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node95" class="node">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node95"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/794" xlink:title="ZcashFoundation/zebra#794&#10;Make sure custom user&#10;agents conform to BIP&#45;14" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="515.5,-4549 292.5,-4549 292.5,-4496 515.5,-4496 515.5,-4549"/>
<text text-anchor="middle" x="404" y="-4533.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="404" y="-4518.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="404" y="-4503.8" font-family="Times,serif" font-size="14.00" fill="#000000">agents conform to BIP&#45;14</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794 -->
<g id="edge66" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M242.29,-4522.5C255.45,-4522.5 268.89,-4522.5 282.12,-4522.5"/>
<polygon fill="#000000" stroke="#000000" points="282.18,-4526.0001 292.18,-4522.5 282.18,-4519.0001 282.18,-4526.0001"/>
</g>
<!-- ZcashFoundation/zebra#2377 -->
<g id="node96" class="node">
<title>ZcashFoundation/zebra#2377</title>
<g id="a_node96"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2377" xlink:title="ZcashFoundation/zebra#2377&#10;Refactor history tree&#10;pruning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4628 10,-4628 10,-4575 242,-4575 242,-4628"/>
<text text-anchor="middle" x="126" y="-4612.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2377</text>
<text text-anchor="middle" x="126" y="-4597.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor history tree</text>
<text text-anchor="middle" x="126" y="-4582.8" font-family="Times,serif" font-size="14.00" fill="#000000">pruning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2378 -->
<g id="node97" class="node">
<title>ZcashFoundation/zebra#2378</title>
<g id="a_node97"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2378" xlink:title="ZcashFoundation/zebra#2378&#10;Improve history and note&#10;commitment trees forking" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4699 10,-4699 10,-4646 242,-4646 242,-4699"/>
<text text-anchor="middle" x="126" y="-4683.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2378</text>
<text text-anchor="middle" x="126" y="-4668.8" font-family="Times,serif" font-size="14.00" fill="#000000">Improve history and note</text>
<text text-anchor="middle" x="126" y="-4653.8" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees forking</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1951 -->
<g id="node98" class="node">
<title>ZcashFoundation/zebra#1951</title>
<g id="a_node98"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1951" xlink:title="ZcashFoundation/zebra#1951&#10;Generalize/deduplicate&#10;async batch verification&#10;services / create a&#10;derive&#45;able proc macro" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4800 10,-4800 10,-4717 242,-4717 242,-4800"/>
<text text-anchor="middle" x="126" y="-4784.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1951</text>
<text text-anchor="middle" x="126" y="-4769.8" font-family="Times,serif" font-size="14.00" fill="#000000">Generalize/deduplicate</text>
<text text-anchor="middle" x="126" y="-4754.8" font-family="Times,serif" font-size="14.00" fill="#000000">async batch verification</text>
<text text-anchor="middle" x="126" y="-4739.8" font-family="Times,serif" font-size="14.00" fill="#000000">services / create a</text>
<text text-anchor="middle" x="126" y="-4724.8" font-family="Times,serif" font-size="14.00" fill="#000000">derive&#45;able proc macro</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2390 -->
<g id="node99" class="node">
<title>ZcashFoundation/zebra#2390</title>
<g id="a_node99"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2390" xlink:title="ZcashFoundation/zebra#2390&#10;Fix tasks spawned by&#10;`tower_batch::Batch` only&#10;being alive during one&#10;test execution" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-4800 288,-4800 288,-4717 520,-4717 520,-4800"/>
<text text-anchor="middle" x="404" y="-4784.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2390</text>
<text text-anchor="middle" x="404" y="-4769.8" font-family="Times,serif" font-size="14.00" fill="#000000">Fix tasks spawned by</text>
<text text-anchor="middle" x="404" y="-4754.8" font-family="Times,serif" font-size="14.00" fill="#000000">`tower_batch::Batch` only</text>
<text text-anchor="middle" x="404" y="-4739.8" font-family="Times,serif" font-size="14.00" fill="#000000">being alive during one</text>
<text text-anchor="middle" x="404" y="-4724.8" font-family="Times,serif" font-size="14.00" fill="#000000">test execution</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390 -->
<g id="edge67" class="edge">
<title>ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390</title>
<path fill="none" stroke="#000000" d="M242.29,-4758.5C253.91,-4758.5 265.75,-4758.5 277.47,-4758.5"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-4762.0001 287.73,-4758.5 277.73,-4755.0001 277.73,-4762.0001"/>
</g>
<!-- ZcashFoundation/zebra#338 -->
<g id="node100" class="node">
<title>ZcashFoundation/zebra#338</title>
<g id="a_node100"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/338" xlink:title="ZcashFoundation/zebra#338&#10;Calc Block Subsidy and&#10;Funding Streams" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="237.5,-4871 14.5,-4871 14.5,-4818 237.5,-4818 237.5,-4871"/>
<text text-anchor="middle" x="126" y="-4855.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#338</text>
<text text-anchor="middle" x="126" y="-4840.8" font-family="Times,serif" font-size="14.00" fill="#000000">Calc Block Subsidy and</text>
<text text-anchor="middle" x="126" y="-4825.8" font-family="Times,serif" font-size="14.00" fill="#000000">Funding Streams</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1162 -->
<g id="node101" class="node">
<title>ZcashFoundation/zebra#1162</title>
<g id="a_node101"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1162" xlink:title="ZcashFoundation/zebra#1162&#10;Validate coinbase miner&#10;subsidy and miner fees" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-4871 288,-4871 288,-4818 520,-4818 520,-4871"/>
<text text-anchor="middle" x="404" y="-4855.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1162</text>
<text text-anchor="middle" x="404" y="-4840.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate coinbase miner</text>
<text text-anchor="middle" x="404" y="-4825.8" font-family="Times,serif" font-size="14.00" fill="#000000">subsidy and miner fees</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162 -->
<g id="edge68" class="edge">
<title>ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M237.87,-4844.5C250.98,-4844.5 264.42,-4844.5 277.7,-4844.5"/>
<polygon fill="#000000" stroke="#000000" points="277.82,-4848.0001 287.82,-4844.5 277.82,-4841.0001 277.82,-4848.0001"/>
</g>
<!-- ZcashFoundation/zebra#2425 -->
<g id="node102" class="node">
<title>ZcashFoundation/zebra#2425</title>
<g id="a_node102"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2425" xlink:title="ZcashFoundation/zebra#2425&#10;Validate note commitment&#10;trees in state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-4942 10,-4942 10,-4889 242,-4889 242,-4942"/>
<text text-anchor="middle" x="126" y="-4926.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2425</text>
<text text-anchor="middle" x="126" y="-4911.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate note commitment</text>
<text text-anchor="middle" x="126" y="-4896.8" font-family="Times,serif" font-size="14.00" fill="#000000">trees in state</text>
</a>
</g>
</g>
</g>
</svg>