developers/zcash-zf-dag.svg

1722 lines
133 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="1076pt" height="5207pt"
viewBox="0.00 0.00 1076.00 5206.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 5202.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-5202.5 1072,-5202.5 1072,4 -4,4"/>
<!-- ZcashFoundation/zebra#2818 -->
<g id="node1" class="node">
<title>ZcashFoundation/zebra#2818</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2818" xlink:title="ZcashFoundation/zebra#2818&#10;Add transactions that&#10;failed verification to&#10;the mempool rejected list" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-154 300,-154 300,-86 532,-86 532,-154"/>
<text text-anchor="middle" x="416" y="-138.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2818</text>
<text text-anchor="middle" x="416" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add transactions that</text>
<text text-anchor="middle" x="416" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">failed verification to</text>
<text text-anchor="middle" x="416" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool rejected list</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2819 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#2819</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2819" xlink:title="ZcashFoundation/zebra#2819&#10;Match rejected&#10;transactions correctly by&#10;TXID or WTXID" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-154 568,-154 568,-86 800,-86 800,-154"/>
<text text-anchor="middle" x="684" y="-138.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2819</text>
<text text-anchor="middle" x="684" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">Match rejected</text>
<text text-anchor="middle" x="684" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions correctly by</text>
<text text-anchor="middle" x="684" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">TXID or WTXID</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2818&#45;&gt;ZcashFoundation/zebra#2819 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#2818&#45;&gt;ZcashFoundation/zebra#2819</title>
<path fill="none" stroke="#000000" d="M532.38,-120C540.71,-120 549.14,-120 557.53,-120"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-123.5001 567.74,-120 557.74,-116.5001 557.74,-123.5001"/>
</g>
<!-- ZcashFoundation/zebra#2694 -->
<g id="node3" class="node">
<title>ZcashFoundation/zebra#2694</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2694" xlink:title="ZcashFoundation/zebra#2694&#10;Un&#45;reject transactions&#10;which depend on newly&#10;created outputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-111 16,-111 16,-43 248,-43 248,-111"/>
<text text-anchor="middle" x="132" y="-95.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2694</text>
<text text-anchor="middle" x="132" y="-80.8" font-family="Times,serif" font-size="14.00" fill="#000000">Un&#45;reject transactions</text>
<text text-anchor="middle" x="132" y="-65.8" font-family="Times,serif" font-size="14.00" fill="#000000">which depend on newly</text>
<text text-anchor="middle" x="132" y="-50.8" font-family="Times,serif" font-size="14.00" fill="#000000">created outputs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2694&#45;&gt;ZcashFoundation/zebra#2818 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#2694&#45;&gt;ZcashFoundation/zebra#2818</title>
<path fill="none" stroke="#000000" d="M248.33,-94.614C262.02,-96.685 276.03,-98.807 289.84,-100.9"/>
<polygon fill="#000000" stroke="#000000" points="289.4398,-104.3791 299.85,-102.41 290.484,-97.4575 289.4398,-104.3791"/>
</g>
<!-- ZcashFoundation/zebra#2821 -->
<g id="node4" class="node">
<title>ZcashFoundation/zebra#2821</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2821" xlink:title="ZcashFoundation/zebra#2821&#10;Add transactions that&#10;failed verification to&#10;the mempool rejected list" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-68 300,-68 300,-64 296,-64 296,-60 300,-60 300,-8 296,-8 296,-4 300,-4 300,0 532,0 532,-68"/>
<polyline fill="none" stroke="#000000" points="300,-64 304,-64 304,-60 300,-60 "/>
<polyline fill="none" stroke="#000000" points="300,-8 304,-8 304,-4 300,-4 "/>
<text text-anchor="middle" x="416" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2821</text>
<text text-anchor="middle" x="416" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add transactions that</text>
<text text-anchor="middle" x="416" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">failed verification to</text>
<text text-anchor="middle" x="416" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool rejected list</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2694&#45;&gt;ZcashFoundation/zebra#2821 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#2694&#45;&gt;ZcashFoundation/zebra#2821</title>
<path fill="none" stroke="#000000" d="M248.33,-59.386C262.02,-57.315 276.03,-55.193 289.84,-53.102"/>
<polygon fill="#000000" stroke="#000000" points="290.4869,-56.544 299.85,-51.586 289.4386,-49.623 290.4869,-56.544"/>
</g>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node5" class="node">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node5"><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="248,-240 16,-240 16,-172 248,-172 248,-240"/>
<text text-anchor="middle" x="132" y="-224.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="132" y="-209.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="132" y="-194.8" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="132" y="-179.8" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node6" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node6"><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="532,-240 300,-240 300,-172 532,-172 532,-240"/>
<text text-anchor="middle" x="416" y="-224.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="416" y="-209.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="416" y="-194.8" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="416" y="-179.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="edge4" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="#000000" d="M248.33,-206C262.02,-206 276.03,-206 289.84,-206"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-209.5001 299.85,-206 289.85,-202.5001 289.85,-209.5001"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node7" class="node">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node7"><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="243.5,-318.5 20.5,-318.5 20.5,-265.5 243.5,-265.5 243.5,-318.5"/>
<text text-anchor="middle" x="132" y="-303.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="132" y="-288.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="132" y="-273.3" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node8" class="node">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling note&#10;encryption/decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-326 304.5,-326 304.5,-258 527.5,-258 527.5,-326"/>
<text text-anchor="middle" x="416" y="-310.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="416" y="-295.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note</text>
<text text-anchor="middle" x="416" y="-280.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="416" y="-265.8" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M243.84,-292C260.29,-292 277.31,-292 293.96,-292"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-295.5001 304.27,-292 294.27,-288.5001 294.27,-295.5001"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node9" class="node">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/325" xlink:title="ZcashFoundation/zebra#325&#10;Block Chain Scanning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-375 20.5,-375 20.5,-337 243.5,-337 243.5,-375"/>
<text text-anchor="middle" x="132" y="-359.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="132" y="-344.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id="node10" class="node">
<title>ZcashFoundation/zebra#619</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/619" xlink:title="ZcashFoundation/zebra#619&#10;Tracking: sync and&#10;validate mainnet" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-446.5 20.5,-446.5 20.5,-393.5 243.5,-393.5 243.5,-446.5"/>
<text text-anchor="middle" x="132" y="-431.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="132" y="-416.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="132" y="-401.3" font-family="Times,serif" font-size="14.00" fill="#000000">validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id="node11" class="node">
<title>ZcashFoundation/zebra#466</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/466" xlink:title="ZcashFoundation/zebra#466&#10;Design network&#10;integration test&#10;framework for Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-454 304.5,-454 304.5,-386 527.5,-386 527.5,-454"/>
<text text-anchor="middle" x="416" y="-438.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="416" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="416" y="-408.8" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="416" y="-393.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="edge6" class="edge">
<title>ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466</title>
<path fill="none" stroke="#000000" d="M243.84,-420C260.29,-420 277.31,-420 293.96,-420"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-423.5001 304.27,-420 294.27,-416.5001 294.27,-423.5001"/>
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id="node12" class="node">
<title>ZcashFoundation/zebra#884</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/884" xlink:title="ZcashFoundation/zebra#884&#10;Tracking: sync&#10;correctness" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-525.5 20.5,-525.5 20.5,-472.5 243.5,-472.5 243.5,-525.5"/>
<text text-anchor="middle" x="132" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="132" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="132" y="-480.3" font-family="Times,serif" font-size="14.00" fill="#000000">correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id="node13" class="node">
<title>ZcashFoundation/zebra#899</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/899" xlink:title="ZcashFoundation/zebra#899&#10;Retcon new sync logic&#10;into RFC1" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-525.5 304.5,-525.5 304.5,-472.5 527.5,-472.5 527.5,-525.5"/>
<text text-anchor="middle" x="416" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="416" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="416" y="-480.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="edge7" class="edge">
<title>ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899</title>
<path fill="none" stroke="#000000" d="M243.84,-499C260.29,-499 277.31,-499 293.96,-499"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-502.5001 304.27,-499 294.27,-495.5001 294.27,-502.5001"/>
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id="node14" class="node">
<title>ZcashFoundation/zebra#919</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/919" xlink:title="ZcashFoundation/zebra#919&#10;Rewrite&#10;`block::tests::generate`&#10;as proptest strategies." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-619 20.5,-619 20.5,-551 243.5,-551 243.5,-619"/>
<text text-anchor="middle" x="132" y="-603.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="132" y="-588.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="132" y="-573.8" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="132" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000">as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id="node15" class="node">
<title>ZcashFoundation/zebra#1021</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1021" xlink:title="ZcashFoundation/zebra#1021&#10;Combine proptests and&#10;transcripts to perform&#10;top&#45;level integration&#10;tests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-626.5 300,-626.5 300,-543.5 532,-543.5 532,-626.5"/>
<text text-anchor="middle" x="416" y="-611.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="416" y="-596.3" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="416" y="-581.3" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="416" y="-566.3" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="416" y="-551.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="edge8" class="edge">
<title>ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021</title>
<path fill="none" stroke="#000000" d="M243.84,-585C258.72,-585 274.06,-585 289.18,-585"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-588.5001 299.59,-585 289.59,-581.5001 289.59,-588.5001"/>
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id="node16" class="node">
<title>ZcashFoundation/zebra#889</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/889" xlink:title="ZcashFoundation/zebra#889&#10;Tracking: inbound message&#10;handling." target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="527.5,-965.5 304.5,-965.5 304.5,-912.5 527.5,-912.5 527.5,-965.5"/>
<text text-anchor="middle" x="416" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="416" y="-935.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="416" y="-920.3" font-family="Times,serif" font-size="14.00" fill="#000000">handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id="node17" class="node">
<title>ZcashFoundation/zebra#1077</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1077" xlink:title="ZcashFoundation/zebra#1077&#10;Send inbound&#10;`TransactionsById`&#10;requests to the mempool&#10;storage service" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="800,-980.5 568,-980.5 568,-897.5 800,-897.5 800,-980.5"/>
<text text-anchor="middle" x="684" y="-965.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="684" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-935.3" font-family="Times,serif" font-size="14.00" fill="#000000">`TransactionsById`</text>
<text text-anchor="middle" x="684" y="-920.3" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="684" y="-905.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="edge9" class="edge">
<title>ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M527.72,-939C537.52,-939 547.49,-939 557.41,-939"/>
<polygon fill="#000000" stroke="#000000" points="557.71,-942.5001 567.71,-939 557.71,-935.5001 557.71,-942.5001"/>
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id="node18" class="node">
<title>ZcashFoundation/zebra#1048</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1048" xlink:title="ZcashFoundation/zebra#1048&#10;Test translation for&#10;zebra&#45;network::{Request,&#10;Response} protocol" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-973 16,-973 16,-905 248,-905 248,-973"/>
<text text-anchor="middle" x="132" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="132" y="-942.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="132" y="-927.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="132" y="-912.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="edge10" class="edge">
<title>ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889</title>
<path fill="none" stroke="#000000" d="M248.33,-939C263.39,-939 278.85,-939 294,-939"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-942.5001 304.43,-939 294.43,-935.5001 294.43,-942.5001"/>
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#1080</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1080" xlink:title="ZcashFoundation/zebra#1080&#10;Send inbound&#10;`PushTransaction`s&#10;broadcasts to the mempool&#10;download and verify&#10;stream" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="800,-879 568,-879 568,-781 800,-781 800,-879"/>
<text text-anchor="middle" x="684" y="-863.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="684" y="-848.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000">`PushTransaction`s</text>
<text text-anchor="middle" x="684" y="-818.8" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="684" y="-803.8" font-family="Times,serif" font-size="14.00" fill="#000000">download and verify</text>
<text text-anchor="middle" x="684" y="-788.8" font-family="Times,serif" font-size="14.00" fill="#000000">stream</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id="node20" class="node">
<title>ZcashFoundation/zebra#1081</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1081" xlink:title="ZcashFoundation/zebra#1081&#10;Send inbound&#10;`AdvertiseTransactionIds`&#10;broadcasts to the mempool&#10;download &amp; verify stream" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="800,-762.5 568,-762.5 568,-679.5 800,-679.5 800,-762.5"/>
<text text-anchor="middle" x="684" y="-747.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="684" y="-732.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-717.3" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransactionIds`</text>
<text text-anchor="middle" x="684" y="-702.3" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="684" y="-687.3" font-family="Times,serif" font-size="14.00" fill="#000000">download &amp; verify stream</text>
</a>
</g>
</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="248,-1044.5 16,-1044.5 16,-991.5 248,-991.5 248,-1044.5"/>
<text text-anchor="middle" x="132" y="-1029.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="132" y="-1014.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="132" y="-999.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra can sync from Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1311 -->
<g id="node22" class="node">
<title>ZcashFoundation/zebra#1311</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1311" xlink:title="ZcashFoundation/zebra#1311&#10;Create function for post&#45;&#10;blossom height&#10;adjustments" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1131 16,-1131 16,-1063 248,-1063 248,-1131"/>
<text text-anchor="middle" x="132" y="-1115.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1311</text>
<text text-anchor="middle" x="132" y="-1100.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create function for post&#45;</text>
<text text-anchor="middle" x="132" y="-1085.8" font-family="Times,serif" font-size="14.00" fill="#000000">blossom height</text>
<text text-anchor="middle" x="132" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000">adjustments</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1170 -->
<g id="node23" class="node">
<title>ZcashFoundation/zebra#1170</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/1170" xlink:title="ZcashFoundation/zebra#1170&#10;Calculate and validate&#10;founders reward addresses" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-1123.5 300,-1123.5 300,-1119.5 296,-1119.5 296,-1115.5 300,-1115.5 300,-1078.5 296,-1078.5 296,-1074.5 300,-1074.5 300,-1070.5 532,-1070.5 532,-1123.5"/>
<polyline fill="none" stroke="#000000" points="300,-1119.5 304,-1119.5 304,-1115.5 300,-1115.5 "/>
<polyline fill="none" stroke="#000000" points="300,-1078.5 304,-1078.5 304,-1074.5 300,-1074.5 "/>
<text text-anchor="middle" x="416" y="-1108.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1170</text>
<text text-anchor="middle" x="416" y="-1093.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calculate and validate</text>
<text text-anchor="middle" x="416" y="-1078.3" font-family="Times,serif" font-size="14.00" fill="#000000">founders reward addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170</title>
<path fill="none" stroke="#000000" d="M248.33,-1097C262.02,-1097 276.03,-1097 289.84,-1097"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1100.5001 299.85,-1097 289.85,-1093.5001 289.85,-1100.5001"/>
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#2200</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2200" xlink:title="ZcashFoundation/zebra#2200&#10;Upgrade to latest tokio" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1346 300,-1346 300,-1308 532,-1308 532,-1346"/>
<text text-anchor="middle" x="416" y="-1330.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2200</text>
<text text-anchor="middle" x="416" y="-1315.8" font-family="Times,serif" font-size="14.00" fill="#000000">Upgrade to latest tokio</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2573 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#2573</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2573" xlink:title="ZcashFoundation/zebra#2573&#10;Remove redundant watch&#10;values once our Tokio&#10;dependency is updated" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1562 568,-1562 568,-1494 800,-1494 800,-1562"/>
<text text-anchor="middle" x="684" y="-1546.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2573</text>
<text text-anchor="middle" x="684" y="-1531.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove redundant watch</text>
<text text-anchor="middle" x="684" y="-1516.8" font-family="Times,serif" font-size="14.00" fill="#000000">values once our Tokio</text>
<text text-anchor="middle" x="684" y="-1501.8" font-family="Times,serif" font-size="14.00" fill="#000000">dependency is updated</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2573 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2573</title>
<path fill="none" stroke="#000000" d="M446.99,-1346.1C472.18,-1362.8 507.45,-1388.8 532,-1418 553.76,-1443.9 542.51,-1462.8 568,-1485 569.14,-1486 570.3,-1487 571.49,-1487.9"/>
<polygon fill="#000000" stroke="#000000" points="569.5037,-1490.784 579.63,-1493.9 573.6571,-1485.1493 569.5037,-1490.784"/>
</g>
<!-- ZcashFoundation/zebra#2202 -->
<g id="node26" class="node">
<title>ZcashFoundation/zebra#2202</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2202" xlink:title="ZcashFoundation/zebra#2202&#10;Move batch cryptography&#10;flushes to a blocking&#10;thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1476 568,-1476 568,-1408 800,-1408 800,-1476"/>
<text text-anchor="middle" x="684" y="-1460.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="684" y="-1445.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="684" y="-1430.8" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="684" y="-1415.8" font-family="Times,serif" font-size="14.00" fill="#000000">thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202</title>
<path fill="none" stroke="#000000" d="M454.69,-1346C485.2,-1360.8 528.96,-1381.5 568,-1398 572.78,-1400 577.68,-1402 582.64,-1404.1"/>
<polygon fill="#000000" stroke="#000000" points="581.6636,-1407.4776 592.25,-1407.9 584.2376,-1400.968 581.6636,-1407.4776"/>
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id="node27" class="node">
<title>ZcashFoundation/zebra#2201</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2201" xlink:title="ZcashFoundation/zebra#2201&#10;Move the metrics recorder&#10;to a blocking thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1389.5 568,-1389.5 568,-1336.5 800,-1336.5 800,-1389.5"/>
<text text-anchor="middle" x="684" y="-1374.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="684" y="-1359.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="684" y="-1344.3" font-family="Times,serif" font-size="14.00" fill="#000000">to a blocking thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201</title>
<path fill="none" stroke="#000000" d="M532.38,-1342.6C540.81,-1343.8 549.33,-1344.9 557.81,-1346"/>
<polygon fill="#000000" stroke="#000000" points="557.3493,-1349.4696 567.74,-1347.4 558.3266,-1342.5381 557.3493,-1349.4696"/>
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id="node28" class="node">
<title>ZcashFoundation/zebra#2268</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2268" xlink:title="ZcashFoundation/zebra#2268&#10;Replace atomics with&#10;watch or oneshot channels" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1318.5 568,-1318.5 568,-1265.5 800,-1265.5 800,-1318.5"/>
<text text-anchor="middle" x="684" y="-1303.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="684" y="-1288.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="684" y="-1273.3" font-family="Times,serif" font-size="14.00" fill="#000000">watch or oneshot channels</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268</title>
<path fill="none" stroke="#000000" d="M532.38,-1311.8C540.81,-1310.7 549.33,-1309.6 557.81,-1308.5"/>
<polygon fill="#000000" stroke="#000000" points="558.279,-1311.9686 567.74,-1307.2 557.3702,-1305.0278 558.279,-1311.9686"/>
</g>
<!-- ZcashFoundation/zebra#2391 -->
<g id="node29" class="node">
<title>ZcashFoundation/zebra#2391</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2391" xlink:title="ZcashFoundation/zebra#2391&#10;Reduce the dependencies&#10;on different versions of&#10;`rand`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1247 568,-1247 568,-1179 800,-1179 800,-1247"/>
<text text-anchor="middle" x="684" y="-1231.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2391</text>
<text text-anchor="middle" x="684" y="-1216.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce the dependencies</text>
<text text-anchor="middle" x="684" y="-1201.8" font-family="Times,serif" font-size="14.00" fill="#000000">on different versions of</text>
<text text-anchor="middle" x="684" y="-1186.8" font-family="Times,serif" font-size="14.00" fill="#000000">`rand`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391</title>
<path fill="none" stroke="#000000" d="M457.09,-1307.9C479.29,-1297.6 507.16,-1284.6 532,-1273 548.02,-1265.5 551.69,-1262.9 568,-1256 572.12,-1254.3 576.34,-1252.5 580.61,-1250.8"/>
<polygon fill="#000000" stroke="#000000" points="582.0655,-1253.987 590.03,-1247 579.4467,-1247.4953 582.0655,-1253.987"/>
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id="node30" class="node">
<title>ZcashFoundation/zebra#1083</title>
<g id="a_node30"><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="800,-661.5 568,-661.5 568,-578.5 800,-578.5 800,-661.5"/>
<text text-anchor="middle" x="684" y="-646.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="684" y="-631.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-616.3" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactionIds`</text>
<text text-anchor="middle" x="684" y="-601.3" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="684" y="-586.3" font-family="Times,serif" font-size="14.00" fill="#000000">storage service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id="node31" class="node">
<title>ZcashFoundation/zebra#936</title>
<g id="a_node31"><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="527.5,-697.5 304.5,-697.5 304.5,-644.5 527.5,-644.5 527.5,-697.5"/>
<text text-anchor="middle" x="416" y="-682.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#936</text>
<text text-anchor="middle" x="416" y="-667.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: mempool</text>
<text text-anchor="middle" x="416" y="-652.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="edge17" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M428.5,-697.55C450.78,-742.32 501.32,-833.3 568,-888 569.37,-889.13 570.78,-890.23 572.21,-891.32"/>
<polygon fill="#000000" stroke="#000000" points="570.4633,-894.3728 580.64,-897.32 574.5224,-888.6698 570.4633,-894.3728"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M453.99,-697.69C484.29,-718.57 528.12,-747.84 568,-771 570.83,-772.65 573.72,-774.29 576.64,-775.94"/>
<polygon fill="#000000" stroke="#000000" points="575.0492,-779.0601 585.49,-780.86 578.4505,-772.9419 575.0492,-779.0601"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M527.72,-691.84C537.63,-693.69 547.7,-695.57 557.72,-697.44"/>
<polygon fill="#000000" stroke="#000000" points="557.2367,-700.9103 567.71,-699.31 558.5247,-694.0298 557.2367,-700.9103"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M527.72,-649.74C537.63,-647.85 547.7,-645.94 557.72,-644.03"/>
<polygon fill="#000000" stroke="#000000" points="558.5401,-647.4369 567.71,-642.13 557.2321,-640.5601 558.5401,-647.4369"/>
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#571</title>
<g id="a_node32"><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="795.5,-560 572.5,-560 572.5,-492 795.5,-492 795.5,-560"/>
<text text-anchor="middle" x="684" y="-544.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="684" y="-529.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="684" y="-514.8" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="684" y="-499.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="edge21" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M518.38,-644.45C523.18,-641.61 527.76,-638.47 532,-635 557.85,-613.83 542.73,-590.86 568,-569 569.14,-568.01 570.31,-567.05 571.5,-566.1"/>
<polygon fill="#000000" stroke="#000000" points="573.6231,-568.8837 579.65,-560.17 569.5047,-563.2234 573.6231,-568.8837"/>
</g>
<!-- ZcashFoundation/zebra#484 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#484</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/484" xlink:title="ZcashFoundation/zebra#484&#10;Limit transaction size in&#10;the mempool" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="795.5,-473.5 572.5,-473.5 572.5,-420.5 795.5,-420.5 795.5,-473.5"/>
<text text-anchor="middle" x="684" y="-458.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#484</text>
<text text-anchor="middle" x="684" y="-443.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit transaction size in</text>
<text text-anchor="middle" x="684" y="-428.3" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484</title>
<path fill="none" stroke="#000000" d="M521.39,-644.44C525.2,-641.6 528.76,-638.47 532,-635 579.38,-584.26 520.62,-533.74 568,-483 568.91,-482.02 569.85,-481.08 570.81,-480.15"/>
<polygon fill="#000000" stroke="#000000" points="573.2301,-482.6873 578.61,-473.56 568.7125,-477.3402 573.2301,-482.6873"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node34"><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="243.5,-1472.5 20.5,-1472.5 20.5,-1419.5 243.5,-1419.5 243.5,-1472.5"/>
<text text-anchor="middle" x="132" y="-1457.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="132" y="-1442.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="132" y="-1427.3" font-family="Times,serif" font-size="14.00" fill="#000000">validation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#1486</title>
<g id="a_node35"><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="532,-1465 300,-1465 300,-1427 532,-1427 532,-1465"/>
<text text-anchor="middle" x="416" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="416" y="-1434.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="edge23" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M243.84,-1446C258.72,-1446 274.06,-1446 289.18,-1446"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-1449.5001 299.59,-1446 289.59,-1442.5001 289.59,-1449.5001"/>
</g>
<!-- ZcashFoundation/zebra#2675 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#2675</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2675" xlink:title="ZcashFoundation/zebra#2675&#10;Increase MEMPOOL_SIZE" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="800,-1828 568,-1828 568,-1790 800,-1790 800,-1828"/>
<text text-anchor="middle" x="684" y="-1812.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2675</text>
<text text-anchor="middle" x="684" y="-1797.8" font-family="Times,serif" font-size="14.00" fill="#000000">Increase MEMPOOL_SIZE</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node37"><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="248,-1835 16,-1835 16,-1767 248,-1767 248,-1835"/>
<text text-anchor="middle" x="132" y="-1819.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="132" y="-1804.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spent</text>
<text text-anchor="middle" x="132" y="-1789.8" font-family="Times,serif" font-size="14.00" fill="#000000">OutPoints &amp; nullifiers to</text>
<text text-anchor="middle" x="132" y="-1774.8" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2690 -->
<g id="node38" class="node">
<title>ZcashFoundation/zebra#2690</title>
<g id="a_node38"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2690" xlink:title="ZcashFoundation/zebra#2690&#10;Add debug configs for&#10;mempool acceptance tests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1906.5 16,-1906.5 16,-1853.5 248,-1853.5 248,-1906.5"/>
<text text-anchor="middle" x="132" y="-1891.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2690</text>
<text text-anchor="middle" x="132" y="-1876.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add debug configs for</text>
<text text-anchor="middle" x="132" y="-1861.3" font-family="Times,serif" font-size="14.00" fill="#000000">mempool acceptance tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2691 -->
<g id="node39" class="node">
<title>ZcashFoundation/zebra#2691</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2691" xlink:title="ZcashFoundation/zebra#2691&#10;Add `zebrad` acceptance&#10;tests for the mempool" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1906.5 300,-1906.5 300,-1853.5 532,-1853.5 532,-1906.5"/>
<text text-anchor="middle" x="416" y="-1891.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2691</text>
<text text-anchor="middle" x="416" y="-1876.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add `zebrad` acceptance</text>
<text text-anchor="middle" x="416" y="-1861.3" font-family="Times,serif" font-size="14.00" fill="#000000">tests for the mempool</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2690&#45;&gt;ZcashFoundation/zebra#2691 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#2690&#45;&gt;ZcashFoundation/zebra#2691</title>
<path fill="none" stroke="#000000" d="M248.33,-1880C262.02,-1880 276.03,-1880 289.84,-1880"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1883.5001 299.85,-1880 289.85,-1876.5001 289.85,-1883.5001"/>
</g>
<!-- ZcashFoundation/zebra#2729 -->
<g id="node40" class="node">
<title>ZcashFoundation/zebra#2729</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2729" xlink:title="ZcashFoundation/zebra#2729&#10;Gossip recently verified&#10;block hashes to peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1977.5 16,-1977.5 16,-1973.5 12,-1973.5 12,-1969.5 16,-1969.5 16,-1932.5 12,-1932.5 12,-1928.5 16,-1928.5 16,-1924.5 248,-1924.5 248,-1977.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-1973.5 20,-1973.5 20,-1969.5 16,-1969.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-1932.5 20,-1932.5 20,-1928.5 16,-1928.5 "/>
<text text-anchor="middle" x="132" y="-1962.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2729</text>
<text text-anchor="middle" x="132" y="-1947.3" font-family="Times,serif" font-size="14.00" fill="#000000">Gossip recently verified</text>
<text text-anchor="middle" x="132" y="-1932.3" font-family="Times,serif" font-size="14.00" fill="#000000">block hashes to peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#1086</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1086" xlink:title="ZcashFoundation/zebra#1086&#10;Remove git dependencies&#10;on Hyper, Metrics, Tower,&#10;ed25519&#45;zebra, lexical&#45;&#10;core" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1286.5 16,-1286.5 16,-1203.5 248,-1203.5 248,-1286.5"/>
<text text-anchor="middle" x="132" y="-1271.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1086</text>
<text text-anchor="middle" x="132" y="-1256.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove git dependencies</text>
<text text-anchor="middle" x="132" y="-1241.3" font-family="Times,serif" font-size="14.00" fill="#000000">on Hyper, Metrics, Tower,</text>
<text text-anchor="middle" x="132" y="-1226.3" font-family="Times,serif" font-size="14.00" fill="#000000">ed25519&#45;zebra, lexical&#45;</text>
<text text-anchor="middle" x="132" y="-1211.3" font-family="Times,serif" font-size="14.00" fill="#000000">core</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200</title>
<path fill="none" stroke="#000000" d="M248.33,-1278.6C279.3,-1287.5 311.95,-1297 340.13,-1305.1"/>
<polygon fill="#000000" stroke="#000000" points="339.3227,-1308.5095 349.9,-1307.9 341.2513,-1301.7804 339.3227,-1308.5095"/>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node42" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1686" xlink:title="ZcashFoundation/zebra#1686&#10;Delete isolated::Wrapper" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1264 300,-1264 300,-1226 532,-1226 532,-1264"/>
<text text-anchor="middle" x="416" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="416" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000">Delete isolated::Wrapper</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686</title>
<path fill="none" stroke="#000000" d="M248.33,-1245C262.02,-1245 276.03,-1245 289.84,-1245"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1248.5001 299.85,-1245 289.85,-1241.5001 289.85,-1248.5001"/>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node43"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2112" xlink:title="ZcashFoundation/zebra#2112&#10;Integrate&#10;TurboWish/tokio&#45;console" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1194.5 300,-1194.5 300,-1141.5 532,-1141.5 532,-1194.5"/>
<text text-anchor="middle" x="416" y="-1179.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="416" y="-1164.3" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="416" y="-1149.3" font-family="Times,serif" font-size="14.00" fill="#000000">TurboWish/tokio&#45;console</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112</title>
<path fill="none" stroke="#000000" d="M248.33,-1213.5C268.12,-1208.1 288.6,-1202.5 308.15,-1197.2"/>
<polygon fill="#000000" stroke="#000000" points="309.2074,-1200.5408 317.98,-1194.6 307.4175,-1193.7735 309.2074,-1200.5408"/>
</g>
<!-- ZcashFoundation/zebra#2193 -->
<g id="node44" class="node">
<title>ZcashFoundation/zebra#2193</title>
<g id="a_node44"><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="800,-1160.5 568,-1160.5 568,-1077.5 800,-1077.5 800,-1160.5"/>
<text text-anchor="middle" x="684" y="-1145.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2193</text>
<text text-anchor="middle" x="684" y="-1130.3" font-family="Times,serif" font-size="14.00" fill="#000000">Redesign zebra&#45;network so</text>
<text text-anchor="middle" x="684" y="-1115.3" font-family="Times,serif" font-size="14.00" fill="#000000">it&#39;s less sensitive to</text>
<text text-anchor="middle" x="684" y="-1100.3" font-family="Times,serif" font-size="14.00" fill="#000000">message order, timing,</text>
<text text-anchor="middle" x="684" y="-1085.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="edge28" class="edge">
<title>ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193</title>
<path fill="none" stroke="#000000" d="M532.38,-1146.7C540.81,-1145.2 549.33,-1143.6 557.81,-1142.1"/>
<polygon fill="#000000" stroke="#000000" points="558.5246,-1145.5276 567.74,-1140.3 557.2761,-1138.6398 558.5246,-1145.5276"/>
</g>
<!-- ZcashFoundation/zebra#950 -->
<g id="node45" class="node">
<title>ZcashFoundation/zebra#950</title>
<g id="a_node45"><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="243.5,-2064 20.5,-2064 20.5,-1996 243.5,-1996 243.5,-2064"/>
<text text-anchor="middle" x="132" y="-2048.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="132" y="-2033.8" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="132" y="-2018.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="132" y="-2003.8" font-family="Times,serif" font-size="14.00" fill="#000000">syncing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#692 -->
<g id="node46" class="node">
<title>ZcashFoundation/zebra#692</title>
<g id="a_node46"><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="243.5,-2135.5 20.5,-2135.5 20.5,-2082.5 243.5,-2082.5 243.5,-2135.5"/>
<text text-anchor="middle" x="132" y="-2120.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="132" y="-2105.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="132" y="-2090.3" font-family="Times,serif" font-size="14.00" fill="#000000">platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2440 -->
<g id="node47" class="node">
<title>ZcashFoundation/zebra#2440</title>
<g id="a_node47"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2440" xlink:title="ZcashFoundation/zebra#2440&#10;Look up the UTXOs in the&#10;transaction verifier,&#10;then pass them to `verify&#10;_transparent_inputs_and_o&#10;utputs`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1749 16,-1749 16,-1651 248,-1651 248,-1749"/>
<text text-anchor="middle" x="132" y="-1733.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2440</text>
<text text-anchor="middle" x="132" y="-1718.8" font-family="Times,serif" font-size="14.00" fill="#000000">Look up the UTXOs in the</text>
<text text-anchor="middle" x="132" y="-1703.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction verifier,</text>
<text text-anchor="middle" x="132" y="-1688.8" font-family="Times,serif" font-size="14.00" fill="#000000">then pass them to `verify</text>
<text text-anchor="middle" x="132" y="-1673.8" font-family="Times,serif" font-size="14.00" fill="#000000">_transparent_inputs_and_o</text>
<text text-anchor="middle" x="132" y="-1658.8" font-family="Times,serif" font-size="14.00" fill="#000000">utputs`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2779 -->
<g id="node48" class="node">
<title>ZcashFoundation/zebra#2779</title>
<g id="a_node48"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2779" xlink:title="ZcashFoundation/zebra#2779&#10;Return the transaction&#10;fee in the &#160;mempool&#10;response" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1734 300,-1734 300,-1666 532,-1666 532,-1734"/>
<text text-anchor="middle" x="416" y="-1718.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2779</text>
<text text-anchor="middle" x="416" y="-1703.8" font-family="Times,serif" font-size="14.00" fill="#000000">Return the transaction</text>
<text text-anchor="middle" x="416" y="-1688.8" font-family="Times,serif" font-size="14.00" fill="#000000">fee in the &#160;mempool</text>
<text text-anchor="middle" x="416" y="-1673.8" font-family="Times,serif" font-size="14.00" fill="#000000">response</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2440&#45;&gt;ZcashFoundation/zebra#2779 -->
<g id="edge29" class="edge">
<title>ZcashFoundation/zebra#2440&#45;&gt;ZcashFoundation/zebra#2779</title>
<path fill="none" stroke="#000000" d="M248.33,-1700C262.02,-1700 276.03,-1700 289.84,-1700"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1703.5001 299.85,-1700 289.85,-1696.5001 289.85,-1703.5001"/>
</g>
<!-- ZcashFoundation/zebra#2780 -->
<g id="node49" class="node">
<title>ZcashFoundation/zebra#2780</title>
<g id="a_node49"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2780" xlink:title="ZcashFoundation/zebra#2780&#10;Randomly evict mempool&#10;transactions based on&#10;their eviction weights" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1734 568,-1734 568,-1666 800,-1666 800,-1734"/>
<text text-anchor="middle" x="684" y="-1718.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2780</text>
<text text-anchor="middle" x="684" y="-1703.8" font-family="Times,serif" font-size="14.00" fill="#000000">Randomly evict mempool</text>
<text text-anchor="middle" x="684" y="-1688.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions based on</text>
<text text-anchor="middle" x="684" y="-1673.8" font-family="Times,serif" font-size="14.00" fill="#000000">their eviction weights</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2779&#45;&gt;ZcashFoundation/zebra#2780 -->
<g id="edge30" class="edge">
<title>ZcashFoundation/zebra#2779&#45;&gt;ZcashFoundation/zebra#2780</title>
<path fill="none" stroke="#000000" d="M532.38,-1700C540.71,-1700 549.14,-1700 557.53,-1700"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-1703.5001 567.74,-1700 557.74,-1696.5001 557.74,-1703.5001"/>
</g>
<!-- ZcashFoundation/zebra#2744 -->
<g id="node50" class="node">
<title>ZcashFoundation/zebra#2744</title>
<g id="a_node50"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2744" xlink:title="ZcashFoundation/zebra#2744&#10;Make Mempool eviction&#10;compliant with ZIP&#45;401" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1068,-1726.5 836,-1726.5 836,-1673.5 1068,-1673.5 1068,-1726.5"/>
<text text-anchor="middle" x="952" y="-1711.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2744</text>
<text text-anchor="middle" x="952" y="-1696.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make Mempool eviction</text>
<text text-anchor="middle" x="952" y="-1681.3" font-family="Times,serif" font-size="14.00" fill="#000000">compliant with ZIP&#45;401</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2780&#45;&gt;ZcashFoundation/zebra#2744 -->
<g id="edge31" class="edge">
<title>ZcashFoundation/zebra#2780&#45;&gt;ZcashFoundation/zebra#2744</title>
<path fill="none" stroke="#000000" d="M800.38,-1700C808.71,-1700 817.14,-1700 825.53,-1700"/>
<polygon fill="#000000" stroke="#000000" points="825.74,-1703.5001 835.74,-1700 825.74,-1696.5001 825.74,-1703.5001"/>
</g>
<!-- ZcashFoundation/zebra#2759 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#2759</title>
<g id="a_node51"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2759" xlink:title="ZcashFoundation/zebra#2759&#10;Limit the size and age of&#10;the rejected transaction&#10;ID list" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="800,-1648 568,-1648 568,-1580 800,-1580 800,-1648"/>
<text text-anchor="middle" x="684" y="-1632.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2759</text>
<text text-anchor="middle" x="684" y="-1617.8" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the size and age of</text>
<text text-anchor="middle" x="684" y="-1602.8" font-family="Times,serif" font-size="14.00" fill="#000000">the rejected transaction</text>
<text text-anchor="middle" x="684" y="-1587.8" font-family="Times,serif" font-size="14.00" fill="#000000">ID list</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2759&#45;&gt;ZcashFoundation/zebra#2744 -->
<g id="edge32" class="edge">
<title>ZcashFoundation/zebra#2759&#45;&gt;ZcashFoundation/zebra#2744</title>
<path fill="none" stroke="#000000" d="M790.31,-1648.1C813.22,-1655.5 837.26,-1663.2 859.6,-1670.3"/>
<polygon fill="#000000" stroke="#000000" points="858.7974,-1673.7198 869.39,-1673.5 860.9723,-1667.0663 858.7974,-1673.7198"/>
</g>
<!-- ZcashFoundation/zebra#2778 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#2778</title>
<g id="a_node52"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2778" xlink:title="ZcashFoundation/zebra#2778&#10;Add the serialized&#10;transaction size to&#10;`UnminedTx`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="532,-1648 300,-1648 300,-1580 532,-1580 532,-1648"/>
<text text-anchor="middle" x="416" y="-1632.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2778</text>
<text text-anchor="middle" x="416" y="-1617.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add the serialized</text>
<text text-anchor="middle" x="416" y="-1602.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction size to</text>
<text text-anchor="middle" x="416" y="-1587.8" font-family="Times,serif" font-size="14.00" fill="#000000">`UnminedTx`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2778&#45;&gt;ZcashFoundation/zebra#2780 -->
<g id="edge33" class="edge">
<title>ZcashFoundation/zebra#2778&#45;&gt;ZcashFoundation/zebra#2780</title>
<path fill="none" stroke="#000000" d="M522.31,-1648.1C537.29,-1652.9 552.76,-1657.9 567.92,-1662.7"/>
<polygon fill="#000000" stroke="#000000" points="567.2282,-1666.1546 577.82,-1665.9 569.3812,-1659.4939 567.2282,-1666.1546"/>
</g>
<!-- ZcashFoundation/zebra#2784 -->
<g id="node53" class="node">
<title>ZcashFoundation/zebra#2784</title>
<g id="a_node53"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2784" xlink:title="ZcashFoundation/zebra#2784&#10;Refactor spend conflict&#10;checks in the mempool&#10;storage to increase&#10;performance" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="532,-1835.5 300,-1835.5 300,-1752.5 532,-1752.5 532,-1835.5"/>
<text text-anchor="middle" x="416" y="-1820.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2784</text>
<text text-anchor="middle" x="416" y="-1805.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor spend conflict</text>
<text text-anchor="middle" x="416" y="-1790.3" font-family="Times,serif" font-size="14.00" fill="#000000">checks in the mempool</text>
<text text-anchor="middle" x="416" y="-1775.3" font-family="Times,serif" font-size="14.00" fill="#000000">storage to increase</text>
<text text-anchor="middle" x="416" y="-1760.3" font-family="Times,serif" font-size="14.00" fill="#000000">performance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2784&#45;&gt;ZcashFoundation/zebra#2675 -->
<g id="edge34" class="edge">
<title>ZcashFoundation/zebra#2784&#45;&gt;ZcashFoundation/zebra#2675</title>
<path fill="none" stroke="#000000" d="M532.38,-1800.5C540.71,-1801 549.14,-1801.5 557.53,-1801.9"/>
<polygon fill="#000000" stroke="#000000" points="557.5519,-1805.4072 567.74,-1802.5 557.9626,-1798.4193 557.5519,-1805.4072"/>
</g>
<!-- ZcashFoundation/zebra#2784&#45;&gt;ZcashFoundation/zebra#2780 -->
<g id="edge35" class="edge">
<title>ZcashFoundation/zebra#2784&#45;&gt;ZcashFoundation/zebra#2780</title>
<path fill="none" stroke="#000000" d="M532.38,-1753.2C547.33,-1747.9 562.57,-1742.6 577.36,-1737.4"/>
<polygon fill="#000000" stroke="#000000" points="578.7257,-1740.6296 586.99,-1734 576.3952,-1734.0289 578.7257,-1740.6296"/>
</g>
<!-- ZcashFoundation/zebra#2784&#45;&gt;ZcashFoundation/zebra#2744 -->
<g id="edge36" class="edge">
<title>ZcashFoundation/zebra#2784&#45;&gt;ZcashFoundation/zebra#2744</title>
<path fill="none" stroke="#000000" d="M532.25,-1783C608.79,-1774.6 710.93,-1761.4 800,-1743 818.52,-1739.2 838.1,-1734.3 856.82,-1729.2"/>
<polygon fill="#000000" stroke="#000000" points="857.8248,-1732.5534 866.52,-1726.5 855.9477,-1725.8098 857.8248,-1732.5534"/>
</g>
<!-- ZcashFoundation/zebra#2793 -->
<g id="node54" class="node">
<title>ZcashFoundation/zebra#2793</title>
<g id="a_node54"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2793" xlink:title="ZcashFoundation/zebra#2793&#10;Set the NU5 testnet&#10;activation height,&#10;network protocol version,&#10;and consensus branch ID" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2236.5 16,-2236.5 16,-2153.5 248,-2153.5 248,-2236.5"/>
<text text-anchor="middle" x="132" y="-2221.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2793</text>
<text text-anchor="middle" x="132" y="-2206.3" font-family="Times,serif" font-size="14.00" fill="#000000">Set the NU5 testnet</text>
<text text-anchor="middle" x="132" y="-2191.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation height,</text>
<text text-anchor="middle" x="132" y="-2176.3" font-family="Times,serif" font-size="14.00" fill="#000000">network protocol version,</text>
<text text-anchor="middle" x="132" y="-2161.3" font-family="Times,serif" font-size="14.00" fill="#000000">and consensus branch ID</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2798 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#2798</title>
<g id="a_node55"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2798" xlink:title="ZcashFoundation/zebra#2798&#10;Terminate all Foundation&#10;Zcash instances running&#10;pre&#45;NU5 testnet versions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-2229 300,-2229 300,-2161 532,-2161 532,-2229"/>
<text text-anchor="middle" x="416" y="-2213.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2798</text>
<text text-anchor="middle" x="416" y="-2198.8" font-family="Times,serif" font-size="14.00" fill="#000000">Terminate all Foundation</text>
<text text-anchor="middle" x="416" y="-2183.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zcash instances running</text>
<text text-anchor="middle" x="416" y="-2168.8" font-family="Times,serif" font-size="14.00" fill="#000000">pre&#45;NU5 testnet versions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2793&#45;&gt;ZcashFoundation/zebra#2798 -->
<g id="edge37" class="edge">
<title>ZcashFoundation/zebra#2793&#45;&gt;ZcashFoundation/zebra#2798</title>
<path fill="none" stroke="#000000" d="M248.33,-2195C262.02,-2195 276.03,-2195 289.84,-2195"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2198.5001 299.85,-2195 289.85,-2191.5001 289.85,-2198.5001"/>
</g>
<!-- ZcashFoundation/zebra#2739 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#2739</title>
<g id="a_node56"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2739" xlink:title="ZcashFoundation/zebra#2739&#10;Upgrade ECC deps:&#10;librustzcash, orchard,&#10;halo2, bls12_381, jubjub,&#10;group, etc" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2337.5 16,-2337.5 16,-2254.5 248,-2254.5 248,-2337.5"/>
<text text-anchor="middle" x="132" y="-2322.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2739</text>
<text text-anchor="middle" x="132" y="-2307.3" font-family="Times,serif" font-size="14.00" fill="#000000">Upgrade ECC deps:</text>
<text text-anchor="middle" x="132" y="-2292.3" font-family="Times,serif" font-size="14.00" fill="#000000">librustzcash, orchard,</text>
<text text-anchor="middle" x="132" y="-2277.3" font-family="Times,serif" font-size="14.00" fill="#000000">halo2, bls12_381, jubjub,</text>
<text text-anchor="middle" x="132" y="-2262.3" font-family="Times,serif" font-size="14.00" fill="#000000">group, etc</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2802 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#2802</title>
<g id="a_node57"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2802" xlink:title="ZcashFoundation/zebra#2802&#10;Set the NU5 testnet&#10;activation height to&#10;1_599_200" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-2330 300,-2330 300,-2326 296,-2326 296,-2322 300,-2322 300,-2270 296,-2270 296,-2266 300,-2266 300,-2262 532,-2262 532,-2330"/>
<polyline fill="none" stroke="#000000" points="300,-2326 304,-2326 304,-2322 300,-2322 "/>
<polyline fill="none" stroke="#000000" points="300,-2270 304,-2270 304,-2266 300,-2266 "/>
<text text-anchor="middle" x="416" y="-2314.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2802</text>
<text text-anchor="middle" x="416" y="-2299.8" font-family="Times,serif" font-size="14.00" fill="#000000">Set the NU5 testnet</text>
<text text-anchor="middle" x="416" y="-2284.8" font-family="Times,serif" font-size="14.00" fill="#000000">activation height to</text>
<text text-anchor="middle" x="416" y="-2269.8" font-family="Times,serif" font-size="14.00" fill="#000000">1_599_200</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2739&#45;&gt;ZcashFoundation/zebra#2802 -->
<g id="edge38" class="edge">
<title>ZcashFoundation/zebra#2739&#45;&gt;ZcashFoundation/zebra#2802</title>
<path fill="none" stroke="#000000" d="M248.33,-2296C262.02,-2296 276.03,-2296 289.84,-2296"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2299.5001 299.85,-2296 289.85,-2292.5001 289.85,-2299.5001"/>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node58"><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="532,-2505.5 300,-2505.5 300,-2452.5 532,-2452.5 532,-2505.5"/>
<text text-anchor="middle" x="416" y="-2490.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="416" y="-2475.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable `sync_large_che</text>
<text text-anchor="middle" x="416" y="-2460.3" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1007 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#1007</title>
<g id="a_node59"><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="800,-2513 568,-2513 568,-2509 564,-2509 564,-2505 568,-2505 568,-2453 564,-2453 564,-2449 568,-2449 568,-2445 800,-2445 800,-2513"/>
<polyline fill="none" stroke="#000000" points="568,-2509 572,-2509 572,-2505 568,-2505 "/>
<polyline fill="none" stroke="#000000" points="568,-2453 572,-2453 572,-2449 568,-2449 "/>
<text text-anchor="middle" x="684" y="-2497.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="684" y="-2482.8" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="684" y="-2467.8" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="684" y="-2452.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="edge39" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M532.38,-2479C540.71,-2479 549.14,-2479 557.53,-2479"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-2482.5001 567.74,-2479 557.74,-2475.5001 557.74,-2482.5001"/>
</g>
<!-- ZcashFoundation/zebra#2331 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#2331</title>
<g id="a_node60"><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="248,-2630.5 16,-2630.5 16,-2577.5 248,-2577.5 248,-2630.5"/>
<text text-anchor="middle" x="132" y="-2615.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2331</text>
<text text-anchor="middle" x="132" y="-2600.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove serde from zebra&#45;</text>
<text text-anchor="middle" x="132" y="-2585.3" font-family="Times,serif" font-size="14.00" fill="#000000">chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2560 -->
<g id="node61" class="node">
<title>ZcashFoundation/zebra#2560</title>
<g id="a_node61"><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="532,-2663.5 300,-2663.5 300,-2610.5 532,-2610.5 532,-2663.5"/>
<text text-anchor="middle" x="416" y="-2648.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2560</text>
<text text-anchor="middle" x="416" y="-2633.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test History Tree</text>
<text text-anchor="middle" x="416" y="-2618.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="edge40" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2560</title>
<path fill="none" stroke="#000000" d="M248.33,-2617.5C262.02,-2619.1 276.03,-2620.7 289.84,-2622.3"/>
<polygon fill="#000000" stroke="#000000" points="289.5045,-2625.7848 299.85,-2623.5 290.3377,-2618.8345 289.5045,-2625.7848"/>
</g>
<!-- ZcashFoundation/zebra#2042 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#2042</title>
<g id="a_node62"><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="532,-2592 300,-2592 300,-2524 532,-2524 532,-2592"/>
<text text-anchor="middle" x="416" y="-2576.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2042</text>
<text text-anchor="middle" x="416" y="-2561.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;chain: Port array&#45;</text>
<text text-anchor="middle" x="416" y="-2546.8" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper types to const</text>
<text text-anchor="middle" x="416" y="-2531.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="edge41" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042</title>
<path fill="none" stroke="#000000" d="M248.33,-2585.2C262.02,-2582.9 276.03,-2580.7 289.84,-2578.4"/>
<polygon fill="#000000" stroke="#000000" points="290.5278,-2581.8346 299.85,-2576.8 289.4229,-2574.9223 290.5278,-2581.8346"/>
</g>
<!-- ZcashFoundation/redjubjub#127 -->
<g id="node63" class="node">
<title>ZcashFoundation/redjubjub#127</title>
<g id="a_node63"><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="258,-2780 6,-2780 6,-2712 258,-2712 258,-2780"/>
<text text-anchor="middle" x="132" y="-2764.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/redjubjub#127</text>
<text text-anchor="middle" x="132" y="-2749.8" font-family="Times,serif" font-size="14.00" fill="#000000">VerificationKey should</text>
<text text-anchor="middle" x="132" y="-2734.8" font-family="Times,serif" font-size="14.00" fill="#000000">not reject small&#45;order</text>
<text text-anchor="middle" x="132" y="-2719.8" font-family="Times,serif" font-size="14.00" fill="#000000">points or the identity</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2549 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#2549</title>
<g id="a_node64"><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="532,-2810 300,-2810 300,-2682 532,-2682 532,-2810"/>
<text text-anchor="middle" x="416" y="-2794.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2549</text>
<text text-anchor="middle" x="416" y="-2779.8" font-family="Times,serif" font-size="14.00" fill="#000000">Fix Redjubjub to support</text>
<text text-anchor="middle" x="416" y="-2764.8" font-family="Times,serif" font-size="14.00" fill="#000000">low&#45;order Jubjub points,</text>
<text text-anchor="middle" x="416" y="-2749.8" font-family="Times,serif" font-size="14.00" fill="#000000">move small&#45;order</text>
<text text-anchor="middle" x="416" y="-2734.8" font-family="Times,serif" font-size="14.00" fill="#000000">exclusion checks to</text>
<text text-anchor="middle" x="416" y="-2719.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling</text>
<text text-anchor="middle" x="416" y="-2704.8" font-family="Times,serif" font-size="14.00" fill="#000000">SpendAuthorizationKey and</text>
<text text-anchor="middle" x="416" y="-2689.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="edge42" class="edge">
<title>ZcashFoundation/redjubjub#127&#45;&gt;ZcashFoundation/zebra#2549</title>
<path fill="none" stroke="#000000" d="M258.22,-2746C268.55,-2746 279,-2746 289.34,-2746"/>
<polygon fill="#000000" stroke="#000000" points="289.63,-2749.5001 299.63,-2746 289.63,-2742.5001 289.63,-2749.5001"/>
</g>
<!-- ZcashFoundation/zebra#1827 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#1827</title>
<g id="a_node65"><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="248,-2881.5 16,-2881.5 16,-2798.5 248,-2798.5 248,-2881.5"/>
<text text-anchor="middle" x="132" y="-2866.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="132" y="-2851.3" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="132" y="-2836.3" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="132" y="-2821.3" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="132" y="-2806.3" font-family="Times,serif" font-size="14.00" fill="#000000">`PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#1592</title>
<g id="a_node66"><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="248,-2952.5 16,-2952.5 16,-2899.5 248,-2899.5 248,-2952.5"/>
<text text-anchor="middle" x="132" y="-2937.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="132" y="-2922.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="132" y="-2907.3" font-family="Times,serif" font-size="14.00" fill="#000000">hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#1817</title>
<g id="a_node67"><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="532,-2975 300,-2975 300,-2971 296,-2971 296,-2967 300,-2967 300,-2885 296,-2885 296,-2881 300,-2881 300,-2877 532,-2877 532,-2975"/>
<polyline fill="none" stroke="#000000" points="300,-2971 304,-2971 304,-2967 300,-2967 "/>
<polyline fill="none" stroke="#000000" points="300,-2885 304,-2885 304,-2881 300,-2881 "/>
<text text-anchor="middle" x="416" y="-2959.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="416" y="-2944.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="416" y="-2929.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="416" y="-2914.8" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="416" y="-2899.8" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="416" y="-2884.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="edge43" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M248.33,-2926C262.02,-2926 276.03,-2926 289.84,-2926"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2929.5001 299.85,-2926 289.85,-2922.5001 289.85,-2929.5001"/>
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#1841</title>
<g id="a_node68"><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="248,-3053.5 16,-3053.5 16,-2970.5 248,-2970.5 248,-3053.5"/>
<text text-anchor="middle" x="132" y="-3038.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="132" y="-3023.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;252: Update Zebra and</text>
<text text-anchor="middle" x="132" y="-3008.3" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="132" y="-2993.3" font-family="Times,serif" font-size="14.00" fill="#000000">heights and protocol</text>
<text text-anchor="middle" x="132" y="-2978.3" font-family="Times,serif" font-size="14.00" fill="#000000">versions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node69"><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="248,-3241.5 16,-3241.5 16,-3158.5 248,-3158.5 248,-3241.5"/>
<text text-anchor="middle" x="132" y="-3226.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="132" y="-3211.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="132" y="-3196.3" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="132" y="-3181.3" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="132" y="-3166.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node70"><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="532,-3187 300,-3187 300,-3119 532,-3119 532,-3187"/>
<text text-anchor="middle" x="416" y="-3171.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="416" y="-3156.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="416" y="-3141.8" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="416" y="-3126.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="edge44" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.33,-3180.7C262.02,-3178.5 276.03,-3176.2 289.84,-3173.9"/>
<polygon fill="#000000" stroke="#000000" points="290.5772,-3177.325 299.85,-3172.2 289.4051,-3170.4238 290.5772,-3177.325"/>
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#1873</title>
<g id="a_node71"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1873" xlink:title="ZcashFoundation/zebra#1873&#10;Zebra&#39;s address book can&#10;use all available memory" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-2423.5 300,-2423.5 300,-2370.5 532,-2370.5 532,-2423.5"/>
<text text-anchor="middle" x="416" y="-2408.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="416" y="-2393.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra&#39;s address book can</text>
<text text-anchor="middle" x="416" y="-2378.3" font-family="Times,serif" font-size="14.00" fill="#000000">use all available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node72"><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="248,-3328 16,-3328 16,-3260 248,-3260 248,-3328"/>
<text text-anchor="middle" x="132" y="-3312.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="132" y="-3297.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="132" y="-3282.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="132" y="-3267.8" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node73"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1869" xlink:title="ZcashFoundation/zebra#1869&#10;Zebra should limit the&#10;number of addresses it&#10;uses from a single Addrs&#10;response" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2438.5 16,-2438.5 16,-2355.5 248,-2355.5 248,-2438.5"/>
<text text-anchor="middle" x="132" y="-2423.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="132" y="-2408.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="132" y="-2393.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="132" y="-2378.3" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="132" y="-2363.3" font-family="Times,serif" font-size="14.00" fill="#000000">response</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge45" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-2430.6C270.25,-2436.9 293.01,-2443.5 314.44,-2449.7"/>
<polygon fill="#000000" stroke="#000000" points="313.6022,-2453.1008 324.18,-2452.5 315.5363,-2446.3733 313.6022,-2453.1008"/>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873 -->
<g id="edge46" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873</title>
<path fill="none" stroke="#000000" d="M248.33,-2397C262.02,-2397 276.03,-2397 289.84,-2397"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2400.5001 299.85,-2397 289.85,-2393.5001 289.85,-2400.5001"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node74"><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="248,-3429.5 16,-3429.5 16,-3346.5 248,-3346.5 248,-3429.5"/>
<text text-anchor="middle" x="132" y="-3414.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="132" y="-3399.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="132" y="-3384.3" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="132" y="-3369.3" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="132" y="-3354.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node75"><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="532,-3422 300,-3422 300,-3354 532,-3354 532,-3422"/>
<text text-anchor="middle" x="416" y="-3406.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="416" y="-3391.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="416" y="-3376.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="416" y="-3361.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="edge47" class="edge">
<title>ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893</title>
<path fill="none" stroke="#000000" d="M248.33,-3388C262.02,-3388 276.03,-3388 289.84,-3388"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3391.5001 299.85,-3388 289.85,-3384.5001 289.85,-3391.5001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node76"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1904" xlink:title="ZcashFoundation/zebra#1904&#10;Testnet DNS seeders don&#39;t&#10;show the Foundation&#39;s new&#10;zcashd nodes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2525 16,-2525 16,-2457 248,-2457 248,-2525"/>
<text text-anchor="middle" x="132" y="-2509.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="132" y="-2494.8" font-family="Times,serif" font-size="14.00" fill="#000000">Testnet DNS seeders don&#39;t</text>
<text text-anchor="middle" x="132" y="-2479.8" font-family="Times,serif" font-size="14.00" fill="#000000">show the Foundation&#39;s new</text>
<text text-anchor="middle" x="132" y="-2464.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcashd nodes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge48" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-2486.1C262.02,-2485.5 276.03,-2484.9 289.84,-2484.3"/>
<polygon fill="#000000" stroke="#000000" points="289.9978,-2487.7966 299.85,-2483.9 289.7182,-2480.8022 289.9978,-2487.7966"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node77"><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="248,-3530.5 16,-3530.5 16,-3447.5 248,-3447.5 248,-3530.5"/>
<text text-anchor="middle" x="132" y="-3515.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="132" y="-3500.3" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="132" y="-3485.3" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="132" y="-3470.3" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="132" y="-3455.3" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#1851</title>
<g id="a_node78"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1851" xlink:title="ZcashFoundation/zebra#1851&#10;Limit the number of&#10;connected peers in the&#10;PeerSet" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3617 16,-3617 16,-3549 248,-3549 248,-3617"/>
<text text-anchor="middle" x="132" y="-3601.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1851</text>
<text text-anchor="middle" x="132" y="-3586.8" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the number of</text>
<text text-anchor="middle" x="132" y="-3571.8" font-family="Times,serif" font-size="14.00" fill="#000000">connected peers in the</text>
<text text-anchor="middle" x="132" y="-3556.8" font-family="Times,serif" font-size="14.00" fill="#000000">PeerSet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#1850</title>
<g id="a_node79"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1850" xlink:title="ZcashFoundation/zebra#1850&#10;Security: Limit the&#10;number of outbound peer&#10;connections when dialing&#10;new peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3718.5 16,-3718.5 16,-3635.5 248,-3635.5 248,-3718.5"/>
<text text-anchor="middle" x="132" y="-3703.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1850</text>
<text text-anchor="middle" x="132" y="-3688.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="132" y="-3673.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound peer</text>
<text text-anchor="middle" x="132" y="-3658.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections when dialing</text>
<text text-anchor="middle" x="132" y="-3643.3" font-family="Times,serif" font-size="14.00" fill="#000000">new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node80"><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="532,-3920.5 300,-3920.5 300,-3837.5 532,-3837.5 532,-3920.5"/>
<text text-anchor="middle" x="416" y="-3905.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="416" y="-3890.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="416" y="-3875.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="416" y="-3860.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="416" y="-3845.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node81"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/706" xlink:title="ZcashFoundation/zebra#706&#10;Do we need to prefer&#10;evicting pre&#45;upgrade&#10;peers from the peer set&#10;across a network upgrade?" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="795.5,-3850.5 572.5,-3850.5 572.5,-3767.5 795.5,-3767.5 795.5,-3850.5"/>
<text text-anchor="middle" x="684" y="-3835.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="684" y="-3820.3" font-family="Times,serif" font-size="14.00" fill="#000000">Do we need to prefer</text>
<text text-anchor="middle" x="684" y="-3805.3" font-family="Times,serif" font-size="14.00" fill="#000000">evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="684" y="-3790.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="684" y="-3775.3" font-family="Times,serif" font-size="14.00" fill="#000000">across a network upgrade?</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge49" class="edge">
<title>ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M532.38,-3848.6C542.34,-3846 552.43,-3843.4 562.43,-3840.8"/>
<polygon fill="#000000" stroke="#000000" points="563.5983,-3844.1124 572.39,-3838.2 561.8302,-3837.3394 563.5983,-3844.1124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node82" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node82"><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="248,-3140 16,-3140 16,-3072 248,-3072 248,-3140"/>
<text text-anchor="middle" x="132" y="-3124.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="132" y="-3109.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="132" y="-3094.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="132" y="-3079.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="edge50" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.33,-3125.3C262.02,-3127.5 276.03,-3129.8 289.84,-3132.1"/>
<polygon fill="#000000" stroke="#000000" points="289.4051,-3135.5762 299.85,-3133.8 290.5772,-3128.675 289.4051,-3135.5762"/>
</g>
<!-- ZcashFoundation/zebra#1874 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#1874</title>
<g id="a_node83"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1874" xlink:title="ZcashFoundation/zebra#1874&#10;ZIP 244: Transaction&#10;Identifier Non&#45;&#10;Malleability" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3906 16,-3906 16,-3838 248,-3838 248,-3906"/>
<text text-anchor="middle" x="132" y="-3890.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1874</text>
<text text-anchor="middle" x="132" y="-3875.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP 244: Transaction</text>
<text text-anchor="middle" x="132" y="-3860.8" font-family="Times,serif" font-size="14.00" fill="#000000">Identifier Non&#45;</text>
<text text-anchor="middle" x="132" y="-3845.8" font-family="Times,serif" font-size="14.00" fill="#000000">Malleability</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1567 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#1567</title>
<g id="a_node84"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1567" xlink:title="ZcashFoundation/zebra#1567&#10;ZIP&#45;221: Block Header&#10;Chain History Commitment" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3977.5 16,-3977.5 16,-3924.5 248,-3924.5 248,-3977.5"/>
<text text-anchor="middle" x="132" y="-3962.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1567</text>
<text text-anchor="middle" x="132" y="-3947.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Block Header</text>
<text text-anchor="middle" x="132" y="-3932.3" font-family="Times,serif" font-size="14.00" fill="#000000">Chain History Commitment</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node85" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node85"><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="248,-4048.5 16,-4048.5 16,-3995.5 248,-3995.5 248,-4048.5"/>
<text text-anchor="middle" x="132" y="-4033.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="132" y="-4018.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="132" y="-4003.3" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node86"><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="248,-4135 16,-4135 16,-4067 248,-4067 248,-4135"/>
<text text-anchor="middle" x="132" y="-4119.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="132" y="-4104.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="132" y="-4089.8" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="132" y="-4074.8" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node87"><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="248,-4221 16,-4221 16,-4153 248,-4153 248,-4221"/>
<text text-anchor="middle" x="132" y="-4205.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="132" y="-4190.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="132" y="-4175.8" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="132" y="-4160.8" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node88" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node88"><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="248,-4292.5 16,-4292.5 16,-4288.5 12,-4288.5 12,-4284.5 16,-4284.5 16,-4247.5 12,-4247.5 12,-4243.5 16,-4243.5 16,-4239.5 248,-4239.5 248,-4292.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4288.5 20,-4288.5 20,-4284.5 16,-4284.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4247.5 20,-4247.5 20,-4243.5 16,-4243.5 "/>
<text text-anchor="middle" x="132" y="-4277.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="132" y="-4262.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="132" y="-4247.3" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node89"><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="532,-4300 300,-4300 300,-4232 532,-4232 532,-4300"/>
<text text-anchor="middle" x="416" y="-4284.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="416" y="-4269.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="416" y="-4254.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="416" y="-4239.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="edge51" class="edge">
<title>ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052</title>
<path fill="none" stroke="#000000" d="M248.33,-4266C262.02,-4266 276.03,-4266 289.84,-4266"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4269.5001 299.85,-4266 289.85,-4262.5001 289.85,-4269.5001"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node90" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node90"><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="248,-4363.5 16,-4363.5 16,-4310.5 248,-4310.5 248,-4363.5"/>
<text text-anchor="middle" x="132" y="-4348.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="132" y="-4333.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="132" y="-4318.3" font-family="Times,serif" font-size="14.00" fill="#000000">FinalSaplingRoot</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node91" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node91"><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="248,-4434.5 16,-4434.5 16,-4381.5 248,-4381.5 248,-4434.5"/>
<text text-anchor="middle" x="132" y="-4419.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="132" y="-4404.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="132" y="-4389.3" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node92" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node92"><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="532,-4449.5 300,-4449.5 300,-4366.5 532,-4366.5 532,-4449.5"/>
<text text-anchor="middle" x="416" y="-4434.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="416" y="-4419.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="416" y="-4404.3" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="416" y="-4389.3" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="416" y="-4374.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="edge52" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M248.33,-4408C262.02,-4408 276.03,-4408 289.84,-4408"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4411.5001 299.85,-4408 289.85,-4404.5001 289.85,-4411.5001"/>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node93" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node93"><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="248,-4505.5 16,-4505.5 16,-4452.5 248,-4452.5 248,-4505.5"/>
<text text-anchor="middle" x="132" y="-4490.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="132" y="-4475.3" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="132" y="-4460.3" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node94" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node94"><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="248,-4576.5 16,-4576.5 16,-4523.5 248,-4523.5 248,-4576.5"/>
<text text-anchor="middle" x="132" y="-4561.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="132" y="-4546.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="132" y="-4531.3" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node95" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node95"><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="248,-3819.5 16,-3819.5 16,-3736.5 248,-3736.5 248,-3819.5"/>
<text text-anchor="middle" x="132" y="-3804.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="132" y="-3789.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="132" y="-3774.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="132" y="-3759.3" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="132" y="-3744.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="edge53" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M248.33,-3819.4C262.15,-3824.3 276.3,-3829.3 290.24,-3834.3"/>
<polygon fill="#000000" stroke="#000000" points="289.2552,-3837.6641 299.85,-3837.7 291.59,-3831.065 289.2552,-3837.6641"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge54" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M248.11,-3786.6C265.5,-3787.8 283.22,-3789 300,-3790 387.68,-3795.3 486.68,-3800.2 562.2,-3803.7"/>
<polygon fill="#000000" stroke="#000000" points="562.0883,-3807.1982 572.22,-3804.1 562.3676,-3800.2038 562.0883,-3807.1982"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node96" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node96"><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="532,-3781 300,-3781 300,-3713 532,-3713 532,-3781"/>
<text text-anchor="middle" x="416" y="-3765.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="416" y="-3750.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="416" y="-3735.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="416" y="-3720.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="edge55" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M248.33,-3765.3C262.02,-3763.8 276.03,-3762.3 289.84,-3760.8"/>
<polygon fill="#000000" stroke="#000000" points="290.2922,-3764.2715 299.85,-3759.7 289.5275,-3757.3134 290.2922,-3764.2715"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node97" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node97"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2107" xlink:title="ZcashFoundation/zebra#2107&#10;Security: Stop&#10;immediately disconnecting&#10;from nodes that send&#10;unexpected messages,&#10;Credit: Equilibrium" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-3695 300,-3695 300,-3597 532,-3597 532,-3695"/>
<text text-anchor="middle" x="416" y="-3679.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="416" y="-3664.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="416" y="-3649.8" font-family="Times,serif" font-size="14.00" fill="#000000">immediately disconnecting</text>
<text text-anchor="middle" x="416" y="-3634.8" font-family="Times,serif" font-size="14.00" fill="#000000">from nodes that send</text>
<text text-anchor="middle" x="416" y="-3619.8" font-family="Times,serif" font-size="14.00" fill="#000000">unexpected messages,</text>
<text text-anchor="middle" x="416" y="-3604.8" 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="edge56" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M244.31,-3736.4C251.03,-3733.4 257.64,-3730.2 264,-3727 280.94,-3718.4 283.49,-3713.4 300,-3704 302.27,-3702.7 304.57,-3701.4 306.9,-3700.1"/>
<polygon fill="#000000" stroke="#000000" points="308.8418,-3703.0293 315.98,-3695.2 305.5174,-3696.869 308.8418,-3703.0293"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge57" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M516.45,-3695.1C521.75,-3698 526.96,-3701 532,-3704 561.52,-3721.5 592.9,-3742.7 619.43,-3761.4"/>
<polygon fill="#000000" stroke="#000000" points="617.6917,-3764.4585 627.87,-3767.4 621.7476,-3758.7532 617.6917,-3764.4585"/>
</g>
<!-- ZcashFoundation/zcash_script#21 -->
<g id="node98" class="node">
<title>ZcashFoundation/zcash_script#21</title>
<g id="a_node98"><a xlink:href="https://github.com/ZcashFoundation/zcash_script/issues/21" xlink:title="ZcashFoundation/zcash_script#21&#10;Add support for V5&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="264,-4647.5 0,-4647.5 0,-4594.5 264,-4594.5 264,-4647.5"/>
<text text-anchor="middle" x="132" y="-4632.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zcash_script#21</text>
<text text-anchor="middle" x="132" y="-4617.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for V5</text>
<text text-anchor="middle" x="132" y="-4602.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2328 -->
<g id="node99" class="node">
<title>ZcashFoundation/zebra#2328</title>
<g id="a_node99"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2328" xlink:title="ZcashFoundation/zebra#2328&#10;Update `zcash_script` to&#10;support V5 transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4647.5 300,-4647.5 300,-4594.5 532,-4594.5 532,-4647.5"/>
<text text-anchor="middle" x="416" y="-4632.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2328</text>
<text text-anchor="middle" x="416" y="-4617.3" font-family="Times,serif" font-size="14.00" fill="#000000">Update `zcash_script` to</text>
<text text-anchor="middle" x="416" y="-4602.3" font-family="Times,serif" font-size="14.00" fill="#000000">support V5 transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zcash_script#21&#45;&gt;ZcashFoundation/zebra#2328 -->
<g id="edge58" class="edge">
<title>ZcashFoundation/zcash_script#21&#45;&gt;ZcashFoundation/zebra#2328</title>
<path fill="none" stroke="#000000" d="M264.02,-4621C272.47,-4621 280.96,-4621 289.38,-4621"/>
<polygon fill="#000000" stroke="#000000" points="289.6,-4624.5001 299.6,-4621 289.6,-4617.5001 289.6,-4624.5001"/>
</g>
<!-- ZcashFoundation/zebra#1981 -->
<g id="node100" class="node">
<title>ZcashFoundation/zebra#1981</title>
<g id="a_node100"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1981" xlink:title="ZcashFoundation/zebra#1981&#10;Implement Transparent and&#10;Sapling validation for&#10;transaction v5" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="800,-4655 568,-4655 568,-4587 800,-4587 800,-4655"/>
<text text-anchor="middle" x="684" y="-4639.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1981</text>
<text text-anchor="middle" x="684" y="-4624.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Transparent and</text>
<text text-anchor="middle" x="684" y="-4609.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling validation for</text>
<text text-anchor="middle" x="684" y="-4594.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction v5</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2328&#45;&gt;ZcashFoundation/zebra#1981 -->
<g id="edge59" class="edge">
<title>ZcashFoundation/zebra#2328&#45;&gt;ZcashFoundation/zebra#1981</title>
<path fill="none" stroke="#000000" d="M532.38,-4621C540.71,-4621 549.14,-4621 557.53,-4621"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-4624.5001 567.74,-4621 557.74,-4617.5001 557.74,-4624.5001"/>
</g>
<!-- ZcashFoundation/zebra#2338 -->
<g id="node101" class="node">
<title>ZcashFoundation/zebra#2338</title>
<g id="a_node101"><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="248,-4726.5 16,-4726.5 16,-4673.5 248,-4673.5 248,-4726.5"/>
<text text-anchor="middle" x="132" y="-4711.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2338</text>
<text text-anchor="middle" x="132" y="-4696.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create Error enums in</text>
<text text-anchor="middle" x="132" y="-4681.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zebrad`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2339 -->
<g id="node102" class="node">
<title>ZcashFoundation/zebra#2339</title>
<g id="a_node102"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2339" xlink:title="ZcashFoundation/zebra#2339&#10;Downcast and match&#10;Already Verified error&#10;enums in the syncer" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4734 300,-4734 300,-4666 532,-4666 532,-4734"/>
<text text-anchor="middle" x="416" y="-4718.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2339</text>
<text text-anchor="middle" x="416" y="-4703.8" font-family="Times,serif" font-size="14.00" fill="#000000">Downcast and match</text>
<text text-anchor="middle" x="416" y="-4688.8" font-family="Times,serif" font-size="14.00" fill="#000000">Already Verified error</text>
<text text-anchor="middle" x="416" y="-4673.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="edge60" class="edge">
<title>ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339</title>
<path fill="none" stroke="#000000" d="M248.33,-4700C262.02,-4700 276.03,-4700 289.84,-4700"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4703.5001 299.85,-4700 289.85,-4696.5001 289.85,-4703.5001"/>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node103" class="node">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node103"><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="248,-4813 16,-4813 16,-4745 248,-4745 248,-4813"/>
<text text-anchor="middle" x="132" y="-4797.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="132" y="-4782.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically use zebrad</text>
<text text-anchor="middle" x="132" y="-4767.8" font-family="Times,serif" font-size="14.00" fill="#000000">version for the zebra&#45;</text>
<text text-anchor="middle" x="132" y="-4752.8" font-family="Times,serif" font-size="14.00" fill="#000000">network user agent</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node104" class="node">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node104"><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="527.5,-4805.5 304.5,-4805.5 304.5,-4752.5 527.5,-4752.5 527.5,-4805.5"/>
<text text-anchor="middle" x="416" y="-4790.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="416" y="-4775.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="416" y="-4760.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="edge61" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M248.33,-4779C263.39,-4779 278.85,-4779 294,-4779"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-4782.5001 304.43,-4779 294.43,-4775.5001 294.43,-4782.5001"/>
</g>
<!-- ZcashFoundation/zebra#2377 -->
<g id="node105" class="node">
<title>ZcashFoundation/zebra#2377</title>
<g id="a_node105"><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="248,-4884.5 16,-4884.5 16,-4831.5 248,-4831.5 248,-4884.5"/>
<text text-anchor="middle" x="132" y="-4869.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2377</text>
<text text-anchor="middle" x="132" y="-4854.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor history tree</text>
<text text-anchor="middle" x="132" y="-4839.3" font-family="Times,serif" font-size="14.00" fill="#000000">pruning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2378 -->
<g id="node106" class="node">
<title>ZcashFoundation/zebra#2378</title>
<g id="a_node106"><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="248,-4955.5 16,-4955.5 16,-4902.5 248,-4902.5 248,-4955.5"/>
<text text-anchor="middle" x="132" y="-4940.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2378</text>
<text text-anchor="middle" x="132" y="-4925.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve history and note</text>
<text text-anchor="middle" x="132" y="-4910.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees forking</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1951 -->
<g id="node107" class="node">
<title>ZcashFoundation/zebra#1951</title>
<g id="a_node107"><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="248,-5056.5 16,-5056.5 16,-4973.5 248,-4973.5 248,-5056.5"/>
<text text-anchor="middle" x="132" y="-5041.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1951</text>
<text text-anchor="middle" x="132" y="-5026.3" font-family="Times,serif" font-size="14.00" fill="#000000">Generalize/deduplicate</text>
<text text-anchor="middle" x="132" y="-5011.3" font-family="Times,serif" font-size="14.00" fill="#000000">async batch verification</text>
<text text-anchor="middle" x="132" y="-4996.3" font-family="Times,serif" font-size="14.00" fill="#000000">services / create a</text>
<text text-anchor="middle" x="132" y="-4981.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="node108" class="node">
<title>ZcashFoundation/zebra#2390</title>
<g id="a_node108"><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="532,-5056.5 300,-5056.5 300,-4973.5 532,-4973.5 532,-5056.5"/>
<text text-anchor="middle" x="416" y="-5041.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2390</text>
<text text-anchor="middle" x="416" y="-5026.3" font-family="Times,serif" font-size="14.00" fill="#000000">Fix tasks spawned by</text>
<text text-anchor="middle" x="416" y="-5011.3" font-family="Times,serif" font-size="14.00" fill="#000000">`tower_batch::Batch` only</text>
<text text-anchor="middle" x="416" y="-4996.3" font-family="Times,serif" font-size="14.00" fill="#000000">being alive during one</text>
<text text-anchor="middle" x="416" y="-4981.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="edge62" class="edge">
<title>ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390</title>
<path fill="none" stroke="#000000" d="M248.33,-5015C262.02,-5015 276.03,-5015 289.84,-5015"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-5018.5001 299.85,-5015 289.85,-5011.5001 289.85,-5018.5001"/>
</g>
<!-- ZcashFoundation/zebra#338 -->
<g id="node109" class="node">
<title>ZcashFoundation/zebra#338</title>
<g id="a_node109"><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="243.5,-5127.5 20.5,-5127.5 20.5,-5074.5 243.5,-5074.5 243.5,-5127.5"/>
<text text-anchor="middle" x="132" y="-5112.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#338</text>
<text text-anchor="middle" x="132" y="-5097.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calc Block Subsidy and</text>
<text text-anchor="middle" x="132" y="-5082.3" font-family="Times,serif" font-size="14.00" fill="#000000">Funding Streams</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1162 -->
<g id="node110" class="node">
<title>ZcashFoundation/zebra#1162</title>
<g id="a_node110"><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="532,-5127.5 300,-5127.5 300,-5074.5 532,-5074.5 532,-5127.5"/>
<text text-anchor="middle" x="416" y="-5112.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1162</text>
<text text-anchor="middle" x="416" y="-5097.3" font-family="Times,serif" font-size="14.00" fill="#000000">Validate coinbase miner</text>
<text text-anchor="middle" x="416" y="-5082.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="edge63" class="edge">
<title>ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M243.84,-5101C258.72,-5101 274.06,-5101 289.18,-5101"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-5104.5001 299.59,-5101 289.59,-5097.5001 289.59,-5104.5001"/>
</g>
<!-- ZcashFoundation/zebra#2425 -->
<g id="node111" class="node">
<title>ZcashFoundation/zebra#2425</title>
<g id="a_node111"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2425" xlink:title="ZcashFoundation/zebra#2425&#10;Design: Validate note&#10;commitment trees in state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-5198.5 16,-5198.5 16,-5145.5 248,-5145.5 248,-5198.5"/>
<text text-anchor="middle" x="132" y="-5183.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2425</text>
<text text-anchor="middle" x="132" y="-5168.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: Validate note</text>
<text text-anchor="middle" x="132" y="-5153.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees in state</text>
</a>
</g>
</g>
</g>
</svg>