developers/zcash-zf-dag.svg

1323 lines
102 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="796pt" height="4730pt"
viewBox="0.00 0.00 796.00 4729.50" 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 4725.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-4725.5 792,-4725.5 792,4 -4,4"/>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node1" class="node">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node1"><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,-68 10,-68 10,0 242,0 242,-68"/>
<text text-anchor="middle" x="126" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="126" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="126" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="126" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node2"><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,-68 288,-68 288,0 520,0 520,-68"/>
<text text-anchor="middle" x="404" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="404" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="404" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="404" y="-7.8" 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="edge1" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="#000000" d="M242.29,-34C253.91,-34 265.75,-34 277.47,-34"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-37.5001 287.73,-34 277.73,-30.5001 277.73,-37.5001"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node3" class="node">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node3"><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,-215.5 14.5,-215.5 14.5,-162.5 237.5,-162.5 237.5,-215.5"/>
<text text-anchor="middle" x="126" y="-200.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="126" y="-185.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="126" y="-170.3" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node4" class="node">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling note encryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="515.5,-281.5 292.5,-281.5 292.5,-228.5 515.5,-228.5 515.5,-281.5"/>
<text text-anchor="middle" x="404" y="-266.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="404" y="-251.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note encryption</text>
<text text-anchor="middle" x="404" y="-236.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="edge2" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M237.87,-215.56C252.6,-219.06 267.75,-222.65 282.63,-226.19"/>
<polygon fill="#000000" stroke="#000000" points="281.823,-229.5956 292.36,-228.49 283.4334,-222.7834 281.823,-229.5956"/>
</g>
<!-- ZcashFoundation/zebra#3002 -->
<g id="node5" class="node">
<title>ZcashFoundation/zebra#3002</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/3002" xlink:title="ZcashFoundation/zebra#3002&#10;Sapling note decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-210.5 288,-210.5 288,-157.5 520,-157.5 520,-210.5"/>
<text text-anchor="middle" x="404" y="-195.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#3002</text>
<text text-anchor="middle" x="404" y="-180.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note decryption</text>
<text text-anchor="middle" x="404" y="-165.3" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#3002 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#3002</title>
<path fill="none" stroke="#000000" d="M237.87,-186.99C250.98,-186.75 264.42,-186.51 277.7,-186.27"/>
<polygon fill="#000000" stroke="#000000" points="277.8839,-189.7674 287.82,-186.09 277.7593,-182.7685 277.8839,-189.7674"/>
</g>
<!-- ZcashFoundation/zebra#2362 -->
<g id="node6" class="node">
<title>ZcashFoundation/zebra#2362</title>
<g id="a_node6"><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,-225.5 556,-225.5 556,-142.5 788,-142.5 788,-225.5"/>
<text text-anchor="middle" x="672" y="-210.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2362</text>
<text text-anchor="middle" x="672" y="-195.3" font-family="Times,serif" font-size="14.00" fill="#000000">Part of ZIP 212: validate</text>
<text text-anchor="middle" x="672" y="-180.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling and Orchard</text>
<text text-anchor="middle" x="672" y="-165.3" font-family="Times,serif" font-size="14.00" fill="#000000">output of coinbase</text>
<text text-anchor="middle" x="672" y="-150.3" 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="edge4" class="edge">
<title>ZcashFoundation/zebra#269&#45;&gt;ZcashFoundation/zebra#2362</title>
<path fill="none" stroke="#000000" d="M504.17,-228.46C517.82,-224.84 531.98,-221.1 546.01,-217.38"/>
<polygon fill="#000000" stroke="#000000" points="546.9315,-220.7567 555.7,-214.81 545.1369,-213.9906 546.9315,-220.7567"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node7" class="node">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node7"><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,-283 14.5,-283 14.5,-245 237.5,-245 237.5,-283"/>
<text text-anchor="middle" x="126" y="-267.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="126" y="-252.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id="node8" class="node">
<title>ZcashFoundation/zebra#619</title>
<g id="a_node8"><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,-360.5 14.5,-360.5 14.5,-307.5 237.5,-307.5 237.5,-360.5"/>
<text text-anchor="middle" x="126" y="-345.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="126" y="-330.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="126" y="-315.3" font-family="Times,serif" font-size="14.00" fill="#000000">validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id="node9" class="node">
<title>ZcashFoundation/zebra#466</title>
<g id="a_node9"><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,-368 292.5,-368 292.5,-300 515.5,-300 515.5,-368"/>
<text text-anchor="middle" x="404" y="-352.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="404" y="-337.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="404" y="-322.8" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="404" y="-307.8" 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="edge5" class="edge">
<title>ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466</title>
<path fill="none" stroke="#000000" d="M237.87,-334C252.46,-334 267.46,-334 282.2,-334"/>
<polygon fill="#000000" stroke="#000000" points="282.36,-337.5001 292.36,-334 282.36,-330.5001 282.36,-337.5001"/>
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id="node10" class="node">
<title>ZcashFoundation/zebra#884</title>
<g id="a_node10"><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,-439.5 14.5,-439.5 14.5,-386.5 237.5,-386.5 237.5,-439.5"/>
<text text-anchor="middle" x="126" y="-424.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="126" y="-409.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="126" y="-394.3" font-family="Times,serif" font-size="14.00" fill="#000000">correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id="node11" class="node">
<title>ZcashFoundation/zebra#899</title>
<g id="a_node11"><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,-439.5 292.5,-439.5 292.5,-386.5 515.5,-386.5 515.5,-439.5"/>
<text text-anchor="middle" x="404" y="-424.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="404" y="-409.3" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="404" y="-394.3" 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="edge6" class="edge">
<title>ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899</title>
<path fill="none" stroke="#000000" d="M237.87,-413C252.46,-413 267.46,-413 282.2,-413"/>
<polygon fill="#000000" stroke="#000000" points="282.36,-416.5001 292.36,-413 282.36,-409.5001 282.36,-416.5001"/>
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id="node12" class="node">
<title>ZcashFoundation/zebra#919</title>
<g id="a_node12"><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,-533 14.5,-533 14.5,-465 237.5,-465 237.5,-533"/>
<text text-anchor="middle" x="126" y="-517.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="126" y="-502.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="126" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="126" y="-472.8" font-family="Times,serif" font-size="14.00" fill="#000000">as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id="node13" class="node">
<title>ZcashFoundation/zebra#1021</title>
<g id="a_node13"><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,-540.5 288,-540.5 288,-457.5 520,-457.5 520,-540.5"/>
<text text-anchor="middle" x="404" y="-525.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="404" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="404" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="404" y="-480.3" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="404" y="-465.3" 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="edge7" class="edge">
<title>ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021</title>
<path fill="none" stroke="#000000" d="M237.87,-499C250.98,-499 264.42,-499 277.7,-499"/>
<polygon fill="#000000" stroke="#000000" points="277.82,-502.5001 287.82,-499 277.82,-495.5001 277.82,-502.5001"/>
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id="node14" class="node">
<title>ZcashFoundation/zebra#889</title>
<g id="a_node14"><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,-829.5 292.5,-829.5 292.5,-776.5 515.5,-776.5 515.5,-829.5"/>
<text text-anchor="middle" x="404" y="-814.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="404" y="-799.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="404" y="-784.3" font-family="Times,serif" font-size="14.00" fill="#000000">handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id="node15" class="node">
<title>ZcashFoundation/zebra#1077</title>
<g id="a_node15"><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,-844.5 556,-844.5 556,-761.5 788,-761.5 788,-844.5"/>
<text text-anchor="middle" x="672" y="-829.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="672" y="-814.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-799.3" font-family="Times,serif" font-size="14.00" fill="#000000">`TransactionsById`</text>
<text text-anchor="middle" x="672" y="-784.3" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="672" y="-769.3" 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="edge8" class="edge">
<title>ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M515.72,-803C525.52,-803 535.49,-803 545.41,-803"/>
<polygon fill="#000000" stroke="#000000" points="545.71,-806.5001 555.71,-803 545.71,-799.5001 545.71,-806.5001"/>
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id="node16" class="node">
<title>ZcashFoundation/zebra#1048</title>
<g id="a_node16"><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,-837 10,-837 10,-769 242,-769 242,-837"/>
<text text-anchor="middle" x="126" y="-821.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="126" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="126" y="-791.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="126" y="-776.8" 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="edge9" class="edge">
<title>ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889</title>
<path fill="none" stroke="#000000" d="M242.29,-803C255.45,-803 268.89,-803 282.12,-803"/>
<polygon fill="#000000" stroke="#000000" points="282.18,-806.5001 292.18,-803 282.18,-799.5001 282.18,-806.5001"/>
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id="node17" class="node">
<title>ZcashFoundation/zebra#1080</title>
<g id="a_node17"><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,-743 556,-743 556,-645 788,-645 788,-743"/>
<text text-anchor="middle" x="672" y="-727.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="672" y="-712.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-697.8" font-family="Times,serif" font-size="14.00" fill="#000000">`PushTransaction`s</text>
<text text-anchor="middle" x="672" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="672" y="-667.8" font-family="Times,serif" font-size="14.00" fill="#000000">download and verify</text>
<text text-anchor="middle" x="672" y="-652.8" font-family="Times,serif" font-size="14.00" fill="#000000">stream</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id="node18" class="node">
<title>ZcashFoundation/zebra#1081</title>
<g id="a_node18"><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,-626.5 556,-626.5 556,-543.5 788,-543.5 788,-626.5"/>
<text text-anchor="middle" x="672" y="-611.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="672" y="-596.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-581.3" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransactionIds`</text>
<text text-anchor="middle" x="672" y="-566.3" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="672" y="-551.3" font-family="Times,serif" font-size="14.00" fill="#000000">download &amp; verify stream</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2104 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#2104</title>
<g id="a_node19"><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,-923 10,-923 10,-855 242,-855 242,-923"/>
<text text-anchor="middle" x="126" y="-907.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2104</text>
<text text-anchor="middle" x="126" y="-892.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement a</text>
<text text-anchor="middle" x="126" y="-877.8" font-family="Times,serif" font-size="14.00" fill="#000000">`Halo2Verifier` async</text>
<text text-anchor="middle" x="126" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000">service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2105 -->
<g id="node20" class="node">
<title>ZcashFoundation/zebra#2105</title>
<g id="a_node20"><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,-915.5 288,-915.5 288,-862.5 520,-862.5 520,-915.5"/>
<text text-anchor="middle" x="404" y="-900.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2105</text>
<text text-anchor="middle" x="404" y="-885.3" font-family="Times,serif" font-size="14.00" fill="#000000">Validate Transaction::V5</text>
<text text-anchor="middle" x="404" y="-870.3" 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="edge10" class="edge">
<title>ZcashFoundation/zebra#2104&#45;&gt;ZcashFoundation/zebra#2105</title>
<path fill="none" stroke="#000000" d="M242.29,-889C253.91,-889 265.75,-889 277.47,-889"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-892.5001 287.73,-889 277.73,-885.5001 277.73,-892.5001"/>
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id="node21" class="node">
<title>ZcashFoundation/zebra#1400</title>
<g id="a_node21"><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,-994.5 10,-994.5 10,-941.5 242,-941.5 242,-994.5"/>
<text text-anchor="middle" x="126" y="-979.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="126" y="-964.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="126" y="-949.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra can sync from Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2163 -->
<g id="node22" class="node">
<title>ZcashFoundation/zebra#2163</title>
<g id="a_node22"><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" stroke-width="2" points="242,-1095.5 10,-1095.5 10,-1012.5 242,-1012.5 242,-1095.5"/>
<text text-anchor="middle" x="126" y="-1080.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2163</text>
<text text-anchor="middle" x="126" y="-1065.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Spawn each</text>
<text text-anchor="middle" x="126" y="-1050.3" font-family="Times,serif" font-size="14.00" fill="#000000">initial peer handshake in</text>
<text text-anchor="middle" x="126" y="-1035.3" font-family="Times,serif" font-size="14.00" fill="#000000">a separate task, Credit:</text>
<text text-anchor="middle" x="126" y="-1020.3" font-family="Times,serif" font-size="14.00" fill="#000000">Equilibrium</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2573 -->
<g id="node23" class="node">
<title>ZcashFoundation/zebra#2573</title>
<g id="a_node23"><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" stroke-width="2" points="242,-1182 10,-1182 10,-1114 242,-1114 242,-1182"/>
<text text-anchor="middle" x="126" y="-1166.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2573</text>
<text text-anchor="middle" x="126" y="-1151.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove redundant watch</text>
<text text-anchor="middle" x="126" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000">values once our Tokio</text>
<text text-anchor="middle" x="126" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000">dependency is updated</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#1083</title>
<g id="a_node24"><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,-525.5 556,-525.5 556,-442.5 788,-442.5 788,-525.5"/>
<text text-anchor="middle" x="672" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="672" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="672" y="-480.3" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactionIds`</text>
<text text-anchor="middle" x="672" y="-465.3" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="672" y="-450.3" font-family="Times,serif" font-size="14.00" fill="#000000">storage service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#936</title>
<g id="a_node25"><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,-611.5 292.5,-611.5 292.5,-558.5 515.5,-558.5 515.5,-611.5"/>
<text text-anchor="middle" x="404" y="-596.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#936</text>
<text text-anchor="middle" x="404" y="-581.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: mempool</text>
<text text-anchor="middle" x="404" y="-566.3" 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="edge11" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M422.62,-611.63C448.85,-647.53 499.82,-711.61 556,-752 557.85,-753.33 559.74,-754.64 561.67,-755.92"/>
<polygon fill="#000000" stroke="#000000" points="559.978,-758.9911 570.3,-761.38 563.7206,-753.0756 559.978,-758.9911"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M469.22,-611.53C492.57,-621.02 519.75,-632.08 546.48,-642.95"/>
<polygon fill="#000000" stroke="#000000" points="545.3181,-646.2558 555.9,-646.78 547.9547,-639.7713 545.3181,-646.2558"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M515.72,-585C525.52,-585 535.49,-585 545.41,-585"/>
<polygon fill="#000000" stroke="#000000" points="545.71,-588.5001 555.71,-585 545.71,-581.5001 545.71,-588.5001"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M492.98,-558.42C502.15,-555.37 511.29,-552.2 520,-549 522.99,-547.9 542.14,-539.77 565.9,-529.6"/>
<polygon fill="#000000" stroke="#000000" points="567.3973,-532.7663 575.21,-525.61 564.6398,-526.3322 567.3973,-532.7663"/>
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id="node26" class="node">
<title>ZcashFoundation/zebra#571</title>
<g id="a_node26"><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,-424 560.5,-424 560.5,-356 783.5,-356 783.5,-424"/>
<text text-anchor="middle" x="672" y="-408.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="672" y="-393.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="672" y="-378.8" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="672" y="-363.8" 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="edge15" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M508.84,-558.34C512.82,-555.53 516.57,-552.43 520,-549 558.17,-510.83 518.88,-472.19 556,-433 556.66,-432.3 557.34,-431.61 558.02,-430.94"/>
<polygon fill="#000000" stroke="#000000" points="560.6008,-433.3314 565.8,-424.1 555.9788,-428.0743 560.6008,-433.3314"/>
</g>
<!-- ZcashFoundation/zebra#2041 -->
<g id="node27" class="node">
<title>ZcashFoundation/zebra#2041</title>
<g id="a_node27"><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,-139.5 288,-139.5 288,-86.5 520,-86.5 520,-139.5"/>
<text text-anchor="middle" x="404" y="-124.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2041</text>
<text text-anchor="middle" x="404" y="-109.3" font-family="Times,serif" font-size="14.00" fill="#000000">Orchard: derive</text>
<text text-anchor="middle" x="404" y="-94.3" 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="edge16" class="edge">
<title>ZcashFoundation/zebra#2041&#45;&gt;ZcashFoundation/zebra#2362</title>
<path fill="none" stroke="#000000" d="M504.17,-139.54C517.82,-143.16 531.98,-146.9 546.01,-150.62"/>
<polygon fill="#000000" stroke="#000000" points="545.1369,-154.0094 555.7,-153.19 546.9315,-147.2433 545.1369,-154.0094"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node28" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node28"><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,-1253.5 14.5,-1253.5 14.5,-1200.5 237.5,-1200.5 237.5,-1253.5"/>
<text text-anchor="middle" x="126" y="-1238.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="126" y="-1223.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="126" y="-1208.3" font-family="Times,serif" font-size="14.00" fill="#000000">validation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="node29" class="node">
<title>ZcashFoundation/zebra#1486</title>
<g id="a_node29"><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,-1246 288,-1246 288,-1208 520,-1208 520,-1246"/>
<text text-anchor="middle" x="404" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="404" y="-1215.8" 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="edge17" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M237.87,-1227C250.98,-1227 264.42,-1227 277.7,-1227"/>
<polygon fill="#000000" stroke="#000000" points="277.82,-1230.5001 287.82,-1227 277.82,-1223.5001 277.82,-1230.5001"/>
</g>
<!-- ZcashFoundation/zebra#2931 -->
<g id="node30" class="node">
<title>ZcashFoundation/zebra#2931</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2931" xlink:title="ZcashFoundation/zebra#2931&#10;Add unused seed peers to&#10;the AddressBook" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-1324.5 10,-1324.5 10,-1271.5 242,-1271.5 242,-1324.5"/>
<text text-anchor="middle" x="126" y="-1309.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2931</text>
<text text-anchor="middle" x="126" y="-1294.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add unused seed peers to</text>
<text text-anchor="middle" x="126" y="-1279.3" font-family="Times,serif" font-size="14.00" fill="#000000">the AddressBook</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node31" class="node">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node31"><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,-1411 10,-1411 10,-1343 242,-1343 242,-1411"/>
<text text-anchor="middle" x="126" y="-1395.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="126" y="-1380.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="126" y="-1365.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="126" y="-1350.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node32"><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" stroke-width="2" points="242,-1467 10,-1467 10,-1429 242,-1429 242,-1467"/>
<text text-anchor="middle" x="126" y="-1451.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="126" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000">Delete isolated::Wrapper</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2173 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#2173</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2173" xlink:title="ZcashFoundation/zebra#2173&#10;Allow CompactSize to be&#10;used for non&#45;length&#10;fields (addrv2 and ZSEs)" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-1553 10,-1553 10,-1485 242,-1485 242,-1553"/>
<text text-anchor="middle" x="126" y="-1537.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2173</text>
<text text-anchor="middle" x="126" y="-1522.8" font-family="Times,serif" font-size="14.00" fill="#000000">Allow CompactSize to be</text>
<text text-anchor="middle" x="126" y="-1507.8" font-family="Times,serif" font-size="14.00" fill="#000000">used for non&#45;length</text>
<text text-anchor="middle" x="126" y="-1492.8" font-family="Times,serif" font-size="14.00" fill="#000000">fields (addrv2 and ZSEs)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2681 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#2681</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2681" xlink:title="ZcashFoundation/zebra#2681&#10;ZIP&#45;155: Parse `addrv2`&#10;in Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-1545.5 288,-1545.5 288,-1492.5 520,-1492.5 520,-1545.5"/>
<text text-anchor="middle" x="404" y="-1530.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2681</text>
<text text-anchor="middle" x="404" y="-1515.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;155: Parse `addrv2`</text>
<text text-anchor="middle" x="404" y="-1500.3" font-family="Times,serif" font-size="14.00" fill="#000000">in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2173&#45;&gt;ZcashFoundation/zebra#2681 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#2173&#45;&gt;ZcashFoundation/zebra#2681</title>
<path fill="none" stroke="#000000" d="M242.29,-1519C253.91,-1519 265.75,-1519 277.47,-1519"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-1522.5001 287.73,-1519 277.73,-1515.5001 277.73,-1522.5001"/>
</g>
<!-- ZcashFoundation/zebra#950 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#950</title>
<g id="a_node35"><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,-1639 14.5,-1639 14.5,-1571 237.5,-1571 237.5,-1639"/>
<text text-anchor="middle" x="126" y="-1623.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="126" y="-1608.8" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="126" y="-1593.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="126" y="-1578.8" font-family="Times,serif" font-size="14.00" fill="#000000">syncing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#692 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#692</title>
<g id="a_node36"><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,-1710.5 14.5,-1710.5 14.5,-1657.5 237.5,-1657.5 237.5,-1710.5"/>
<text text-anchor="middle" x="126" y="-1695.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="126" y="-1680.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="126" y="-1665.3" font-family="Times,serif" font-size="14.00" fill="#000000">platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node37"><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,-1857.5 288,-1857.5 288,-1804.5 520,-1804.5 520,-1857.5"/>
<text text-anchor="middle" x="404" y="-1842.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="404" y="-1827.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable `sync_large_che</text>
<text text-anchor="middle" x="404" y="-1812.3" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1007 -->
<g id="node38" class="node">
<title>ZcashFoundation/zebra#1007</title>
<g id="a_node38"><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,-1865 556,-1865 556,-1861 552,-1861 552,-1857 556,-1857 556,-1805 552,-1805 552,-1801 556,-1801 556,-1797 788,-1797 788,-1865"/>
<polyline fill="none" stroke="#000000" points="556,-1861 560,-1861 560,-1857 556,-1857 "/>
<polyline fill="none" stroke="#000000" points="556,-1805 560,-1805 560,-1801 556,-1801 "/>
<text text-anchor="middle" x="672" y="-1849.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="672" y="-1834.8" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="672" y="-1819.8" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="672" y="-1804.8" 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="edge19" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M520.38,-1831C528.71,-1831 537.14,-1831 545.53,-1831"/>
<polygon fill="#000000" stroke="#000000" points="545.74,-1834.5001 555.74,-1831 545.74,-1827.5001 545.74,-1834.5001"/>
</g>
<!-- ZcashFoundation/zebra#2331 -->
<g id="node39" class="node">
<title>ZcashFoundation/zebra#2331</title>
<g id="a_node39"><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,-2016.5 10,-2016.5 10,-1963.5 242,-1963.5 242,-2016.5"/>
<text text-anchor="middle" x="126" y="-2001.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2331</text>
<text text-anchor="middle" x="126" y="-1986.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove serde from zebra&#45;</text>
<text text-anchor="middle" x="126" y="-1971.3" font-family="Times,serif" font-size="14.00" fill="#000000">chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2560 -->
<g id="node40" class="node">
<title>ZcashFoundation/zebra#2560</title>
<g id="a_node40"><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,-2049.5 288,-2049.5 288,-1996.5 520,-1996.5 520,-2049.5"/>
<text text-anchor="middle" x="404" y="-2034.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2560</text>
<text text-anchor="middle" x="404" y="-2019.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test History Tree</text>
<text text-anchor="middle" x="404" y="-2004.3" 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="edge20" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2560</title>
<path fill="none" stroke="#000000" d="M242.29,-2003.8C253.91,-2005.2 265.75,-2006.6 277.47,-2008"/>
<polygon fill="#000000" stroke="#000000" points="277.3911,-2011.5145 287.73,-2009.2 278.2043,-2004.5619 277.3911,-2011.5145"/>
</g>
<!-- ZcashFoundation/zebra#2042 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#2042</title>
<g id="a_node41"><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,-1978 288,-1978 288,-1910 520,-1910 520,-1978"/>
<text text-anchor="middle" x="404" y="-1962.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2042</text>
<text text-anchor="middle" x="404" y="-1947.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;chain: Port array&#45;</text>
<text text-anchor="middle" x="404" y="-1932.8" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper types to const</text>
<text text-anchor="middle" x="404" y="-1917.8" 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="edge21" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042</title>
<path fill="none" stroke="#000000" d="M242.29,-1970.8C254.03,-1968.8 265.99,-1966.8 277.83,-1964.9"/>
<polygon fill="#000000" stroke="#000000" points="278.4666,-1968.342 287.73,-1963.2 277.2819,-1961.443 278.4666,-1968.342"/>
</g>
<!-- ZcashFoundation/redjubjub#127 -->
<g id="node42" class="node">
<title>ZcashFoundation/redjubjub#127</title>
<g id="a_node42"><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,-2166 0,-2166 0,-2098 252,-2098 252,-2166"/>
<text text-anchor="middle" x="126" y="-2150.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/redjubjub#127</text>
<text text-anchor="middle" x="126" y="-2135.8" font-family="Times,serif" font-size="14.00" fill="#000000">VerificationKey should</text>
<text text-anchor="middle" x="126" y="-2120.8" font-family="Times,serif" font-size="14.00" fill="#000000">not reject small&#45;order</text>
<text text-anchor="middle" x="126" y="-2105.8" font-family="Times,serif" font-size="14.00" fill="#000000">points or the identity</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2549 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#2549</title>
<g id="a_node43"><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,-2196 288,-2196 288,-2068 520,-2068 520,-2196"/>
<text text-anchor="middle" x="404" y="-2180.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2549</text>
<text text-anchor="middle" x="404" y="-2165.8" font-family="Times,serif" font-size="14.00" fill="#000000">Fix Redjubjub to support</text>
<text text-anchor="middle" x="404" y="-2150.8" font-family="Times,serif" font-size="14.00" fill="#000000">low&#45;order Jubjub points,</text>
<text text-anchor="middle" x="404" y="-2135.8" font-family="Times,serif" font-size="14.00" fill="#000000">move small&#45;order</text>
<text text-anchor="middle" x="404" y="-2120.8" font-family="Times,serif" font-size="14.00" fill="#000000">exclusion checks to</text>
<text text-anchor="middle" x="404" y="-2105.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling</text>
<text text-anchor="middle" x="404" y="-2090.8" font-family="Times,serif" font-size="14.00" fill="#000000">SpendAuthorizationKey and</text>
<text text-anchor="middle" x="404" y="-2075.8" 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="edge22" class="edge">
<title>ZcashFoundation/redjubjub#127&#45;&gt;ZcashFoundation/zebra#2549</title>
<path fill="none" stroke="#000000" d="M252.39,-2132C260.75,-2132 269.18,-2132 277.54,-2132"/>
<polygon fill="#000000" stroke="#000000" points="277.7,-2135.5001 287.7,-2132 277.7,-2128.5001 277.7,-2135.5001"/>
</g>
<!-- ZcashFoundation/zebra#1827 -->
<g id="node44" class="node">
<title>ZcashFoundation/zebra#1827</title>
<g id="a_node44"><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,-2267.5 10,-2267.5 10,-2184.5 242,-2184.5 242,-2267.5"/>
<text text-anchor="middle" x="126" y="-2252.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="126" y="-2237.3" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="126" y="-2222.3" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="126" y="-2207.3" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="126" y="-2192.3" font-family="Times,serif" font-size="14.00" fill="#000000">`PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id="node45" class="node">
<title>ZcashFoundation/zebra#1592</title>
<g id="a_node45"><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,-2338.5 10,-2338.5 10,-2285.5 242,-2285.5 242,-2338.5"/>
<text text-anchor="middle" x="126" y="-2323.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="126" y="-2308.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="126" y="-2293.3" font-family="Times,serif" font-size="14.00" fill="#000000">hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id="node46" class="node">
<title>ZcashFoundation/zebra#1817</title>
<g id="a_node46"><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,-2361 288,-2361 288,-2357 284,-2357 284,-2353 288,-2353 288,-2271 284,-2271 284,-2267 288,-2267 288,-2263 520,-2263 520,-2361"/>
<polyline fill="none" stroke="#000000" points="288,-2357 292,-2357 292,-2353 288,-2353 "/>
<polyline fill="none" stroke="#000000" points="288,-2271 292,-2271 292,-2267 288,-2267 "/>
<text text-anchor="middle" x="404" y="-2345.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="404" y="-2330.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="404" y="-2315.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="404" y="-2300.8" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="404" y="-2285.8" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="404" y="-2270.8" 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="edge23" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M242.29,-2312C253.91,-2312 265.75,-2312 277.47,-2312"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-2315.5001 287.73,-2312 277.73,-2308.5001 277.73,-2315.5001"/>
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id="node47" class="node">
<title>ZcashFoundation/zebra#1841</title>
<g id="a_node47"><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,-2439.5 10,-2439.5 10,-2356.5 242,-2356.5 242,-2439.5"/>
<text text-anchor="middle" x="126" y="-2424.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="126" y="-2409.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;252: Update Zebra and</text>
<text text-anchor="middle" x="126" y="-2394.3" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="126" y="-2379.3" font-family="Times,serif" font-size="14.00" fill="#000000">heights and protocol</text>
<text text-anchor="middle" x="126" y="-2364.3" font-family="Times,serif" font-size="14.00" fill="#000000">versions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node48" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node48"><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,-2627.5 10,-2627.5 10,-2544.5 242,-2544.5 242,-2627.5"/>
<text text-anchor="middle" x="126" y="-2612.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="126" y="-2597.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="126" y="-2582.3" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="126" y="-2567.3" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="126" y="-2552.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node49" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node49"><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,-2573 288,-2573 288,-2505 520,-2505 520,-2573"/>
<text text-anchor="middle" x="404" y="-2557.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="404" y="-2542.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="404" y="-2527.8" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="404" y="-2512.8" 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="edge24" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M242.29,-2566.3C254.03,-2564.4 265.99,-2562.3 277.83,-2560.3"/>
<polygon fill="#000000" stroke="#000000" points="278.4165,-2563.7507 287.73,-2558.7 277.2997,-2556.8404 278.4165,-2563.7507"/>
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id="node50" class="node">
<title>ZcashFoundation/zebra#1873</title>
<g id="a_node50"><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" stroke-width="2" points="242,-2714 10,-2714 10,-2646 242,-2646 242,-2714"/>
<text text-anchor="middle" x="126" y="-2698.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="126" y="-2683.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Zebra&#39;s address</text>
<text text-anchor="middle" x="126" y="-2668.8" font-family="Times,serif" font-size="14.00" fill="#000000">book can use all</text>
<text text-anchor="middle" x="126" y="-2653.8" font-family="Times,serif" font-size="14.00" fill="#000000">available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node51"><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,-2800 10,-2800 10,-2732 242,-2732 242,-2800"/>
<text text-anchor="middle" x="126" y="-2784.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="126" y="-2769.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="126" y="-2754.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="126" y="-2739.8" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node52"><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, to avoid&#10;address book takeover" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="242,-1913 10,-1913 10,-1815 242,-1815 242,-1913"/>
<text text-anchor="middle" x="126" y="-1897.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="126" y="-1882.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="126" y="-1867.8" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="126" y="-1852.8" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="126" y="-1837.8" font-family="Times,serif" font-size="14.00" fill="#000000">response, to avoid</text>
<text text-anchor="middle" x="126" y="-1822.8" font-family="Times,serif" font-size="14.00" fill="#000000">address book takeover</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M242.29,-1850.2C253.91,-1848.8 265.75,-1847.4 277.47,-1846"/>
<polygon fill="#000000" stroke="#000000" points="278.2043,-1849.4381 287.73,-1844.8 277.3911,-1842.4855 278.2043,-1849.4381"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node53" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node53"><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,-2901.5 10,-2901.5 10,-2818.5 242,-2818.5 242,-2901.5"/>
<text text-anchor="middle" x="126" y="-2886.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="126" y="-2871.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="126" y="-2856.3" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="126" y="-2841.3" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="126" y="-2826.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node54" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node54"><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,-2894 288,-2894 288,-2826 520,-2826 520,-2894"/>
<text text-anchor="middle" x="404" y="-2878.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="404" y="-2863.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="404" y="-2848.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="404" y="-2833.8" 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="edge26" class="edge">
<title>ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893</title>
<path fill="none" stroke="#000000" d="M242.29,-2860C253.91,-2860 265.75,-2860 277.47,-2860"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-2863.5001 287.73,-2860 277.73,-2856.5001 277.73,-2863.5001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node55"><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,-1797 10,-1797 10,-1729 242,-1729 242,-1797"/>
<text text-anchor="middle" x="126" y="-1781.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="126" y="-1766.8" font-family="Times,serif" font-size="14.00" fill="#000000">DNS seeders and block</text>
<text text-anchor="middle" x="126" y="-1751.8" font-family="Times,serif" font-size="14.00" fill="#000000">explorers don&#39;t show</text>
<text text-anchor="middle" x="126" y="-1736.8" 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="edge27" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M242.29,-1791.4C256.55,-1794.9 271.14,-1798.5 285.44,-1802"/>
<polygon fill="#000000" stroke="#000000" points="284.7457,-1805.4331 295.29,-1804.4 286.4028,-1798.6321 284.7457,-1805.4331"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node56"><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,-3022.5 10,-3022.5 10,-2939.5 242,-2939.5 242,-3022.5"/>
<text text-anchor="middle" x="126" y="-3007.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="126" y="-2992.3" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="126" y="-2977.3" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="126" y="-2962.3" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="126" y="-2947.3" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node57"><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,-3251.5 288,-3251.5 288,-3168.5 520,-3168.5 520,-3251.5"/>
<text text-anchor="middle" x="404" y="-3236.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="404" y="-3221.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="404" y="-3206.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="404" y="-3191.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="404" y="-3176.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node58"><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,-3181.5 560.5,-3181.5 560.5,-3098.5 783.5,-3098.5 783.5,-3181.5"/>
<text text-anchor="middle" x="672" y="-3166.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="672" y="-3151.3" font-family="Times,serif" font-size="14.00" fill="#000000">Justify our alternative</text>
<text text-anchor="middle" x="672" y="-3136.3" font-family="Times,serif" font-size="14.00" fill="#000000">to &quot;evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="672" y="-3121.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="672" y="-3106.3" 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="edge28" class="edge">
<title>ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M520.38,-3179.6C530.34,-3177 540.43,-3174.4 550.43,-3171.8"/>
<polygon fill="#000000" stroke="#000000" points="551.5983,-3175.1124 560.39,-3169.2 549.8302,-3168.3394 551.5983,-3175.1124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node59"><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,-2526 10,-2526 10,-2458 242,-2458 242,-2526"/>
<text text-anchor="middle" x="126" y="-2510.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="126" y="-2495.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="126" y="-2480.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="126" y="-2465.8" 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="edge29" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M242.29,-2511.7C254.03,-2513.6 265.99,-2515.7 277.83,-2517.7"/>
<polygon fill="#000000" stroke="#000000" points="277.2997,-2521.1596 287.73,-2519.3 278.4165,-2514.2493 277.2997,-2521.1596"/>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node60"><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,-3233.5 10,-3233.5 10,-3180.5 242,-3180.5 242,-3233.5"/>
<text text-anchor="middle" x="126" y="-3218.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="126" y="-3203.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="126" y="-3188.3" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node61" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node61"><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,-3320 10,-3320 10,-3252 242,-3252 242,-3320"/>
<text text-anchor="middle" x="126" y="-3304.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="126" y="-3289.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="126" y="-3274.8" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="126" y="-3259.8" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node62"><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,-3406 10,-3406 10,-3338 242,-3338 242,-3406"/>
<text text-anchor="middle" x="126" y="-3390.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="126" y="-3375.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="126" y="-3360.8" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="126" y="-3345.8" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node63" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node63"><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,-3477.5 10,-3477.5 10,-3473.5 6,-3473.5 6,-3469.5 10,-3469.5 10,-3432.5 6,-3432.5 6,-3428.5 10,-3428.5 10,-3424.5 242,-3424.5 242,-3477.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="10,-3473.5 14,-3473.5 14,-3469.5 10,-3469.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="10,-3432.5 14,-3432.5 14,-3428.5 10,-3428.5 "/>
<text text-anchor="middle" x="126" y="-3462.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="126" y="-3447.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="126" y="-3432.3" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node64"><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,-3485 288,-3485 288,-3417 520,-3417 520,-3485"/>
<text text-anchor="middle" x="404" y="-3469.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="404" y="-3454.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="404" y="-3439.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="404" y="-3424.8" 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="edge30" class="edge">
<title>ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052</title>
<path fill="none" stroke="#000000" d="M242.29,-3451C253.91,-3451 265.75,-3451 277.47,-3451"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-3454.5001 287.73,-3451 277.73,-3447.5001 277.73,-3454.5001"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node65"><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,-3548.5 10,-3548.5 10,-3495.5 242,-3495.5 242,-3548.5"/>
<text text-anchor="middle" x="126" y="-3533.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="126" y="-3518.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="126" y="-3503.3" font-family="Times,serif" font-size="14.00" fill="#000000">FinalSaplingRoot</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node66"><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" stroke-width="2" points="242,-3619.5 10,-3619.5 10,-3566.5 242,-3566.5 242,-3619.5"/>
<text text-anchor="middle" x="126" y="-3604.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="126" y="-3589.3" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="126" y="-3574.3" font-family="Times,serif" font-size="14.00" fill="#000000">TurboWish/tokio&#45;console</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2193 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#2193</title>
<g id="a_node67"><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="520,-3634.5 288,-3634.5 288,-3551.5 520,-3551.5 520,-3634.5"/>
<text text-anchor="middle" x="404" y="-3619.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2193</text>
<text text-anchor="middle" x="404" y="-3604.3" font-family="Times,serif" font-size="14.00" fill="#000000">Redesign zebra&#45;network so</text>
<text text-anchor="middle" x="404" y="-3589.3" font-family="Times,serif" font-size="14.00" fill="#000000">it&#39;s less sensitive to</text>
<text text-anchor="middle" x="404" y="-3574.3" font-family="Times,serif" font-size="14.00" fill="#000000">message order, timing,</text>
<text text-anchor="middle" x="404" y="-3559.3" 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="edge31" class="edge">
<title>ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193</title>
<path fill="none" stroke="#000000" d="M242.29,-3593C253.91,-3593 265.75,-3593 277.47,-3593"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-3596.5001 287.73,-3593 277.73,-3589.5001 277.73,-3596.5001"/>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node68"><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,-3720.5 10,-3720.5 10,-3667.5 242,-3667.5 242,-3720.5"/>
<text text-anchor="middle" x="126" y="-3705.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="126" y="-3690.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="126" y="-3675.3" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node69"><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,-3735.5 288,-3735.5 288,-3652.5 520,-3652.5 520,-3735.5"/>
<text text-anchor="middle" x="404" y="-3720.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="404" y="-3705.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="404" y="-3690.3" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="404" y="-3675.3" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="404" y="-3660.3" 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="edge32" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M242.29,-3694C253.91,-3694 265.75,-3694 277.47,-3694"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-3697.5001 287.73,-3694 277.73,-3690.5001 277.73,-3697.5001"/>
</g>
<!-- ZcashFoundation/zebra#2202 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#2202</title>
<g id="a_node70"><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" stroke-width="2" points="242,-3807 10,-3807 10,-3739 242,-3739 242,-3807"/>
<text text-anchor="middle" x="126" y="-3791.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="126" y="-3776.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="126" y="-3761.8" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="126" y="-3746.8" font-family="Times,serif" font-size="14.00" fill="#000000">thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#2201</title>
<g id="a_node71"><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" stroke-width="2" points="242,-3878.5 10,-3878.5 10,-3825.5 242,-3825.5 242,-3878.5"/>
<text text-anchor="middle" x="126" y="-3863.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="126" y="-3848.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="126" y="-3833.3" font-family="Times,serif" font-size="14.00" fill="#000000">to a blocking thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#2268</title>
<g id="a_node72"><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" stroke-width="2" points="242,-3949.5 10,-3949.5 10,-3896.5 242,-3896.5 242,-3949.5"/>
<text text-anchor="middle" x="126" y="-3934.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="126" y="-3919.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="126" y="-3904.3" font-family="Times,serif" font-size="14.00" fill="#000000">watch or oneshot channels</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node73"><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,-4020.5 10,-4020.5 10,-3967.5 242,-3967.5 242,-4020.5"/>
<text text-anchor="middle" x="126" y="-4005.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="126" y="-3990.3" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="126" y="-3975.3" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node74"><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,-4091.5 10,-4091.5 10,-4038.5 242,-4038.5 242,-4091.5"/>
<text text-anchor="middle" x="126" y="-4076.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="126" y="-4061.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="126" y="-4046.3" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node75"><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,-3162.5 10,-3162.5 10,-3079.5 242,-3079.5 242,-3162.5"/>
<text text-anchor="middle" x="126" y="-3147.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="126" y="-3132.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="126" y="-3117.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="126" y="-3102.3" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="126" y="-3087.3" 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="edge33" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M242.29,-3158.2C254.14,-3162 266.23,-3165.9 278.18,-3169.7"/>
<polygon fill="#000000" stroke="#000000" points="277.1379,-3173.0415 287.73,-3172.8 279.2992,-3166.3834 277.1379,-3173.0415"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge34" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M242.13,-3125C332.67,-3128.2 458.05,-3132.6 550.04,-3135.8"/>
<polygon fill="#000000" stroke="#000000" points="550.1515,-3139.3047 560.25,-3136.1 550.3571,-3132.3077 550.1515,-3139.3047"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node76"><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,-3112 288,-3112 288,-3044 520,-3044 520,-3112"/>
<text text-anchor="middle" x="404" y="-3096.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="404" y="-3081.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="404" y="-3066.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="404" y="-3051.8" 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="edge35" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M242.29,-3103C254.03,-3101.2 265.99,-3099.3 277.83,-3097.5"/>
<polygon fill="#000000" stroke="#000000" points="278.3672,-3100.9586 287.73,-3096 277.3185,-3094.0376 278.3672,-3100.9586"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node77"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2107" xlink:title="ZcashFoundation/zebra#2107&#10;Security: Stop&#10;disconnecting from nodes&#10;that send unexpected&#10;messages, to prevent&#10;disconnection attacks,&#10;Credit: Equilibrium" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="520,-3025.5 288,-3025.5 288,-2912.5 520,-2912.5 520,-3025.5"/>
<text text-anchor="middle" x="404" y="-3010.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="404" y="-2995.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="404" y="-2980.3" font-family="Times,serif" font-size="14.00" fill="#000000">disconnecting from nodes</text>
<text text-anchor="middle" x="404" y="-2965.3" font-family="Times,serif" font-size="14.00" fill="#000000">that send unexpected</text>
<text text-anchor="middle" x="404" y="-2950.3" font-family="Times,serif" font-size="14.00" fill="#000000">messages, to prevent</text>
<text text-anchor="middle" x="404" y="-2935.3" font-family="Times,serif" font-size="14.00" fill="#000000">disconnection attacks,</text>
<text text-anchor="middle" x="404" y="-2920.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="edge36" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M201.96,-3079.5C229.62,-3064.3 261.5,-3046.9 291.64,-3030.4"/>
<polygon fill="#000000" stroke="#000000" points="293.3809,-3033.4376 300.51,-3025.6 290.0494,-3027.2812 293.3809,-3033.4376"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge37" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M504.61,-3025.5C509.84,-3028.7 515,-3031.9 520,-3035 548.67,-3053 579.55,-3074 605.93,-3092.5"/>
<polygon fill="#000000" stroke="#000000" points="604.1351,-3095.5164 614.33,-3098.4 608.1585,-3089.7882 604.1351,-3095.5164"/>
</g>
<!-- ZcashFoundation/zebra#2338 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#2338</title>
<g id="a_node78"><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,-4162.5 10,-4162.5 10,-4109.5 242,-4109.5 242,-4162.5"/>
<text text-anchor="middle" x="126" y="-4147.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2338</text>
<text text-anchor="middle" x="126" y="-4132.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create Error enums in</text>
<text text-anchor="middle" x="126" y="-4117.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zebrad`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2339 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#2339</title>
<g id="a_node79"><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="#fad8c7" stroke="#000000" points="520,-4170 288,-4170 288,-4102 520,-4102 520,-4170"/>
<text text-anchor="middle" x="404" y="-4154.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2339</text>
<text text-anchor="middle" x="404" y="-4139.8" font-family="Times,serif" font-size="14.00" fill="#000000">Downcast and match</text>
<text text-anchor="middle" x="404" y="-4124.8" font-family="Times,serif" font-size="14.00" fill="#000000">Already Verified error</text>
<text text-anchor="middle" x="404" y="-4109.8" 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="edge38" class="edge">
<title>ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339</title>
<path fill="none" stroke="#000000" d="M242.29,-4136C253.91,-4136 265.75,-4136 277.47,-4136"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-4139.5001 287.73,-4136 277.73,-4132.5001 277.73,-4139.5001"/>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node80"><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,-4249 10,-4249 10,-4181 242,-4181 242,-4249"/>
<text text-anchor="middle" x="126" y="-4233.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="126" y="-4218.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically use zebrad</text>
<text text-anchor="middle" x="126" y="-4203.8" font-family="Times,serif" font-size="14.00" fill="#000000">version for the zebra&#45;</text>
<text text-anchor="middle" x="126" y="-4188.8" font-family="Times,serif" font-size="14.00" fill="#000000">network user agent</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node81"><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,-4241.5 292.5,-4241.5 292.5,-4188.5 515.5,-4188.5 515.5,-4241.5"/>
<text text-anchor="middle" x="404" y="-4226.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="404" y="-4211.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="404" y="-4196.3" 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="edge39" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M242.29,-4215C255.45,-4215 268.89,-4215 282.12,-4215"/>
<polygon fill="#000000" stroke="#000000" points="282.18,-4218.5001 292.18,-4215 282.18,-4211.5001 282.18,-4218.5001"/>
</g>
<!-- ZcashFoundation/zebra#2377 -->
<g id="node82" class="node">
<title>ZcashFoundation/zebra#2377</title>
<g id="a_node82"><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,-4320.5 10,-4320.5 10,-4267.5 242,-4267.5 242,-4320.5"/>
<text text-anchor="middle" x="126" y="-4305.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2377</text>
<text text-anchor="middle" x="126" y="-4290.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor history tree</text>
<text text-anchor="middle" x="126" y="-4275.3" font-family="Times,serif" font-size="14.00" fill="#000000">pruning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2378 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#2378</title>
<g id="a_node83"><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,-4391.5 10,-4391.5 10,-4338.5 242,-4338.5 242,-4391.5"/>
<text text-anchor="middle" x="126" y="-4376.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2378</text>
<text text-anchor="middle" x="126" y="-4361.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve history and note</text>
<text text-anchor="middle" x="126" y="-4346.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees forking</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1951 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#1951</title>
<g id="a_node84"><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,-4492.5 10,-4492.5 10,-4409.5 242,-4409.5 242,-4492.5"/>
<text text-anchor="middle" x="126" y="-4477.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1951</text>
<text text-anchor="middle" x="126" y="-4462.3" font-family="Times,serif" font-size="14.00" fill="#000000">Generalize/deduplicate</text>
<text text-anchor="middle" x="126" y="-4447.3" font-family="Times,serif" font-size="14.00" fill="#000000">async batch verification</text>
<text text-anchor="middle" x="126" y="-4432.3" font-family="Times,serif" font-size="14.00" fill="#000000">services / create a</text>
<text text-anchor="middle" x="126" y="-4417.3" font-family="Times,serif" font-size="14.00" fill="#000000">derive&#45;able proc macro</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2390 -->
<g id="node85" class="node">
<title>ZcashFoundation/zebra#2390</title>
<g id="a_node85"><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,-4492.5 288,-4492.5 288,-4409.5 520,-4409.5 520,-4492.5"/>
<text text-anchor="middle" x="404" y="-4477.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2390</text>
<text text-anchor="middle" x="404" y="-4462.3" font-family="Times,serif" font-size="14.00" fill="#000000">Fix tasks spawned by</text>
<text text-anchor="middle" x="404" y="-4447.3" font-family="Times,serif" font-size="14.00" fill="#000000">`tower_batch::Batch` only</text>
<text text-anchor="middle" x="404" y="-4432.3" font-family="Times,serif" font-size="14.00" fill="#000000">being alive during one</text>
<text text-anchor="middle" x="404" y="-4417.3" 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="edge40" class="edge">
<title>ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390</title>
<path fill="none" stroke="#000000" d="M242.29,-4451C253.91,-4451 265.75,-4451 277.47,-4451"/>
<polygon fill="#000000" stroke="#000000" points="277.73,-4454.5001 287.73,-4451 277.73,-4447.5001 277.73,-4454.5001"/>
</g>
<!-- ZcashFoundation/zebra#338 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#338</title>
<g id="a_node86"><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,-4563.5 14.5,-4563.5 14.5,-4510.5 237.5,-4510.5 237.5,-4563.5"/>
<text text-anchor="middle" x="126" y="-4548.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#338</text>
<text text-anchor="middle" x="126" y="-4533.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calc Block Subsidy and</text>
<text text-anchor="middle" x="126" y="-4518.3" font-family="Times,serif" font-size="14.00" fill="#000000">Funding Streams</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1162 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#1162</title>
<g id="a_node87"><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,-4563.5 288,-4563.5 288,-4510.5 520,-4510.5 520,-4563.5"/>
<text text-anchor="middle" x="404" y="-4548.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1162</text>
<text text-anchor="middle" x="404" y="-4533.3" font-family="Times,serif" font-size="14.00" fill="#000000">Validate coinbase miner</text>
<text text-anchor="middle" x="404" y="-4518.3" 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="edge41" class="edge">
<title>ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M237.87,-4537C250.98,-4537 264.42,-4537 277.7,-4537"/>
<polygon fill="#000000" stroke="#000000" points="277.82,-4540.5001 287.82,-4537 277.82,-4533.5001 277.82,-4540.5001"/>
</g>
<!-- ZcashFoundation/zebra#2391 -->
<g id="node88" class="node">
<title>ZcashFoundation/zebra#2391</title>
<g id="a_node88"><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" stroke-width="2" points="242,-4650 10,-4650 10,-4582 242,-4582 242,-4650"/>
<text text-anchor="middle" x="126" y="-4634.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2391</text>
<text text-anchor="middle" x="126" y="-4619.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce the dependencies</text>
<text text-anchor="middle" x="126" y="-4604.8" font-family="Times,serif" font-size="14.00" fill="#000000">on different versions of</text>
<text text-anchor="middle" x="126" y="-4589.8" font-family="Times,serif" font-size="14.00" fill="#000000">`rand`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2425 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2425</title>
<g id="a_node89"><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,-4721.5 10,-4721.5 10,-4668.5 242,-4668.5 242,-4721.5"/>
<text text-anchor="middle" x="126" y="-4706.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2425</text>
<text text-anchor="middle" x="126" y="-4691.3" font-family="Times,serif" font-size="14.00" fill="#000000">Validate note commitment</text>
<text text-anchor="middle" x="126" y="-4676.3" font-family="Times,serif" font-size="14.00" fill="#000000">trees in state</text>
</a>
</g>
</g>
</g>
</svg>