developers/zcash-zf-dag.svg

1719 lines
132 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Pages: 1 -->
<svg width="1076pt" height="4585pt"
viewBox="0.00 0.00 1076.00 4585.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 4581)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-4581 1072,-4581 1072,4 -4,4"/>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node1" class="node">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1135" xlink:title="ZcashFoundation/zebra#1135&#10;Refactor Network and&#10;NetworkUpgrade enums into&#10;structs and a trait" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-68 16,-68 16,0 248,0 248,-68"/>
<text text-anchor="middle" x="132" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="132" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="132" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="132" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title="ZcashFoundation/zebra#1011&#10;Re&#45;enable the&#10;BlockVerifier continuous_&#10;blockchain_test" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-68 300,-68 300,0 532,0 532,-68"/>
<text text-anchor="middle" x="416" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="416" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="416" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="416" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">blockchain_test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="#000000" d="M248.33,-34C262.02,-34 276.03,-34 289.84,-34"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-37.5001 299.85,-34 289.85,-30.5001 289.85,-37.5001"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node3" class="node">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/271" xlink:title="ZcashFoundation/zebra#271&#10;Sapling Key Agreement and&#10;KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-146.5 20.5,-146.5 20.5,-93.5 243.5,-93.5 243.5,-146.5"/>
<text text-anchor="middle" x="132" y="-131.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="132" y="-116.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="132" y="-101.3" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node4" class="node">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling note&#10;encryption/decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-154 304.5,-154 304.5,-86 527.5,-86 527.5,-154"/>
<text text-anchor="middle" x="416" y="-138.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="416" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note</text>
<text text-anchor="middle" x="416" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="416" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M243.84,-120C260.29,-120 277.31,-120 293.96,-120"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-123.5001 304.27,-120 294.27,-116.5001 294.27,-123.5001"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node5" class="node">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/325" xlink:title="ZcashFoundation/zebra#325&#10;Block Chain Scanning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-203 20.5,-203 20.5,-165 243.5,-165 243.5,-203"/>
<text text-anchor="middle" x="132" y="-187.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="132" y="-172.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id="node6" class="node">
<title>ZcashFoundation/zebra#619</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/619" xlink:title="ZcashFoundation/zebra#619&#10;Tracking: sync and&#10;validate mainnet" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-274.5 20.5,-274.5 20.5,-221.5 243.5,-221.5 243.5,-274.5"/>
<text text-anchor="middle" x="132" y="-259.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="132" y="-244.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="132" y="-229.3" font-family="Times,serif" font-size="14.00" fill="#000000">validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id="node7" class="node">
<title>ZcashFoundation/zebra#466</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/466" xlink:title="ZcashFoundation/zebra#466&#10;Design network&#10;integration test&#10;framework for Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-282 304.5,-282 304.5,-214 527.5,-214 527.5,-282"/>
<text text-anchor="middle" x="416" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="416" y="-251.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="416" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="416" y="-221.8" font-family="Times,serif" font-size="14.00" fill="#000000">framework for Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466</title>
<path fill="none" stroke="#000000" d="M243.84,-248C260.29,-248 277.31,-248 293.96,-248"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-251.5001 304.27,-248 294.27,-244.5001 294.27,-251.5001"/>
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id="node8" class="node">
<title>ZcashFoundation/zebra#884</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/884" xlink:title="ZcashFoundation/zebra#884&#10;Tracking: sync&#10;correctness" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-353.5 20.5,-353.5 20.5,-300.5 243.5,-300.5 243.5,-353.5"/>
<text text-anchor="middle" x="132" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="132" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="132" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id="node9" class="node">
<title>ZcashFoundation/zebra#899</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/899" xlink:title="ZcashFoundation/zebra#899&#10;Retcon new sync logic&#10;into RFC1" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-353.5 304.5,-353.5 304.5,-300.5 527.5,-300.5 527.5,-353.5"/>
<text text-anchor="middle" x="416" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="416" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="416" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">into RFC1</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899</title>
<path fill="none" stroke="#000000" d="M243.84,-327C260.29,-327 277.31,-327 293.96,-327"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-330.5001 304.27,-327 294.27,-323.5001 294.27,-330.5001"/>
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id="node10" class="node">
<title>ZcashFoundation/zebra#919</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/919" xlink:title="ZcashFoundation/zebra#919&#10;Rewrite&#10;`block::tests::generate`&#10;as proptest strategies." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-447 20.5,-447 20.5,-379 243.5,-379 243.5,-447"/>
<text text-anchor="middle" x="132" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="132" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="132" y="-401.8" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="132" y="-386.8" font-family="Times,serif" font-size="14.00" fill="#000000">as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id="node11" class="node">
<title>ZcashFoundation/zebra#1021</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1021" xlink:title="ZcashFoundation/zebra#1021&#10;Combine proptests and&#10;transcripts to perform&#10;top&#45;level integration&#10;tests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-454.5 300,-454.5 300,-371.5 532,-371.5 532,-454.5"/>
<text text-anchor="middle" x="416" y="-439.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="416" y="-424.3" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="416" y="-409.3" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="416" y="-394.3" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="416" y="-379.3" font-family="Times,serif" font-size="14.00" fill="#000000">tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021</title>
<path fill="none" stroke="#000000" d="M243.84,-413C258.72,-413 274.06,-413 289.18,-413"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-416.5001 299.59,-413 289.59,-409.5001 289.59,-416.5001"/>
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id="node12" class="node">
<title>ZcashFoundation/zebra#889</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/889" xlink:title="ZcashFoundation/zebra#889&#10;Tracking: inbound message&#10;handling." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-761.5 304.5,-761.5 304.5,-708.5 527.5,-708.5 527.5,-761.5"/>
<text text-anchor="middle" x="416" y="-746.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="416" y="-731.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="416" y="-716.3" font-family="Times,serif" font-size="14.00" fill="#000000">handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id="node13" class="node">
<title>ZcashFoundation/zebra#1077</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1077" xlink:title="ZcashFoundation/zebra#1077&#10;Handle TransactionsByHash&#10;in the Inbound service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-761.5 568,-761.5 568,-708.5 800,-708.5 800,-761.5"/>
<text text-anchor="middle" x="684" y="-746.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="684" y="-731.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle TransactionsByHash</text>
<text text-anchor="middle" x="684" y="-716.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="edge6" class="edge">
<title>ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M527.72,-735C537.52,-735 547.49,-735 557.41,-735"/>
<polygon fill="#000000" stroke="#000000" points="557.71,-738.5001 567.71,-735 557.71,-731.5001 557.71,-738.5001"/>
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id="node14" class="node">
<title>ZcashFoundation/zebra#1048</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1048" xlink:title="ZcashFoundation/zebra#1048&#10;Test translation for&#10;zebra&#45;network::{Request,&#10;Response} protocol" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-769 16,-769 16,-701 248,-701 248,-769"/>
<text text-anchor="middle" x="132" y="-753.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="132" y="-738.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="132" y="-723.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="132" y="-708.8" font-family="Times,serif" font-size="14.00" fill="#000000">Response} protocol</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889</title>
<path fill="none" stroke="#000000" d="M248.33,-735C263.39,-735 278.85,-735 294,-735"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-738.5001 304.43,-735 294.43,-731.5001 294.43,-738.5001"/>
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id="node15" class="node">
<title>ZcashFoundation/zebra#1080</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1080" xlink:title="ZcashFoundation/zebra#1080&#10;Handle `PushTransaction`&#10;in the Inbound service." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-690.5 568,-690.5 568,-637.5 800,-637.5 800,-690.5"/>
<text text-anchor="middle" x="684" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="684" y="-660.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle `PushTransaction`</text>
<text text-anchor="middle" x="684" y="-645.3" font-family="Times,serif" font-size="14.00" fill="#000000">in the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id="node16" class="node">
<title>ZcashFoundation/zebra#1081</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1081" xlink:title="ZcashFoundation/zebra#1081&#10;Handle&#10;`AdvertiseTransaction` in&#10;the Inbound service." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-619 568,-619 568,-551 800,-551 800,-619"/>
<text text-anchor="middle" x="684" y="-603.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="684" y="-588.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="684" y="-573.8" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransaction` in</text>
<text text-anchor="middle" x="684" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000">the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320 -->
<g id="node17" class="node">
<title>ZcashFoundation/zebra#1320</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1320" xlink:title="ZcashFoundation/zebra#1320&#10;Add sprout and sapling&#10;and orchard anchors to&#10;`zebra&#45;state`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-1106 300,-1106 300,-1038 532,-1038 532,-1106"/>
<text text-anchor="middle" x="416" y="-1090.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1320</text>
<text text-anchor="middle" x="416" y="-1075.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add sprout and sapling</text>
<text text-anchor="middle" x="416" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000">and orchard anchors to</text>
<text text-anchor="middle" x="416" y="-1045.8" font-family="Times,serif" font-size="14.00" fill="#000000">`zebra&#45;state`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="node18" class="node">
<title>ZcashFoundation/zebra#1486</title>
<g id="a_node18"><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,-1160 568,-1160 568,-1122 800,-1122 800,-1160"/>
<text text-anchor="middle" x="684" y="-1144.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="684" y="-1129.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="edge8" class="edge">
<title>ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M532.38,-1102C555.16,-1107.8 578.64,-1113.9 600.11,-1119.4"/>
<polygon fill="#000000" stroke="#000000" points="599.2733,-1122.7987 609.83,-1121.9 601.0171,-1116.0193 599.2733,-1122.7987"/>
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#1400</title>
<g id="a_node19"><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,-1137.5 16,-1137.5 16,-1084.5 248,-1084.5 248,-1137.5"/>
<text text-anchor="middle" x="132" y="-1122.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="132" y="-1107.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="132" y="-1092.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="node20" class="node">
<title>ZcashFoundation/zebra#1287</title>
<g id="a_node20"><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, Sprout&#10;and Orchard" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-996.5 16,-996.5 16,-913.5 248,-913.5 248,-996.5"/>
<text text-anchor="middle" x="132" y="-981.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1287</text>
<text text-anchor="middle" x="132" y="-966.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement incremental,</text>
<text text-anchor="middle" x="132" y="-951.3" font-family="Times,serif" font-size="14.00" fill="#000000">sparse note commitment</text>
<text text-anchor="middle" x="132" y="-936.3" font-family="Times,serif" font-size="14.00" fill="#000000">trees for Sapling, Sprout</text>
<text text-anchor="middle" x="132" y="-921.3" font-family="Times,serif" font-size="14.00" fill="#000000">and Orchard</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320</title>
<path fill="none" stroke="#000000" d="M232.93,-996.58C262.56,-1008.8 294.81,-1022.1 323.87,-1034"/>
<polygon fill="#000000" stroke="#000000" points="322.6042,-1037.2644 333.18,-1037.9 325.3089,-1030.808 322.6042,-1037.2644"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node21" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node21"><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,-981.5 300,-981.5 300,-928.5 532,-928.5 532,-981.5"/>
<text text-anchor="middle" x="416" y="-966.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="416" y="-951.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="416" y="-936.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="edge10" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2092</title>
<path fill="none" stroke="#000000" d="M248.33,-955C262.02,-955 276.03,-955 289.84,-955"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-958.5001 299.85,-955 289.85,-951.5001 289.85,-958.5001"/>
</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,-848 568,-848 568,-780 800,-780 800,-848"/>
<text text-anchor="middle" x="684" y="-832.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2134</text>
<text text-anchor="middle" x="684" y="-817.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="684" y="-802.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="684" y="-787.8" font-family="Times,serif" font-size="14.00" fill="#000000">the finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M174.23,-913.49C205.97,-885.18 252.06,-849.89 300,-833 382.39,-803.97 480.9,-799.66 557.52,-802.37"/>
<polygon fill="#000000" stroke="#000000" points="557.5672,-805.8746 567.7,-802.78 557.849,-798.8803 557.5672,-805.8746"/>
</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="800,-972 568,-972 568,-904 800,-904 800,-972"/>
<text text-anchor="middle" x="684" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2135</text>
<text text-anchor="middle" x="684" y="-941.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="684" y="-926.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="684" y="-911.8" font-family="Times,serif" font-size="14.00" fill="#000000">the non&#45;finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M248.1,-982.41C265.41,-985.56 283.11,-988.26 300,-990 402.57,-1000.6 430.29,-1006.9 532,-990 551.42,-986.77 571.68,-981.37 590.85,-975.24"/>
<polygon fill="#000000" stroke="#000000" points="592.0537,-978.5286 600.46,-972.08 589.8671,-971.8789 592.0537,-978.5286"/>
</g>
<!-- ZcashFoundation/zebra#2132 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#2132</title>
<g id="a_node24"><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,-910 300,-910 300,-842 532,-842 532,-910"/>
<text text-anchor="middle" x="416" y="-894.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2132</text>
<text text-anchor="middle" x="416" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Integrate</text>
<text text-anchor="middle" x="416" y="-864.8" font-family="Times,serif" font-size="14.00" fill="#000000">history merkle mountain</text>
<text text-anchor="middle" x="416" y="-849.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="edge13" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2132</title>
<path fill="none" stroke="#000000" d="M248.33,-922.64C262.02,-918.83 276.03,-914.94 289.84,-911.09"/>
<polygon fill="#000000" stroke="#000000" points="291.1513,-914.3584 299.85,-908.31 289.2781,-907.6137 291.1513,-914.3584"/>
</g>
<!-- ZcashFoundation/zebra#2048 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#2048</title>
<g id="a_node25"><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="1068,-910 836,-910 836,-842 1068,-842 1068,-910"/>
<text text-anchor="middle" x="952" y="-894.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2048</text>
<text text-anchor="middle" x="952" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement</text>
<text text-anchor="middle" x="952" y="-864.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction authorization</text>
<text text-anchor="middle" x="952" y="-849.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.38,-840.92C808.81,-842.87 817.33,-844.84 825.81,-846.81"/>
<polygon fill="#000000" stroke="#000000" points="825.2092,-850.2632 835.74,-849.1 826.7823,-843.4423 825.2092,-850.2632"/>
</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="M800.38,-911.08C808.81,-909.13 817.33,-907.16 825.81,-905.19"/>
<polygon fill="#000000" stroke="#000000" points="826.7823,-908.5577 835.74,-902.9 825.2092,-901.7368 826.7823,-908.5577"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M532.38,-849.08C540.81,-847.13 549.33,-845.16 557.81,-843.19"/>
<polygon fill="#000000" stroke="#000000" points="558.7823,-846.5577 567.74,-840.9 557.2092,-839.7368 558.7823,-846.5577"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M532.38,-902.92C540.81,-904.87 549.33,-906.84 557.81,-908.81"/>
<polygon fill="#000000" stroke="#000000" points="557.2092,-912.2632 567.74,-911.1 558.7823,-905.4423 557.2092,-912.2632"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M532.3,-876C618.87,-876 736.93,-876 825.78,-876"/>
<polygon fill="#000000" stroke="#000000" points="825.92,-879.5001 835.92,-876 825.92,-872.5001 825.92,-879.5001"/>
</g>
<!-- ZcashFoundation/zebra#1311 -->
<g id="node26" class="node">
<title>ZcashFoundation/zebra#1311</title>
<g id="a_node26"><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,-1275 16,-1275 16,-1207 248,-1207 248,-1275"/>
<text text-anchor="middle" x="132" y="-1259.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1311</text>
<text text-anchor="middle" x="132" y="-1244.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create function for post&#45;</text>
<text text-anchor="middle" x="132" y="-1229.8" font-family="Times,serif" font-size="14.00" fill="#000000">blossom height</text>
<text text-anchor="middle" x="132" y="-1214.8" font-family="Times,serif" font-size="14.00" fill="#000000">adjustments</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1170 -->
<g id="node27" class="node">
<title>ZcashFoundation/zebra#1170</title>
<g id="a_node27"><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,-1267.5 300,-1267.5 300,-1263.5 296,-1263.5 296,-1259.5 300,-1259.5 300,-1222.5 296,-1222.5 296,-1218.5 300,-1218.5 300,-1214.5 532,-1214.5 532,-1267.5"/>
<polyline fill="none" stroke="#000000" points="300,-1263.5 304,-1263.5 304,-1259.5 300,-1259.5 "/>
<polyline fill="none" stroke="#000000" points="300,-1222.5 304,-1222.5 304,-1218.5 300,-1218.5 "/>
<text text-anchor="middle" x="416" y="-1252.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1170</text>
<text text-anchor="middle" x="416" y="-1237.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calculate and validate</text>
<text text-anchor="middle" x="416" y="-1222.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="edge19" class="edge">
<title>ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170</title>
<path fill="none" stroke="#000000" d="M248.33,-1241C262.02,-1241 276.03,-1241 289.84,-1241"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1244.5001 299.85,-1241 289.85,-1237.5001 289.85,-1244.5001"/>
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id="node28" class="node">
<title>ZcashFoundation/zebra#936</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/936" xlink:title="ZcashFoundation/zebra#936&#10;Design: mempool&#10;transaction handling" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="527.5,-525.5 304.5,-525.5 304.5,-472.5 527.5,-472.5 527.5,-525.5"/>
<text text-anchor="middle" x="416" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#936</text>
<text text-anchor="middle" x="416" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: mempool</text>
<text text-anchor="middle" x="416" y="-480.3" font-family="Times,serif" font-size="14.00" fill="#000000">transaction handling</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M429.16,-525.59C451.69,-568.43 501.73,-652.59 568,-699 570.15,-700.51 572.37,-701.95 574.65,-703.34"/>
<polygon fill="#000000" stroke="#000000" points="573.2286,-706.5562 583.66,-708.41 576.6614,-700.4557 573.2286,-706.5562"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M440.73,-525.63C468.98,-554.59 517.79,-600.42 568,-628 571.29,-629.81 574.68,-631.54 578.15,-633.19"/>
<polygon fill="#000000" stroke="#000000" points="576.9158,-636.473 587.47,-637.4 579.7975,-630.0936 576.9158,-636.473"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M498.6,-525.5C520.63,-532.57 544.85,-540.35 568.3,-547.87"/>
<polygon fill="#000000" stroke="#000000" points="567.3587,-551.2437 577.95,-550.97 569.4997,-544.5792 567.3587,-551.2437"/>
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id="node29" class="node">
<title>ZcashFoundation/zebra#1083</title>
<g id="a_node29"><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,-533 568,-533 568,-465 800,-465 800,-533"/>
<text text-anchor="middle" x="684" y="-517.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="684" y="-502.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="684" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactions` in</text>
<text text-anchor="middle" x="684" y="-472.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="edge23" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M527.72,-499C537.52,-499 547.49,-499 557.41,-499"/>
<polygon fill="#000000" stroke="#000000" points="557.71,-502.5001 567.71,-499 557.71,-495.5001 557.71,-502.5001"/>
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id="node30" class="node">
<title>ZcashFoundation/zebra#571</title>
<g id="a_node30"><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="#c2e0c6" stroke="#000000" points="795.5,-447 572.5,-447 572.5,-379 795.5,-379 795.5,-447"/>
<text text-anchor="middle" x="684" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="684" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="684" y="-401.8" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="684" y="-386.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="edge24" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M502.2,-472.43C512.26,-469.27 522.36,-466.08 532,-463 544.78,-458.92 558.14,-454.59 571.41,-450.27"/>
<polygon fill="#000000" stroke="#000000" points="572.6317,-453.553 581.05,-447.12 570.4575,-446.8992 572.6317,-453.553"/>
</g>
<!-- ZcashFoundation/zebra#484 -->
<g id="node31" class="node">
<title>ZcashFoundation/zebra#484</title>
<g id="a_node31"><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,-360.5 572.5,-360.5 572.5,-307.5 795.5,-307.5 795.5,-360.5"/>
<text text-anchor="middle" x="684" y="-345.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#484</text>
<text text-anchor="middle" x="684" y="-330.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit transaction size in</text>
<text text-anchor="middle" x="684" y="-315.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="edge25" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484</title>
<path fill="none" stroke="#000000" d="M520.02,-472.4C524.28,-469.58 528.3,-466.45 532,-463 564.39,-432.75 535.61,-400.25 568,-370 569.27,-368.81 570.58,-367.66 571.93,-366.55"/>
<polygon fill="#000000" stroke="#000000" points="574.0186,-369.3586 579.98,-360.6 569.8578,-363.7293 574.0186,-369.3586"/>
</g>
<!-- ZcashFoundation/zebra#1683 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#1683</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1683" xlink:title="ZcashFoundation/zebra#1683&#10;Verify mempool&#10;transactions using a&#10;block height" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-289 568,-289 568,-221 800,-221 800,-289"/>
<text text-anchor="middle" x="684" y="-273.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1683</text>
<text text-anchor="middle" x="684" y="-258.8" font-family="Times,serif" font-size="14.00" fill="#000000">Verify mempool</text>
<text text-anchor="middle" x="684" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions using a</text>
<text text-anchor="middle" x="684" y="-228.8" font-family="Times,serif" font-size="14.00" fill="#000000">block height</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1683 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1683</title>
<path fill="none" stroke="#000000" d="M521.72,-472.32C525.41,-469.52 528.86,-466.42 532,-463 582.74,-407.69 518.77,-354.66 568,-298 568.42,-297.52 568.84,-297.04 569.27,-296.57"/>
<polygon fill="#000000" stroke="#000000" points="571.9345,-298.8626 576.7,-289.4 567.0737,-293.8255 571.9345,-298.8626"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node33"><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,-1177.5 304.5,-1177.5 304.5,-1124.5 527.5,-1124.5 527.5,-1177.5"/>
<text text-anchor="middle" x="416" y="-1162.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="416" y="-1147.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="416" y="-1132.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="edge27" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M527.72,-1146.8C537.52,-1146.5 547.49,-1146.1 557.41,-1145.7"/>
<polygon fill="#000000" stroke="#000000" points="557.8534,-1149.1855 567.71,-1145.3 557.5817,-1142.1908 557.8534,-1149.1855"/>
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#1086</title>
<g id="a_node34"><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,-1420.5 16,-1420.5 16,-1337.5 248,-1337.5 248,-1420.5"/>
<text text-anchor="middle" x="132" y="-1405.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1086</text>
<text text-anchor="middle" x="132" y="-1390.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove git dependencies</text>
<text text-anchor="middle" x="132" y="-1375.3" font-family="Times,serif" font-size="14.00" fill="#000000">on Hyper, Metrics, Tower,</text>
<text text-anchor="middle" x="132" y="-1360.3" font-family="Times,serif" font-size="14.00" fill="#000000">ed25519&#45;zebra, lexical&#45;</text>
<text text-anchor="middle" x="132" y="-1345.3" font-family="Times,serif" font-size="14.00" fill="#000000">core</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node35"><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,-1462 300,-1462 300,-1424 532,-1424 532,-1462"/>
<text text-anchor="middle" x="416" y="-1446.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="416" y="-1431.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="edge28" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686</title>
<path fill="none" stroke="#000000" d="M248.33,-1405.2C272.73,-1410.7 298.17,-1416.4 321.64,-1421.7"/>
<polygon fill="#000000" stroke="#000000" points="321.0381,-1425.1532 331.57,-1424 322.6177,-1418.3337 321.0381,-1425.1532"/>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node36"><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,-1405.5 300,-1405.5 300,-1352.5 532,-1352.5 532,-1405.5"/>
<text text-anchor="middle" x="416" y="-1390.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="416" y="-1375.3" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="416" y="-1360.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="edge29" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112</title>
<path fill="none" stroke="#000000" d="M248.33,-1379C262.02,-1379 276.03,-1379 289.84,-1379"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1382.5001 299.85,-1379 289.85,-1375.5001 289.85,-1382.5001"/>
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#2200</title>
<g id="a_node37"><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,-1334 300,-1334 300,-1296 532,-1296 532,-1334"/>
<text text-anchor="middle" x="416" y="-1318.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2200</text>
<text text-anchor="middle" x="416" y="-1303.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="edge30" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200</title>
<path fill="none" stroke="#000000" d="M248.33,-1352.8C272.73,-1347.3 298.17,-1341.6 321.64,-1336.3"/>
<polygon fill="#000000" stroke="#000000" points="322.6177,-1339.6663 331.57,-1334 321.0381,-1332.8468 322.6177,-1339.6663"/>
</g>
<!-- ZcashFoundation/zebra#2202 -->
<g id="node38" class="node">
<title>ZcashFoundation/zebra#2202</title>
<g id="a_node38"><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,-1428 568,-1428 568,-1360 800,-1360 800,-1428"/>
<text text-anchor="middle" x="684" y="-1412.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="684" y="-1397.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="684" y="-1382.8" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="684" y="-1367.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="edge31" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202</title>
<path fill="none" stroke="#000000" d="M498.61,-1334C509.87,-1336.9 521.25,-1339.9 532,-1343 546.59,-1347.2 561.87,-1351.9 576.87,-1356.8"/>
<polygon fill="#000000" stroke="#000000" points="576.0876,-1360.2262 586.68,-1360 578.2584,-1353.5713 576.0876,-1360.2262"/>
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id="node39" class="node">
<title>ZcashFoundation/zebra#2201</title>
<g id="a_node39"><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,-1341.5 568,-1341.5 568,-1288.5 800,-1288.5 800,-1341.5"/>
<text text-anchor="middle" x="684" y="-1326.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="684" y="-1311.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="684" y="-1296.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="edge32" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201</title>
<path fill="none" stroke="#000000" d="M532.38,-1315C540.71,-1315 549.14,-1315 557.53,-1315"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-1318.5001 567.74,-1315 557.74,-1311.5001 557.74,-1318.5001"/>
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id="node40" class="node">
<title>ZcashFoundation/zebra#2268</title>
<g id="a_node40"><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,-1270.5 568,-1270.5 568,-1217.5 800,-1217.5 800,-1270.5"/>
<text text-anchor="middle" x="684" y="-1255.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="684" y="-1240.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="684" y="-1225.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="edge33" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268</title>
<path fill="none" stroke="#000000" d="M487.82,-1296C514.29,-1289 544.91,-1280.8 573.98,-1273.1"/>
<polygon fill="#000000" stroke="#000000" points="574.9469,-1276.4655 583.77,-1270.6 573.2149,-1269.6831 574.9469,-1276.4655"/>
</g>
<!-- ZcashFoundation/zebra#950 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#950</title>
<g id="a_node41"><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,-1507 20.5,-1507 20.5,-1439 243.5,-1439 243.5,-1507"/>
<text text-anchor="middle" x="132" y="-1491.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="132" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="132" y="-1461.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="132" y="-1446.8" font-family="Times,serif" font-size="14.00" fill="#000000">syncing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#692 -->
<g id="node42" class="node">
<title>ZcashFoundation/zebra#692</title>
<g id="a_node42"><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,-1578.5 20.5,-1578.5 20.5,-1525.5 243.5,-1525.5 243.5,-1578.5"/>
<text text-anchor="middle" x="132" y="-1563.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="132" y="-1548.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="132" y="-1533.3" font-family="Times,serif" font-size="14.00" fill="#000000">platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node43"><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,-1746.5 300,-1746.5 300,-1693.5 532,-1693.5 532,-1746.5"/>
<text text-anchor="middle" x="416" y="-1731.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="416" y="-1716.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="-1701.3" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1007 -->
<g id="node44" class="node">
<title>ZcashFoundation/zebra#1007</title>
<g id="a_node44"><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,-1754 568,-1754 568,-1750 564,-1750 564,-1746 568,-1746 568,-1694 564,-1694 564,-1690 568,-1690 568,-1686 800,-1686 800,-1754"/>
<polyline fill="none" stroke="#000000" points="568,-1750 572,-1750 572,-1746 568,-1746 "/>
<polyline fill="none" stroke="#000000" points="568,-1694 572,-1694 572,-1690 568,-1690 "/>
<text text-anchor="middle" x="684" y="-1738.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="684" y="-1723.8" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="684" y="-1708.8" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="684" y="-1693.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="edge34" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M532.38,-1720C540.71,-1720 549.14,-1720 557.53,-1720"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-1723.5001 567.74,-1720 557.74,-1716.5001 557.74,-1723.5001"/>
</g>
<!-- ZcashFoundation/zebra#1827 -->
<g id="node45" class="node">
<title>ZcashFoundation/zebra#1827</title>
<g id="a_node45"><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,-2011.5 16,-2011.5 16,-1928.5 248,-1928.5 248,-2011.5"/>
<text text-anchor="middle" x="132" y="-1996.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="132" y="-1981.3" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="132" y="-1966.3" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="132" y="-1951.3" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="132" y="-1936.3" font-family="Times,serif" font-size="14.00" fill="#000000">`PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1828 -->
<g id="node46" class="node">
<title>ZcashFoundation/zebra#1828</title>
<g id="a_node46"><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,-2098 16,-2098 16,-2030 248,-2030 248,-2098"/>
<text text-anchor="middle" x="132" y="-2082.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1828</text>
<text text-anchor="middle" x="132" y="-2067.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move duplicate</text>
<text text-anchor="middle" x="132" y="-2052.8" font-family="Times,serif" font-size="14.00" fill="#000000">`Transaction` code into</text>
<text text-anchor="middle" x="132" y="-2037.8" font-family="Times,serif" font-size="14.00" fill="#000000">methods</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id="node47" class="node">
<title>ZcashFoundation/zebra#1592</title>
<g id="a_node47"><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,-2169.5 16,-2169.5 16,-2116.5 248,-2116.5 248,-2169.5"/>
<text text-anchor="middle" x="132" y="-2154.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="132" y="-2139.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="132" y="-2124.3" font-family="Times,serif" font-size="14.00" fill="#000000">hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id="node48" class="node">
<title>ZcashFoundation/zebra#1817</title>
<g id="a_node48"><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,-2192 300,-2192 300,-2188 296,-2188 296,-2184 300,-2184 300,-2102 296,-2102 296,-2098 300,-2098 300,-2094 532,-2094 532,-2192"/>
<polyline fill="none" stroke="#000000" points="300,-2188 304,-2188 304,-2184 300,-2184 "/>
<polyline fill="none" stroke="#000000" points="300,-2102 304,-2102 304,-2098 300,-2098 "/>
<text text-anchor="middle" x="416" y="-2176.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="416" y="-2161.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="416" y="-2146.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="416" y="-2131.8" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="416" y="-2116.8" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="416" y="-2101.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="edge35" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M248.33,-2143C262.02,-2143 276.03,-2143 289.84,-2143"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2146.5001 299.85,-2143 289.85,-2139.5001 289.85,-2146.5001"/>
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id="node49" class="node">
<title>ZcashFoundation/zebra#1841</title>
<g id="a_node49"><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;activation heights" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2256 16,-2256 16,-2188 248,-2188 248,-2256"/>
<text text-anchor="middle" x="132" y="-2240.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="132" y="-2225.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;252: Update Zebra and</text>
<text text-anchor="middle" x="132" y="-2210.8" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="132" y="-2195.8" font-family="Times,serif" font-size="14.00" fill="#000000">activation heights</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node50" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node50"><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" points="532,-1972.5 300,-1972.5 300,-1889.5 532,-1889.5 532,-1972.5"/>
<text text-anchor="middle" x="416" y="-1957.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="416" y="-1942.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="416" y="-1927.3" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="416" y="-1912.3" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="416" y="-1897.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node51"><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="800,-1895 568,-1895 568,-1827 800,-1827 800,-1895"/>
<text text-anchor="middle" x="684" y="-1879.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="684" y="-1864.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="684" y="-1849.8" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="684" y="-1834.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="edge36" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M532.38,-1900.6C540.81,-1898.4 549.33,-1896.2 557.81,-1894"/>
<polygon fill="#000000" stroke="#000000" points="558.9527,-1897.3189 567.74,-1891.4 557.1795,-1890.5472 558.9527,-1897.3189"/>
</g>
<!-- ZcashFoundation/zebra#1867 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#1867</title>
<g id="a_node52"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1867" xlink:title="ZcashFoundation/zebra#1867&#10;Security: Zebra should&#10;stop gossiping&#10;unreachable addresses to&#10;other nodes, Action: re&#45;&#10;deploy all nodes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-1910 16,-1910 16,-1812 248,-1812 248,-1910"/>
<text text-anchor="middle" x="132" y="-1894.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1867</text>
<text text-anchor="middle" x="132" y="-1879.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Zebra should</text>
<text text-anchor="middle" x="132" y="-1864.8" font-family="Times,serif" font-size="14.00" fill="#000000">stop gossiping</text>
<text text-anchor="middle" x="132" y="-1849.8" font-family="Times,serif" font-size="14.00" fill="#000000">unreachable addresses to</text>
<text text-anchor="middle" x="132" y="-1834.8" font-family="Times,serif" font-size="14.00" fill="#000000">other nodes, Action: re&#45;</text>
<text text-anchor="middle" x="132" y="-1819.8" font-family="Times,serif" font-size="14.00" fill="#000000">deploy all nodes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge37" class="edge">
<title>ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M206.22,-1812C241.88,-1789 280.93,-1764.7 300,-1756 304.32,-1754 308.79,-1752.1 313.33,-1750.3"/>
<polygon fill="#000000" stroke="#000000" points="314.7293,-1753.5108 322.76,-1746.6 312.1725,-1746.9944 314.7293,-1753.5108"/>
</g>
<!-- ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1865 -->
<g id="edge38" class="edge">
<title>ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1865</title>
<path fill="none" stroke="#000000" d="M248.33,-1889.7C262.02,-1893 276.03,-1896.5 289.84,-1899.9"/>
<polygon fill="#000000" stroke="#000000" points="289.2999,-1903.3726 299.85,-1902.4 290.9961,-1896.5812 289.2999,-1903.3726"/>
</g>
<!-- ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1956 -->
<g id="edge39" class="edge">
<title>ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.05,-1861C338.67,-1861 464.41,-1861 557.58,-1861"/>
<polygon fill="#000000" stroke="#000000" points="557.63,-1864.5001 567.63,-1861 557.63,-1857.5001 557.63,-1864.5001"/>
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id="node53" class="node">
<title>ZcashFoundation/zebra#1873</title>
<g id="a_node53"><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,-1664.5 300,-1664.5 300,-1611.5 532,-1611.5 532,-1664.5"/>
<text text-anchor="middle" x="416" y="-1649.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="416" y="-1634.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="-1619.3" font-family="Times,serif" font-size="14.00" fill="#000000">use all available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node54" class="node">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node54"><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" points="532,-2350 300,-2350 300,-2282 532,-2282 532,-2350"/>
<text text-anchor="middle" x="416" y="-2334.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="416" y="-2319.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="416" y="-2304.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="416" y="-2289.8" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1876 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#1876</title>
<g id="a_node55"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1876" xlink:title="ZcashFoundation/zebra#1876&#10;Security: Retry&#10;previously successful&#10;peers before peers that&#10;have always failed" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2357.5 16,-2357.5 16,-2274.5 248,-2274.5 248,-2357.5"/>
<text text-anchor="middle" x="132" y="-2342.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1876</text>
<text text-anchor="middle" x="132" y="-2327.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Retry</text>
<text text-anchor="middle" x="132" y="-2312.3" font-family="Times,serif" font-size="14.00" fill="#000000">previously successful</text>
<text text-anchor="middle" x="132" y="-2297.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers before peers that</text>
<text text-anchor="middle" x="132" y="-2282.3" font-family="Times,serif" font-size="14.00" fill="#000000">have always failed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1876&#45;&gt;ZcashFoundation/zebra#1875 -->
<g id="edge40" class="edge">
<title>ZcashFoundation/zebra#1876&#45;&gt;ZcashFoundation/zebra#1875</title>
<path fill="none" stroke="#000000" d="M248.33,-2316C262.02,-2316 276.03,-2316 289.84,-2316"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2319.5001 299.85,-2316 289.85,-2312.5001 289.85,-2319.5001"/>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node56"><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,-1679.5 16,-1679.5 16,-1596.5 248,-1596.5 248,-1679.5"/>
<text text-anchor="middle" x="132" y="-1664.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="132" y="-1649.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="132" y="-1634.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="132" y="-1619.3" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="132" y="-1604.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="edge41" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-1671.6C270.25,-1677.9 293.01,-1684.5 314.44,-1690.7"/>
<polygon fill="#000000" stroke="#000000" points="313.6022,-1694.1008 324.18,-1693.5 315.5363,-1687.3733 313.6022,-1694.1008"/>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873 -->
<g id="edge42" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873</title>
<path fill="none" stroke="#000000" d="M248.33,-1638C262.02,-1638 276.03,-1638 289.84,-1638"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1641.5001 299.85,-1638 289.85,-1634.5001 289.85,-1641.5001"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node57"><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,-2458.5 16,-2458.5 16,-2375.5 248,-2375.5 248,-2458.5"/>
<text text-anchor="middle" x="132" y="-2443.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="132" y="-2428.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="132" y="-2413.3" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="132" y="-2398.3" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="132" y="-2383.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node58"><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,-2451 300,-2451 300,-2383 532,-2383 532,-2451"/>
<text text-anchor="middle" x="416" y="-2435.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="416" y="-2420.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="416" y="-2405.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="416" y="-2390.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="edge43" class="edge">
<title>ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893</title>
<path fill="none" stroke="#000000" d="M248.33,-2417C262.02,-2417 276.03,-2417 289.84,-2417"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2420.5001 299.85,-2417 289.85,-2413.5001 289.85,-2420.5001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node59"><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,-1766 16,-1766 16,-1698 248,-1698 248,-1766"/>
<text text-anchor="middle" x="132" y="-1750.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="132" y="-1735.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="-1720.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="-1705.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="edge44" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M248.33,-1727.1C262.02,-1726.5 276.03,-1725.9 289.84,-1725.3"/>
<polygon fill="#000000" stroke="#000000" points="289.9978,-1728.7966 299.85,-1724.9 289.7182,-1721.8022 289.9978,-1728.7966"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node60"><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,-2559.5 16,-2559.5 16,-2476.5 248,-2476.5 248,-2559.5"/>
<text text-anchor="middle" x="132" y="-2544.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="132" y="-2529.3" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="132" y="-2514.3" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="132" y="-2499.3" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="132" y="-2484.3" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id="node61" class="node">
<title>ZcashFoundation/zebra#1851</title>
<g id="a_node61"><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,-2646 16,-2646 16,-2578 248,-2578 248,-2646"/>
<text text-anchor="middle" x="132" y="-2630.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1851</text>
<text text-anchor="middle" x="132" y="-2615.8" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the number of</text>
<text text-anchor="middle" x="132" y="-2600.8" font-family="Times,serif" font-size="14.00" fill="#000000">connected peers in the</text>
<text text-anchor="middle" x="132" y="-2585.8" font-family="Times,serif" font-size="14.00" fill="#000000">PeerSet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#1850</title>
<g id="a_node62"><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,-2747.5 16,-2747.5 16,-2664.5 248,-2664.5 248,-2747.5"/>
<text text-anchor="middle" x="132" y="-2732.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1850</text>
<text text-anchor="middle" x="132" y="-2717.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="132" y="-2702.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound peer</text>
<text text-anchor="middle" x="132" y="-2687.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections when dialing</text>
<text text-anchor="middle" x="132" y="-2672.3" font-family="Times,serif" font-size="14.00" fill="#000000">new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node63" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node63"><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,-2949.5 300,-2949.5 300,-2866.5 532,-2866.5 532,-2949.5"/>
<text text-anchor="middle" x="416" y="-2934.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="416" y="-2919.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="416" y="-2904.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="416" y="-2889.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="416" y="-2874.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node64"><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,-2879.5 572.5,-2879.5 572.5,-2796.5 795.5,-2796.5 795.5,-2879.5"/>
<text text-anchor="middle" x="684" y="-2864.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="684" y="-2849.3" font-family="Times,serif" font-size="14.00" fill="#000000">Do we need to prefer</text>
<text text-anchor="middle" x="684" y="-2834.3" font-family="Times,serif" font-size="14.00" fill="#000000">evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="684" y="-2819.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="684" y="-2804.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="edge45" class="edge">
<title>ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M532.38,-2877.6C542.34,-2875 552.43,-2872.4 562.43,-2869.8"/>
<polygon fill="#000000" stroke="#000000" points="563.5983,-2873.1124 572.39,-2867.2 561.8302,-2866.3394 563.5983,-2873.1124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node65"><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="532,-1833 300,-1833 300,-1765 532,-1765 532,-1833"/>
<text text-anchor="middle" x="416" y="-1817.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="416" y="-1802.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="416" y="-1787.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="416" y="-1772.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="edge46" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M532.38,-1825.9C540.81,-1827.9 549.33,-1829.8 557.81,-1831.8"/>
<polygon fill="#000000" stroke="#000000" points="557.2081,-1835.2532 567.74,-1834.1 558.7877,-1828.4337 557.2081,-1835.2532"/>
</g>
<!-- ZcashFoundation/zebra#1874 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#1874</title>
<g id="a_node66"><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,-2935 16,-2935 16,-2867 248,-2867 248,-2935"/>
<text text-anchor="middle" x="132" y="-2919.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1874</text>
<text text-anchor="middle" x="132" y="-2904.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP 244: Transaction</text>
<text text-anchor="middle" x="132" y="-2889.8" font-family="Times,serif" font-size="14.00" fill="#000000">Identifier Non&#45;</text>
<text text-anchor="middle" x="132" y="-2874.8" font-family="Times,serif" font-size="14.00" fill="#000000">Malleability</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1567 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#1567</title>
<g id="a_node67"><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,-3006.5 16,-3006.5 16,-2953.5 248,-2953.5 248,-3006.5"/>
<text text-anchor="middle" x="132" y="-2991.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1567</text>
<text text-anchor="middle" x="132" y="-2976.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Block Header</text>
<text text-anchor="middle" x="132" y="-2961.3" font-family="Times,serif" font-size="14.00" fill="#000000">Chain History Commitment</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node68"><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,-3077.5 16,-3077.5 16,-3024.5 248,-3024.5 248,-3077.5"/>
<text text-anchor="middle" x="132" y="-3062.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="132" y="-3047.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="132" y="-3032.3" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node69"><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,-3164 16,-3164 16,-3096 248,-3096 248,-3164"/>
<text text-anchor="middle" x="132" y="-3148.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="132" y="-3133.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="132" y="-3118.8" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="132" y="-3103.8" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node70"><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,-3250 16,-3250 16,-3182 248,-3182 248,-3250"/>
<text text-anchor="middle" x="132" y="-3234.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="132" y="-3219.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="132" y="-3204.8" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="132" y="-3189.8" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node71"><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,-3321.5 16,-3321.5 16,-3317.5 12,-3317.5 12,-3313.5 16,-3313.5 16,-3276.5 12,-3276.5 12,-3272.5 16,-3272.5 16,-3268.5 248,-3268.5 248,-3321.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3317.5 20,-3317.5 20,-3313.5 16,-3313.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3276.5 20,-3276.5 20,-3272.5 16,-3272.5 "/>
<text text-anchor="middle" x="132" y="-3306.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="132" y="-3291.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="132" y="-3276.3" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node72"><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,-3329 300,-3329 300,-3261 532,-3261 532,-3329"/>
<text text-anchor="middle" x="416" y="-3313.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="416" y="-3298.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="416" y="-3283.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="416" y="-3268.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="edge47" class="edge">
<title>ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052</title>
<path fill="none" stroke="#000000" d="M248.33,-3295C262.02,-3295 276.03,-3295 289.84,-3295"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3298.5001 299.85,-3295 289.85,-3291.5001 289.85,-3298.5001"/>
</g>
<!-- ZcashFoundation/zebra#2050 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#2050</title>
<g id="a_node73"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2050" xlink:title="ZcashFoundation/zebra#2050&#10;ZIP&#45;244: Implement Non&#45;&#10;Malleable transaction ids" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-3471.5 300,-3471.5 300,-3418.5 532,-3418.5 532,-3471.5"/>
<text text-anchor="middle" x="416" y="-3456.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2050</text>
<text text-anchor="middle" x="416" y="-3441.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement Non&#45;</text>
<text text-anchor="middle" x="416" y="-3426.3" font-family="Times,serif" font-size="14.00" fill="#000000">Malleable transaction ids</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2051 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#2051</title>
<g id="a_node74"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2051" xlink:title="ZcashFoundation/zebra#2051&#10;ZIP&#45;244: Implement&#10;sighash for Non&#45;Malleable&#10;Transaction Ids" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-3519 568,-3519 568,-3451 800,-3451 800,-3519"/>
<text text-anchor="middle" x="684" y="-3503.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2051</text>
<text text-anchor="middle" x="684" y="-3488.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement</text>
<text text-anchor="middle" x="684" y="-3473.8" font-family="Times,serif" font-size="14.00" fill="#000000">sighash for Non&#45;Malleable</text>
<text text-anchor="middle" x="684" y="-3458.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction Ids</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2051 -->
<g id="edge48" class="edge">
<title>ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2051</title>
<path fill="none" stroke="#000000" d="M532.38,-3462.4C540.81,-3463.6 549.33,-3464.9 557.81,-3466.2"/>
<polygon fill="#000000" stroke="#000000" points="557.3493,-3469.6696 567.74,-3467.6 558.3266,-3462.7381 557.3493,-3469.6696"/>
</g>
<!-- ZcashFoundation/zebra#2165 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#2165</title>
<g id="a_node75"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2165" xlink:title="ZcashFoundation/zebra#2165&#10;Add ZIP&#45;244 signature&#10;hash support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-3432.5 568,-3432.5 568,-3428.5 564,-3428.5 564,-3424.5 568,-3424.5 568,-3387.5 564,-3387.5 564,-3383.5 568,-3383.5 568,-3379.5 800,-3379.5 800,-3432.5"/>
<polyline fill="none" stroke="#000000" points="568,-3428.5 572,-3428.5 572,-3424.5 568,-3424.5 "/>
<polyline fill="none" stroke="#000000" points="568,-3387.5 572,-3387.5 572,-3383.5 568,-3383.5 "/>
<text text-anchor="middle" x="684" y="-3417.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2165</text>
<text text-anchor="middle" x="684" y="-3402.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add ZIP&#45;244 signature</text>
<text text-anchor="middle" x="684" y="-3387.3" font-family="Times,serif" font-size="14.00" fill="#000000">hash support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2165 -->
<g id="edge49" class="edge">
<title>ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2165</title>
<path fill="none" stroke="#000000" d="M532.38,-3428.1C540.81,-3426.8 549.33,-3425.6 557.81,-3424.4"/>
<polygon fill="#000000" stroke="#000000" points="558.375,-3427.8545 567.74,-3422.9 557.3294,-3420.933 558.375,-3427.8545"/>
</g>
<!-- ZcashFoundation/zebra#608 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#608</title>
<g id="a_node76"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/608" xlink:title="ZcashFoundation/zebra#608&#10;ZIP&#45;213: Validate&#10;Shielded Coinbase Outputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-3515.5 20.5,-3515.5 20.5,-3462.5 243.5,-3462.5 243.5,-3515.5"/>
<text text-anchor="middle" x="132" y="-3500.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#608</text>
<text text-anchor="middle" x="132" y="-3485.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;213: Validate</text>
<text text-anchor="middle" x="132" y="-3470.3" font-family="Times,serif" font-size="14.00" fill="#000000">Shielded Coinbase Outputs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2152 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#2152</title>
<g id="a_node77"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2152" xlink:title="ZcashFoundation/zebra#2152&#10;ZIP&#45;209 RFC: Value Pools&#10;Design" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3590.5 16,-3590.5 16,-3537.5 248,-3537.5 248,-3590.5"/>
<text text-anchor="middle" x="132" y="-3575.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2152</text>
<text text-anchor="middle" x="132" y="-3560.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209 RFC: Value Pools</text>
<text text-anchor="middle" x="132" y="-3545.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1895 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#1895</title>
<g id="a_node78"><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,-3605.5 300,-3605.5 300,-3522.5 532,-3522.5 532,-3605.5"/>
<text text-anchor="middle" x="416" y="-3590.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1895</text>
<text text-anchor="middle" x="416" y="-3575.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209: Prohibit</text>
<text text-anchor="middle" x="416" y="-3560.3" font-family="Times,serif" font-size="14.00" fill="#000000">Negative Shielded Chain</text>
<text text-anchor="middle" x="416" y="-3545.3" font-family="Times,serif" font-size="14.00" fill="#000000">Value Pool Balances &#45;</text>
<text text-anchor="middle" x="416" y="-3530.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2152&#45;&gt;ZcashFoundation/zebra#1895 -->
<g id="edge50" class="edge">
<title>ZcashFoundation/zebra#2152&#45;&gt;ZcashFoundation/zebra#1895</title>
<path fill="none" stroke="#000000" d="M248.33,-3564C262.02,-3564 276.03,-3564 289.84,-3564"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3567.5001 299.85,-3564 289.85,-3560.5001 289.85,-3567.5001"/>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node79"><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,-3691.5 16,-3691.5 16,-3638.5 248,-3638.5 248,-3691.5"/>
<text text-anchor="middle" x="132" y="-3676.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="132" y="-3661.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="132" y="-3646.3" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node80"><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,-3706.5 300,-3706.5 300,-3623.5 532,-3623.5 532,-3706.5"/>
<text text-anchor="middle" x="416" y="-3691.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="416" y="-3676.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="416" y="-3661.3" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="416" y="-3646.3" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="416" y="-3631.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="edge51" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M248.33,-3665C262.02,-3665 276.03,-3665 289.84,-3665"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3668.5001 299.85,-3665 289.85,-3661.5001 289.85,-3668.5001"/>
</g>
<!-- ZcashFoundation/zebra#2160 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#2160</title>
<g id="a_node81"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2160" xlink:title="ZcashFoundation/zebra#2160&#10;Security: MetaAddr&#10;refactor, gossip time,&#10;connection order,&#10;reconnection rate fixes&#10;(see tickets)" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3808 16,-3808 16,-3804 12,-3804 12,-3800 16,-3800 16,-3718 12,-3718 12,-3714 16,-3714 16,-3710 248,-3710 248,-3808"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3804 20,-3804 20,-3800 16,-3800 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3718 20,-3718 20,-3714 16,-3714 "/>
<text text-anchor="middle" x="132" y="-3792.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2160</text>
<text text-anchor="middle" x="132" y="-3777.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: MetaAddr</text>
<text text-anchor="middle" x="132" y="-3762.8" font-family="Times,serif" font-size="14.00" fill="#000000">refactor, gossip time,</text>
<text text-anchor="middle" x="132" y="-3747.8" font-family="Times,serif" font-size="14.00" fill="#000000">connection order,</text>
<text text-anchor="middle" x="132" y="-3732.8" font-family="Times,serif" font-size="14.00" fill="#000000">reconnection rate fixes</text>
<text text-anchor="middle" x="132" y="-3717.8" font-family="Times,serif" font-size="14.00" fill="#000000">(see tickets)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829 -->
<g id="node82" class="node">
<title>ZcashFoundation/zebra#829</title>
<g id="a_node82"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/829" xlink:title="ZcashFoundation/zebra#829&#10;Replace `primitive_types`&#10;with `bigint`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-3437.5 20.5,-3437.5 20.5,-3384.5 243.5,-3384.5 243.5,-3437.5"/>
<text text-anchor="middle" x="132" y="-3422.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#829</text>
<text text-anchor="middle" x="132" y="-3407.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace `primitive_types`</text>
<text text-anchor="middle" x="132" y="-3392.3" font-family="Times,serif" font-size="14.00" fill="#000000">with `bigint`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2050 -->
<g id="edge52" class="edge">
<title>ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2050</title>
<path fill="none" stroke="#000000" d="M243.84,-3424.4C258.86,-3426.2 274.36,-3428 289.61,-3429.9"/>
<polygon fill="#000000" stroke="#000000" points="289.2437,-3433.3811 299.59,-3431.1 290.0794,-3426.4311 289.2437,-3433.3811"/>
</g>
<!-- ZcashFoundation/zebra#2129 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#2129</title>
<g id="a_node83"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2129" xlink:title="ZcashFoundation/zebra#2129&#10;Add ZIP&#45;0244 TxId Digest&#10;support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-3400.5 300,-3400.5 300,-3396.5 296,-3396.5 296,-3392.5 300,-3392.5 300,-3355.5 296,-3355.5 296,-3351.5 300,-3351.5 300,-3347.5 532,-3347.5 532,-3400.5"/>
<polyline fill="none" stroke="#000000" points="300,-3396.5 304,-3396.5 304,-3392.5 300,-3392.5 "/>
<polyline fill="none" stroke="#000000" points="300,-3355.5 304,-3355.5 304,-3351.5 300,-3351.5 "/>
<text text-anchor="middle" x="416" y="-3385.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2129</text>
<text text-anchor="middle" x="416" y="-3370.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add ZIP&#45;0244 TxId Digest</text>
<text text-anchor="middle" x="416" y="-3355.3" font-family="Times,serif" font-size="14.00" fill="#000000">support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2129 -->
<g id="edge53" class="edge">
<title>ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2129</title>
<path fill="none" stroke="#000000" d="M243.84,-3396.4C258.86,-3394.5 274.36,-3392.5 289.61,-3390.5"/>
<polygon fill="#000000" stroke="#000000" points="290.1259,-3393.9625 299.59,-3389.2 289.2217,-3387.0211 290.1259,-3393.9625"/>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node84"><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" points="532,-3919.5 300,-3919.5 300,-3866.5 532,-3866.5 532,-3919.5"/>
<text text-anchor="middle" x="416" y="-3904.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="416" y="-3889.3" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="416" y="-3874.3" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2276 -->
<g id="node85" class="node">
<title>ZcashFoundation/zebra#2276</title>
<g id="a_node85"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2276" xlink:title="ZcashFoundation/zebra#2276&#10;Always send our local&#10;listener with the latest&#10;time" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3966 16,-3966 16,-3962 12,-3962 12,-3958 16,-3958 16,-3906 12,-3906 12,-3902 16,-3902 16,-3898 248,-3898 248,-3966"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3962 20,-3962 20,-3958 16,-3958 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3906 20,-3906 20,-3902 16,-3902 "/>
<text text-anchor="middle" x="132" y="-3950.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2276</text>
<text text-anchor="middle" x="132" y="-3935.8" font-family="Times,serif" font-size="14.00" fill="#000000">Always send our local</text>
<text text-anchor="middle" x="132" y="-3920.8" font-family="Times,serif" font-size="14.00" fill="#000000">listener with the latest</text>
<text text-anchor="middle" x="132" y="-3905.8" font-family="Times,serif" font-size="14.00" fill="#000000">time</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2276&#45;&gt;ZcashFoundation/zebra#2292 -->
<g id="edge54" class="edge">
<title>ZcashFoundation/zebra#2276&#45;&gt;ZcashFoundation/zebra#2292</title>
<path fill="none" stroke="#000000" d="M248.33,-3916C262.02,-3914.1 276.03,-3912.2 289.84,-3910.3"/>
<polygon fill="#000000" stroke="#000000" points="290.3841,-3913.7588 299.85,-3909 289.4825,-3906.8171 290.3841,-3913.7588"/>
</g>
<!-- ZcashFoundation/zebra#2277 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#2277</title>
<g id="a_node86"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2277" xlink:title="ZcashFoundation/zebra#2277&#10;Gossip dynamic local&#10;listener ports to peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3879.5 16,-3879.5 16,-3875.5 12,-3875.5 12,-3871.5 16,-3871.5 16,-3834.5 12,-3834.5 12,-3830.5 16,-3830.5 16,-3826.5 248,-3826.5 248,-3879.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3875.5 20,-3875.5 20,-3871.5 16,-3871.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3834.5 20,-3834.5 20,-3830.5 16,-3830.5 "/>
<text text-anchor="middle" x="132" y="-3864.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2277</text>
<text text-anchor="middle" x="132" y="-3849.3" font-family="Times,serif" font-size="14.00" fill="#000000">Gossip dynamic local</text>
<text text-anchor="middle" x="132" y="-3834.3" font-family="Times,serif" font-size="14.00" fill="#000000">listener ports to peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2277&#45;&gt;ZcashFoundation/zebra#2292 -->
<g id="edge55" class="edge">
<title>ZcashFoundation/zebra#2277&#45;&gt;ZcashFoundation/zebra#2292</title>
<path fill="none" stroke="#000000" d="M248.33,-3869.4C262.02,-3871.3 276.03,-3873.3 289.84,-3875.2"/>
<polygon fill="#000000" stroke="#000000" points="289.4616,-3878.6811 299.85,-3876.6 290.4312,-3871.7485 289.4616,-3878.6811"/>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node87"><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,-4037.5 16,-4037.5 16,-3984.5 248,-3984.5 248,-4037.5"/>
<text text-anchor="middle" x="132" y="-4022.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="132" y="-4007.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="132" y="-3992.3" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node88" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node88"><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,-2848.5 16,-2848.5 16,-2765.5 248,-2765.5 248,-2848.5"/>
<text text-anchor="middle" x="132" y="-2833.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="132" y="-2818.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="132" y="-2803.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="132" y="-2788.3" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="132" y="-2773.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="edge56" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M248.33,-2848.4C262.15,-2853.3 276.3,-2858.3 290.24,-2863.3"/>
<polygon fill="#000000" stroke="#000000" points="289.2552,-2866.6641 299.85,-2866.7 291.59,-2860.065 289.2552,-2866.6641"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge57" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M248.11,-2815.6C265.5,-2816.8 283.22,-2818 300,-2819 387.68,-2824.3 486.68,-2829.2 562.2,-2832.7"/>
<polygon fill="#000000" stroke="#000000" points="562.0883,-2836.1982 572.22,-2833.1 562.3676,-2829.2038 562.0883,-2836.1982"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node89"><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,-2810 300,-2810 300,-2742 532,-2742 532,-2810"/>
<text text-anchor="middle" x="416" y="-2794.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="416" y="-2779.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="416" y="-2764.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="416" y="-2749.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="edge58" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M248.33,-2794.3C262.02,-2792.8 276.03,-2791.3 289.84,-2789.8"/>
<polygon fill="#000000" stroke="#000000" points="290.2922,-2793.2715 299.85,-2788.7 289.5275,-2786.3134 290.2922,-2793.2715"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node90" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node90"><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,-2724 300,-2724 300,-2626 532,-2626 532,-2724"/>
<text text-anchor="middle" x="416" y="-2708.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="416" y="-2693.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="416" y="-2678.8" font-family="Times,serif" font-size="14.00" fill="#000000">immediately disconnecting</text>
<text text-anchor="middle" x="416" y="-2663.8" font-family="Times,serif" font-size="14.00" fill="#000000">from nodes that send</text>
<text text-anchor="middle" x="416" y="-2648.8" font-family="Times,serif" font-size="14.00" fill="#000000">unexpected messages,</text>
<text text-anchor="middle" x="416" y="-2633.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="edge59" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M244.31,-2765.4C251.03,-2762.4 257.64,-2759.2 264,-2756 280.94,-2747.4 283.49,-2742.4 300,-2733 302.27,-2731.7 304.57,-2730.4 306.9,-2729.1"/>
<polygon fill="#000000" stroke="#000000" points="308.8418,-2732.0293 315.98,-2724.2 305.5174,-2725.869 308.8418,-2732.0293"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge60" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M516.45,-2724.1C521.75,-2727 526.96,-2730 532,-2733 561.52,-2750.5 592.9,-2771.7 619.43,-2790.4"/>
<polygon fill="#000000" stroke="#000000" points="617.6917,-2793.4585 627.87,-2796.4 621.7476,-2787.7532 617.6917,-2793.4585"/>
</g>
<!-- ZcashFoundation/zebra#2288 -->
<g id="node91" class="node">
<title>ZcashFoundation/zebra#2288</title>
<g id="a_node91"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2288" xlink:title="ZcashFoundation/zebra#2288&#10;Batch math &amp; variable&#45;&#10;time multiscalar&#10;multiplication for&#10;redpallas" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4138.5 16,-4138.5 16,-4134.5 12,-4134.5 12,-4130.5 16,-4130.5 16,-4063.5 12,-4063.5 12,-4059.5 16,-4059.5 16,-4055.5 248,-4055.5 248,-4138.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4134.5 20,-4134.5 20,-4130.5 16,-4130.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4063.5 20,-4063.5 20,-4059.5 16,-4059.5 "/>
<text text-anchor="middle" x="132" y="-4123.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2288</text>
<text text-anchor="middle" x="132" y="-4108.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch math &amp; variable&#45;</text>
<text text-anchor="middle" x="132" y="-4093.3" font-family="Times,serif" font-size="14.00" fill="#000000">time multiscalar</text>
<text text-anchor="middle" x="132" y="-4078.3" font-family="Times,serif" font-size="14.00" fill="#000000">multiplication for</text>
<text text-anchor="middle" x="132" y="-4063.3" font-family="Times,serif" font-size="14.00" fill="#000000">redpallas</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2318 -->
<g id="node92" class="node">
<title>ZcashFoundation/zebra#2318</title>
<g id="a_node92"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2318" xlink:title="ZcashFoundation/zebra#2318&#10;RedPallas async verifier&#10;service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4123.5 300,-4123.5 300,-4119.5 296,-4119.5 296,-4115.5 300,-4115.5 300,-4078.5 296,-4078.5 296,-4074.5 300,-4074.5 300,-4070.5 532,-4070.5 532,-4123.5"/>
<polyline fill="none" stroke="#000000" points="300,-4119.5 304,-4119.5 304,-4115.5 300,-4115.5 "/>
<polyline fill="none" stroke="#000000" points="300,-4078.5 304,-4078.5 304,-4074.5 300,-4074.5 "/>
<text text-anchor="middle" x="416" y="-4108.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2318</text>
<text text-anchor="middle" x="416" y="-4093.3" font-family="Times,serif" font-size="14.00" fill="#000000">RedPallas async verifier</text>
<text text-anchor="middle" x="416" y="-4078.3" font-family="Times,serif" font-size="14.00" fill="#000000">service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2288&#45;&gt;ZcashFoundation/zebra#2318 -->
<g id="edge61" class="edge">
<title>ZcashFoundation/zebra#2288&#45;&gt;ZcashFoundation/zebra#2318</title>
<path fill="none" stroke="#000000" d="M248.33,-4097C262.02,-4097 276.03,-4097 289.84,-4097"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4100.5001 299.85,-4097 289.85,-4093.5001 289.85,-4100.5001"/>
</g>
<!-- ZcashFoundation/zebra#2317 -->
<g id="node93" class="node">
<title>ZcashFoundation/zebra#2317</title>
<g id="a_node93"><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="#c2e0c6" stroke="#000000" points="800,-4131 568,-4131 568,-4063 800,-4063 800,-4131"/>
<text text-anchor="middle" x="684" y="-4115.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2317</text>
<text text-anchor="middle" x="684" y="-4100.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate Orchard</text>
<text text-anchor="middle" x="684" y="-4085.8" font-family="Times,serif" font-size="14.00" fill="#000000">SpendAuth signatures for</text>
<text text-anchor="middle" x="684" y="-4070.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction::V5</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2318&#45;&gt;ZcashFoundation/zebra#2317 -->
<g id="edge62" class="edge">
<title>ZcashFoundation/zebra#2318&#45;&gt;ZcashFoundation/zebra#2317</title>
<path fill="none" stroke="#000000" d="M532.38,-4097C540.71,-4097 549.14,-4097 557.53,-4097"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-4100.5001 567.74,-4097 557.74,-4093.5001 557.74,-4100.5001"/>
</g>
<!-- ZcashFoundation/zebra#2102 -->
<g id="node94" class="node">
<title>ZcashFoundation/zebra#2102</title>
<g id="a_node94"><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="532,-4049 300,-4049 300,-3981 532,-3981 532,-4049"/>
<text text-anchor="middle" x="416" y="-4033.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2102</text>
<text text-anchor="middle" x="416" y="-4018.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Orchard binding</text>
<text text-anchor="middle" x="416" y="-4003.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification key</text>
<text text-anchor="middle" x="416" y="-3988.8" font-family="Times,serif" font-size="14.00" fill="#000000">derivation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2317 -->
<g id="edge63" class="edge">
<title>ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2317</title>
<path fill="none" stroke="#000000" d="M527.33,-4049.1C539.01,-4052.6 550.93,-4056.3 562.72,-4059.9"/>
<polygon fill="#000000" stroke="#000000" points="562.0043,-4063.3405 572.59,-4062.9 564.0401,-4056.6431 562.0043,-4063.3405"/>
</g>
<!-- ZcashFoundation/zebra#2103 -->
<g id="node95" class="node">
<title>ZcashFoundation/zebra#2103</title>
<g id="a_node95"><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="800,-4045 568,-4045 568,-3977 800,-3977 800,-4045"/>
<text text-anchor="middle" x="684" y="-4029.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2103</text>
<text text-anchor="middle" x="684" y="-4014.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate</text>
<text text-anchor="middle" x="684" y="-3999.8" font-family="Times,serif" font-size="14.00" fill="#000000">bindingSigOrchard for</text>
<text text-anchor="middle" x="684" y="-3984.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="edge64" class="edge">
<title>ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2103</title>
<path fill="none" stroke="#000000" d="M532.38,-4013.3C540.71,-4013.1 549.14,-4013 557.53,-4012.9"/>
<polygon fill="#000000" stroke="#000000" points="557.8105,-4016.3953 567.74,-4012.7 557.6733,-4009.3966 557.8105,-4016.3953"/>
</g>
<!-- ZcashFoundation/zebra#1970 -->
<g id="node96" class="node">
<title>ZcashFoundation/zebra#1970</title>
<g id="a_node96"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1970" xlink:title="ZcashFoundation/zebra#1970&#10;Design: Validate&#10;transparent coinbase&#10;outputs, update database&#10;to track UTXO provenance" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4257.5 16,-4257.5 16,-4174.5 248,-4174.5 248,-4257.5"/>
<text text-anchor="middle" x="132" y="-4242.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1970</text>
<text text-anchor="middle" x="132" y="-4227.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: Validate</text>
<text text-anchor="middle" x="132" y="-4212.3" font-family="Times,serif" font-size="14.00" fill="#000000">transparent coinbase</text>
<text text-anchor="middle" x="132" y="-4197.3" font-family="Times,serif" font-size="14.00" fill="#000000">outputs, update database</text>
<text text-anchor="middle" x="132" y="-4182.3" font-family="Times,serif" font-size="14.00" fill="#000000">to track UTXO provenance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2329 -->
<g id="node97" class="node">
<title>ZcashFoundation/zebra#2329</title>
<g id="a_node97"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2329" xlink:title="ZcashFoundation/zebra#2329&#10;State: Validate&#10;transparent coinbase&#10;outputs, update database&#10;to track UTXO provenance" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4263.5 300,-4263.5 300,-4180.5 532,-4180.5 532,-4263.5"/>
<text text-anchor="middle" x="416" y="-4248.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2329</text>
<text text-anchor="middle" x="416" y="-4233.3" font-family="Times,serif" font-size="14.00" fill="#000000">State: Validate</text>
<text text-anchor="middle" x="416" y="-4218.3" font-family="Times,serif" font-size="14.00" fill="#000000">transparent coinbase</text>
<text text-anchor="middle" x="416" y="-4203.3" font-family="Times,serif" font-size="14.00" fill="#000000">outputs, update database</text>
<text text-anchor="middle" x="416" y="-4188.3" font-family="Times,serif" font-size="14.00" fill="#000000">to track UTXO provenance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1970&#45;&gt;ZcashFoundation/zebra#2329 -->
<g id="edge65" class="edge">
<title>ZcashFoundation/zebra#1970&#45;&gt;ZcashFoundation/zebra#2329</title>
<path fill="none" stroke="#000000" d="M248.33,-4218.5C262.02,-4218.7 276.03,-4219 289.84,-4219.3"/>
<polygon fill="#000000" stroke="#000000" points="289.782,-4222.7994 299.85,-4219.5 289.9219,-4215.8008 289.782,-4222.7994"/>
</g>
<!-- ZcashFoundation/zebra#2330 -->
<g id="node98" class="node">
<title>ZcashFoundation/zebra#2330</title>
<g id="a_node98"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2330" xlink:title="ZcashFoundation/zebra#2330&#10;Transaction Verifier:&#10;Validate transparent&#10;coinbase outputs, update&#10;state requests to track&#10;UTXO provenance" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-4258 568,-4258 568,-4160 800,-4160 800,-4258"/>
<text text-anchor="middle" x="684" y="-4242.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2330</text>
<text text-anchor="middle" x="684" y="-4227.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction Verifier:</text>
<text text-anchor="middle" x="684" y="-4212.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate transparent</text>
<text text-anchor="middle" x="684" y="-4197.8" font-family="Times,serif" font-size="14.00" fill="#000000">coinbase outputs, update</text>
<text text-anchor="middle" x="684" y="-4182.8" font-family="Times,serif" font-size="14.00" fill="#000000">state requests to track</text>
<text text-anchor="middle" x="684" y="-4167.8" font-family="Times,serif" font-size="14.00" fill="#000000">UTXO provenance</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1970&#45;&gt;ZcashFoundation/zebra#2330 -->
<g id="edge66" class="edge">
<title>ZcashFoundation/zebra#1970&#45;&gt;ZcashFoundation/zebra#2330</title>
<path fill="none" stroke="#000000" d="M248.25,-4180.7C265.45,-4176.7 283.09,-4173.2 300,-4171 402.23,-4157.5 429.66,-4158.4 532,-4171 540.53,-4172.1 549.28,-4173.4 558.05,-4175"/>
<polygon fill="#000000" stroke="#000000" points="557.4695,-4178.4524 567.95,-4176.9 558.7889,-4171.5779 557.4695,-4178.4524"/>
</g>
<!-- ZcashFoundation/zebra#2329&#45;&gt;ZcashFoundation/zebra#2330 -->
<g id="edge67" class="edge">
<title>ZcashFoundation/zebra#2329&#45;&gt;ZcashFoundation/zebra#2330</title>
<path fill="none" stroke="#000000" d="M532.38,-4216.4C540.71,-4216 549.14,-4215.5 557.53,-4215.1"/>
<polygon fill="#000000" stroke="#000000" points="557.9232,-4218.585 567.74,-4214.6 557.5807,-4211.5934 557.9232,-4218.585"/>
</g>
<!-- ZcashFoundation/zcash_script#21 -->
<g id="node99" class="node">
<title>ZcashFoundation/zcash_script#21</title>
<g id="a_node99"><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,-4340.5 0,-4340.5 0,-4287.5 264,-4287.5 264,-4340.5"/>
<text text-anchor="middle" x="132" y="-4325.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zcash_script#21</text>
<text text-anchor="middle" x="132" y="-4310.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for V5</text>
<text text-anchor="middle" x="132" y="-4295.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2328 -->
<g id="node100" class="node">
<title>ZcashFoundation/zebra#2328</title>
<g id="a_node100"><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,-4340.5 300,-4340.5 300,-4287.5 532,-4287.5 532,-4340.5"/>
<text text-anchor="middle" x="416" y="-4325.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2328</text>
<text text-anchor="middle" x="416" y="-4310.3" font-family="Times,serif" font-size="14.00" fill="#000000">Update `zcash_script` to</text>
<text text-anchor="middle" x="416" y="-4295.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="edge68" class="edge">
<title>ZcashFoundation/zcash_script#21&#45;&gt;ZcashFoundation/zebra#2328</title>
<path fill="none" stroke="#000000" d="M264.02,-4314C272.47,-4314 280.96,-4314 289.38,-4314"/>
<polygon fill="#000000" stroke="#000000" points="289.6,-4317.5001 299.6,-4314 289.6,-4310.5001 289.6,-4317.5001"/>
</g>
<!-- ZcashFoundation/zebra#1981 -->
<g id="node101" class="node">
<title>ZcashFoundation/zebra#1981</title>
<g id="a_node101"><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="#c2e0c6" stroke="#000000" points="800,-4348 568,-4348 568,-4280 800,-4280 800,-4348"/>
<text text-anchor="middle" x="684" y="-4332.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1981</text>
<text text-anchor="middle" x="684" y="-4317.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Transparent and</text>
<text text-anchor="middle" x="684" y="-4302.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling validation for</text>
<text text-anchor="middle" x="684" y="-4287.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="edge69" class="edge">
<title>ZcashFoundation/zebra#2328&#45;&gt;ZcashFoundation/zebra#1981</title>
<path fill="none" stroke="#000000" d="M532.38,-4314C540.71,-4314 549.14,-4314 557.53,-4314"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-4317.5001 567.74,-4314 557.74,-4310.5001 557.74,-4317.5001"/>
</g>
<!-- ZcashFoundation/zebra#2343 -->
<g id="node102" class="node">
<title>ZcashFoundation/zebra#2343</title>
<g id="a_node102"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2343" xlink:title="ZcashFoundation/zebra#2343&#10;Move the Transaction&#10;network upgrade check to&#10;zebra&#45;chain" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4498 16,-4498 16,-4430 248,-4430 248,-4498"/>
<text text-anchor="middle" x="132" y="-4482.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2343</text>
<text text-anchor="middle" x="132" y="-4467.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move the Transaction</text>
<text text-anchor="middle" x="132" y="-4452.8" font-family="Times,serif" font-size="14.00" fill="#000000">network upgrade check to</text>
<text text-anchor="middle" x="132" y="-4437.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2308 -->
<g id="node103" class="node">
<title>ZcashFoundation/zebra#2308</title>
<g id="a_node103"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2308" xlink:title="ZcashFoundation/zebra#2308&#10;Legacy Chain Check" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4443 300,-4443 300,-4405 532,-4405 532,-4443"/>
<text text-anchor="middle" x="416" y="-4427.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2308</text>
<text text-anchor="middle" x="416" y="-4412.8" font-family="Times,serif" font-size="14.00" fill="#000000">Legacy Chain Check</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2343&#45;&gt;ZcashFoundation/zebra#2308 -->
<g id="edge70" class="edge">
<title>ZcashFoundation/zebra#2343&#45;&gt;ZcashFoundation/zebra#2308</title>
<path fill="none" stroke="#000000" d="M248.33,-4447.6C262.02,-4445.7 276.03,-4443.7 289.84,-4441.8"/>
<polygon fill="#000000" stroke="#000000" points="290.4312,-4445.2515 299.85,-4440.4 289.4616,-4438.3189 290.4312,-4445.2515"/>
</g>
<!-- ZcashFoundation/zebra#2344 -->
<g id="node104" class="node">
<title>ZcashFoundation/zebra#2344</title>
<g id="a_node104"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2344" xlink:title="ZcashFoundation/zebra#2344&#10;Add a path method to the&#10;FinalizedState" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4411.5 16,-4411.5 16,-4358.5 248,-4358.5 248,-4411.5"/>
<text text-anchor="middle" x="132" y="-4396.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2344</text>
<text text-anchor="middle" x="132" y="-4381.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add a path method to the</text>
<text text-anchor="middle" x="132" y="-4366.3" font-family="Times,serif" font-size="14.00" fill="#000000">FinalizedState</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2344&#45;&gt;ZcashFoundation/zebra#2308 -->
<g id="edge71" class="edge">
<title>ZcashFoundation/zebra#2344&#45;&gt;ZcashFoundation/zebra#2308</title>
<path fill="none" stroke="#000000" d="M248.33,-4401C262.02,-4402.9 276.03,-4404.8 289.84,-4406.7"/>
<polygon fill="#000000" stroke="#000000" points="289.4825,-4410.1829 299.85,-4408 290.3841,-4403.2412 289.4825,-4410.1829"/>
</g>
<!-- ZcashFoundation/zebra#2338 -->
<g id="node105" class="node">
<title>ZcashFoundation/zebra#2338</title>
<g id="a_node105"><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,-4569.5 16,-4569.5 16,-4516.5 248,-4516.5 248,-4569.5"/>
<text text-anchor="middle" x="132" y="-4554.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2338</text>
<text text-anchor="middle" x="132" y="-4539.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create Error enums in</text>
<text text-anchor="middle" x="132" y="-4524.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zebrad`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2339 -->
<g id="node106" class="node">
<title>ZcashFoundation/zebra#2339</title>
<g id="a_node106"><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,-4577 300,-4577 300,-4509 532,-4509 532,-4577"/>
<text text-anchor="middle" x="416" y="-4561.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2339</text>
<text text-anchor="middle" x="416" y="-4546.8" font-family="Times,serif" font-size="14.00" fill="#000000">Downcast and match</text>
<text text-anchor="middle" x="416" y="-4531.8" font-family="Times,serif" font-size="14.00" fill="#000000">Already Verified error</text>
<text text-anchor="middle" x="416" y="-4516.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="edge72" class="edge">
<title>ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339</title>
<path fill="none" stroke="#000000" d="M248.33,-4543C262.02,-4543 276.03,-4543 289.84,-4543"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4546.5001 299.85,-4543 289.85,-4539.5001 289.85,-4546.5001"/>
</g>
</g>
</svg>