developers/zcash-zf-dag.svg

1704 lines
131 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="1344pt" height="5148pt"
viewBox="0.00 0.00 1344.00 5147.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 5143.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-5143.5 1340,-5143.5 1340,4 -4,4"/>
<!-- ZcashFoundation/zebra#2511 -->
<g id="node1" class="node">
<title>ZcashFoundation/zebra#2511</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2511" xlink:title="ZcashFoundation/zebra#2511&#10;Reject UTXO double spends" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-124 16,-124 16,-120 12,-120 12,-116 16,-116 16,-94 12,-94 12,-90 16,-90 16,-86 248,-86 248,-124"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-120 20,-120 20,-116 16,-116 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-94 20,-94 20,-90 16,-90 "/>
<text text-anchor="middle" x="132" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2511</text>
<text text-anchor="middle" x="132" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reject UTXO double spends</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2515 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#2515</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2515" xlink:title="ZcashFoundation/zebra#2515&#10;rustfmt inside nullifier&#10;and utxo proptests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-94.5 300,-94.5 300,-90.5 296,-90.5 296,-86.5 300,-86.5 300,-49.5 296,-49.5 296,-45.5 300,-45.5 300,-41.5 532,-41.5 532,-94.5"/>
<polyline fill="none" stroke="#000000" points="300,-90.5 304,-90.5 304,-86.5 300,-86.5 "/>
<polyline fill="none" stroke="#000000" points="300,-49.5 304,-49.5 304,-45.5 300,-45.5 "/>
<text text-anchor="middle" x="416" y="-79.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2515</text>
<text text-anchor="middle" x="416" y="-64.3" font-family="Times,serif" font-size="14.00" fill="#000000">rustfmt inside nullifier</text>
<text text-anchor="middle" x="416" y="-49.3" font-family="Times,serif" font-size="14.00" fill="#000000">and utxo proptests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2511&#45;&gt;ZcashFoundation/zebra#2515 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#2511&#45;&gt;ZcashFoundation/zebra#2515</title>
<path fill="none" stroke="#000000" d="M248.33,-89.844C262.02,-88.061 276.03,-86.236 289.84,-84.437"/>
<polygon fill="#000000" stroke="#000000" points="290.3859,-87.8955 299.85,-83.133 289.4816,-80.9542 290.3859,-87.8955"/>
</g>
<!-- ZcashFoundation/zebra#2513 -->
<g id="node3" class="node">
<title>ZcashFoundation/zebra#2513</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2513" xlink:title="ZcashFoundation/zebra#2513&#10;Make nullifier tests&#10;faster and consistent&#10;with UTXO tests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-68 16,-68 16,-64 12,-64 12,-60 16,-60 16,-8 12,-8 12,-4 16,-4 16,0 248,0 248,-68"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-64 20,-64 20,-60 16,-60 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-8 20,-8 20,-4 16,-4 "/>
<text text-anchor="middle" x="132" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2513</text>
<text text-anchor="middle" x="132" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Make nullifier tests</text>
<text text-anchor="middle" x="132" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">faster and consistent</text>
<text text-anchor="middle" x="132" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">with UTXO tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2513&#45;&gt;ZcashFoundation/zebra#2515 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#2513&#45;&gt;ZcashFoundation/zebra#2515</title>
<path fill="none" stroke="#000000" d="M248.33,-47.927C262.02,-49.565 276.03,-51.243 289.84,-52.896"/>
<polygon fill="#000000" stroke="#000000" points="289.5049,-56.3808 299.85,-54.094 290.3368,-49.4304 289.5049,-56.3808"/>
</g>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node4" class="node">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1135" xlink:title="ZcashFoundation/zebra#1135&#10;Refactor Network and&#10;NetworkUpgrade enums into&#10;structs and a trait" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-214 16,-214 16,-146 248,-146 248,-214"/>
<text text-anchor="middle" x="132" y="-198.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="132" y="-183.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="132" y="-168.8" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="132" y="-153.8" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node5" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title="ZcashFoundation/zebra#1011&#10;Re&#45;enable the&#10;BlockVerifier continuous_&#10;blockchain_test" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-214 300,-214 300,-146 532,-146 532,-214"/>
<text text-anchor="middle" x="416" y="-198.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="416" y="-183.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="416" y="-168.8" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="416" y="-153.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="edge3" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="#000000" d="M248.33,-180C262.02,-180 276.03,-180 289.84,-180"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-183.5001 299.85,-180 289.85,-176.5001 289.85,-183.5001"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node6" class="node">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/271" xlink:title="ZcashFoundation/zebra#271&#10;Sapling Key Agreement and&#10;KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-292.5 20.5,-292.5 20.5,-239.5 243.5,-239.5 243.5,-292.5"/>
<text text-anchor="middle" x="132" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="132" y="-262.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="132" y="-247.3" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node7" class="node">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling note&#10;encryption/decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-300 304.5,-300 304.5,-232 527.5,-232 527.5,-300"/>
<text text-anchor="middle" x="416" y="-284.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="416" y="-269.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note</text>
<text text-anchor="middle" x="416" y="-254.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="416" y="-239.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="edge4" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M243.84,-266C260.29,-266 277.31,-266 293.96,-266"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-269.5001 304.27,-266 294.27,-262.5001 294.27,-269.5001"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node8" class="node">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node8"><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,-349 20.5,-349 20.5,-311 243.5,-311 243.5,-349"/>
<text text-anchor="middle" x="132" y="-333.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="132" y="-318.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id="node9" class="node">
<title>ZcashFoundation/zebra#619</title>
<g id="a_node9"><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,-420.5 20.5,-420.5 20.5,-367.5 243.5,-367.5 243.5,-420.5"/>
<text text-anchor="middle" x="132" y="-405.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="132" y="-390.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="132" y="-375.3" font-family="Times,serif" font-size="14.00" fill="#000000">validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id="node10" class="node">
<title>ZcashFoundation/zebra#466</title>
<g id="a_node10"><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,-428 304.5,-428 304.5,-360 527.5,-360 527.5,-428"/>
<text text-anchor="middle" x="416" y="-412.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="416" y="-397.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="416" y="-382.8" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="416" y="-367.8" font-family="Times,serif" font-size="14.00" fill="#000000">framework for Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466</title>
<path fill="none" stroke="#000000" d="M243.84,-394C260.29,-394 277.31,-394 293.96,-394"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-397.5001 304.27,-394 294.27,-390.5001 294.27,-397.5001"/>
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id="node11" class="node">
<title>ZcashFoundation/zebra#884</title>
<g id="a_node11"><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,-499.5 20.5,-499.5 20.5,-446.5 243.5,-446.5 243.5,-499.5"/>
<text text-anchor="middle" x="132" y="-484.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="132" y="-469.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="132" y="-454.3" font-family="Times,serif" font-size="14.00" fill="#000000">correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id="node12" class="node">
<title>ZcashFoundation/zebra#899</title>
<g id="a_node12"><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,-499.5 304.5,-499.5 304.5,-446.5 527.5,-446.5 527.5,-499.5"/>
<text text-anchor="middle" x="416" y="-484.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="416" y="-469.3" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="416" y="-454.3" font-family="Times,serif" font-size="14.00" fill="#000000">into RFC1</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899</title>
<path fill="none" stroke="#000000" d="M243.84,-473C260.29,-473 277.31,-473 293.96,-473"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-476.5001 304.27,-473 294.27,-469.5001 294.27,-476.5001"/>
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id="node13" class="node">
<title>ZcashFoundation/zebra#919</title>
<g id="a_node13"><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,-593 20.5,-593 20.5,-525 243.5,-525 243.5,-593"/>
<text text-anchor="middle" x="132" y="-577.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="132" y="-562.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="132" y="-547.8" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="132" y="-532.8" font-family="Times,serif" font-size="14.00" fill="#000000">as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id="node14" class="node">
<title>ZcashFoundation/zebra#1021</title>
<g id="a_node14"><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,-600.5 300,-600.5 300,-517.5 532,-517.5 532,-600.5"/>
<text text-anchor="middle" x="416" y="-585.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="416" y="-570.3" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="416" y="-555.3" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="416" y="-540.3" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="416" y="-525.3" font-family="Times,serif" font-size="14.00" fill="#000000">tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021</title>
<path fill="none" stroke="#000000" d="M243.84,-559C258.72,-559 274.06,-559 289.18,-559"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-562.5001 299.59,-559 289.59,-555.5001 289.59,-562.5001"/>
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id="node15" class="node">
<title>ZcashFoundation/zebra#889</title>
<g id="a_node15"><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="#c2e0c6" stroke="#000000" points="527.5,-864.5 304.5,-864.5 304.5,-811.5 527.5,-811.5 527.5,-864.5"/>
<text text-anchor="middle" x="416" y="-849.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="416" y="-834.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="416" y="-819.3" font-family="Times,serif" font-size="14.00" fill="#000000">handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id="node16" class="node">
<title>ZcashFoundation/zebra#1077</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1077" xlink:title="ZcashFoundation/zebra#1077&#10;Handle TransactionsByHash&#10;in the Inbound service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-864.5 568,-864.5 568,-811.5 800,-811.5 800,-864.5"/>
<text text-anchor="middle" x="684" y="-849.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="684" y="-834.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle TransactionsByHash</text>
<text text-anchor="middle" x="684" y="-819.3" font-family="Times,serif" font-size="14.00" fill="#000000">in the Inbound service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M527.72,-838C537.52,-838 547.49,-838 557.41,-838"/>
<polygon fill="#000000" stroke="#000000" points="557.71,-841.5001 567.71,-838 557.71,-834.5001 557.71,-841.5001"/>
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id="node17" class="node">
<title>ZcashFoundation/zebra#1048</title>
<g id="a_node17"><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,-872 16,-872 16,-804 248,-804 248,-872"/>
<text text-anchor="middle" x="132" y="-856.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="132" y="-841.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="132" y="-826.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="132" y="-811.8" font-family="Times,serif" font-size="14.00" fill="#000000">Response} protocol</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889</title>
<path fill="none" stroke="#000000" d="M248.33,-838C263.39,-838 278.85,-838 294,-838"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-841.5001 304.43,-838 294.43,-834.5001 294.43,-841.5001"/>
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id="node18" class="node">
<title>ZcashFoundation/zebra#1080</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1080" xlink:title="ZcashFoundation/zebra#1080&#10;Handle `PushTransaction`&#10;in the Inbound service." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-793.5 568,-793.5 568,-740.5 800,-740.5 800,-793.5"/>
<text text-anchor="middle" x="684" y="-778.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="684" y="-763.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle `PushTransaction`</text>
<text text-anchor="middle" x="684" y="-748.3" font-family="Times,serif" font-size="14.00" fill="#000000">in the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#1081</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1081" xlink:title="ZcashFoundation/zebra#1081&#10;Handle&#10;`AdvertiseTransaction` in&#10;the Inbound service." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-722 568,-722 568,-654 800,-654 800,-722"/>
<text text-anchor="middle" x="684" y="-706.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="684" y="-691.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="684" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransaction` in</text>
<text text-anchor="middle" x="684" y="-661.8" font-family="Times,serif" font-size="14.00" fill="#000000">the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320 -->
<g id="node20" class="node">
<title>ZcashFoundation/zebra#1320</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1320" xlink:title="ZcashFoundation/zebra#1320&#10;Add sapling and orchard&#10;anchors to `zebra&#45;state`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1132.5 300,-1132.5 300,-1079.5 532,-1079.5 532,-1132.5"/>
<text text-anchor="middle" x="416" y="-1117.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1320</text>
<text text-anchor="middle" x="416" y="-1102.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add sapling and orchard</text>
<text text-anchor="middle" x="416" y="-1087.3" font-family="Times,serif" font-size="14.00" fill="#000000">anchors to `zebra&#45;state`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="node21" class="node">
<title>ZcashFoundation/zebra#1486</title>
<g id="a_node21"><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="800,-1184 568,-1184 568,-1146 800,-1146 800,-1184"/>
<text text-anchor="middle" x="684" y="-1168.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="684" y="-1153.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tune RocksDB memory usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#1486 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M532.38,-1131.6C550.85,-1135.7 569.78,-1139.9 587.73,-1143.8"/>
<polygon fill="#000000" stroke="#000000" points="587.0678,-1147.2382 597.59,-1146 588.5922,-1140.4062 587.0678,-1147.2382"/>
</g>
<!-- ZcashFoundation/zebra#2134 -->
<g id="node22" class="node">
<title>ZcashFoundation/zebra#2134</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2134" xlink:title="ZcashFoundation/zebra#2134&#10;ZIP&#45;221: Validate chain&#10;history commitments in&#10;the finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1078 568,-1078 568,-1010 800,-1010 800,-1078"/>
<text text-anchor="middle" x="684" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2134</text>
<text text-anchor="middle" x="684" y="-1047.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="684" y="-1032.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="684" y="-1017.8" font-family="Times,serif" font-size="14.00" fill="#000000">the finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M530.82,-1079.4C539.79,-1077.4 548.88,-1075.3 557.93,-1073.2"/>
<polygon fill="#000000" stroke="#000000" points="558.7768,-1076.5964 567.71,-1070.9 557.1743,-1069.7823 558.7768,-1076.5964"/>
</g>
<!-- ZcashFoundation/zebra#2135 -->
<g id="node23" class="node">
<title>ZcashFoundation/zebra#2135</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2135" xlink:title="ZcashFoundation/zebra#2135&#10;ZIP&#45;221: Validate chain&#10;history commitments in&#10;the non&#45;finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1068,-1109 836,-1109 836,-1041 1068,-1041 1068,-1109"/>
<text text-anchor="middle" x="952" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2135</text>
<text text-anchor="middle" x="952" y="-1078.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="952" y="-1063.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="952" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000">the non&#45;finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M532.42,-1101.1C608.58,-1097.7 710.24,-1092.8 800,-1087 808.35,-1086.5 816.96,-1085.9 825.64,-1085.3"/>
<polygon fill="#000000" stroke="#000000" points="826.1443,-1088.7713 835.84,-1084.5 825.5969,-1081.7927 826.1443,-1088.7713"/>
</g>
<!-- ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M800.38,-1057.5C808.71,-1058.4 817.14,-1059.4 825.53,-1060.4"/>
<polygon fill="#000000" stroke="#000000" points="825.3998,-1063.9087 835.74,-1061.6 826.2169,-1056.9566 825.3998,-1063.9087"/>
</g>
<!-- ZcashFoundation/zebra#2048 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#2048</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2048" xlink:title="ZcashFoundation/zebra#2048&#10;ZIP&#45;244: Implement&#10;transaction authorization&#10;hashes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1336,-1047 1104,-1047 1104,-979 1336,-979 1336,-1047"/>
<text text-anchor="middle" x="1220" y="-1031.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2048</text>
<text text-anchor="middle" x="1220" y="-1016.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement</text>
<text text-anchor="middle" x="1220" y="-1001.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction authorization</text>
<text text-anchor="middle" x="1220" y="-986.8" font-family="Times,serif" font-size="14.00" fill="#000000">hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M800.16,-1034.5C812.26,-1033.6 824.38,-1032.7 836,-1032 921.73,-1026.5 1018.3,-1021.7 1093.2,-1018.3"/>
<polygon fill="#000000" stroke="#000000" points="1093.7419,-1021.7818 1103.6,-1017.9 1093.4728,-1014.787 1093.7419,-1021.7818"/>
</g>
<!-- ZcashFoundation/zebra#2135&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#2135&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M1068.4,-1048.1C1076.8,-1046.1 1085.3,-1044.2 1093.8,-1042.2"/>
<polygon fill="#000000" stroke="#000000" points="1094.7515,-1045.5722 1103.7,-1039.9 1093.1673,-1038.7538 1094.7515,-1045.5722"/>
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#1400</title>
<g id="a_node25"><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,-1245.5 16,-1245.5 16,-1192.5 248,-1192.5 248,-1245.5"/>
<text text-anchor="middle" x="132" y="-1230.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="132" y="-1215.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="132" y="-1200.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra can sync from Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287 -->
<g id="node26" class="node">
<title>ZcashFoundation/zebra#1287</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1287" xlink:title="ZcashFoundation/zebra#1287&#10;Implement incremental,&#10;sparse note commitment&#10;trees for Sapling and&#10;Orchard" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1092.5 16,-1092.5 16,-1009.5 248,-1009.5 248,-1092.5"/>
<text text-anchor="middle" x="132" y="-1077.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1287</text>
<text text-anchor="middle" x="132" y="-1062.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement incremental,</text>
<text text-anchor="middle" x="132" y="-1047.3" font-family="Times,serif" font-size="14.00" fill="#000000">sparse note commitment</text>
<text text-anchor="middle" x="132" y="-1032.3" font-family="Times,serif" font-size="14.00" fill="#000000">trees for Sapling and</text>
<text text-anchor="middle" x="132" y="-1017.3" font-family="Times,serif" font-size="14.00" fill="#000000">Orchard</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320</title>
<path fill="none" stroke="#000000" d="M248.33,-1073.5C262.02,-1076.2 276.03,-1078.9 289.84,-1081.6"/>
<polygon fill="#000000" stroke="#000000" points="289.3727,-1085.0737 299.85,-1083.5 290.6781,-1078.1965 289.3727,-1085.0737"/>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M248.05,-1049.5C338.67,-1048.4 464.41,-1046.8 557.58,-1045.6"/>
<polygon fill="#000000" stroke="#000000" points="557.6654,-1049.0994 567.63,-1045.5 557.5956,-1042.0998 557.6654,-1049.0994"/>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M173.86,-1092.6C220.98,-1139.3 292.06,-1208.8 300,-1212 403.17,-1253.5 696.15,-1232.7 800,-1193 843.25,-1176.5 884.23,-1143.2 912.71,-1116.2"/>
<polygon fill="#000000" stroke="#000000" points="915.2252,-1118.6376 920.04,-1109.2 910.3907,-1113.5752 915.2252,-1118.6376"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node27" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node27"><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" points="532,-1022.5 300,-1022.5 300,-969.5 532,-969.5 532,-1022.5"/>
<text text-anchor="middle" x="416" y="-1007.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="416" y="-992.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="416" y="-977.3" font-family="Times,serif" font-size="14.00" fill="#000000">FinalSaplingRoot</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2092 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2092</title>
<path fill="none" stroke="#000000" d="M248.33,-1028.5C262.02,-1025.8 276.03,-1023.1 289.84,-1020.4"/>
<polygon fill="#000000" stroke="#000000" points="290.6781,-1023.8035 299.85,-1018.5 289.3727,-1016.9263 290.6781,-1023.8035"/>
</g>
<!-- ZcashFoundation/zebra#2132 -->
<g id="node28" class="node">
<title>ZcashFoundation/zebra#2132</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2132" xlink:title="ZcashFoundation/zebra#2132&#10;ZIP&#45;221: Integrate&#10;history merkle mountain&#10;range from librustzcash" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-951 300,-951 300,-883 532,-883 532,-951"/>
<text text-anchor="middle" x="416" y="-935.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2132</text>
<text text-anchor="middle" x="416" y="-920.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Integrate</text>
<text text-anchor="middle" x="416" y="-905.8" font-family="Times,serif" font-size="14.00" fill="#000000">history merkle mountain</text>
<text text-anchor="middle" x="416" y="-890.8" font-family="Times,serif" font-size="14.00" fill="#000000">range from librustzcash</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2132 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2132</title>
<path fill="none" stroke="#000000" d="M203.64,-1009.3C233.02,-992.96 267.68,-974.66 300,-960 303.64,-958.35 307.36,-956.71 311.13,-955.1"/>
<polygon fill="#000000" stroke="#000000" points="312.7372,-958.2212 320.6,-951.12 310.025,-951.7679 312.7372,-958.2212"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M514.8,-951.07C520.71,-953.89 526.49,-956.87 532,-960 549.86,-970.15 550.6,-978.08 568,-989 577.03,-994.67 586.74,-1000.1 596.56,-1005.3"/>
<polygon fill="#000000" stroke="#000000" points="595.0908,-1008.4795 605.59,-1009.9 598.2682,-1002.2422 595.0908,-1008.4795"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M532.23,-935C609.43,-948.75 712.32,-970.56 800,-1001 827.41,-1010.5 856.32,-1023.7 881.48,-1036.3"/>
<polygon fill="#000000" stroke="#000000" points="880.0796,-1039.5161 890.57,-1041 883.2947,-1033.298 880.0796,-1039.5161"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M532.25,-920.12C608.57,-923.03 710.46,-928.58 800,-939 899.29,-950.55 1010.7,-970.5 1093.8,-986.78"/>
<polygon fill="#000000" stroke="#000000" points="1093.3135,-990.2512 1103.8,-988.74 1094.6599,-983.3819 1093.3135,-990.2512"/>
</g>
<!-- ZcashFoundation/zebra#1311 -->
<g id="node29" class="node">
<title>ZcashFoundation/zebra#1311</title>
<g id="a_node29"><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,-1367 16,-1367 16,-1299 248,-1299 248,-1367"/>
<text text-anchor="middle" x="132" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1311</text>
<text text-anchor="middle" x="132" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create function for post&#45;</text>
<text text-anchor="middle" x="132" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000">blossom height</text>
<text text-anchor="middle" x="132" y="-1306.8" font-family="Times,serif" font-size="14.00" fill="#000000">adjustments</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1170 -->
<g id="node30" class="node">
<title>ZcashFoundation/zebra#1170</title>
<g id="a_node30"><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,-1359.5 300,-1359.5 300,-1355.5 296,-1355.5 296,-1351.5 300,-1351.5 300,-1314.5 296,-1314.5 296,-1310.5 300,-1310.5 300,-1306.5 532,-1306.5 532,-1359.5"/>
<polyline fill="none" stroke="#000000" points="300,-1355.5 304,-1355.5 304,-1351.5 300,-1351.5 "/>
<polyline fill="none" stroke="#000000" points="300,-1314.5 304,-1314.5 304,-1310.5 300,-1310.5 "/>
<text text-anchor="middle" x="416" y="-1344.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1170</text>
<text text-anchor="middle" x="416" y="-1329.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calculate and validate</text>
<text text-anchor="middle" x="416" y="-1314.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="edge24" class="edge">
<title>ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170</title>
<path fill="none" stroke="#000000" d="M248.33,-1333C262.02,-1333 276.03,-1333 289.84,-1333"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1336.5001 299.85,-1333 289.85,-1329.5001 289.85,-1336.5001"/>
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id="node31" class="node">
<title>ZcashFoundation/zebra#936</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/936" xlink:title="ZcashFoundation/zebra#936&#10;Design: mempool&#10;transaction handling" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="527.5,-671.5 304.5,-671.5 304.5,-618.5 527.5,-618.5 527.5,-671.5"/>
<text text-anchor="middle" x="416" y="-656.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#936</text>
<text text-anchor="middle" x="416" y="-641.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: mempool</text>
<text text-anchor="middle" x="416" y="-626.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="edge25" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M435.04,-671.76C461.18,-706.63 511.44,-767.23 568,-802 570.78,-803.71 573.66,-805.35 576.6,-806.91"/>
<polygon fill="#000000" stroke="#000000" points="575.0881,-810.067 585.6,-811.39 578.2075,-803.8005 575.0881,-810.067"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M457.34,-671.6C487.23,-690.02 529.03,-714.16 568,-731 572.66,-733.01 577.47,-734.97 582.36,-736.85"/>
<polygon fill="#000000" stroke="#000000" points="581.2476,-740.1708 591.84,-740.4 583.7025,-733.6153 581.2476,-740.1708"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M527.72,-662.92C537.63,-664.51 547.7,-666.13 557.72,-667.74"/>
<polygon fill="#000000" stroke="#000000" points="557.2823,-671.2144 567.71,-669.34 558.3894,-664.3025 557.2823,-671.2144"/>
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#1083</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1083" xlink:title="ZcashFoundation/zebra#1083&#10;Handle&#10;`MempoolTransactions` in&#10;the Inbound service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-636 568,-636 568,-568 800,-568 800,-636"/>
<text text-anchor="middle" x="684" y="-620.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="684" y="-605.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="684" y="-590.8" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactions` in</text>
<text text-anchor="middle" x="684" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000">the Inbound service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083 -->
<g id="edge28" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M527.72,-627.08C537.63,-625.49 547.7,-623.87 557.72,-622.26"/>
<polygon fill="#000000" stroke="#000000" points="558.3894,-625.6975 567.71,-620.66 557.2823,-618.7856 558.3894,-625.6975"/>
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#571</title>
<g id="a_node33"><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,-550 572.5,-550 572.5,-482 795.5,-482 795.5,-550"/>
<text text-anchor="middle" x="684" y="-534.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="684" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="684" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="684" y="-489.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="edge29" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M516.74,-618.41C522.08,-615.57 527.21,-612.45 532,-609 554.23,-593 546.22,-575.59 568,-559 569.57,-557.8 571.18,-556.64 572.82,-555.5"/>
<polygon fill="#000000" stroke="#000000" points="574.7384,-558.4276 581.25,-550.07 570.9478,-552.5428 574.7384,-558.4276"/>
</g>
<!-- ZcashFoundation/zebra#484 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#484</title>
<g id="a_node34"><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,-463.5 572.5,-463.5 572.5,-410.5 795.5,-410.5 795.5,-463.5"/>
<text text-anchor="middle" x="684" y="-448.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#484</text>
<text text-anchor="middle" x="684" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit transaction size in</text>
<text text-anchor="middle" x="684" y="-418.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="edge30" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484</title>
<path fill="none" stroke="#000000" d="M521.27,-618.33C525.11,-615.53 528.72,-612.42 532,-609 575.27,-563.87 524.73,-518.13 568,-473 568.92,-472.04 569.87,-471.1 570.84,-470.19"/>
<polygon fill="#000000" stroke="#000000" points="573.2509,-472.7381 578.73,-463.67 568.7919,-467.3421 573.2509,-472.7381"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node35"><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="527.5,-1203.5 304.5,-1203.5 304.5,-1150.5 527.5,-1150.5 527.5,-1203.5"/>
<text text-anchor="middle" x="416" y="-1188.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="416" y="-1173.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="416" y="-1158.3" font-family="Times,serif" font-size="14.00" fill="#000000">validation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486 -->
<g id="edge31" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M527.72,-1172C537.63,-1171.6 547.7,-1171.1 557.72,-1170.7"/>
<polygon fill="#000000" stroke="#000000" points="557.8975,-1174.1956 567.71,-1170.2 557.5475,-1167.2043 557.8975,-1174.1956"/>
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#1086</title>
<g id="a_node36"><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,-1603.5 16,-1603.5 16,-1520.5 248,-1520.5 248,-1603.5"/>
<text text-anchor="middle" x="132" y="-1588.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1086</text>
<text text-anchor="middle" x="132" y="-1573.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove git dependencies</text>
<text text-anchor="middle" x="132" y="-1558.3" font-family="Times,serif" font-size="14.00" fill="#000000">on Hyper, Metrics, Tower,</text>
<text text-anchor="middle" x="132" y="-1543.3" font-family="Times,serif" font-size="14.00" fill="#000000">ed25519&#45;zebra, lexical&#45;</text>
<text text-anchor="middle" x="132" y="-1528.3" font-family="Times,serif" font-size="14.00" fill="#000000">core</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node37"><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,-1645 300,-1645 300,-1607 532,-1607 532,-1645"/>
<text text-anchor="middle" x="416" y="-1629.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="416" y="-1614.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="edge32" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686</title>
<path fill="none" stroke="#000000" d="M248.33,-1588.2C272.73,-1593.7 298.17,-1599.4 321.64,-1604.7"/>
<polygon fill="#000000" stroke="#000000" points="321.0381,-1608.1532 331.57,-1607 322.6177,-1601.3337 321.0381,-1608.1532"/>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node38" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node38"><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,-1588.5 300,-1588.5 300,-1535.5 532,-1535.5 532,-1588.5"/>
<text text-anchor="middle" x="416" y="-1573.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="416" y="-1558.3" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="416" y="-1543.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="edge33" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112</title>
<path fill="none" stroke="#000000" d="M248.33,-1562C262.02,-1562 276.03,-1562 289.84,-1562"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1565.5001 299.85,-1562 289.85,-1558.5001 289.85,-1565.5001"/>
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id="node39" class="node">
<title>ZcashFoundation/zebra#2200</title>
<g id="a_node39"><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,-1463 300,-1463 300,-1425 532,-1425 532,-1463"/>
<text text-anchor="middle" x="416" y="-1447.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2200</text>
<text text-anchor="middle" x="416" y="-1432.8" font-family="Times,serif" font-size="14.00" fill="#000000">Upgrade to latest tokio</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200 -->
<g id="edge34" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200</title>
<path fill="none" stroke="#000000" d="M232.13,-1520.4C275.23,-1502.5 323.98,-1482.2 360.45,-1467.1"/>
<polygon fill="#000000" stroke="#000000" points="362.0699,-1470.2153 369.92,-1463.1 359.3462,-1463.7669 362.0699,-1470.2153"/>
</g>
<!-- ZcashFoundation/zebra#2193 -->
<g id="node40" class="node">
<title>ZcashFoundation/zebra#2193</title>
<g id="a_node40"><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,-1658.5 568,-1658.5 568,-1575.5 800,-1575.5 800,-1658.5"/>
<text text-anchor="middle" x="684" y="-1643.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2193</text>
<text text-anchor="middle" x="684" y="-1628.3" font-family="Times,serif" font-size="14.00" fill="#000000">Redesign zebra&#45;network so</text>
<text text-anchor="middle" x="684" y="-1613.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="-1598.3" font-family="Times,serif" font-size="14.00" fill="#000000">message order, timing,</text>
<text text-anchor="middle" x="684" y="-1583.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="edge35" class="edge">
<title>ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193</title>
<path fill="none" stroke="#000000" d="M532.38,-1585.9C540.81,-1587.6 549.33,-1589.4 557.81,-1591.1"/>
<polygon fill="#000000" stroke="#000000" points="557.2458,-1594.5566 567.74,-1593.1 558.6279,-1587.6944 557.2458,-1594.5566"/>
</g>
<!-- ZcashFoundation/zebra#2202 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#2202</title>
<g id="a_node41"><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,-1557 568,-1557 568,-1489 800,-1489 800,-1557"/>
<text text-anchor="middle" x="684" y="-1541.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="684" y="-1526.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="684" y="-1511.8" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="684" y="-1496.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="edge36" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202</title>
<path fill="none" stroke="#000000" d="M480.53,-1463C504.05,-1470 531.52,-1478.1 558.52,-1486"/>
<polygon fill="#000000" stroke="#000000" points="557.8596,-1489.4534 568.44,-1488.9 559.8238,-1482.7346 557.8596,-1489.4534"/>
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id="node42" class="node">
<title>ZcashFoundation/zebra#2201</title>
<g id="a_node42"><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,-1470.5 568,-1470.5 568,-1417.5 800,-1417.5 800,-1470.5"/>
<text text-anchor="middle" x="684" y="-1455.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="684" y="-1440.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="684" y="-1425.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="edge37" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201</title>
<path fill="none" stroke="#000000" d="M532.38,-1444C540.71,-1444 549.14,-1444 557.53,-1444"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-1447.5001 567.74,-1444 557.74,-1440.5001 557.74,-1447.5001"/>
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#2268</title>
<g id="a_node43"><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,-1399.5 568,-1399.5 568,-1346.5 800,-1346.5 800,-1399.5"/>
<text text-anchor="middle" x="684" y="-1384.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="684" y="-1369.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="684" y="-1354.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="edge38" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268</title>
<path fill="none" stroke="#000000" d="M487.82,-1425C514.29,-1418 544.91,-1409.8 573.98,-1402.1"/>
<polygon fill="#000000" stroke="#000000" points="574.9469,-1405.4655 583.77,-1399.6 573.2149,-1398.6831 574.9469,-1405.4655"/>
</g>
<!-- ZcashFoundation/zebra#2391 -->
<g id="node44" class="node">
<title>ZcashFoundation/zebra#2391</title>
<g id="a_node44"><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,-1328 568,-1328 568,-1260 800,-1260 800,-1328"/>
<text text-anchor="middle" x="684" y="-1312.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2391</text>
<text text-anchor="middle" x="684" y="-1297.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce the dependencies</text>
<text text-anchor="middle" x="684" y="-1282.8" font-family="Times,serif" font-size="14.00" fill="#000000">on different versions of</text>
<text text-anchor="middle" x="684" y="-1267.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="edge39" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391</title>
<path fill="none" stroke="#000000" d="M447.78,-1424.8C471.53,-1410 504.5,-1388.7 532,-1368 548.87,-1355.3 549.81,-1347.7 568,-1337 570.51,-1335.5 573.09,-1334.1 575.71,-1332.7"/>
<polygon fill="#000000" stroke="#000000" points="577.5116,-1335.7085 584.78,-1328 574.2909,-1329.4934 577.5116,-1335.7085"/>
</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,-1690 20.5,-1690 20.5,-1622 243.5,-1622 243.5,-1690"/>
<text text-anchor="middle" x="132" y="-1674.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="132" y="-1659.8" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="132" y="-1644.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="132" y="-1629.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,-1761.5 20.5,-1761.5 20.5,-1708.5 243.5,-1708.5 243.5,-1761.5"/>
<text text-anchor="middle" x="132" y="-1746.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="132" y="-1731.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="132" y="-1716.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,-1929.5 300,-1929.5 300,-1876.5 532,-1876.5 532,-1929.5"/>
<text text-anchor="middle" x="416" y="-1914.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="416" y="-1899.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="-1884.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,-1937 568,-1937 568,-1933 564,-1933 564,-1929 568,-1929 568,-1877 564,-1877 564,-1873 568,-1873 568,-1869 800,-1869 800,-1937"/>
<polyline fill="none" stroke="#000000" points="568,-1933 572,-1933 572,-1929 568,-1929 "/>
<polyline fill="none" stroke="#000000" points="568,-1877 572,-1877 572,-1873 568,-1873 "/>
<text text-anchor="middle" x="684" y="-1921.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="684" y="-1906.8" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="684" y="-1891.8" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="684" y="-1876.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="edge40" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M532.38,-1903C540.71,-1903 549.14,-1903 557.53,-1903"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-1906.5001 567.74,-1903 557.74,-1899.5001 557.74,-1906.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,-2050.5 16,-2050.5 16,-1967.5 248,-1967.5 248,-2050.5"/>
<text text-anchor="middle" x="132" y="-2035.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="132" y="-2020.3" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="132" y="-2005.3" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="132" y="-1990.3" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="132" y="-1975.3" font-family="Times,serif" font-size="14.00" fill="#000000">`PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1828 -->
<g id="node50" class="node">
<title>ZcashFoundation/zebra#1828</title>
<g id="a_node50"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1828" xlink:title="ZcashFoundation/zebra#1828&#10;Move duplicate&#10;`Transaction` code into&#10;methods" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2137 16,-2137 16,-2069 248,-2069 248,-2137"/>
<text text-anchor="middle" x="132" y="-2121.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1828</text>
<text text-anchor="middle" x="132" y="-2106.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move duplicate</text>
<text text-anchor="middle" x="132" y="-2091.8" font-family="Times,serif" font-size="14.00" fill="#000000">`Transaction` code into</text>
<text text-anchor="middle" x="132" y="-2076.8" font-family="Times,serif" font-size="14.00" fill="#000000">methods</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#1592</title>
<g id="a_node51"><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,-2208.5 16,-2208.5 16,-2155.5 248,-2155.5 248,-2208.5"/>
<text text-anchor="middle" x="132" y="-2193.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="132" y="-2178.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="132" y="-2163.3" font-family="Times,serif" font-size="14.00" fill="#000000">hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#1817</title>
<g id="a_node52"><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,-2231 300,-2231 300,-2227 296,-2227 296,-2223 300,-2223 300,-2141 296,-2141 296,-2137 300,-2137 300,-2133 532,-2133 532,-2231"/>
<polyline fill="none" stroke="#000000" points="300,-2227 304,-2227 304,-2223 300,-2223 "/>
<polyline fill="none" stroke="#000000" points="300,-2141 304,-2141 304,-2137 300,-2137 "/>
<text text-anchor="middle" x="416" y="-2215.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="416" y="-2200.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="416" y="-2185.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="416" y="-2170.8" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="416" y="-2155.8" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="416" y="-2140.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="edge41" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M248.33,-2182C262.02,-2182 276.03,-2182 289.84,-2182"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2185.5001 299.85,-2182 289.85,-2178.5001 289.85,-2185.5001"/>
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id="node53" class="node">
<title>ZcashFoundation/zebra#1841</title>
<g id="a_node53"><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,-2309.5 16,-2309.5 16,-2226.5 248,-2226.5 248,-2309.5"/>
<text text-anchor="middle" x="132" y="-2294.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="132" y="-2279.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="-2264.3" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="132" y="-2249.3" font-family="Times,serif" font-size="14.00" fill="#000000">heights and protocol</text>
<text text-anchor="middle" x="132" y="-2234.3" font-family="Times,serif" font-size="14.00" fill="#000000">versions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node54" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node54"><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,-2497.5 16,-2497.5 16,-2414.5 248,-2414.5 248,-2497.5"/>
<text text-anchor="middle" x="132" y="-2482.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="132" y="-2467.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="132" y="-2452.3" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="132" y="-2437.3" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="132" y="-2422.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node55"><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,-2443 300,-2443 300,-2375 532,-2375 532,-2443"/>
<text text-anchor="middle" x="416" y="-2427.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="416" y="-2412.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="416" y="-2397.8" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="416" y="-2382.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="edge42" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.33,-2436.7C262.02,-2434.5 276.03,-2432.2 289.84,-2429.9"/>
<polygon fill="#000000" stroke="#000000" points="290.5772,-2433.325 299.85,-2428.2 289.4051,-2426.4238 290.5772,-2433.325"/>
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#1873</title>
<g id="a_node56"><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,-1847.5 300,-1847.5 300,-1794.5 532,-1794.5 532,-1847.5"/>
<text text-anchor="middle" x="416" y="-1832.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="416" y="-1817.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="-1802.3" font-family="Times,serif" font-size="14.00" fill="#000000">use all available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node57"><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,-2584 16,-2584 16,-2516 248,-2516 248,-2584"/>
<text text-anchor="middle" x="132" y="-2568.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="132" y="-2553.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="132" y="-2538.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="132" y="-2523.8" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node58"><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,-1862.5 16,-1862.5 16,-1779.5 248,-1779.5 248,-1862.5"/>
<text text-anchor="middle" x="132" y="-1847.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="132" y="-1832.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="132" y="-1817.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="132" y="-1802.3" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="132" y="-1787.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="edge43" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-1854.6C270.25,-1860.9 293.01,-1867.5 314.44,-1873.7"/>
<polygon fill="#000000" stroke="#000000" points="313.6022,-1877.1008 324.18,-1876.5 315.5363,-1870.3733 313.6022,-1877.1008"/>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873 -->
<g id="edge44" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873</title>
<path fill="none" stroke="#000000" d="M248.33,-1821C262.02,-1821 276.03,-1821 289.84,-1821"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1824.5001 299.85,-1821 289.85,-1817.5001 289.85,-1824.5001"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node59"><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,-2685.5 16,-2685.5 16,-2602.5 248,-2602.5 248,-2685.5"/>
<text text-anchor="middle" x="132" y="-2670.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="132" y="-2655.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="132" y="-2640.3" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="132" y="-2625.3" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="132" y="-2610.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node60"><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,-2678 300,-2678 300,-2610 532,-2610 532,-2678"/>
<text text-anchor="middle" x="416" y="-2662.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="416" y="-2647.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="416" y="-2632.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="416" y="-2617.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="edge45" class="edge">
<title>ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893</title>
<path fill="none" stroke="#000000" d="M248.33,-2644C262.02,-2644 276.03,-2644 289.84,-2644"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2647.5001 299.85,-2644 289.85,-2640.5001 289.85,-2647.5001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node61" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node61"><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,-1949 16,-1949 16,-1881 248,-1881 248,-1949"/>
<text text-anchor="middle" x="132" y="-1933.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="132" y="-1918.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="-1903.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="-1888.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="edge46" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-1910.1C262.02,-1909.5 276.03,-1908.9 289.84,-1908.3"/>
<polygon fill="#000000" stroke="#000000" points="289.9978,-1911.7966 299.85,-1907.9 289.7182,-1904.8022 289.9978,-1911.7966"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node62"><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,-2786.5 16,-2786.5 16,-2703.5 248,-2703.5 248,-2786.5"/>
<text text-anchor="middle" x="132" y="-2771.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="132" y="-2756.3" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="132" y="-2741.3" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="132" y="-2726.3" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="132" y="-2711.3" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id="node63" class="node">
<title>ZcashFoundation/zebra#1851</title>
<g id="a_node63"><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,-2873 16,-2873 16,-2805 248,-2805 248,-2873"/>
<text text-anchor="middle" x="132" y="-2857.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1851</text>
<text text-anchor="middle" x="132" y="-2842.8" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the number of</text>
<text text-anchor="middle" x="132" y="-2827.8" font-family="Times,serif" font-size="14.00" fill="#000000">connected peers in the</text>
<text text-anchor="middle" x="132" y="-2812.8" font-family="Times,serif" font-size="14.00" fill="#000000">PeerSet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#1850</title>
<g id="a_node64"><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,-2974.5 16,-2974.5 16,-2891.5 248,-2891.5 248,-2974.5"/>
<text text-anchor="middle" x="132" y="-2959.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1850</text>
<text text-anchor="middle" x="132" y="-2944.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="132" y="-2929.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound peer</text>
<text text-anchor="middle" x="132" y="-2914.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections when dialing</text>
<text text-anchor="middle" x="132" y="-2899.3" font-family="Times,serif" font-size="14.00" fill="#000000">new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node65"><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="#c2e0c6" stroke="#000000" points="532,-3176.5 300,-3176.5 300,-3093.5 532,-3093.5 532,-3176.5"/>
<text text-anchor="middle" x="416" y="-3161.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="416" y="-3146.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="416" y="-3131.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="416" y="-3116.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="416" y="-3101.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node66"><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,-3106.5 572.5,-3106.5 572.5,-3023.5 795.5,-3023.5 795.5,-3106.5"/>
<text text-anchor="middle" x="684" y="-3091.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="684" y="-3076.3" font-family="Times,serif" font-size="14.00" fill="#000000">Do we need to prefer</text>
<text text-anchor="middle" x="684" y="-3061.3" font-family="Times,serif" font-size="14.00" fill="#000000">evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="684" y="-3046.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="684" y="-3031.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="edge47" class="edge">
<title>ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M532.38,-3104.6C542.34,-3102 552.43,-3099.4 562.43,-3096.8"/>
<polygon fill="#000000" stroke="#000000" points="563.5983,-3100.1124 572.39,-3094.2 561.8302,-3093.3394 563.5983,-3100.1124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node67"><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,-2396 16,-2396 16,-2328 248,-2328 248,-2396"/>
<text text-anchor="middle" x="132" y="-2380.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="132" y="-2365.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="132" y="-2350.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="132" y="-2335.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="edge48" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.33,-2381.3C262.02,-2383.5 276.03,-2385.8 289.84,-2388.1"/>
<polygon fill="#000000" stroke="#000000" points="289.4051,-2391.5762 299.85,-2389.8 290.5772,-2384.675 289.4051,-2391.5762"/>
</g>
<!-- ZcashFoundation/zebra#1874 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#1874</title>
<g id="a_node68"><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,-3162 16,-3162 16,-3094 248,-3094 248,-3162"/>
<text text-anchor="middle" x="132" y="-3146.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1874</text>
<text text-anchor="middle" x="132" y="-3131.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP 244: Transaction</text>
<text text-anchor="middle" x="132" y="-3116.8" font-family="Times,serif" font-size="14.00" fill="#000000">Identifier Non&#45;</text>
<text text-anchor="middle" x="132" y="-3101.8" font-family="Times,serif" font-size="14.00" fill="#000000">Malleability</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1567 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#1567</title>
<g id="a_node69"><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,-3233.5 16,-3233.5 16,-3180.5 248,-3180.5 248,-3233.5"/>
<text text-anchor="middle" x="132" y="-3218.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1567</text>
<text text-anchor="middle" x="132" y="-3203.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Block Header</text>
<text text-anchor="middle" x="132" y="-3188.3" font-family="Times,serif" font-size="14.00" fill="#000000">Chain History Commitment</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node70"><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,-3304.5 16,-3304.5 16,-3251.5 248,-3251.5 248,-3304.5"/>
<text text-anchor="middle" x="132" y="-3289.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="132" y="-3274.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="132" y="-3259.3" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node71"><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,-3391 16,-3391 16,-3323 248,-3323 248,-3391"/>
<text text-anchor="middle" x="132" y="-3375.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="132" y="-3360.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="132" y="-3345.8" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="132" y="-3330.8" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node72"><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,-3477 16,-3477 16,-3409 248,-3409 248,-3477"/>
<text text-anchor="middle" x="132" y="-3461.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="132" y="-3446.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="132" y="-3431.8" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="132" y="-3416.8" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node73"><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,-3548.5 16,-3548.5 16,-3544.5 12,-3544.5 12,-3540.5 16,-3540.5 16,-3503.5 12,-3503.5 12,-3499.5 16,-3499.5 16,-3495.5 248,-3495.5 248,-3548.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3544.5 20,-3544.5 20,-3540.5 16,-3540.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3503.5 20,-3503.5 20,-3499.5 16,-3499.5 "/>
<text text-anchor="middle" x="132" y="-3533.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="132" y="-3518.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="132" y="-3503.3" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node74"><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,-3556 300,-3556 300,-3488 532,-3488 532,-3556"/>
<text text-anchor="middle" x="416" y="-3540.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="416" y="-3525.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="416" y="-3510.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="416" y="-3495.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="edge49" class="edge">
<title>ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052</title>
<path fill="none" stroke="#000000" d="M248.33,-3522C262.02,-3522 276.03,-3522 289.84,-3522"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3525.5001 299.85,-3522 289.85,-3518.5001 289.85,-3525.5001"/>
</g>
<!-- ZcashFoundation/zebra#1895 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#1895</title>
<g id="a_node75"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1895" xlink:title="ZcashFoundation/zebra#1895&#10;ZIP&#45;209: Prohibit&#10;Negative Shielded Chain&#10;Value Pool Balances &#45;&#10;Implementation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-3728.5 300,-3728.5 300,-3645.5 532,-3645.5 532,-3728.5"/>
<text text-anchor="middle" x="416" y="-3713.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1895</text>
<text text-anchor="middle" x="416" y="-3698.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209: Prohibit</text>
<text text-anchor="middle" x="416" y="-3683.3" font-family="Times,serif" font-size="14.00" fill="#000000">Negative Shielded Chain</text>
<text text-anchor="middle" x="416" y="-3668.3" font-family="Times,serif" font-size="14.00" fill="#000000">Value Pool Balances &#45;</text>
<text text-anchor="middle" x="416" y="-3653.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node76"><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,-3814.5 16,-3814.5 16,-3761.5 248,-3761.5 248,-3814.5"/>
<text text-anchor="middle" x="132" y="-3799.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="132" y="-3784.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="132" y="-3769.3" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node77"><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,-3829.5 300,-3829.5 300,-3746.5 532,-3746.5 532,-3829.5"/>
<text text-anchor="middle" x="416" y="-3814.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="416" y="-3799.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="416" y="-3784.3" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="416" y="-3769.3" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="416" y="-3754.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="edge50" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M248.33,-3788C262.02,-3788 276.03,-3788 289.84,-3788"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3791.5001 299.85,-3788 289.85,-3784.5001 289.85,-3791.5001"/>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node78"><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,-3885.5 16,-3885.5 16,-3832.5 248,-3832.5 248,-3885.5"/>
<text text-anchor="middle" x="132" y="-3870.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="132" y="-3855.3" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="132" y="-3840.3" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node79"><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,-3956.5 16,-3956.5 16,-3903.5 248,-3903.5 248,-3956.5"/>
<text text-anchor="middle" x="132" y="-3941.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="132" y="-3926.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="132" y="-3911.3" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node80"><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,-3075.5 16,-3075.5 16,-2992.5 248,-2992.5 248,-3075.5"/>
<text text-anchor="middle" x="132" y="-3060.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="132" y="-3045.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="132" y="-3030.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="132" y="-3015.3" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="132" y="-3000.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="edge51" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M248.33,-3075.4C262.15,-3080.3 276.3,-3085.3 290.24,-3090.3"/>
<polygon fill="#000000" stroke="#000000" points="289.2552,-3093.6641 299.85,-3093.7 291.59,-3087.065 289.2552,-3093.6641"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge52" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M248.11,-3042.6C265.5,-3043.8 283.22,-3045 300,-3046 387.68,-3051.3 486.68,-3056.2 562.2,-3059.7"/>
<polygon fill="#000000" stroke="#000000" points="562.0883,-3063.1982 572.22,-3060.1 562.3676,-3056.2038 562.0883,-3063.1982"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node81"><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,-3037 300,-3037 300,-2969 532,-2969 532,-3037"/>
<text text-anchor="middle" x="416" y="-3021.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="416" y="-3006.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="416" y="-2991.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="416" y="-2976.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="edge53" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M248.33,-3021.3C262.02,-3019.8 276.03,-3018.3 289.84,-3016.8"/>
<polygon fill="#000000" stroke="#000000" points="290.2922,-3020.2715 299.85,-3015.7 289.5275,-3013.3134 290.2922,-3020.2715"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node82" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node82"><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,-2951 300,-2951 300,-2853 532,-2853 532,-2951"/>
<text text-anchor="middle" x="416" y="-2935.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="416" y="-2920.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="416" y="-2905.8" font-family="Times,serif" font-size="14.00" fill="#000000">immediately disconnecting</text>
<text text-anchor="middle" x="416" y="-2890.8" font-family="Times,serif" font-size="14.00" fill="#000000">from nodes that send</text>
<text text-anchor="middle" x="416" y="-2875.8" font-family="Times,serif" font-size="14.00" fill="#000000">unexpected messages,</text>
<text text-anchor="middle" x="416" y="-2860.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="edge54" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M244.31,-2992.4C251.03,-2989.4 257.64,-2986.2 264,-2983 280.94,-2974.4 283.49,-2969.4 300,-2960 302.27,-2958.7 304.57,-2957.4 306.9,-2956.1"/>
<polygon fill="#000000" stroke="#000000" points="308.8418,-2959.0293 315.98,-2951.2 305.5174,-2952.869 308.8418,-2959.0293"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge55" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M516.45,-2951.1C521.75,-2954 526.96,-2957 532,-2960 561.52,-2977.5 592.9,-2998.7 619.43,-3017.4"/>
<polygon fill="#000000" stroke="#000000" points="617.6917,-3020.4585 627.87,-3023.4 621.7476,-3014.7532 617.6917,-3020.4585"/>
</g>
<!-- ZcashFoundation/zebra#2102 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#2102</title>
<g id="a_node83"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2102" xlink:title="ZcashFoundation/zebra#2102&#10;Implement Orchard binding&#10;verification key&#10;derivation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4043 16,-4043 16,-3975 248,-3975 248,-4043"/>
<text text-anchor="middle" x="132" y="-4027.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2102</text>
<text text-anchor="middle" x="132" y="-4012.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Orchard binding</text>
<text text-anchor="middle" x="132" y="-3997.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification key</text>
<text text-anchor="middle" x="132" y="-3982.8" font-family="Times,serif" font-size="14.00" fill="#000000">derivation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2103 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#2103</title>
<g id="a_node84"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2103" xlink:title="ZcashFoundation/zebra#2103&#10;Validate&#10;bindingSigOrchard for&#10;Transaction::V5" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4065 300,-4065 300,-3997 532,-3997 532,-4065"/>
<text text-anchor="middle" x="416" y="-4049.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2103</text>
<text text-anchor="middle" x="416" y="-4034.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate</text>
<text text-anchor="middle" x="416" y="-4019.8" font-family="Times,serif" font-size="14.00" fill="#000000">bindingSigOrchard for</text>
<text text-anchor="middle" x="416" y="-4004.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction::V5</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2103 -->
<g id="edge56" class="edge">
<title>ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2103</title>
<path fill="none" stroke="#000000" d="M248.33,-4018C262.02,-4019.1 276.03,-4020.2 289.84,-4021.2"/>
<polygon fill="#000000" stroke="#000000" points="289.6029,-4024.6921 299.85,-4022 290.1606,-4017.7144 289.6029,-4024.6921"/>
</g>
<!-- ZcashFoundation/zebra#2317 -->
<g id="node85" class="node">
<title>ZcashFoundation/zebra#2317</title>
<g id="a_node85"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2317" xlink:title="ZcashFoundation/zebra#2317&#10;Validate Orchard&#10;SpendAuth signatures for&#10;Transaction::V5" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-3979 300,-3979 300,-3911 532,-3911 532,-3979"/>
<text text-anchor="middle" x="416" y="-3963.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2317</text>
<text text-anchor="middle" x="416" y="-3948.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate Orchard</text>
<text text-anchor="middle" x="416" y="-3933.8" font-family="Times,serif" font-size="14.00" fill="#000000">SpendAuth signatures for</text>
<text text-anchor="middle" x="416" y="-3918.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction::V5</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2317 -->
<g id="edge57" class="edge">
<title>ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2317</title>
<path fill="none" stroke="#000000" d="M248.33,-3982.8C262.02,-3979.7 276.03,-3976.5 289.84,-3973.4"/>
<polygon fill="#000000" stroke="#000000" points="290.8344,-3976.7651 299.85,-3971.2 289.3318,-3969.9282 290.8344,-3976.7651"/>
</g>
<!-- ZcashFoundation/zebra#2329 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#2329</title>
<g id="a_node86"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2329" xlink:title="ZcashFoundation/zebra#2329&#10;State: Validate&#10;transparent coinbase&#10;outputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4172 16,-4172 16,-4104 248,-4104 248,-4172"/>
<text text-anchor="middle" x="132" y="-4156.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2329</text>
<text text-anchor="middle" x="132" y="-4141.8" font-family="Times,serif" font-size="14.00" fill="#000000">State: Validate</text>
<text text-anchor="middle" x="132" y="-4126.8" font-family="Times,serif" font-size="14.00" fill="#000000">transparent coinbase</text>
<text text-anchor="middle" x="132" y="-4111.8" font-family="Times,serif" font-size="14.00" fill="#000000">outputs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2330 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#2330</title>
<g id="a_node87"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2330" xlink:title="ZcashFoundation/zebra#2330&#10;Transaction Verifier:&#10;Validate transparent&#10;coinbase outputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4172 300,-4172 300,-4104 532,-4104 532,-4172"/>
<text text-anchor="middle" x="416" y="-4156.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2330</text>
<text text-anchor="middle" x="416" y="-4141.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction Verifier:</text>
<text text-anchor="middle" x="416" y="-4126.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate transparent</text>
<text text-anchor="middle" x="416" y="-4111.8" font-family="Times,serif" font-size="14.00" fill="#000000">coinbase outputs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2329&#45;&gt;ZcashFoundation/zebra#2330 -->
<g id="edge58" class="edge">
<title>ZcashFoundation/zebra#2329&#45;&gt;ZcashFoundation/zebra#2330</title>
<path fill="none" stroke="#000000" d="M248.33,-4138C262.02,-4138 276.03,-4138 289.84,-4138"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4141.5001 299.85,-4138 289.85,-4134.5001 289.85,-4141.5001"/>
</g>
<!-- ZcashFoundation/zcash_script#21 -->
<g id="node88" class="node">
<title>ZcashFoundation/zcash_script#21</title>
<g id="a_node88"><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,-4243.5 0,-4243.5 0,-4190.5 264,-4190.5 264,-4243.5"/>
<text text-anchor="middle" x="132" y="-4228.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zcash_script#21</text>
<text text-anchor="middle" x="132" y="-4213.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for V5</text>
<text text-anchor="middle" x="132" y="-4198.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2328 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2328</title>
<g id="a_node89"><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,-4243.5 300,-4243.5 300,-4190.5 532,-4190.5 532,-4243.5"/>
<text text-anchor="middle" x="416" y="-4228.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2328</text>
<text text-anchor="middle" x="416" y="-4213.3" font-family="Times,serif" font-size="14.00" fill="#000000">Update `zcash_script` to</text>
<text text-anchor="middle" x="416" y="-4198.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="edge59" class="edge">
<title>ZcashFoundation/zcash_script#21&#45;&gt;ZcashFoundation/zebra#2328</title>
<path fill="none" stroke="#000000" d="M264.02,-4217C272.47,-4217 280.96,-4217 289.38,-4217"/>
<polygon fill="#000000" stroke="#000000" points="289.6,-4220.5001 299.6,-4217 289.6,-4213.5001 289.6,-4220.5001"/>
</g>
<!-- ZcashFoundation/zebra#1981 -->
<g id="node90" class="node">
<title>ZcashFoundation/zebra#1981</title>
<g id="a_node90"><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,-4251 568,-4251 568,-4183 800,-4183 800,-4251"/>
<text text-anchor="middle" x="684" y="-4235.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1981</text>
<text text-anchor="middle" x="684" y="-4220.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Transparent and</text>
<text text-anchor="middle" x="684" y="-4205.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling validation for</text>
<text text-anchor="middle" x="684" y="-4190.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="edge60" class="edge">
<title>ZcashFoundation/zebra#2328&#45;&gt;ZcashFoundation/zebra#1981</title>
<path fill="none" stroke="#000000" d="M532.38,-4217C540.71,-4217 549.14,-4217 557.53,-4217"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-4220.5001 567.74,-4217 557.74,-4213.5001 557.74,-4220.5001"/>
</g>
<!-- ZcashFoundation/zebra#2338 -->
<g id="node91" class="node">
<title>ZcashFoundation/zebra#2338</title>
<g id="a_node91"><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,-4322.5 16,-4322.5 16,-4269.5 248,-4269.5 248,-4322.5"/>
<text text-anchor="middle" x="132" y="-4307.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2338</text>
<text text-anchor="middle" x="132" y="-4292.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create Error enums in</text>
<text text-anchor="middle" x="132" y="-4277.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zebrad`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2339 -->
<g id="node92" class="node">
<title>ZcashFoundation/zebra#2339</title>
<g id="a_node92"><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,-4330 300,-4330 300,-4262 532,-4262 532,-4330"/>
<text text-anchor="middle" x="416" y="-4314.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2339</text>
<text text-anchor="middle" x="416" y="-4299.8" font-family="Times,serif" font-size="14.00" fill="#000000">Downcast and match</text>
<text text-anchor="middle" x="416" y="-4284.8" font-family="Times,serif" font-size="14.00" fill="#000000">Already Verified error</text>
<text text-anchor="middle" x="416" y="-4269.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="edge61" class="edge">
<title>ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339</title>
<path fill="none" stroke="#000000" d="M248.33,-4296C262.02,-4296 276.03,-4296 289.84,-4296"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4299.5001 299.85,-4296 289.85,-4292.5001 289.85,-4299.5001"/>
</g>
<!-- ZcashFoundation/zebra#2331 -->
<g id="node93" class="node">
<title>ZcashFoundation/zebra#2331</title>
<g id="a_node93"><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,-4408.5 16,-4408.5 16,-4355.5 248,-4355.5 248,-4408.5"/>
<text text-anchor="middle" x="132" y="-4393.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2331</text>
<text text-anchor="middle" x="132" y="-4378.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove serde from zebra&#45;</text>
<text text-anchor="middle" x="132" y="-4363.3" font-family="Times,serif" font-size="14.00" fill="#000000">chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2042 -->
<g id="node94" class="node">
<title>ZcashFoundation/zebra#2042</title>
<g id="a_node94"><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,-4416 300,-4416 300,-4348 532,-4348 532,-4416"/>
<text text-anchor="middle" x="416" y="-4400.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2042</text>
<text text-anchor="middle" x="416" y="-4385.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="-4370.8" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper types to const</text>
<text text-anchor="middle" x="416" y="-4355.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="edge62" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042</title>
<path fill="none" stroke="#000000" d="M248.33,-4382C262.02,-4382 276.03,-4382 289.84,-4382"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4385.5001 299.85,-4382 289.85,-4378.5001 289.85,-4385.5001"/>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node95" class="node">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node95"><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,-4495 16,-4495 16,-4427 248,-4427 248,-4495"/>
<text text-anchor="middle" x="132" y="-4479.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="132" y="-4464.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically use zebrad</text>
<text text-anchor="middle" x="132" y="-4449.8" font-family="Times,serif" font-size="14.00" fill="#000000">version for the zebra&#45;</text>
<text text-anchor="middle" x="132" y="-4434.8" font-family="Times,serif" font-size="14.00" fill="#000000">network user agent</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node96" class="node">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node96"><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,-4487.5 304.5,-4487.5 304.5,-4434.5 527.5,-4434.5 527.5,-4487.5"/>
<text text-anchor="middle" x="416" y="-4472.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="416" y="-4457.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="416" y="-4442.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="edge63" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M248.33,-4461C263.39,-4461 278.85,-4461 294,-4461"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-4464.5001 304.43,-4461 294.43,-4457.5001 294.43,-4464.5001"/>
</g>
<!-- ZcashFoundation/zebra#2381 -->
<g id="node97" class="node">
<title>ZcashFoundation/zebra#2381</title>
<g id="a_node97"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2381" xlink:title="ZcashFoundation/zebra#2381&#10;ZIP&#45;209: Validate&#10;transaction value&#10;balances &#45; Implementation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3718 16,-3718 16,-3650 248,-3650 248,-3718"/>
<text text-anchor="middle" x="132" y="-3702.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2381</text>
<text text-anchor="middle" x="132" y="-3687.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209: Validate</text>
<text text-anchor="middle" x="132" y="-3672.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction value</text>
<text text-anchor="middle" x="132" y="-3657.8" font-family="Times,serif" font-size="14.00" fill="#000000">balances &#45; Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1895 -->
<g id="edge64" class="edge">
<title>ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1895</title>
<path fill="none" stroke="#000000" d="M248.33,-3685.2C262.02,-3685.4 276.03,-3685.5 289.84,-3685.7"/>
<polygon fill="#000000" stroke="#000000" points="289.8155,-3689.1998 299.85,-3685.8 289.8855,-3682.2002 289.8155,-3689.1998"/>
</g>
<!-- ZcashFoundation/zebra#1162 -->
<g id="node98" class="node">
<title>ZcashFoundation/zebra#1162</title>
<g id="a_node98"><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,-3627.5 300,-3627.5 300,-3574.5 532,-3574.5 532,-3627.5"/>
<text text-anchor="middle" x="416" y="-3612.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1162</text>
<text text-anchor="middle" x="416" y="-3597.3" font-family="Times,serif" font-size="14.00" fill="#000000">Validate coinbase miner</text>
<text text-anchor="middle" x="416" y="-3582.3" font-family="Times,serif" font-size="14.00" fill="#000000">subsidy and miner fees</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1162 -->
<g id="edge65" class="edge">
<title>ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M248.33,-3650C270.52,-3643.5 293.57,-3636.8 315.22,-3630.5"/>
<polygon fill="#000000" stroke="#000000" points="316.4573,-3633.7842 325.06,-3627.6 314.4784,-3627.0698 316.4573,-3633.7842"/>
</g>
<!-- ZcashFoundation/zebra#2377 -->
<g id="node99" class="node">
<title>ZcashFoundation/zebra#2377</title>
<g id="a_node99"><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,-4566.5 16,-4566.5 16,-4513.5 248,-4513.5 248,-4566.5"/>
<text text-anchor="middle" x="132" y="-4551.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2377</text>
<text text-anchor="middle" x="132" y="-4536.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor history tree</text>
<text text-anchor="middle" x="132" y="-4521.3" font-family="Times,serif" font-size="14.00" fill="#000000">pruning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2378 -->
<g id="node100" class="node">
<title>ZcashFoundation/zebra#2378</title>
<g id="a_node100"><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,-4637.5 16,-4637.5 16,-4584.5 248,-4584.5 248,-4637.5"/>
<text text-anchor="middle" x="132" y="-4622.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2378</text>
<text text-anchor="middle" x="132" y="-4607.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve history and note</text>
<text text-anchor="middle" x="132" y="-4592.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees forking</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1951 -->
<g id="node101" class="node">
<title>ZcashFoundation/zebra#1951</title>
<g id="a_node101"><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,-4738.5 16,-4738.5 16,-4655.5 248,-4655.5 248,-4738.5"/>
<text text-anchor="middle" x="132" y="-4723.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1951</text>
<text text-anchor="middle" x="132" y="-4708.3" font-family="Times,serif" font-size="14.00" fill="#000000">Generalize/deduplicate</text>
<text text-anchor="middle" x="132" y="-4693.3" font-family="Times,serif" font-size="14.00" fill="#000000">async batch verification</text>
<text text-anchor="middle" x="132" y="-4678.3" font-family="Times,serif" font-size="14.00" fill="#000000">services / create a</text>
<text text-anchor="middle" x="132" y="-4663.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="node102" class="node">
<title>ZcashFoundation/zebra#2390</title>
<g id="a_node102"><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,-4738.5 300,-4738.5 300,-4655.5 532,-4655.5 532,-4738.5"/>
<text text-anchor="middle" x="416" y="-4723.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2390</text>
<text text-anchor="middle" x="416" y="-4708.3" font-family="Times,serif" font-size="14.00" fill="#000000">Fix tasks spawned by</text>
<text text-anchor="middle" x="416" y="-4693.3" font-family="Times,serif" font-size="14.00" fill="#000000">`tower_batch::Batch` only</text>
<text text-anchor="middle" x="416" y="-4678.3" font-family="Times,serif" font-size="14.00" fill="#000000">being alive during one</text>
<text text-anchor="middle" x="416" y="-4663.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="edge66" class="edge">
<title>ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390</title>
<path fill="none" stroke="#000000" d="M248.33,-4697C262.02,-4697 276.03,-4697 289.84,-4697"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4700.5001 299.85,-4697 289.85,-4693.5001 289.85,-4700.5001"/>
</g>
<!-- ZcashFoundation/zebra#338 -->
<g id="node103" class="node">
<title>ZcashFoundation/zebra#338</title>
<g id="a_node103"><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,-3627.5 20.5,-3627.5 20.5,-3574.5 243.5,-3574.5 243.5,-3627.5"/>
<text text-anchor="middle" x="132" y="-3612.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#338</text>
<text text-anchor="middle" x="132" y="-3597.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calc Block Subsidy and</text>
<text text-anchor="middle" x="132" y="-3582.3" font-family="Times,serif" font-size="14.00" fill="#000000">Funding Streams</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162 -->
<g id="edge67" class="edge">
<title>ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M243.84,-3601C258.72,-3601 274.06,-3601 289.18,-3601"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-3604.5001 299.59,-3601 289.59,-3597.5001 289.59,-3604.5001"/>
</g>
<!-- ZcashFoundation/zebra#2231 -->
<g id="node104" class="node">
<title>ZcashFoundation/zebra#2231</title>
<g id="a_node104"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2231" xlink:title="ZcashFoundation/zebra#2231&#10;Stop double&#45;spends by&#10;checking nullifiers and&#10;UTXO spends in each non&#45;&#10;finalized chain" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4839.5 16,-4839.5 16,-4756.5 248,-4756.5 248,-4839.5"/>
<text text-anchor="middle" x="132" y="-4824.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2231</text>
<text text-anchor="middle" x="132" y="-4809.3" font-family="Times,serif" font-size="14.00" fill="#000000">Stop double&#45;spends by</text>
<text text-anchor="middle" x="132" y="-4794.3" font-family="Times,serif" font-size="14.00" fill="#000000">checking nullifiers and</text>
<text text-anchor="middle" x="132" y="-4779.3" font-family="Times,serif" font-size="14.00" fill="#000000">UTXO spends in each non&#45;</text>
<text text-anchor="middle" x="132" y="-4764.3" font-family="Times,serif" font-size="14.00" fill="#000000">finalized chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2441 -->
<g id="node105" class="node">
<title>ZcashFoundation/zebra#2441</title>
<g id="a_node105"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2441" xlink:title="ZcashFoundation/zebra#2441&#10;Add orchard&#10;binding_verification_key" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4910.5 16,-4910.5 16,-4906.5 12,-4906.5 12,-4902.5 16,-4902.5 16,-4865.5 12,-4865.5 12,-4861.5 16,-4861.5 16,-4857.5 248,-4857.5 248,-4910.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4906.5 20,-4906.5 20,-4902.5 16,-4902.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4865.5 20,-4865.5 20,-4861.5 16,-4861.5 "/>
<text text-anchor="middle" x="132" y="-4895.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2441</text>
<text text-anchor="middle" x="132" y="-4880.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add orchard</text>
<text text-anchor="middle" x="132" y="-4865.3" font-family="Times,serif" font-size="14.00" fill="#000000">binding_verification_key</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2458 -->
<g id="node106" class="node">
<title>ZcashFoundation/zebra#2458</title>
<g id="a_node106"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2458" xlink:title="ZcashFoundation/zebra#2458&#10;Tracking anchors and note&#10;commitment trees in&#10;zebra&#45;state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4997 16,-4997 16,-4993 12,-4993 12,-4989 16,-4989 16,-4937 12,-4937 12,-4933 16,-4933 16,-4929 248,-4929 248,-4997"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4993 20,-4993 20,-4989 16,-4989 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4937 20,-4937 20,-4933 16,-4933 "/>
<text text-anchor="middle" x="132" y="-4981.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2458</text>
<text text-anchor="middle" x="132" y="-4966.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking anchors and note</text>
<text text-anchor="middle" x="132" y="-4951.8" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees in</text>
<text text-anchor="middle" x="132" y="-4936.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2425 -->
<g id="node107" class="node">
<title>ZcashFoundation/zebra#2425</title>
<g id="a_node107"><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,-5068.5 16,-5068.5 16,-5015.5 248,-5015.5 248,-5068.5"/>
<text text-anchor="middle" x="132" y="-5053.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2425</text>
<text text-anchor="middle" x="132" y="-5038.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: Validate note</text>
<text text-anchor="middle" x="132" y="-5023.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees in state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2486 -->
<g id="node108" class="node">
<title>ZcashFoundation/zebra#2486</title>
<g id="a_node108"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2486" xlink:title="ZcashFoundation/zebra#2486&#10;Implement the first part&#10;of the value pools RFC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-5139.5 16,-5139.5 16,-5135.5 12,-5135.5 12,-5131.5 16,-5131.5 16,-5094.5 12,-5094.5 12,-5090.5 16,-5090.5 16,-5086.5 248,-5086.5 248,-5139.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-5135.5 20,-5135.5 20,-5131.5 16,-5131.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-5094.5 20,-5094.5 20,-5090.5 16,-5090.5 "/>
<text text-anchor="middle" x="132" y="-5124.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2486</text>
<text text-anchor="middle" x="132" y="-5109.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the first part</text>
<text text-anchor="middle" x="132" y="-5094.3" font-family="Times,serif" font-size="14.00" fill="#000000">of the value pools RFC</text>
</a>
</g>
</g>
</g>
</svg>