developers/zcash-zf-dag.svg

1462 lines
113 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="808pt" height="4655pt"
viewBox="0.00 0.00 808.00 4654.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 4650.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-4650.5 804,-4650.5 804,4 -4,4"/>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node1" class="node">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1135" xlink:title="ZcashFoundation/zebra#1135&#10;Refactor Network and&#10;NetworkUpgrade enums into&#10;structs and a trait" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-68 16,-68 16,0 248,0 248,-68"/>
<text text-anchor="middle" x="132" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="132" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="132" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="132" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title="ZcashFoundation/zebra#1011&#10;Re&#45;enable the&#10;BlockVerifier continuous_&#10;blockchain_test" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-68 300,-68 300,0 532,0 532,-68"/>
<text text-anchor="middle" x="416" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="416" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="416" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="416" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">blockchain_test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="#000000" d="M248.33,-34C262.02,-34 276.03,-34 289.84,-34"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-37.5001 299.85,-34 289.85,-30.5001 289.85,-37.5001"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node3" class="node">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/271" xlink:title="ZcashFoundation/zebra#271&#10;Sapling Key Agreement and&#10;KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-146.5 20.5,-146.5 20.5,-93.5 243.5,-93.5 243.5,-146.5"/>
<text text-anchor="middle" x="132" y="-131.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="132" y="-116.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="132" y="-101.3" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node4" class="node">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling note&#10;encryption/decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-154 304.5,-154 304.5,-86 527.5,-86 527.5,-154"/>
<text text-anchor="middle" x="416" y="-138.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="416" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note</text>
<text text-anchor="middle" x="416" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="416" y="-93.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="edge2" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M243.84,-120C260.29,-120 277.31,-120 293.96,-120"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-123.5001 304.27,-120 294.27,-116.5001 294.27,-123.5001"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node5" class="node">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node5"><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,-203 20.5,-203 20.5,-165 243.5,-165 243.5,-203"/>
<text text-anchor="middle" x="132" y="-187.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="132" y="-172.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id="node6" class="node">
<title>ZcashFoundation/zebra#619</title>
<g id="a_node6"><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,-274.5 20.5,-274.5 20.5,-221.5 243.5,-221.5 243.5,-274.5"/>
<text text-anchor="middle" x="132" y="-259.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="132" y="-244.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="132" y="-229.3" font-family="Times,serif" font-size="14.00" fill="#000000">validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id="node7" class="node">
<title>ZcashFoundation/zebra#466</title>
<g id="a_node7"><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,-282 304.5,-282 304.5,-214 527.5,-214 527.5,-282"/>
<text text-anchor="middle" x="416" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="416" y="-251.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="416" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="416" y="-221.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="edge3" class="edge">
<title>ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466</title>
<path fill="none" stroke="#000000" d="M243.84,-248C260.29,-248 277.31,-248 293.96,-248"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-251.5001 304.27,-248 294.27,-244.5001 294.27,-251.5001"/>
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id="node8" class="node">
<title>ZcashFoundation/zebra#884</title>
<g id="a_node8"><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,-353.5 20.5,-353.5 20.5,-300.5 243.5,-300.5 243.5,-353.5"/>
<text text-anchor="middle" x="132" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="132" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="132" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id="node9" class="node">
<title>ZcashFoundation/zebra#899</title>
<g id="a_node9"><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,-353.5 304.5,-353.5 304.5,-300.5 527.5,-300.5 527.5,-353.5"/>
<text text-anchor="middle" x="416" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="416" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="416" y="-308.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="edge4" class="edge">
<title>ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899</title>
<path fill="none" stroke="#000000" d="M243.84,-327C260.29,-327 277.31,-327 293.96,-327"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-330.5001 304.27,-327 294.27,-323.5001 294.27,-330.5001"/>
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id="node10" class="node">
<title>ZcashFoundation/zebra#919</title>
<g id="a_node10"><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,-447 20.5,-447 20.5,-379 243.5,-379 243.5,-447"/>
<text text-anchor="middle" x="132" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="132" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="132" y="-401.8" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="132" y="-386.8" font-family="Times,serif" font-size="14.00" fill="#000000">as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id="node11" class="node">
<title>ZcashFoundation/zebra#1021</title>
<g id="a_node11"><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,-454.5 300,-454.5 300,-371.5 532,-371.5 532,-454.5"/>
<text text-anchor="middle" x="416" y="-439.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="416" y="-424.3" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="416" y="-409.3" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="416" y="-394.3" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="416" y="-379.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="edge5" class="edge">
<title>ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021</title>
<path fill="none" stroke="#000000" d="M243.84,-413C258.72,-413 274.06,-413 289.18,-413"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-416.5001 299.59,-413 289.59,-409.5001 289.59,-416.5001"/>
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id="node12" class="node">
<title>ZcashFoundation/zebra#889</title>
<g id="a_node12"><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,-794.5 304.5,-794.5 304.5,-741.5 527.5,-741.5 527.5,-794.5"/>
<text text-anchor="middle" x="416" y="-779.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="416" y="-764.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="416" y="-749.3" font-family="Times,serif" font-size="14.00" fill="#000000">handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id="node13" class="node">
<title>ZcashFoundation/zebra#1077</title>
<g id="a_node13"><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,-809.5 568,-809.5 568,-726.5 800,-726.5 800,-809.5"/>
<text text-anchor="middle" x="684" y="-794.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="684" y="-779.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-764.3" font-family="Times,serif" font-size="14.00" fill="#000000">`TransactionsById`</text>
<text text-anchor="middle" x="684" y="-749.3" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="684" y="-734.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="edge6" class="edge">
<title>ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M527.72,-768C537.52,-768 547.49,-768 557.41,-768"/>
<polygon fill="#000000" stroke="#000000" points="557.71,-771.5001 567.71,-768 557.71,-764.5001 557.71,-771.5001"/>
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id="node14" class="node">
<title>ZcashFoundation/zebra#1048</title>
<g id="a_node14"><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,-802 16,-802 16,-734 248,-734 248,-802"/>
<text text-anchor="middle" x="132" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="132" y="-771.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="132" y="-756.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="132" y="-741.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="edge7" class="edge">
<title>ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889</title>
<path fill="none" stroke="#000000" d="M248.33,-768C263.39,-768 278.85,-768 294,-768"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-771.5001 304.43,-768 294.43,-764.5001 294.43,-771.5001"/>
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id="node15" class="node">
<title>ZcashFoundation/zebra#1080</title>
<g id="a_node15"><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,-708 568,-708 568,-610 800,-610 800,-708"/>
<text text-anchor="middle" x="684" y="-692.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="684" y="-677.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-662.8" font-family="Times,serif" font-size="14.00" fill="#000000">`PushTransaction`s</text>
<text text-anchor="middle" x="684" y="-647.8" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="684" y="-632.8" font-family="Times,serif" font-size="14.00" fill="#000000">download and verify</text>
<text text-anchor="middle" x="684" y="-617.8" font-family="Times,serif" font-size="14.00" fill="#000000">stream</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id="node16" class="node">
<title>ZcashFoundation/zebra#1081</title>
<g id="a_node16"><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,-591.5 568,-591.5 568,-508.5 800,-508.5 800,-591.5"/>
<text text-anchor="middle" x="684" y="-576.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="684" y="-561.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-546.3" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransactionIds`</text>
<text text-anchor="middle" x="684" y="-531.3" font-family="Times,serif" font-size="14.00" fill="#000000">broadcasts to the mempool</text>
<text text-anchor="middle" x="684" y="-516.3" font-family="Times,serif" font-size="14.00" fill="#000000">download &amp; verify stream</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id="node17" class="node">
<title>ZcashFoundation/zebra#1400</title>
<g id="a_node17"><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,-873.5 16,-873.5 16,-820.5 248,-820.5 248,-873.5"/>
<text text-anchor="middle" x="132" y="-858.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="132" y="-843.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="132" y="-828.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="node18" class="node">
<title>ZcashFoundation/zebra#1311</title>
<g id="a_node18"><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,-960 16,-960 16,-892 248,-892 248,-960"/>
<text text-anchor="middle" x="132" y="-944.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1311</text>
<text text-anchor="middle" x="132" y="-929.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create function for post&#45;</text>
<text text-anchor="middle" x="132" y="-914.8" font-family="Times,serif" font-size="14.00" fill="#000000">blossom height</text>
<text text-anchor="middle" x="132" y="-899.8" font-family="Times,serif" font-size="14.00" fill="#000000">adjustments</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1170 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#1170</title>
<g id="a_node19"><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,-952.5 300,-952.5 300,-948.5 296,-948.5 296,-944.5 300,-944.5 300,-907.5 296,-907.5 296,-903.5 300,-903.5 300,-899.5 532,-899.5 532,-952.5"/>
<polyline fill="none" stroke="#000000" points="300,-948.5 304,-948.5 304,-944.5 300,-944.5 "/>
<polyline fill="none" stroke="#000000" points="300,-907.5 304,-907.5 304,-903.5 300,-903.5 "/>
<text text-anchor="middle" x="416" y="-937.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1170</text>
<text text-anchor="middle" x="416" y="-922.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calculate and validate</text>
<text text-anchor="middle" x="416" y="-907.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="edge8" class="edge">
<title>ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170</title>
<path fill="none" stroke="#000000" d="M248.33,-926C262.02,-926 276.03,-926 289.84,-926"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-929.5001 299.85,-926 289.85,-922.5001 289.85,-929.5001"/>
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id="node20" class="node">
<title>ZcashFoundation/zebra#2200</title>
<g id="a_node20"><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,-1175 300,-1175 300,-1137 532,-1137 532,-1175"/>
<text text-anchor="middle" x="416" y="-1159.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2200</text>
<text text-anchor="middle" x="416" y="-1144.8" font-family="Times,serif" font-size="14.00" fill="#000000">Upgrade to latest tokio</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2573 -->
<g id="node21" class="node">
<title>ZcashFoundation/zebra#2573</title>
<g id="a_node21"><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,-1391 568,-1391 568,-1323 800,-1323 800,-1391"/>
<text text-anchor="middle" x="684" y="-1375.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2573</text>
<text text-anchor="middle" x="684" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove redundant watch</text>
<text text-anchor="middle" x="684" y="-1345.8" font-family="Times,serif" font-size="14.00" fill="#000000">values once our Tokio</text>
<text text-anchor="middle" x="684" y="-1330.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="edge9" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2573</title>
<path fill="none" stroke="#000000" d="M520.85,-1175.1C524.83,-1177.7 528.58,-1180.7 532,-1184 575.09,-1225.7 527.44,-1269.8 568,-1314 568.64,-1314.7 569.28,-1315.4 569.94,-1316"/>
<polygon fill="#000000" stroke="#000000" points="567.6662,-1318.663 577.42,-1322.8 572.3749,-1313.4834 567.6662,-1318.663"/>
</g>
<!-- ZcashFoundation/zebra#2202 -->
<g id="node22" class="node">
<title>ZcashFoundation/zebra#2202</title>
<g id="a_node22"><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,-1305 568,-1305 568,-1237 800,-1237 800,-1305"/>
<text text-anchor="middle" x="684" y="-1289.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="684" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="684" y="-1259.8" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="684" y="-1244.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="edge10" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202</title>
<path fill="none" stroke="#000000" d="M514.66,-1175C520.71,-1177.6 526.54,-1180.6 532,-1184 553.18,-1197.1 547.69,-1212.6 568,-1227 570.34,-1228.7 572.76,-1230.3 575.23,-1231.8"/>
<polygon fill="#000000" stroke="#000000" points="573.4613,-1234.8202 583.85,-1236.9 577.0257,-1228.7957 573.4613,-1234.8202"/>
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id="node23" class="node">
<title>ZcashFoundation/zebra#2201</title>
<g id="a_node23"><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,-1218.5 568,-1218.5 568,-1165.5 800,-1165.5 800,-1218.5"/>
<text text-anchor="middle" x="684" y="-1203.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="684" y="-1188.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="684" y="-1173.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="edge11" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201</title>
<path fill="none" stroke="#000000" d="M532.38,-1171.6C540.81,-1172.8 549.33,-1173.9 557.81,-1175"/>
<polygon fill="#000000" stroke="#000000" points="557.3493,-1178.4696 567.74,-1176.4 558.3266,-1171.5381 557.3493,-1178.4696"/>
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#2268</title>
<g id="a_node24"><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,-1147.5 568,-1147.5 568,-1094.5 800,-1094.5 800,-1147.5"/>
<text text-anchor="middle" x="684" y="-1132.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="684" y="-1117.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="684" y="-1102.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="edge12" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268</title>
<path fill="none" stroke="#000000" d="M532.38,-1140.8C540.81,-1139.7 549.33,-1138.6 557.81,-1137.5"/>
<polygon fill="#000000" stroke="#000000" points="558.279,-1140.9686 567.74,-1136.2 557.3702,-1134.0278 558.279,-1140.9686"/>
</g>
<!-- ZcashFoundation/zebra#2391 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#2391</title>
<g id="a_node25"><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,-1076 568,-1076 568,-1008 800,-1008 800,-1076"/>
<text text-anchor="middle" x="684" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2391</text>
<text text-anchor="middle" x="684" y="-1045.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce the dependencies</text>
<text text-anchor="middle" x="684" y="-1030.8" font-family="Times,serif" font-size="14.00" fill="#000000">on different versions of</text>
<text text-anchor="middle" x="684" y="-1015.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="edge13" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391</title>
<path fill="none" stroke="#000000" d="M457.09,-1136.9C479.29,-1126.6 507.16,-1113.6 532,-1102 548.02,-1094.5 551.69,-1091.9 568,-1085 572.12,-1083.3 576.34,-1081.5 580.61,-1079.8"/>
<polygon fill="#000000" stroke="#000000" points="582.0655,-1082.987 590.03,-1076 579.4467,-1076.4953 582.0655,-1082.987"/>
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id="node26" class="node">
<title>ZcashFoundation/zebra#1083</title>
<g id="a_node26"><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,-490.5 568,-490.5 568,-407.5 800,-407.5 800,-490.5"/>
<text text-anchor="middle" x="684" y="-475.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="684" y="-460.3" font-family="Times,serif" font-size="14.00" fill="#000000">Send inbound</text>
<text text-anchor="middle" x="684" y="-445.3" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactionIds`</text>
<text text-anchor="middle" x="684" y="-430.3" font-family="Times,serif" font-size="14.00" fill="#000000">requests to the mempool</text>
<text text-anchor="middle" x="684" y="-415.3" font-family="Times,serif" font-size="14.00" fill="#000000">storage service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id="node27" class="node">
<title>ZcashFoundation/zebra#936</title>
<g id="a_node27"><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,-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#936</text>
<text text-anchor="middle" x="416" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: mempool</text>
<text text-anchor="middle" x="416" y="-480.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="edge14" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M428.47,-525.67C450.7,-570.66 501.17,-662.06 568,-717 569.37,-718.13 570.77,-719.24 572.2,-720.32"/>
<polygon fill="#000000" stroke="#000000" points="570.464,-723.3805 580.64,-726.33 574.5244,-717.6784 570.464,-723.3805"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M453.33,-525.57C483.63,-546.7 527.78,-576.52 568,-600 570.83,-601.65 573.71,-603.31 576.63,-604.96"/>
<polygon fill="#000000" stroke="#000000" points="575.0407,-608.0811 585.48,-609.89 578.4473,-601.9659 575.0407,-608.0811"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M527.72,-520.26C537.63,-522.15 547.7,-524.06 557.72,-525.97"/>
<polygon fill="#000000" stroke="#000000" points="557.2321,-529.4399 567.71,-527.87 558.5401,-522.5631 557.2321,-529.4399"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M527.72,-478.16C537.63,-476.31 547.7,-474.43 557.72,-472.56"/>
<polygon fill="#000000" stroke="#000000" points="558.5247,-475.9702 567.71,-470.69 557.2367,-469.0897 558.5247,-475.9702"/>
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id="node28" class="node">
<title>ZcashFoundation/zebra#571</title>
<g id="a_node28"><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,-389 572.5,-389 572.5,-321 795.5,-321 795.5,-389"/>
<text text-anchor="middle" x="684" y="-373.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="684" y="-358.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="684" y="-343.8" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="684" y="-328.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="edge18" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M518.36,-472.42C523.16,-469.59 527.75,-466.46 532,-463 557.62,-442.16 542.96,-419.53 568,-398 569.17,-396.99 570.37,-396.01 571.59,-395.05"/>
<polygon fill="#000000" stroke="#000000" points="573.8871,-397.7086 579.95,-389.02 569.7921,-392.0313 573.8871,-397.7086"/>
</g>
<!-- ZcashFoundation/zebra#484 -->
<g id="node29" class="node">
<title>ZcashFoundation/zebra#484</title>
<g id="a_node29"><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,-302.5 572.5,-302.5 572.5,-249.5 795.5,-249.5 795.5,-302.5"/>
<text text-anchor="middle" x="684" y="-287.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#484</text>
<text text-anchor="middle" x="684" y="-272.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit transaction size in</text>
<text text-anchor="middle" x="684" y="-257.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="edge19" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484</title>
<path fill="none" stroke="#000000" d="M521.38,-472.43C525.19,-469.6 528.76,-466.47 532,-463 579.13,-412.61 520.87,-362.39 568,-312 568.91,-311.03 569.85,-310.08 570.81,-309.15"/>
<polygon fill="#000000" stroke="#000000" points="573.2275,-311.6899 578.62,-302.57 568.7173,-306.3365 573.2275,-311.6899"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node30" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node30"><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,-1238.5 20.5,-1238.5 20.5,-1185.5 243.5,-1185.5 243.5,-1238.5"/>
<text text-anchor="middle" x="132" y="-1223.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="132" y="-1208.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="132" y="-1193.3" font-family="Times,serif" font-size="14.00" fill="#000000">validation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="node31" class="node">
<title>ZcashFoundation/zebra#1486</title>
<g id="a_node31"><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,-1231 300,-1231 300,-1193 532,-1193 532,-1231"/>
<text text-anchor="middle" x="416" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="416" y="-1200.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="edge20" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M243.84,-1212C258.72,-1212 274.06,-1212 289.18,-1212"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-1215.5001 299.59,-1212 289.59,-1208.5001 289.59,-1215.5001"/>
</g>
<!-- ZcashFoundation/zebra#2675 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#2675</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2675" xlink:title="ZcashFoundation/zebra#2675&#10;Increase MEMPOOL_SIZE" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1295 16,-1295 16,-1257 248,-1257 248,-1295"/>
<text text-anchor="middle" x="132" y="-1279.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2675</text>
<text text-anchor="middle" x="132" y="-1264.8" font-family="Times,serif" font-size="14.00" fill="#000000">Increase MEMPOOL_SIZE</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2682 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#2682</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2682" xlink:title="ZcashFoundation/zebra#2682&#10;Reject duplicate UTXO&#10;spends and nullifier&#10;reveals across mempool&#10;transactions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1396.5 16,-1396.5 16,-1313.5 248,-1313.5 248,-1396.5"/>
<text text-anchor="middle" x="132" y="-1381.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2682</text>
<text text-anchor="middle" x="132" y="-1366.3" font-family="Times,serif" font-size="14.00" fill="#000000">Reject duplicate UTXO</text>
<text text-anchor="middle" x="132" y="-1351.3" font-family="Times,serif" font-size="14.00" fill="#000000">spends and nullifier</text>
<text text-anchor="middle" x="132" y="-1336.3" font-family="Times,serif" font-size="14.00" fill="#000000">reveals across mempool</text>
<text text-anchor="middle" x="132" y="-1321.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2631 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#2631</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2631" xlink:title="ZcashFoundation/zebra#2631&#10;Send committed spends &amp;&#10;nullifiers to the mempool&#10;for rejection" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1389 300,-1389 300,-1321 532,-1321 532,-1389"/>
<text text-anchor="middle" x="416" y="-1373.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2631</text>
<text text-anchor="middle" x="416" y="-1358.8" font-family="Times,serif" font-size="14.00" fill="#000000">Send committed spends &amp;</text>
<text text-anchor="middle" x="416" y="-1343.8" font-family="Times,serif" font-size="14.00" fill="#000000">nullifiers to the mempool</text>
<text text-anchor="middle" x="416" y="-1328.8" font-family="Times,serif" font-size="14.00" fill="#000000">for rejection</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2682&#45;&gt;ZcashFoundation/zebra#2631 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#2682&#45;&gt;ZcashFoundation/zebra#2631</title>
<path fill="none" stroke="#000000" d="M248.33,-1355C262.02,-1355 276.03,-1355 289.84,-1355"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1358.5001 299.85,-1355 289.85,-1351.5001 289.85,-1358.5001"/>
</g>
<!-- ZcashFoundation/zebra#2690 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#2690</title>
<g id="a_node35"><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,-1467.5 16,-1467.5 16,-1414.5 248,-1414.5 248,-1467.5"/>
<text text-anchor="middle" x="132" y="-1452.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2690</text>
<text text-anchor="middle" x="132" y="-1437.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add debug configs for</text>
<text text-anchor="middle" x="132" y="-1422.3" font-family="Times,serif" font-size="14.00" fill="#000000">mempool acceptance tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2691 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#2691</title>
<g id="a_node36"><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,-1467.5 300,-1467.5 300,-1414.5 532,-1414.5 532,-1467.5"/>
<text text-anchor="middle" x="416" y="-1452.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2691</text>
<text text-anchor="middle" x="416" y="-1437.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add `zebrad` acceptance</text>
<text text-anchor="middle" x="416" y="-1422.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="edge22" class="edge">
<title>ZcashFoundation/zebra#2690&#45;&gt;ZcashFoundation/zebra#2691</title>
<path fill="none" stroke="#000000" d="M248.33,-1441C262.02,-1441 276.03,-1441 289.84,-1441"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1444.5001 299.85,-1441 289.85,-1437.5001 289.85,-1444.5001"/>
</g>
<!-- ZcashFoundation/zebra#2729 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#2729</title>
<g id="a_node37"><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,-1538.5 16,-1538.5 16,-1534.5 12,-1534.5 12,-1530.5 16,-1530.5 16,-1493.5 12,-1493.5 12,-1489.5 16,-1489.5 16,-1485.5 248,-1485.5 248,-1538.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-1534.5 20,-1534.5 20,-1530.5 16,-1530.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-1493.5 20,-1493.5 20,-1489.5 16,-1489.5 "/>
<text text-anchor="middle" x="132" y="-1523.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2729</text>
<text text-anchor="middle" x="132" y="-1508.3" font-family="Times,serif" font-size="14.00" fill="#000000">Gossip recently verified</text>
<text text-anchor="middle" x="132" y="-1493.3" font-family="Times,serif" font-size="14.00" fill="#000000">block hashes to peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2745 -->
<g id="node38" class="node">
<title>ZcashFoundation/zebra#2745</title>
<g id="a_node38"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2745" xlink:title="ZcashFoundation/zebra#2745&#10;Add tests for Inbound::Re&#10;quest::PushTransaction&#10;and Inbound::Request::Adv&#10;ertiseTransactionIds" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1639.5 16,-1639.5 16,-1556.5 248,-1556.5 248,-1639.5"/>
<text text-anchor="middle" x="132" y="-1624.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2745</text>
<text text-anchor="middle" x="132" y="-1609.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add tests for Inbound::Re</text>
<text text-anchor="middle" x="132" y="-1594.3" font-family="Times,serif" font-size="14.00" fill="#000000">quest::PushTransaction</text>
<text text-anchor="middle" x="132" y="-1579.3" font-family="Times,serif" font-size="14.00" fill="#000000">and Inbound::Request::Adv</text>
<text text-anchor="middle" x="132" y="-1564.3" font-family="Times,serif" font-size="14.00" fill="#000000">ertiseTransactionIds</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id="node39" class="node">
<title>ZcashFoundation/zebra#1086</title>
<g id="a_node39"><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,-1115.5 16,-1115.5 16,-1032.5 248,-1032.5 248,-1115.5"/>
<text text-anchor="middle" x="132" y="-1100.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1086</text>
<text text-anchor="middle" x="132" y="-1085.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove git dependencies</text>
<text text-anchor="middle" x="132" y="-1070.3" font-family="Times,serif" font-size="14.00" fill="#000000">on Hyper, Metrics, Tower,</text>
<text text-anchor="middle" x="132" y="-1055.3" font-family="Times,serif" font-size="14.00" fill="#000000">ed25519&#45;zebra, lexical&#45;</text>
<text text-anchor="middle" x="132" y="-1040.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="edge23" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200</title>
<path fill="none" stroke="#000000" d="M248.33,-1107.6C279.3,-1116.5 311.95,-1126 340.13,-1134.1"/>
<polygon fill="#000000" stroke="#000000" points="339.3227,-1137.5095 349.9,-1136.9 341.2513,-1130.7804 339.3227,-1137.5095"/>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node40" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node40"><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,-1093 300,-1093 300,-1055 532,-1055 532,-1093"/>
<text text-anchor="middle" x="416" y="-1077.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="416" y="-1062.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="edge24" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686</title>
<path fill="none" stroke="#000000" d="M248.33,-1074C262.02,-1074 276.03,-1074 289.84,-1074"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1077.5001 299.85,-1074 289.85,-1070.5001 289.85,-1077.5001"/>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node41"><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,-1023.5 300,-1023.5 300,-970.5 532,-970.5 532,-1023.5"/>
<text text-anchor="middle" x="416" y="-1008.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="416" y="-993.3" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="416" y="-978.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="edge25" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112</title>
<path fill="none" stroke="#000000" d="M248.33,-1042.5C268.12,-1037.1 288.6,-1031.5 308.15,-1026.2"/>
<polygon fill="#000000" stroke="#000000" points="309.2074,-1029.5408 317.98,-1023.6 307.4175,-1022.7735 309.2074,-1029.5408"/>
</g>
<!-- ZcashFoundation/zebra#2193 -->
<g id="node42" class="node">
<title>ZcashFoundation/zebra#2193</title>
<g id="a_node42"><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,-989.5 568,-989.5 568,-906.5 800,-906.5 800,-989.5"/>
<text text-anchor="middle" x="684" y="-974.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2193</text>
<text text-anchor="middle" x="684" y="-959.3" font-family="Times,serif" font-size="14.00" fill="#000000">Redesign zebra&#45;network so</text>
<text text-anchor="middle" x="684" y="-944.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="-929.3" font-family="Times,serif" font-size="14.00" fill="#000000">message order, timing,</text>
<text text-anchor="middle" x="684" y="-914.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="edge26" class="edge">
<title>ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193</title>
<path fill="none" stroke="#000000" d="M532.38,-975.72C540.81,-974.18 549.33,-972.62 557.81,-971.07"/>
<polygon fill="#000000" stroke="#000000" points="558.5297,-974.4966 567.74,-969.26 557.2744,-967.61 558.5297,-974.4966"/>
</g>
<!-- ZcashFoundation/zebra#2622 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#2622</title>
<g id="a_node43"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2622" xlink:title="ZcashFoundation/zebra#2622&#10;Flush expired&#10;transactions from mempool" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1710.5 16,-1710.5 16,-1657.5 248,-1657.5 248,-1710.5"/>
<text text-anchor="middle" x="132" y="-1695.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2622</text>
<text text-anchor="middle" x="132" y="-1680.3" font-family="Times,serif" font-size="14.00" fill="#000000">Flush expired</text>
<text text-anchor="middle" x="132" y="-1665.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions from mempool</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2764 -->
<g id="node44" class="node">
<title>ZcashFoundation/zebra#2764</title>
<g id="a_node44"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2764" xlink:title="ZcashFoundation/zebra#2764&#10;Cancel download and&#10;verify tasks when the&#10;mempool is deactivated" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1797 16,-1797 16,-1793 12,-1793 12,-1789 16,-1789 16,-1737 12,-1737 12,-1733 16,-1733 16,-1729 248,-1729 248,-1797"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-1793 20,-1793 20,-1789 16,-1789 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-1737 20,-1737 20,-1733 16,-1733 "/>
<text text-anchor="middle" x="132" y="-1781.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2764</text>
<text text-anchor="middle" x="132" y="-1766.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cancel download and</text>
<text text-anchor="middle" x="132" y="-1751.8" font-family="Times,serif" font-size="14.00" fill="#000000">verify tasks when the</text>
<text text-anchor="middle" x="132" y="-1736.8" font-family="Times,serif" font-size="14.00" fill="#000000">mempool is deactivated</text>
</a>
</g>
</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,-1883 20.5,-1883 20.5,-1815 243.5,-1815 243.5,-1883"/>
<text text-anchor="middle" x="132" y="-1867.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="132" y="-1852.8" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="132" y="-1837.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="132" y="-1822.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,-1954.5 20.5,-1954.5 20.5,-1901.5 243.5,-1901.5 243.5,-1954.5"/>
<text text-anchor="middle" x="132" y="-1939.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="132" y="-1924.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="132" y="-1909.3" font-family="Times,serif" font-size="14.00" fill="#000000">platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node47" class="node">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node47"><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,-2122.5 300,-2122.5 300,-2069.5 532,-2069.5 532,-2122.5"/>
<text text-anchor="middle" x="416" y="-2107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="416" y="-2092.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="-2077.3" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1007 -->
<g id="node48" class="node">
<title>ZcashFoundation/zebra#1007</title>
<g id="a_node48"><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,-2130 568,-2130 568,-2126 564,-2126 564,-2122 568,-2122 568,-2070 564,-2070 564,-2066 568,-2066 568,-2062 800,-2062 800,-2130"/>
<polyline fill="none" stroke="#000000" points="568,-2126 572,-2126 572,-2122 568,-2122 "/>
<polyline fill="none" stroke="#000000" points="568,-2070 572,-2070 572,-2066 568,-2066 "/>
<text text-anchor="middle" x="684" y="-2114.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="684" y="-2099.8" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="684" y="-2084.8" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="684" y="-2069.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="edge27" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M532.38,-2096C540.71,-2096 549.14,-2096 557.53,-2096"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-2099.5001 567.74,-2096 557.74,-2092.5001 557.74,-2099.5001"/>
</g>
<!-- ZcashFoundation/zebra#1827 -->
<g id="node49" class="node">
<title>ZcashFoundation/zebra#1827</title>
<g id="a_node49"><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,-2243.5 16,-2243.5 16,-2160.5 248,-2160.5 248,-2243.5"/>
<text text-anchor="middle" x="132" y="-2228.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="132" y="-2213.3" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="132" y="-2198.3" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="132" y="-2183.3" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="132" y="-2168.3" font-family="Times,serif" font-size="14.00" fill="#000000">`PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id="node50" class="node">
<title>ZcashFoundation/zebra#1592</title>
<g id="a_node50"><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,-2314.5 16,-2314.5 16,-2261.5 248,-2261.5 248,-2314.5"/>
<text text-anchor="middle" x="132" y="-2299.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="132" y="-2284.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="132" y="-2269.3" font-family="Times,serif" font-size="14.00" fill="#000000">hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#1817</title>
<g id="a_node51"><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,-2337 300,-2337 300,-2333 296,-2333 296,-2329 300,-2329 300,-2247 296,-2247 296,-2243 300,-2243 300,-2239 532,-2239 532,-2337"/>
<polyline fill="none" stroke="#000000" points="300,-2333 304,-2333 304,-2329 300,-2329 "/>
<polyline fill="none" stroke="#000000" points="300,-2247 304,-2247 304,-2243 300,-2243 "/>
<text text-anchor="middle" x="416" y="-2321.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="416" y="-2306.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="416" y="-2291.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="416" y="-2276.8" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="416" y="-2261.8" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="416" y="-2246.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="edge28" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M248.33,-2288C262.02,-2288 276.03,-2288 289.84,-2288"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2291.5001 299.85,-2288 289.85,-2284.5001 289.85,-2291.5001"/>
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#1841</title>
<g id="a_node52"><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,-2415.5 16,-2415.5 16,-2332.5 248,-2332.5 248,-2415.5"/>
<text text-anchor="middle" x="132" y="-2400.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="132" y="-2385.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="-2370.3" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="132" y="-2355.3" font-family="Times,serif" font-size="14.00" fill="#000000">heights and protocol</text>
<text text-anchor="middle" x="132" y="-2340.3" font-family="Times,serif" font-size="14.00" fill="#000000">versions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node53" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node53"><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,-2603.5 16,-2603.5 16,-2520.5 248,-2520.5 248,-2603.5"/>
<text text-anchor="middle" x="132" y="-2588.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="132" y="-2573.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="132" y="-2558.3" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="132" y="-2543.3" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="132" y="-2528.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node54" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node54"><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,-2549 300,-2549 300,-2481 532,-2481 532,-2549"/>
<text text-anchor="middle" x="416" y="-2533.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="416" y="-2518.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="416" y="-2503.8" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="416" y="-2488.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="edge29" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.33,-2542.7C262.02,-2540.5 276.03,-2538.2 289.84,-2535.9"/>
<polygon fill="#000000" stroke="#000000" points="290.5772,-2539.325 299.85,-2534.2 289.4051,-2532.4238 290.5772,-2539.325"/>
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#1873</title>
<g id="a_node55"><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,-2040.5 300,-2040.5 300,-1987.5 532,-1987.5 532,-2040.5"/>
<text text-anchor="middle" x="416" y="-2025.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="416" y="-2010.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="-1995.3" font-family="Times,serif" font-size="14.00" fill="#000000">use all available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node56"><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,-2690 16,-2690 16,-2622 248,-2622 248,-2690"/>
<text text-anchor="middle" x="132" y="-2674.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="132" y="-2659.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="132" y="-2644.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="132" y="-2629.8" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node57"><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,-2055.5 16,-2055.5 16,-1972.5 248,-1972.5 248,-2055.5"/>
<text text-anchor="middle" x="132" y="-2040.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="132" y="-2025.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="132" y="-2010.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="132" y="-1995.3" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="132" y="-1980.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="edge30" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-2047.6C270.25,-2053.9 293.01,-2060.5 314.44,-2066.7"/>
<polygon fill="#000000" stroke="#000000" points="313.6022,-2070.1008 324.18,-2069.5 315.5363,-2063.3733 313.6022,-2070.1008"/>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873 -->
<g id="edge31" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873</title>
<path fill="none" stroke="#000000" d="M248.33,-2014C262.02,-2014 276.03,-2014 289.84,-2014"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2017.5001 299.85,-2014 289.85,-2010.5001 289.85,-2017.5001"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node58"><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,-2791.5 16,-2791.5 16,-2708.5 248,-2708.5 248,-2791.5"/>
<text text-anchor="middle" x="132" y="-2776.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="132" y="-2761.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="132" y="-2746.3" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="132" y="-2731.3" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="132" y="-2716.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node59"><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,-2784 300,-2784 300,-2716 532,-2716 532,-2784"/>
<text text-anchor="middle" x="416" y="-2768.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="416" y="-2753.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="416" y="-2738.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="416" y="-2723.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="edge32" class="edge">
<title>ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893</title>
<path fill="none" stroke="#000000" d="M248.33,-2750C262.02,-2750 276.03,-2750 289.84,-2750"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2753.5001 299.85,-2750 289.85,-2746.5001 289.85,-2753.5001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node60"><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,-2142 16,-2142 16,-2074 248,-2074 248,-2142"/>
<text text-anchor="middle" x="132" y="-2126.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="132" y="-2111.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="-2096.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="-2081.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="edge33" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-2103.1C262.02,-2102.5 276.03,-2101.9 289.84,-2101.3"/>
<polygon fill="#000000" stroke="#000000" points="289.9978,-2104.7966 299.85,-2100.9 289.7182,-2097.8022 289.9978,-2104.7966"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node61" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node61"><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,-2892.5 16,-2892.5 16,-2809.5 248,-2809.5 248,-2892.5"/>
<text text-anchor="middle" x="132" y="-2877.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="132" y="-2862.3" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="132" y="-2847.3" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="132" y="-2832.3" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="132" y="-2817.3" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#1851</title>
<g id="a_node62"><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,-2979 16,-2979 16,-2911 248,-2911 248,-2979"/>
<text text-anchor="middle" x="132" y="-2963.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1851</text>
<text text-anchor="middle" x="132" y="-2948.8" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the number of</text>
<text text-anchor="middle" x="132" y="-2933.8" font-family="Times,serif" font-size="14.00" fill="#000000">connected peers in the</text>
<text text-anchor="middle" x="132" y="-2918.8" font-family="Times,serif" font-size="14.00" fill="#000000">PeerSet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id="node63" class="node">
<title>ZcashFoundation/zebra#1850</title>
<g id="a_node63"><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,-3080.5 16,-3080.5 16,-2997.5 248,-2997.5 248,-3080.5"/>
<text text-anchor="middle" x="132" y="-3065.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1850</text>
<text text-anchor="middle" x="132" y="-3050.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="132" y="-3035.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound peer</text>
<text text-anchor="middle" x="132" y="-3020.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections when dialing</text>
<text text-anchor="middle" x="132" y="-3005.3" font-family="Times,serif" font-size="14.00" fill="#000000">new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node64"><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,-3282.5 300,-3282.5 300,-3199.5 532,-3199.5 532,-3282.5"/>
<text text-anchor="middle" x="416" y="-3267.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="416" y="-3252.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="416" y="-3237.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="416" y="-3222.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="416" y="-3207.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node65"><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,-3212.5 572.5,-3212.5 572.5,-3129.5 795.5,-3129.5 795.5,-3212.5"/>
<text text-anchor="middle" x="684" y="-3197.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="684" y="-3182.3" font-family="Times,serif" font-size="14.00" fill="#000000">Do we need to prefer</text>
<text text-anchor="middle" x="684" y="-3167.3" font-family="Times,serif" font-size="14.00" fill="#000000">evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="684" y="-3152.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="684" y="-3137.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="edge34" class="edge">
<title>ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M532.38,-3210.6C542.34,-3208 552.43,-3205.4 562.43,-3202.8"/>
<polygon fill="#000000" stroke="#000000" points="563.5983,-3206.1124 572.39,-3200.2 561.8302,-3199.3394 563.5983,-3206.1124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node66"><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,-2502 16,-2502 16,-2434 248,-2434 248,-2502"/>
<text text-anchor="middle" x="132" y="-2486.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="132" y="-2471.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="132" y="-2456.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="132" y="-2441.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="edge35" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.33,-2487.3C262.02,-2489.5 276.03,-2491.8 289.84,-2494.1"/>
<polygon fill="#000000" stroke="#000000" points="289.4051,-2497.5762 299.85,-2495.8 290.5772,-2490.675 289.4051,-2497.5762"/>
</g>
<!-- ZcashFoundation/zebra#1874 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#1874</title>
<g id="a_node67"><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,-3268 16,-3268 16,-3200 248,-3200 248,-3268"/>
<text text-anchor="middle" x="132" y="-3252.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1874</text>
<text text-anchor="middle" x="132" y="-3237.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP 244: Transaction</text>
<text text-anchor="middle" x="132" y="-3222.8" font-family="Times,serif" font-size="14.00" fill="#000000">Identifier Non&#45;</text>
<text text-anchor="middle" x="132" y="-3207.8" font-family="Times,serif" font-size="14.00" fill="#000000">Malleability</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1567 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#1567</title>
<g id="a_node68"><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,-3339.5 16,-3339.5 16,-3286.5 248,-3286.5 248,-3339.5"/>
<text text-anchor="middle" x="132" y="-3324.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1567</text>
<text text-anchor="middle" x="132" y="-3309.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Block Header</text>
<text text-anchor="middle" x="132" y="-3294.3" font-family="Times,serif" font-size="14.00" fill="#000000">Chain History Commitment</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node69"><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,-3410.5 16,-3410.5 16,-3357.5 248,-3357.5 248,-3410.5"/>
<text text-anchor="middle" x="132" y="-3395.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="132" y="-3380.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="132" y="-3365.3" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node70"><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,-3497 16,-3497 16,-3429 248,-3429 248,-3497"/>
<text text-anchor="middle" x="132" y="-3481.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="132" y="-3466.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="132" y="-3451.8" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="132" y="-3436.8" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node71"><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,-3583 16,-3583 16,-3515 248,-3515 248,-3583"/>
<text text-anchor="middle" x="132" y="-3567.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="132" y="-3552.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="132" y="-3537.8" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="132" y="-3522.8" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node72"><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,-3654.5 16,-3654.5 16,-3650.5 12,-3650.5 12,-3646.5 16,-3646.5 16,-3609.5 12,-3609.5 12,-3605.5 16,-3605.5 16,-3601.5 248,-3601.5 248,-3654.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3650.5 20,-3650.5 20,-3646.5 16,-3646.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3609.5 20,-3609.5 20,-3605.5 16,-3605.5 "/>
<text text-anchor="middle" x="132" y="-3639.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="132" y="-3624.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="132" y="-3609.3" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node73"><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,-3662 300,-3662 300,-3594 532,-3594 532,-3662"/>
<text text-anchor="middle" x="416" y="-3646.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="416" y="-3631.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="416" y="-3616.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="416" y="-3601.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="edge36" class="edge">
<title>ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052</title>
<path fill="none" stroke="#000000" d="M248.33,-3628C262.02,-3628 276.03,-3628 289.84,-3628"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3631.5001 299.85,-3628 289.85,-3624.5001 289.85,-3631.5001"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node74"><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,-3725.5 16,-3725.5 16,-3672.5 248,-3672.5 248,-3725.5"/>
<text text-anchor="middle" x="132" y="-3710.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="132" y="-3695.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="132" y="-3680.3" font-family="Times,serif" font-size="14.00" fill="#000000">FinalSaplingRoot</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node75"><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,-3796.5 16,-3796.5 16,-3743.5 248,-3743.5 248,-3796.5"/>
<text text-anchor="middle" x="132" y="-3781.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="132" y="-3766.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="132" y="-3751.3" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node76"><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,-3811.5 300,-3811.5 300,-3728.5 532,-3728.5 532,-3811.5"/>
<text text-anchor="middle" x="416" y="-3796.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="416" y="-3781.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="416" y="-3766.3" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="416" y="-3751.3" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="416" y="-3736.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="edge37" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M248.33,-3770C262.02,-3770 276.03,-3770 289.84,-3770"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3773.5001 299.85,-3770 289.85,-3766.5001 289.85,-3773.5001"/>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node77"><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,-3867.5 16,-3867.5 16,-3814.5 248,-3814.5 248,-3867.5"/>
<text text-anchor="middle" x="132" y="-3852.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="132" y="-3837.3" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="132" y="-3822.3" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node78"><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,-3938.5 16,-3938.5 16,-3885.5 248,-3885.5 248,-3938.5"/>
<text text-anchor="middle" x="132" y="-3923.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="132" y="-3908.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="132" y="-3893.3" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node79"><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,-3181.5 16,-3181.5 16,-3098.5 248,-3098.5 248,-3181.5"/>
<text text-anchor="middle" x="132" y="-3166.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="132" y="-3151.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="132" y="-3136.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="132" y="-3121.3" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="132" y="-3106.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="edge38" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M248.33,-3181.4C262.15,-3186.3 276.3,-3191.3 290.24,-3196.3"/>
<polygon fill="#000000" stroke="#000000" points="289.2552,-3199.6641 299.85,-3199.7 291.59,-3193.065 289.2552,-3199.6641"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge39" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M248.11,-3148.6C265.5,-3149.8 283.22,-3151 300,-3152 387.68,-3157.3 486.68,-3162.2 562.2,-3165.7"/>
<polygon fill="#000000" stroke="#000000" points="562.0883,-3169.1982 572.22,-3166.1 562.3676,-3162.2038 562.0883,-3169.1982"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node80"><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,-3143 300,-3143 300,-3075 532,-3075 532,-3143"/>
<text text-anchor="middle" x="416" y="-3127.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="416" y="-3112.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="416" y="-3097.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="416" y="-3082.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="edge40" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M248.33,-3127.3C262.02,-3125.8 276.03,-3124.3 289.84,-3122.8"/>
<polygon fill="#000000" stroke="#000000" points="290.2922,-3126.2715 299.85,-3121.7 289.5275,-3119.3134 290.2922,-3126.2715"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node81"><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,-3057 300,-3057 300,-2959 532,-2959 532,-3057"/>
<text text-anchor="middle" x="416" y="-3041.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="416" y="-3026.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="416" y="-3011.8" font-family="Times,serif" font-size="14.00" fill="#000000">immediately disconnecting</text>
<text text-anchor="middle" x="416" y="-2996.8" font-family="Times,serif" font-size="14.00" fill="#000000">from nodes that send</text>
<text text-anchor="middle" x="416" y="-2981.8" font-family="Times,serif" font-size="14.00" fill="#000000">unexpected messages,</text>
<text text-anchor="middle" x="416" y="-2966.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="edge41" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M244.31,-3098.4C251.03,-3095.4 257.64,-3092.2 264,-3089 280.94,-3080.4 283.49,-3075.4 300,-3066 302.27,-3064.7 304.57,-3063.4 306.9,-3062.1"/>
<polygon fill="#000000" stroke="#000000" points="308.8418,-3065.0293 315.98,-3057.2 305.5174,-3058.869 308.8418,-3065.0293"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge42" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M516.45,-3057.1C521.75,-3060 526.96,-3063 532,-3066 561.52,-3083.5 592.9,-3104.7 619.43,-3123.4"/>
<polygon fill="#000000" stroke="#000000" points="617.6917,-3126.4585 627.87,-3129.4 621.7476,-3120.7532 617.6917,-3126.4585"/>
</g>
<!-- ZcashFoundation/zcash_script#21 -->
<g id="node82" class="node">
<title>ZcashFoundation/zcash_script#21</title>
<g id="a_node82"><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,-4009.5 0,-4009.5 0,-3956.5 264,-3956.5 264,-4009.5"/>
<text text-anchor="middle" x="132" y="-3994.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zcash_script#21</text>
<text text-anchor="middle" x="132" y="-3979.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for V5</text>
<text text-anchor="middle" x="132" y="-3964.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2328 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#2328</title>
<g id="a_node83"><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,-4009.5 300,-4009.5 300,-3956.5 532,-3956.5 532,-4009.5"/>
<text text-anchor="middle" x="416" y="-3994.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2328</text>
<text text-anchor="middle" x="416" y="-3979.3" font-family="Times,serif" font-size="14.00" fill="#000000">Update `zcash_script` to</text>
<text text-anchor="middle" x="416" y="-3964.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="edge43" class="edge">
<title>ZcashFoundation/zcash_script#21&#45;&gt;ZcashFoundation/zebra#2328</title>
<path fill="none" stroke="#000000" d="M264.02,-3983C272.47,-3983 280.96,-3983 289.38,-3983"/>
<polygon fill="#000000" stroke="#000000" points="289.6,-3986.5001 299.6,-3983 289.6,-3979.5001 289.6,-3986.5001"/>
</g>
<!-- ZcashFoundation/zebra#1981 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#1981</title>
<g id="a_node84"><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,-4017 568,-4017 568,-3949 800,-3949 800,-4017"/>
<text text-anchor="middle" x="684" y="-4001.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1981</text>
<text text-anchor="middle" x="684" y="-3986.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Transparent and</text>
<text text-anchor="middle" x="684" y="-3971.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling validation for</text>
<text text-anchor="middle" x="684" y="-3956.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="edge44" class="edge">
<title>ZcashFoundation/zebra#2328&#45;&gt;ZcashFoundation/zebra#1981</title>
<path fill="none" stroke="#000000" d="M532.38,-3983C540.71,-3983 549.14,-3983 557.53,-3983"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-3986.5001 567.74,-3983 557.74,-3979.5001 557.74,-3986.5001"/>
</g>
<!-- ZcashFoundation/zebra#2338 -->
<g id="node85" class="node">
<title>ZcashFoundation/zebra#2338</title>
<g id="a_node85"><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,-4088.5 16,-4088.5 16,-4035.5 248,-4035.5 248,-4088.5"/>
<text text-anchor="middle" x="132" y="-4073.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2338</text>
<text text-anchor="middle" x="132" y="-4058.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create Error enums in</text>
<text text-anchor="middle" x="132" y="-4043.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zebrad`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2339 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#2339</title>
<g id="a_node86"><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,-4096 300,-4096 300,-4028 532,-4028 532,-4096"/>
<text text-anchor="middle" x="416" y="-4080.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2339</text>
<text text-anchor="middle" x="416" y="-4065.8" font-family="Times,serif" font-size="14.00" fill="#000000">Downcast and match</text>
<text text-anchor="middle" x="416" y="-4050.8" font-family="Times,serif" font-size="14.00" fill="#000000">Already Verified error</text>
<text text-anchor="middle" x="416" y="-4035.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="edge45" class="edge">
<title>ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339</title>
<path fill="none" stroke="#000000" d="M248.33,-4062C262.02,-4062 276.03,-4062 289.84,-4062"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4065.5001 299.85,-4062 289.85,-4058.5001 289.85,-4065.5001"/>
</g>
<!-- ZcashFoundation/zebra#2331 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#2331</title>
<g id="a_node87"><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,-4174.5 16,-4174.5 16,-4121.5 248,-4121.5 248,-4174.5"/>
<text text-anchor="middle" x="132" y="-4159.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2331</text>
<text text-anchor="middle" x="132" y="-4144.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove serde from zebra&#45;</text>
<text text-anchor="middle" x="132" y="-4129.3" font-family="Times,serif" font-size="14.00" fill="#000000">chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2042 -->
<g id="node88" class="node">
<title>ZcashFoundation/zebra#2042</title>
<g id="a_node88"><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,-4182 300,-4182 300,-4114 532,-4114 532,-4182"/>
<text text-anchor="middle" x="416" y="-4166.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2042</text>
<text text-anchor="middle" x="416" y="-4151.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="-4136.8" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper types to const</text>
<text text-anchor="middle" x="416" y="-4121.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="edge46" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042</title>
<path fill="none" stroke="#000000" d="M248.33,-4148C262.02,-4148 276.03,-4148 289.84,-4148"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4151.5001 299.85,-4148 289.85,-4144.5001 289.85,-4151.5001"/>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node89"><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,-4261 16,-4261 16,-4193 248,-4193 248,-4261"/>
<text text-anchor="middle" x="132" y="-4245.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="132" y="-4230.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically use zebrad</text>
<text text-anchor="middle" x="132" y="-4215.8" font-family="Times,serif" font-size="14.00" fill="#000000">version for the zebra&#45;</text>
<text text-anchor="middle" x="132" y="-4200.8" font-family="Times,serif" font-size="14.00" fill="#000000">network user agent</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node90" class="node">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node90"><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,-4253.5 304.5,-4253.5 304.5,-4200.5 527.5,-4200.5 527.5,-4253.5"/>
<text text-anchor="middle" x="416" y="-4238.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="416" y="-4223.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="416" y="-4208.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="edge47" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M248.33,-4227C263.39,-4227 278.85,-4227 294,-4227"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-4230.5001 304.43,-4227 294.43,-4223.5001 294.43,-4230.5001"/>
</g>
<!-- ZcashFoundation/zebra#2377 -->
<g id="node91" class="node">
<title>ZcashFoundation/zebra#2377</title>
<g id="a_node91"><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,-4332.5 16,-4332.5 16,-4279.5 248,-4279.5 248,-4332.5"/>
<text text-anchor="middle" x="132" y="-4317.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2377</text>
<text text-anchor="middle" x="132" y="-4302.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor history tree</text>
<text text-anchor="middle" x="132" y="-4287.3" font-family="Times,serif" font-size="14.00" fill="#000000">pruning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2378 -->
<g id="node92" class="node">
<title>ZcashFoundation/zebra#2378</title>
<g id="a_node92"><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,-4403.5 16,-4403.5 16,-4350.5 248,-4350.5 248,-4403.5"/>
<text text-anchor="middle" x="132" y="-4388.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2378</text>
<text text-anchor="middle" x="132" y="-4373.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve history and note</text>
<text text-anchor="middle" x="132" y="-4358.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees forking</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1951 -->
<g id="node93" class="node">
<title>ZcashFoundation/zebra#1951</title>
<g id="a_node93"><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,-4504.5 16,-4504.5 16,-4421.5 248,-4421.5 248,-4504.5"/>
<text text-anchor="middle" x="132" y="-4489.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1951</text>
<text text-anchor="middle" x="132" y="-4474.3" font-family="Times,serif" font-size="14.00" fill="#000000">Generalize/deduplicate</text>
<text text-anchor="middle" x="132" y="-4459.3" font-family="Times,serif" font-size="14.00" fill="#000000">async batch verification</text>
<text text-anchor="middle" x="132" y="-4444.3" font-family="Times,serif" font-size="14.00" fill="#000000">services / create a</text>
<text text-anchor="middle" x="132" y="-4429.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="node94" class="node">
<title>ZcashFoundation/zebra#2390</title>
<g id="a_node94"><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,-4504.5 300,-4504.5 300,-4421.5 532,-4421.5 532,-4504.5"/>
<text text-anchor="middle" x="416" y="-4489.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2390</text>
<text text-anchor="middle" x="416" y="-4474.3" font-family="Times,serif" font-size="14.00" fill="#000000">Fix tasks spawned by</text>
<text text-anchor="middle" x="416" y="-4459.3" font-family="Times,serif" font-size="14.00" fill="#000000">`tower_batch::Batch` only</text>
<text text-anchor="middle" x="416" y="-4444.3" font-family="Times,serif" font-size="14.00" fill="#000000">being alive during one</text>
<text text-anchor="middle" x="416" y="-4429.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="edge48" class="edge">
<title>ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390</title>
<path fill="none" stroke="#000000" d="M248.33,-4463C262.02,-4463 276.03,-4463 289.84,-4463"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4466.5001 299.85,-4463 289.85,-4459.5001 289.85,-4466.5001"/>
</g>
<!-- ZcashFoundation/zebra#338 -->
<g id="node95" class="node">
<title>ZcashFoundation/zebra#338</title>
<g id="a_node95"><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,-4575.5 20.5,-4575.5 20.5,-4522.5 243.5,-4522.5 243.5,-4575.5"/>
<text text-anchor="middle" x="132" y="-4560.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#338</text>
<text text-anchor="middle" x="132" y="-4545.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calc Block Subsidy and</text>
<text text-anchor="middle" x="132" y="-4530.3" font-family="Times,serif" font-size="14.00" fill="#000000">Funding Streams</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1162 -->
<g id="node96" class="node">
<title>ZcashFoundation/zebra#1162</title>
<g id="a_node96"><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,-4575.5 300,-4575.5 300,-4522.5 532,-4522.5 532,-4575.5"/>
<text text-anchor="middle" x="416" y="-4560.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1162</text>
<text text-anchor="middle" x="416" y="-4545.3" font-family="Times,serif" font-size="14.00" fill="#000000">Validate coinbase miner</text>
<text text-anchor="middle" x="416" y="-4530.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="edge49" class="edge">
<title>ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M243.84,-4549C258.72,-4549 274.06,-4549 289.18,-4549"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-4552.5001 299.59,-4549 289.59,-4545.5001 289.59,-4552.5001"/>
</g>
<!-- ZcashFoundation/zebra#2425 -->
<g id="node97" class="node">
<title>ZcashFoundation/zebra#2425</title>
<g id="a_node97"><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,-4646.5 16,-4646.5 16,-4593.5 248,-4593.5 248,-4646.5"/>
<text text-anchor="middle" x="132" y="-4631.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2425</text>
<text text-anchor="middle" x="132" y="-4616.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: Validate note</text>
<text text-anchor="middle" x="132" y="-4601.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees in state</text>
</a>
</g>
</g>
</g>
</svg>