developers/zcash-zf-dag.svg

1731 lines
133 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Pages: 1 -->
<svg width="1344pt" height="4910pt"
viewBox="0.00 0.00 1344.00 4910.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 4906)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-4906 1340,-4906 1340,4 -4,4"/>
<!-- ZcashFoundation/zebra#1135 -->
<g id="node1" class="node">
<title>ZcashFoundation/zebra#1135</title>
<g id="a_node1"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1135" xlink:title="ZcashFoundation/zebra#1135&#10;Refactor Network and&#10;NetworkUpgrade enums into&#10;structs and a trait" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-68 16,-68 16,0 248,0 248,-68"/>
<text text-anchor="middle" x="132" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="132" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="132" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="132" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title="ZcashFoundation/zebra#1011&#10;Re&#45;enable the&#10;BlockVerifier continuous_&#10;blockchain_test" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-68 300,-68 300,0 532,0 532,-68"/>
<text text-anchor="middle" x="416" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="416" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="416" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="416" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">blockchain_test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011 -->
<g id="edge1" class="edge">
<title>ZcashFoundation/zebra#1135&#45;&gt;ZcashFoundation/zebra#1011</title>
<path fill="none" stroke="#000000" d="M248.33,-34C262.02,-34 276.03,-34 289.84,-34"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-37.5001 299.85,-34 289.85,-30.5001 289.85,-37.5001"/>
</g>
<!-- ZcashFoundation/zebra#271 -->
<g id="node3" class="node">
<title>ZcashFoundation/zebra#271</title>
<g id="a_node3"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/271" xlink:title="ZcashFoundation/zebra#271&#10;Sapling Key Agreement and&#10;KDF" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-146.5 20.5,-146.5 20.5,-93.5 243.5,-93.5 243.5,-146.5"/>
<text text-anchor="middle" x="132" y="-131.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="132" y="-116.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="132" y="-101.3" font-family="Times,serif" font-size="14.00" fill="#000000">KDF</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#269 -->
<g id="node4" class="node">
<title>ZcashFoundation/zebra#269</title>
<g id="a_node4"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/269" xlink:title="ZcashFoundation/zebra#269&#10;Sapling note&#10;encryption/decryption&#10;implementation." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-154 304.5,-154 304.5,-86 527.5,-86 527.5,-154"/>
<text text-anchor="middle" x="416" y="-138.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="416" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note</text>
<text text-anchor="middle" x="416" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="416" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">implementation.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269 -->
<g id="edge2" class="edge">
<title>ZcashFoundation/zebra#271&#45;&gt;ZcashFoundation/zebra#269</title>
<path fill="none" stroke="#000000" d="M243.84,-120C260.29,-120 277.31,-120 293.96,-120"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-123.5001 304.27,-120 294.27,-116.5001 294.27,-123.5001"/>
</g>
<!-- ZcashFoundation/zebra#325 -->
<g id="node5" class="node">
<title>ZcashFoundation/zebra#325</title>
<g id="a_node5"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/325" xlink:title="ZcashFoundation/zebra#325&#10;Block Chain Scanning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-203 20.5,-203 20.5,-165 243.5,-165 243.5,-203"/>
<text text-anchor="middle" x="132" y="-187.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="132" y="-172.8" font-family="Times,serif" font-size="14.00" fill="#000000">Block Chain Scanning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619 -->
<g id="node6" class="node">
<title>ZcashFoundation/zebra#619</title>
<g id="a_node6"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/619" xlink:title="ZcashFoundation/zebra#619&#10;Tracking: sync and&#10;validate mainnet" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-274.5 20.5,-274.5 20.5,-221.5 243.5,-221.5 243.5,-274.5"/>
<text text-anchor="middle" x="132" y="-259.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="132" y="-244.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="132" y="-229.3" font-family="Times,serif" font-size="14.00" fill="#000000">validate mainnet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#466 -->
<g id="node7" class="node">
<title>ZcashFoundation/zebra#466</title>
<g id="a_node7"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/466" xlink:title="ZcashFoundation/zebra#466&#10;Design network&#10;integration test&#10;framework for Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-282 304.5,-282 304.5,-214 527.5,-214 527.5,-282"/>
<text text-anchor="middle" x="416" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="416" y="-251.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="416" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="416" y="-221.8" font-family="Times,serif" font-size="14.00" fill="#000000">framework for Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466 -->
<g id="edge3" class="edge">
<title>ZcashFoundation/zebra#619&#45;&gt;ZcashFoundation/zebra#466</title>
<path fill="none" stroke="#000000" d="M243.84,-248C260.29,-248 277.31,-248 293.96,-248"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-251.5001 304.27,-248 294.27,-244.5001 294.27,-251.5001"/>
</g>
<!-- ZcashFoundation/zebra#884 -->
<g id="node8" class="node">
<title>ZcashFoundation/zebra#884</title>
<g id="a_node8"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/884" xlink:title="ZcashFoundation/zebra#884&#10;Tracking: sync&#10;correctness" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-353.5 20.5,-353.5 20.5,-300.5 243.5,-300.5 243.5,-353.5"/>
<text text-anchor="middle" x="132" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="132" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="132" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">correctness</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#899 -->
<g id="node9" class="node">
<title>ZcashFoundation/zebra#899</title>
<g id="a_node9"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/899" xlink:title="ZcashFoundation/zebra#899&#10;Retcon new sync logic&#10;into RFC1" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-353.5 304.5,-353.5 304.5,-300.5 527.5,-300.5 527.5,-353.5"/>
<text text-anchor="middle" x="416" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="416" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="416" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">into RFC1</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899 -->
<g id="edge4" class="edge">
<title>ZcashFoundation/zebra#884&#45;&gt;ZcashFoundation/zebra#899</title>
<path fill="none" stroke="#000000" d="M243.84,-327C260.29,-327 277.31,-327 293.96,-327"/>
<polygon fill="#000000" stroke="#000000" points="294.27,-330.5001 304.27,-327 294.27,-323.5001 294.27,-330.5001"/>
</g>
<!-- ZcashFoundation/zebra#919 -->
<g id="node10" class="node">
<title>ZcashFoundation/zebra#919</title>
<g id="a_node10"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/919" xlink:title="ZcashFoundation/zebra#919&#10;Rewrite&#10;`block::tests::generate`&#10;as proptest strategies." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-447 20.5,-447 20.5,-379 243.5,-379 243.5,-447"/>
<text text-anchor="middle" x="132" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="132" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="132" y="-401.8" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="132" y="-386.8" font-family="Times,serif" font-size="14.00" fill="#000000">as proptest strategies.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1021 -->
<g id="node11" class="node">
<title>ZcashFoundation/zebra#1021</title>
<g id="a_node11"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1021" xlink:title="ZcashFoundation/zebra#1021&#10;Combine proptests and&#10;transcripts to perform&#10;top&#45;level integration&#10;tests" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-454.5 300,-454.5 300,-371.5 532,-371.5 532,-454.5"/>
<text text-anchor="middle" x="416" y="-439.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="416" y="-424.3" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="416" y="-409.3" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="416" y="-394.3" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="416" y="-379.3" font-family="Times,serif" font-size="14.00" fill="#000000">tests</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021 -->
<g id="edge5" class="edge">
<title>ZcashFoundation/zebra#919&#45;&gt;ZcashFoundation/zebra#1021</title>
<path fill="none" stroke="#000000" d="M243.84,-413C258.72,-413 274.06,-413 289.18,-413"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-416.5001 299.59,-413 289.59,-409.5001 289.59,-416.5001"/>
</g>
<!-- ZcashFoundation/zebra#889 -->
<g id="node12" class="node">
<title>ZcashFoundation/zebra#889</title>
<g id="a_node12"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/889" xlink:title="ZcashFoundation/zebra#889&#10;Tracking: inbound message&#10;handling." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-718.5 304.5,-718.5 304.5,-665.5 527.5,-665.5 527.5,-718.5"/>
<text text-anchor="middle" x="416" y="-703.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="416" y="-688.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="416" y="-673.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,-718.5 568,-718.5 568,-665.5 800,-665.5 800,-718.5"/>
<text text-anchor="middle" x="684" y="-703.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="684" y="-688.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle TransactionsByHash</text>
<text text-anchor="middle" x="684" y="-673.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,-692C537.52,-692 547.49,-692 557.41,-692"/>
<polygon fill="#000000" stroke="#000000" points="557.71,-695.5001 567.71,-692 557.71,-688.5001 557.71,-695.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,-726 16,-726 16,-658 248,-658 248,-726"/>
<text text-anchor="middle" x="132" y="-710.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="132" y="-695.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="132" y="-680.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="132" y="-665.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,-692C263.39,-692 278.85,-692 294,-692"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-695.5001 304.43,-692 294.43,-688.5001 294.43,-695.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,-647.5 568,-647.5 568,-594.5 800,-594.5 800,-647.5"/>
<text text-anchor="middle" x="684" y="-632.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="684" y="-617.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle `PushTransaction`</text>
<text text-anchor="middle" x="684" y="-602.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,-576 568,-576 568,-508 800,-508 800,-576"/>
<text text-anchor="middle" x="684" y="-560.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="684" y="-545.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="684" y="-530.8" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransaction` in</text>
<text text-anchor="middle" x="684" y="-515.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 sapling and orchard&#10;anchors to `zebra&#45;state`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-986.5 300,-986.5 300,-933.5 532,-933.5 532,-986.5"/>
<text text-anchor="middle" x="416" y="-971.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1320</text>
<text text-anchor="middle" x="416" y="-956.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add sapling and orchard</text>
<text text-anchor="middle" x="416" y="-941.3" font-family="Times,serif" font-size="14.00" fill="#000000">anchors to `zebra&#45;state`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="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,-1038 568,-1038 568,-1000 800,-1000 800,-1038"/>
<text text-anchor="middle" x="684" y="-1022.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="684" y="-1007.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,-985.62C550.85,-989.69 569.78,-993.86 587.73,-997.81"/>
<polygon fill="#000000" stroke="#000000" points="587.0714,-1001.2487 597.59,-999.98 588.576,-994.4124 587.0714,-1001.2487"/>
</g>
<!-- ZcashFoundation/zebra#2134 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#2134</title>
<g id="a_node19"><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,-932 568,-932 568,-864 800,-864 800,-932"/>
<text text-anchor="middle" x="684" y="-916.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2134</text>
<text text-anchor="middle" x="684" y="-901.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="684" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="684" y="-871.8" font-family="Times,serif" font-size="14.00" fill="#000000">the finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M530.82,-933.44C539.79,-931.36 548.88,-929.26 557.93,-927.17"/>
<polygon fill="#000000" stroke="#000000" points="558.7603,-930.5704 567.71,-924.9 557.1776,-923.7517 558.7603,-930.5704"/>
</g>
<!-- ZcashFoundation/zebra#2135 -->
<g id="node20" class="node">
<title>ZcashFoundation/zebra#2135</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2135" xlink:title="ZcashFoundation/zebra#2135&#10;ZIP&#45;221: Validate chain&#10;history commitments in&#10;the non&#45;finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1068,-963 836,-963 836,-895 1068,-895 1068,-963"/>
<text text-anchor="middle" x="952" y="-947.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2135</text>
<text text-anchor="middle" x="952" y="-932.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="952" y="-917.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="952" y="-902.8" font-family="Times,serif" font-size="14.00" fill="#000000">the non&#45;finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M532.42,-955.13C608.58,-951.72 710.24,-946.76 800,-941 808.35,-940.46 816.96,-939.88 825.64,-939.26"/>
<polygon fill="#000000" stroke="#000000" points="826.1195,-942.7345 835.84,-938.52 825.6129,-935.7529 826.1195,-942.7345"/>
</g>
<!-- ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M800.38,-911.46C808.71,-912.43 817.14,-913.4 825.53,-914.37"/>
<polygon fill="#000000" stroke="#000000" points="825.4043,-917.8787 835.74,-915.55 826.208,-910.925 825.4043,-917.8787"/>
</g>
<!-- ZcashFoundation/zebra#2048 -->
<g id="node21" class="node">
<title>ZcashFoundation/zebra#2048</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2048" xlink:title="ZcashFoundation/zebra#2048&#10;ZIP&#45;244: Implement&#10;transaction authorization&#10;hashes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1336,-901 1104,-901 1104,-833 1336,-833 1336,-901"/>
<text text-anchor="middle" x="1220" y="-885.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2048</text>
<text text-anchor="middle" x="1220" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement</text>
<text text-anchor="middle" x="1220" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction authorization</text>
<text text-anchor="middle" x="1220" y="-840.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="edge12" class="edge">
<title>ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M800.16,-888.48C812.26,-887.59 824.38,-886.75 836,-886 921.73,-880.5 1018.3,-875.72 1093.2,-872.34"/>
<polygon fill="#000000" stroke="#000000" points="1093.7682,-875.818 1103.6,-871.87 1093.4522,-868.8251 1093.7682,-875.818"/>
</g>
<!-- ZcashFoundation/zebra#2135&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#2135&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M1068.4,-902.08C1076.8,-900.13 1085.3,-898.16 1093.8,-896.19"/>
<polygon fill="#000000" stroke="#000000" points="1094.746,-899.5637 1103.7,-893.9 1093.1685,-892.7437 1094.746,-899.5637"/>
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id="node22" class="node">
<title>ZcashFoundation/zebra#1400</title>
<g id="a_node22"><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,-1058.5 16,-1058.5 16,-1005.5 248,-1005.5 248,-1058.5"/>
<text text-anchor="middle" x="132" y="-1043.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="132" y="-1028.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="132" y="-1013.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="node23" class="node">
<title>ZcashFoundation/zebra#1287</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1287" xlink:title="ZcashFoundation/zebra#1287&#10;Implement incremental,&#10;sparse note commitment&#10;trees for Sapling and&#10;Orchard" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-946.5 16,-946.5 16,-863.5 248,-863.5 248,-946.5"/>
<text text-anchor="middle" x="132" y="-931.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1287</text>
<text text-anchor="middle" x="132" y="-916.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement incremental,</text>
<text text-anchor="middle" x="132" y="-901.3" font-family="Times,serif" font-size="14.00" fill="#000000">sparse note commitment</text>
<text text-anchor="middle" x="132" y="-886.3" font-family="Times,serif" font-size="14.00" fill="#000000">trees for Sapling and</text>
<text text-anchor="middle" x="132" y="-871.3" font-family="Times,serif" font-size="14.00" fill="#000000">Orchard</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320</title>
<path fill="none" stroke="#000000" d="M248.33,-927.53C262.02,-930.18 276.03,-932.89 289.84,-935.57"/>
<polygon fill="#000000" stroke="#000000" points="289.3667,-939.0433 299.85,-937.51 290.6986,-932.1712 289.3667,-939.0433"/>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M248.05,-903.53C338.67,-902.38 464.41,-900.78 557.58,-899.6"/>
<polygon fill="#000000" stroke="#000000" points="557.6725,-903.0992 567.63,-899.48 557.5889,-896.0997 557.6725,-903.0992"/>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M206.01,-946.66C226.47,-960.54 247.55,-977.29 264,-996 287.1,-1022.3 270.14,-1047.8 300,-1066 394.92,-1123.9 696.15,-1086.7 800,-1047 843.25,-1030.5 884.23,-997.23 912.71,-970.24"/>
<polygon fill="#000000" stroke="#000000" points="915.2722,-972.6315 920.04,-963.17 910.4126,-967.5931 915.2722,-972.6315"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node24"><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,-876.5 300,-876.5 300,-823.5 532,-823.5 532,-876.5"/>
<text text-anchor="middle" x="416" y="-861.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="416" y="-846.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="416" y="-831.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="edge17" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2092</title>
<path fill="none" stroke="#000000" d="M248.33,-882.47C262.02,-879.82 276.03,-877.11 289.84,-874.43"/>
<polygon fill="#000000" stroke="#000000" points="290.6986,-877.8288 299.85,-872.49 289.3667,-870.9567 290.6986,-877.8288"/>
</g>
<!-- ZcashFoundation/zebra#2132 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#2132</title>
<g id="a_node25"><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,-805 300,-805 300,-737 532,-737 532,-805"/>
<text text-anchor="middle" x="416" y="-789.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2132</text>
<text text-anchor="middle" x="416" y="-774.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Integrate</text>
<text text-anchor="middle" x="416" y="-759.8" font-family="Times,serif" font-size="14.00" fill="#000000">history merkle mountain</text>
<text text-anchor="middle" x="416" y="-744.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="edge18" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2132</title>
<path fill="none" stroke="#000000" d="M203.64,-863.3C233.02,-846.96 267.68,-828.66 300,-814 303.64,-812.35 307.36,-810.71 311.13,-809.1"/>
<polygon fill="#000000" stroke="#000000" points="312.7372,-812.2212 320.6,-805.12 310.025,-805.7679 312.7372,-812.2212"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M514.8,-805.07C520.71,-807.89 526.49,-810.87 532,-814 549.86,-824.15 550.6,-832.08 568,-843 577.03,-848.67 586.74,-854.14 596.56,-859.29"/>
<polygon fill="#000000" stroke="#000000" points="595.0959,-862.4727 605.59,-863.93 598.2952,-856.2465 595.0959,-862.4727"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M532.23,-789C609.43,-802.75 712.32,-824.56 800,-855 827.41,-864.52 856.32,-877.72 881.48,-890.34"/>
<polygon fill="#000000" stroke="#000000" points="880.0695,-893.5492 890.57,-894.96 883.2412,-887.3089 880.0695,-893.5492"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M532.25,-774.12C608.57,-777.03 710.46,-782.58 800,-793 899.29,-804.55 1010.7,-824.5 1093.8,-840.78"/>
<polygon fill="#000000" stroke="#000000" points="1093.3135,-844.2512 1103.8,-842.74 1094.6599,-837.3819 1093.3135,-844.2512"/>
</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,-1227 16,-1227 16,-1159 248,-1159 248,-1227"/>
<text text-anchor="middle" x="132" y="-1211.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1311</text>
<text text-anchor="middle" x="132" y="-1196.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create function for post&#45;</text>
<text text-anchor="middle" x="132" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000">blossom height</text>
<text text-anchor="middle" x="132" y="-1166.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,-1219.5 300,-1219.5 300,-1215.5 296,-1215.5 296,-1211.5 300,-1211.5 300,-1174.5 296,-1174.5 296,-1170.5 300,-1170.5 300,-1166.5 532,-1166.5 532,-1219.5"/>
<polyline fill="none" stroke="#000000" points="300,-1215.5 304,-1215.5 304,-1211.5 300,-1211.5 "/>
<polyline fill="none" stroke="#000000" points="300,-1174.5 304,-1174.5 304,-1170.5 300,-1170.5 "/>
<text text-anchor="middle" x="416" y="-1204.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1170</text>
<text text-anchor="middle" x="416" y="-1189.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calculate and validate</text>
<text text-anchor="middle" x="416" y="-1174.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="edge22" class="edge">
<title>ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170</title>
<path fill="none" stroke="#000000" d="M248.33,-1193C262.02,-1193 276.03,-1193 289.84,-1193"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1196.5001 299.85,-1193 289.85,-1189.5001 289.85,-1196.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="edge23" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M435.04,-525.76C461.18,-560.63 511.44,-621.23 568,-656 570.78,-657.71 573.66,-659.35 576.6,-660.91"/>
<polygon fill="#000000" stroke="#000000" points="575.0881,-664.067 585.6,-665.39 578.2075,-657.8005 575.0881,-664.067"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M457.34,-525.6C487.23,-544.02 529.03,-568.16 568,-585 572.66,-587.01 577.47,-588.97 582.36,-590.85"/>
<polygon fill="#000000" stroke="#000000" points="581.2476,-594.1708 591.84,-594.4 583.7025,-587.6153 581.2476,-594.1708"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M527.72,-516.92C537.63,-518.51 547.7,-520.13 557.72,-521.74"/>
<polygon fill="#000000" stroke="#000000" points="557.2823,-525.2144 567.71,-523.34 558.3894,-518.3025 557.2823,-525.2144"/>
</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,-490 568,-490 568,-422 800,-422 800,-490"/>
<text text-anchor="middle" x="684" y="-474.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="684" y="-459.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="684" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactions` in</text>
<text text-anchor="middle" x="684" y="-429.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="edge26" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M527.72,-481.08C537.63,-479.49 547.7,-477.87 557.72,-476.26"/>
<polygon fill="#000000" stroke="#000000" points="558.3894,-479.6975 567.71,-474.66 557.2823,-472.7856 558.3894,-479.6975"/>
</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="#fad8c7" stroke="#000000" points="795.5,-404 572.5,-404 572.5,-336 795.5,-336 795.5,-404"/>
<text text-anchor="middle" x="684" y="-388.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="684" y="-373.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="684" y="-358.8" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="684" y="-343.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="edge27" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M516.74,-472.41C522.08,-469.57 527.21,-466.45 532,-463 554.23,-447 546.22,-429.59 568,-413 569.57,-411.8 571.18,-410.64 572.82,-409.5"/>
<polygon fill="#000000" stroke="#000000" points="574.7384,-412.4276 581.25,-404.07 570.9478,-406.5428 574.7384,-412.4276"/>
</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,-317.5 572.5,-317.5 572.5,-264.5 795.5,-264.5 795.5,-317.5"/>
<text text-anchor="middle" x="684" y="-302.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#484</text>
<text text-anchor="middle" x="684" y="-287.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit transaction size in</text>
<text text-anchor="middle" x="684" y="-272.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="edge28" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484</title>
<path fill="none" stroke="#000000" d="M521.27,-472.33C525.11,-469.53 528.72,-466.42 532,-463 575.27,-417.87 524.73,-372.13 568,-327 568.92,-326.04 569.87,-325.1 570.84,-324.19"/>
<polygon fill="#000000" stroke="#000000" points="573.2509,-326.7381 578.73,-317.67 568.7919,-321.3421 573.2509,-326.7381"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node32"><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,-1057.5 304.5,-1057.5 304.5,-1004.5 527.5,-1004.5 527.5,-1057.5"/>
<text text-anchor="middle" x="416" y="-1042.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="416" y="-1027.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="416" y="-1012.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="edge29" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M527.72,-1026C537.63,-1025.6 547.7,-1025.1 557.72,-1024.7"/>
<polygon fill="#000000" stroke="#000000" points="557.8975,-1028.1956 567.71,-1024.2 557.5475,-1021.2043 557.8975,-1028.1956"/>
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#1086</title>
<g id="a_node33"><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,-1457.5 16,-1457.5 16,-1374.5 248,-1374.5 248,-1457.5"/>
<text text-anchor="middle" x="132" y="-1442.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1086</text>
<text text-anchor="middle" x="132" y="-1427.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove git dependencies</text>
<text text-anchor="middle" x="132" y="-1412.3" font-family="Times,serif" font-size="14.00" fill="#000000">on Hyper, Metrics, Tower,</text>
<text text-anchor="middle" x="132" y="-1397.3" font-family="Times,serif" font-size="14.00" fill="#000000">ed25519&#45;zebra, lexical&#45;</text>
<text text-anchor="middle" x="132" y="-1382.3" font-family="Times,serif" font-size="14.00" fill="#000000">core</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node34"><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,-1499 300,-1499 300,-1461 532,-1461 532,-1499"/>
<text text-anchor="middle" x="416" y="-1483.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="416" y="-1468.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="edge30" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686</title>
<path fill="none" stroke="#000000" d="M248.33,-1442.2C272.73,-1447.7 298.17,-1453.4 321.64,-1458.7"/>
<polygon fill="#000000" stroke="#000000" points="321.0381,-1462.1532 331.57,-1461 322.6177,-1455.3337 321.0381,-1462.1532"/>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node35"><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,-1442.5 300,-1442.5 300,-1389.5 532,-1389.5 532,-1442.5"/>
<text text-anchor="middle" x="416" y="-1427.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="416" y="-1412.3" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="416" y="-1397.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="edge31" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112</title>
<path fill="none" stroke="#000000" d="M248.33,-1416C262.02,-1416 276.03,-1416 289.84,-1416"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1419.5001 299.85,-1416 289.85,-1412.5001 289.85,-1419.5001"/>
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#2200</title>
<g id="a_node36"><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,-1317 300,-1317 300,-1279 532,-1279 532,-1317"/>
<text text-anchor="middle" x="416" y="-1301.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2200</text>
<text text-anchor="middle" x="416" y="-1286.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="edge32" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200</title>
<path fill="none" stroke="#000000" d="M232.13,-1374.4C275.23,-1356.5 323.98,-1336.2 360.45,-1321.1"/>
<polygon fill="#000000" stroke="#000000" points="362.0699,-1324.2153 369.92,-1317.1 359.3462,-1317.7669 362.0699,-1324.2153"/>
</g>
<!-- ZcashFoundation/zebra#2193 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#2193</title>
<g id="a_node37"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2193" xlink:title="ZcashFoundation/zebra#2193&#10;Redesign zebra&#45;network so&#10;it&#39;s less sensitive to&#10;message order, timing,&#10;buffer size" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1512.5 568,-1512.5 568,-1429.5 800,-1429.5 800,-1512.5"/>
<text text-anchor="middle" x="684" y="-1497.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2193</text>
<text text-anchor="middle" x="684" y="-1482.3" font-family="Times,serif" font-size="14.00" fill="#000000">Redesign zebra&#45;network so</text>
<text text-anchor="middle" x="684" y="-1467.3" font-family="Times,serif" font-size="14.00" fill="#000000">it&#39;s less sensitive to</text>
<text text-anchor="middle" x="684" y="-1452.3" font-family="Times,serif" font-size="14.00" fill="#000000">message order, timing,</text>
<text text-anchor="middle" x="684" y="-1437.3" font-family="Times,serif" font-size="14.00" fill="#000000">buffer size</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193 -->
<g id="edge33" class="edge">
<title>ZcashFoundation/zebra#2112&#45;&gt;ZcashFoundation/zebra#2193</title>
<path fill="none" stroke="#000000" d="M532.38,-1439.9C540.81,-1441.6 549.33,-1443.4 557.81,-1445.1"/>
<polygon fill="#000000" stroke="#000000" points="557.2458,-1448.5566 567.74,-1447.1 558.6279,-1441.6944 557.2458,-1448.5566"/>
</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,-1411 568,-1411 568,-1343 800,-1343 800,-1411"/>
<text text-anchor="middle" x="684" y="-1395.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="684" y="-1380.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="684" y="-1365.8" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="684" y="-1350.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="edge34" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202</title>
<path fill="none" stroke="#000000" d="M480.53,-1317C504.05,-1324 531.52,-1332.1 558.52,-1340"/>
<polygon fill="#000000" stroke="#000000" points="557.8596,-1343.4534 568.44,-1342.9 559.8238,-1336.7346 557.8596,-1343.4534"/>
</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,-1324.5 568,-1324.5 568,-1271.5 800,-1271.5 800,-1324.5"/>
<text text-anchor="middle" x="684" y="-1309.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="684" y="-1294.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="684" y="-1279.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="edge35" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201</title>
<path fill="none" stroke="#000000" d="M532.38,-1298C540.71,-1298 549.14,-1298 557.53,-1298"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-1301.5001 567.74,-1298 557.74,-1294.5001 557.74,-1301.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,-1253.5 568,-1253.5 568,-1200.5 800,-1200.5 800,-1253.5"/>
<text text-anchor="middle" x="684" y="-1238.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="684" y="-1223.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="684" y="-1208.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="edge36" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268</title>
<path fill="none" stroke="#000000" d="M487.82,-1279C514.29,-1272 544.91,-1263.8 573.98,-1256.1"/>
<polygon fill="#000000" stroke="#000000" points="574.9469,-1259.4655 583.77,-1253.6 573.2149,-1252.6831 574.9469,-1259.4655"/>
</g>
<!-- ZcashFoundation/zebra#2391 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#2391</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2391" xlink:title="ZcashFoundation/zebra#2391&#10;Reduce the dependencies&#10;on different versions of&#10;`rand`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="800,-1182 568,-1182 568,-1114 800,-1114 800,-1182"/>
<text text-anchor="middle" x="684" y="-1166.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2391</text>
<text text-anchor="middle" x="684" y="-1151.8" font-family="Times,serif" font-size="14.00" fill="#000000">Reduce the dependencies</text>
<text text-anchor="middle" x="684" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000">on different versions of</text>
<text text-anchor="middle" x="684" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000">`rand`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391 -->
<g id="edge37" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2391</title>
<path fill="none" stroke="#000000" d="M452.84,-1279C476.46,-1266 507.22,-1247.7 532,-1228 549.97,-1213.7 548.77,-1203.5 568,-1191 570.13,-1189.6 572.3,-1188.3 574.52,-1187"/>
<polygon fill="#000000" stroke="#000000" points="576.2551,-1190.0399 583.27,-1182.1 572.8348,-1183.9323 576.2551,-1190.0399"/>
</g>
<!-- ZcashFoundation/zebra#950 -->
<g id="node42" class="node">
<title>ZcashFoundation/zebra#950</title>
<g id="a_node42"><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,-1544 20.5,-1544 20.5,-1476 243.5,-1476 243.5,-1544"/>
<text text-anchor="middle" x="132" y="-1528.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="132" y="-1513.8" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="132" y="-1498.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="132" y="-1483.8" font-family="Times,serif" font-size="14.00" fill="#000000">syncing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#692 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#692</title>
<g id="a_node43"><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,-1615.5 20.5,-1615.5 20.5,-1562.5 243.5,-1562.5 243.5,-1615.5"/>
<text text-anchor="middle" x="132" y="-1600.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="132" y="-1585.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="132" y="-1570.3" font-family="Times,serif" font-size="14.00" fill="#000000">platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1791 -->
<g id="node44" class="node">
<title>ZcashFoundation/zebra#1791</title>
<g id="a_node44"><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,-1783.5 300,-1783.5 300,-1730.5 532,-1730.5 532,-1783.5"/>
<text text-anchor="middle" x="416" y="-1768.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="416" y="-1753.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="-1738.3" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1007 -->
<g id="node45" class="node">
<title>ZcashFoundation/zebra#1007</title>
<g id="a_node45"><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,-1791 568,-1791 568,-1787 564,-1787 564,-1783 568,-1783 568,-1731 564,-1731 564,-1727 568,-1727 568,-1723 800,-1723 800,-1791"/>
<polyline fill="none" stroke="#000000" points="568,-1787 572,-1787 572,-1783 568,-1783 "/>
<polyline fill="none" stroke="#000000" points="568,-1731 572,-1731 572,-1727 568,-1727 "/>
<text text-anchor="middle" x="684" y="-1775.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="684" y="-1760.8" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="684" y="-1745.8" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="684" y="-1730.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="edge38" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M532.38,-1757C540.71,-1757 549.14,-1757 557.53,-1757"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-1760.5001 567.74,-1757 557.74,-1753.5001 557.74,-1760.5001"/>
</g>
<!-- ZcashFoundation/zebra#1827 -->
<g id="node46" class="node">
<title>ZcashFoundation/zebra#1827</title>
<g id="a_node46"><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,-1904.5 16,-1904.5 16,-1821.5 248,-1821.5 248,-1904.5"/>
<text text-anchor="middle" x="132" y="-1889.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="132" y="-1874.3" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="132" y="-1859.3" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="132" y="-1844.3" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="132" y="-1829.3" font-family="Times,serif" font-size="14.00" fill="#000000">`PreActivationVersion`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1828 -->
<g id="node47" class="node">
<title>ZcashFoundation/zebra#1828</title>
<g id="a_node47"><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,-1991 16,-1991 16,-1923 248,-1923 248,-1991"/>
<text text-anchor="middle" x="132" y="-1975.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1828</text>
<text text-anchor="middle" x="132" y="-1960.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move duplicate</text>
<text text-anchor="middle" x="132" y="-1945.8" font-family="Times,serif" font-size="14.00" fill="#000000">`Transaction` code into</text>
<text text-anchor="middle" x="132" y="-1930.8" font-family="Times,serif" font-size="14.00" fill="#000000">methods</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1592 -->
<g id="node48" class="node">
<title>ZcashFoundation/zebra#1592</title>
<g id="a_node48"><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,-2062.5 16,-2062.5 16,-2009.5 248,-2009.5 248,-2062.5"/>
<text text-anchor="middle" x="132" y="-2047.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="132" y="-2032.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="132" y="-2017.3" font-family="Times,serif" font-size="14.00" fill="#000000">hangs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1817 -->
<g id="node49" class="node">
<title>ZcashFoundation/zebra#1817</title>
<g id="a_node49"><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,-2085 300,-2085 300,-2081 296,-2081 296,-2077 300,-2077 300,-1995 296,-1995 296,-1991 300,-1991 300,-1987 532,-1987 532,-2085"/>
<polyline fill="none" stroke="#000000" points="300,-2081 304,-2081 304,-2077 300,-2077 "/>
<polyline fill="none" stroke="#000000" points="300,-1995 304,-1995 304,-1991 300,-1991 "/>
<text text-anchor="middle" x="416" y="-2069.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="416" y="-2054.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="416" y="-2039.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="416" y="-2024.8" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="416" y="-2009.8" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="416" y="-1994.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="edge39" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M248.33,-2036C262.02,-2036 276.03,-2036 289.84,-2036"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2039.5001 299.85,-2036 289.85,-2032.5001 289.85,-2039.5001"/>
</g>
<!-- ZcashFoundation/zebra#1841 -->
<g id="node50" class="node">
<title>ZcashFoundation/zebra#1841</title>
<g id="a_node50"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1841" xlink:title="ZcashFoundation/zebra#1841&#10;ZIP&#45;252: Update Zebra and&#10;DNS Seeders with NU5&#10;heights and protocol&#10;versions" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2163.5 16,-2163.5 16,-2080.5 248,-2080.5 248,-2163.5"/>
<text text-anchor="middle" x="132" y="-2148.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="132" y="-2133.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;252: Update Zebra and</text>
<text text-anchor="middle" x="132" y="-2118.3" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="132" y="-2103.3" font-family="Times,serif" font-size="14.00" fill="#000000">heights and protocol</text>
<text text-anchor="middle" x="132" y="-2088.3" font-family="Times,serif" font-size="14.00" fill="#000000">versions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node51"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1865" xlink:title="ZcashFoundation/zebra#1865&#10;Security: Running Zebra&#10;nodes should eventually&#10;stop trying to contact&#10;peers that always fail" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2351.5 16,-2351.5 16,-2268.5 248,-2268.5 248,-2351.5"/>
<text text-anchor="middle" x="132" y="-2336.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="132" y="-2321.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="132" y="-2306.3" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="132" y="-2291.3" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="132" y="-2276.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node52"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1956" xlink:title="ZcashFoundation/zebra#1956&#10;Zebra should store a&#10;persistent list of recent&#10;successful peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-2297 300,-2297 300,-2229 532,-2229 532,-2297"/>
<text text-anchor="middle" x="416" y="-2281.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="416" y="-2266.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="416" y="-2251.8" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="416" y="-2236.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="edge40" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M248.33,-2290.7C262.02,-2288.5 276.03,-2286.2 289.84,-2283.9"/>
<polygon fill="#000000" stroke="#000000" points="290.5772,-2287.325 299.85,-2282.2 289.4051,-2280.4238 290.5772,-2287.325"/>
</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,-1701.5 300,-1701.5 300,-1648.5 532,-1648.5 532,-1701.5"/>
<text text-anchor="middle" x="416" y="-1686.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="416" y="-1671.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="-1656.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" stroke-width="2" points="248,-2438 16,-2438 16,-2370 248,-2370 248,-2438"/>
<text text-anchor="middle" x="132" y="-2422.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="132" y="-2407.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="132" y="-2392.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="132" y="-2377.8" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node55"><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,-1716.5 16,-1716.5 16,-1633.5 248,-1633.5 248,-1716.5"/>
<text text-anchor="middle" x="132" y="-1701.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="132" y="-1686.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="132" y="-1671.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="132" y="-1656.3" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="132" y="-1641.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,-1708.6C270.25,-1714.9 293.01,-1721.5 314.44,-1727.7"/>
<polygon fill="#000000" stroke="#000000" points="313.6022,-1731.1008 324.18,-1730.5 315.5363,-1724.3733 313.6022,-1731.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,-1675C262.02,-1675 276.03,-1675 289.84,-1675"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-1678.5001 299.85,-1675 289.85,-1671.5001 289.85,-1678.5001"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node56"><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,-2539.5 16,-2539.5 16,-2456.5 248,-2456.5 248,-2539.5"/>
<text text-anchor="middle" x="132" y="-2524.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="132" y="-2509.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="132" y="-2494.3" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="132" y="-2479.3" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="132" y="-2464.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node57"><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,-2532 300,-2532 300,-2464 532,-2464 532,-2532"/>
<text text-anchor="middle" x="416" y="-2516.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="416" y="-2501.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="416" y="-2486.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="416" y="-2471.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,-2498C262.02,-2498 276.03,-2498 289.84,-2498"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-2501.5001 299.85,-2498 289.85,-2494.5001 289.85,-2501.5001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node58"><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,-1803 16,-1803 16,-1735 248,-1735 248,-1803"/>
<text text-anchor="middle" x="132" y="-1787.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="132" y="-1772.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="-1757.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="-1742.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,-1764.1C262.02,-1763.5 276.03,-1762.9 289.84,-1762.3"/>
<polygon fill="#000000" stroke="#000000" points="289.9978,-1765.7966 299.85,-1761.9 289.7182,-1758.8022 289.9978,-1765.7966"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node59"><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,-2640.5 16,-2640.5 16,-2557.5 248,-2557.5 248,-2640.5"/>
<text text-anchor="middle" x="132" y="-2625.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="132" y="-2610.3" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="132" y="-2595.3" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="132" y="-2580.3" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="132" y="-2565.3" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#1851</title>
<g id="a_node60"><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,-2727 16,-2727 16,-2659 248,-2659 248,-2727"/>
<text text-anchor="middle" x="132" y="-2711.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1851</text>
<text text-anchor="middle" x="132" y="-2696.8" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the number of</text>
<text text-anchor="middle" x="132" y="-2681.8" font-family="Times,serif" font-size="14.00" fill="#000000">connected peers in the</text>
<text text-anchor="middle" x="132" y="-2666.8" font-family="Times,serif" font-size="14.00" fill="#000000">PeerSet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id="node61" class="node">
<title>ZcashFoundation/zebra#1850</title>
<g id="a_node61"><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,-2828.5 16,-2828.5 16,-2745.5 248,-2745.5 248,-2828.5"/>
<text text-anchor="middle" x="132" y="-2813.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1850</text>
<text text-anchor="middle" x="132" y="-2798.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="132" y="-2783.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound peer</text>
<text text-anchor="middle" x="132" y="-2768.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections when dialing</text>
<text text-anchor="middle" x="132" y="-2753.3" font-family="Times,serif" font-size="14.00" fill="#000000">new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node62"><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,-3030.5 300,-3030.5 300,-2947.5 532,-2947.5 532,-3030.5"/>
<text text-anchor="middle" x="416" y="-3015.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="416" y="-3000.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="416" y="-2985.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="416" y="-2970.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="416" y="-2955.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node63" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node63"><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,-2960.5 572.5,-2960.5 572.5,-2877.5 795.5,-2877.5 795.5,-2960.5"/>
<text text-anchor="middle" x="684" y="-2945.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="684" y="-2930.3" font-family="Times,serif" font-size="14.00" fill="#000000">Do we need to prefer</text>
<text text-anchor="middle" x="684" y="-2915.3" font-family="Times,serif" font-size="14.00" fill="#000000">evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="684" y="-2900.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="684" y="-2885.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,-2958.6C542.34,-2956 552.43,-2953.4 562.43,-2950.8"/>
<polygon fill="#000000" stroke="#000000" points="563.5983,-2954.1124 572.39,-2948.2 561.8302,-2947.3394 563.5983,-2954.1124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node64"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1894" xlink:title="ZcashFoundation/zebra#1894&#10;Zebra should follow OS&#10;directory conventions&#10;better" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-2250 16,-2250 16,-2182 248,-2182 248,-2250"/>
<text text-anchor="middle" x="132" y="-2234.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="132" y="-2219.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="132" y="-2204.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="132" y="-2189.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="M248.33,-2235.3C262.02,-2237.5 276.03,-2239.8 289.84,-2242.1"/>
<polygon fill="#000000" stroke="#000000" points="289.4051,-2245.5762 299.85,-2243.8 290.5772,-2238.675 289.4051,-2245.5762"/>
</g>
<!-- ZcashFoundation/zebra#1874 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#1874</title>
<g id="a_node65"><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,-3016 16,-3016 16,-2948 248,-2948 248,-3016"/>
<text text-anchor="middle" x="132" y="-3000.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1874</text>
<text text-anchor="middle" x="132" y="-2985.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP 244: Transaction</text>
<text text-anchor="middle" x="132" y="-2970.8" font-family="Times,serif" font-size="14.00" fill="#000000">Identifier Non&#45;</text>
<text text-anchor="middle" x="132" y="-2955.8" font-family="Times,serif" font-size="14.00" fill="#000000">Malleability</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1567 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#1567</title>
<g id="a_node66"><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,-3087.5 16,-3087.5 16,-3034.5 248,-3034.5 248,-3087.5"/>
<text text-anchor="middle" x="132" y="-3072.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1567</text>
<text text-anchor="middle" x="132" y="-3057.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Block Header</text>
<text text-anchor="middle" x="132" y="-3042.3" font-family="Times,serif" font-size="14.00" fill="#000000">Chain History Commitment</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node67"><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,-3158.5 16,-3158.5 16,-3105.5 248,-3105.5 248,-3158.5"/>
<text text-anchor="middle" x="132" y="-3143.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="132" y="-3128.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="132" y="-3113.3" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node68"><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,-3245 16,-3245 16,-3177 248,-3177 248,-3245"/>
<text text-anchor="middle" x="132" y="-3229.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="132" y="-3214.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="132" y="-3199.8" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="132" y="-3184.8" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node69"><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,-3331 16,-3331 16,-3263 248,-3263 248,-3331"/>
<text text-anchor="middle" x="132" y="-3315.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="132" y="-3300.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="132" y="-3285.8" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="132" y="-3270.8" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node70"><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,-3402.5 16,-3402.5 16,-3398.5 12,-3398.5 12,-3394.5 16,-3394.5 16,-3357.5 12,-3357.5 12,-3353.5 16,-3353.5 16,-3349.5 248,-3349.5 248,-3402.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3398.5 20,-3398.5 20,-3394.5 16,-3394.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-3357.5 20,-3357.5 20,-3353.5 16,-3353.5 "/>
<text text-anchor="middle" x="132" y="-3387.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="132" y="-3372.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="132" y="-3357.3" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node71"><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,-3410 300,-3410 300,-3342 532,-3342 532,-3410"/>
<text text-anchor="middle" x="416" y="-3394.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="416" y="-3379.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="416" y="-3364.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="416" y="-3349.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,-3376C262.02,-3376 276.03,-3376 289.84,-3376"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3379.5001 299.85,-3376 289.85,-3372.5001 289.85,-3379.5001"/>
</g>
<!-- ZcashFoundation/zebra#1895 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#1895</title>
<g id="a_node72"><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,-3582.5 300,-3582.5 300,-3499.5 532,-3499.5 532,-3582.5"/>
<text text-anchor="middle" x="416" y="-3567.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1895</text>
<text text-anchor="middle" x="416" y="-3552.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209: Prohibit</text>
<text text-anchor="middle" x="416" y="-3537.3" font-family="Times,serif" font-size="14.00" fill="#000000">Negative Shielded Chain</text>
<text text-anchor="middle" x="416" y="-3522.3" font-family="Times,serif" font-size="14.00" fill="#000000">Value Pool Balances &#45;</text>
<text text-anchor="middle" x="416" y="-3507.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node73"><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,-3668.5 16,-3668.5 16,-3615.5 248,-3615.5 248,-3668.5"/>
<text text-anchor="middle" x="132" y="-3653.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="132" y="-3638.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="132" y="-3623.3" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node74"><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,-3683.5 300,-3683.5 300,-3600.5 532,-3600.5 532,-3683.5"/>
<text text-anchor="middle" x="416" y="-3668.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="416" y="-3653.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="416" y="-3638.3" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="416" y="-3623.3" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="416" y="-3608.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="edge48" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M248.33,-3642C262.02,-3642 276.03,-3642 289.84,-3642"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3645.5001 299.85,-3642 289.85,-3638.5001 289.85,-3645.5001"/>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node75"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2292" xlink:title="ZcashFoundation/zebra#2292&#10;Cleanup MetaAddr after&#10;security fixes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3739.5 16,-3739.5 16,-3686.5 248,-3686.5 248,-3739.5"/>
<text text-anchor="middle" x="132" y="-3724.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="132" y="-3709.3" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="132" y="-3694.3" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node76"><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,-3810.5 16,-3810.5 16,-3757.5 248,-3757.5 248,-3810.5"/>
<text text-anchor="middle" x="132" y="-3795.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="132" y="-3780.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="132" y="-3765.3" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node77"><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,-2929.5 16,-2929.5 16,-2846.5 248,-2846.5 248,-2929.5"/>
<text text-anchor="middle" x="132" y="-2914.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="132" y="-2899.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="132" y="-2884.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="132" y="-2869.3" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="132" y="-2854.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="edge49" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M248.33,-2929.4C262.15,-2934.3 276.3,-2939.3 290.24,-2944.3"/>
<polygon fill="#000000" stroke="#000000" points="289.2552,-2947.6641 299.85,-2947.7 291.59,-2941.065 289.2552,-2947.6641"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge50" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M248.11,-2896.6C265.5,-2897.8 283.22,-2899 300,-2900 387.68,-2905.3 486.68,-2910.2 562.2,-2913.7"/>
<polygon fill="#000000" stroke="#000000" points="562.0883,-2917.1982 572.22,-2914.1 562.3676,-2910.2038 562.0883,-2917.1982"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node78"><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,-2891 300,-2891 300,-2823 532,-2823 532,-2891"/>
<text text-anchor="middle" x="416" y="-2875.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="416" y="-2860.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="416" y="-2845.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="416" y="-2830.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="edge51" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M248.33,-2875.3C262.02,-2873.8 276.03,-2872.3 289.84,-2870.8"/>
<polygon fill="#000000" stroke="#000000" points="290.2922,-2874.2715 299.85,-2869.7 289.5275,-2867.3134 290.2922,-2874.2715"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node79"><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,-2805 300,-2805 300,-2707 532,-2707 532,-2805"/>
<text text-anchor="middle" x="416" y="-2789.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="416" y="-2774.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="416" y="-2759.8" font-family="Times,serif" font-size="14.00" fill="#000000">immediately disconnecting</text>
<text text-anchor="middle" x="416" y="-2744.8" font-family="Times,serif" font-size="14.00" fill="#000000">from nodes that send</text>
<text text-anchor="middle" x="416" y="-2729.8" font-family="Times,serif" font-size="14.00" fill="#000000">unexpected messages,</text>
<text text-anchor="middle" x="416" y="-2714.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="edge52" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M244.31,-2846.4C251.03,-2843.4 257.64,-2840.2 264,-2837 280.94,-2828.4 283.49,-2823.4 300,-2814 302.27,-2812.7 304.57,-2811.4 306.9,-2810.1"/>
<polygon fill="#000000" stroke="#000000" points="308.8418,-2813.0293 315.98,-2805.2 305.5174,-2806.869 308.8418,-2813.0293"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge53" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M516.45,-2805.1C521.75,-2808 526.96,-2811 532,-2814 561.52,-2831.5 592.9,-2852.7 619.43,-2871.4"/>
<polygon fill="#000000" stroke="#000000" points="617.6917,-2874.4585 627.87,-2877.4 621.7476,-2868.7532 617.6917,-2874.4585"/>
</g>
<!-- ZcashFoundation/zebra#2102 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#2102</title>
<g id="a_node80"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2102" xlink:title="ZcashFoundation/zebra#2102&#10;Implement Orchard binding&#10;verification key&#10;derivation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3897 16,-3897 16,-3829 248,-3829 248,-3897"/>
<text text-anchor="middle" x="132" y="-3881.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2102</text>
<text text-anchor="middle" x="132" y="-3866.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Orchard binding</text>
<text text-anchor="middle" x="132" y="-3851.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification key</text>
<text text-anchor="middle" x="132" y="-3836.8" font-family="Times,serif" font-size="14.00" fill="#000000">derivation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2103 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#2103</title>
<g id="a_node81"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2103" xlink:title="ZcashFoundation/zebra#2103&#10;Validate&#10;bindingSigOrchard for&#10;Transaction::V5" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-3897 300,-3897 300,-3829 532,-3829 532,-3897"/>
<text text-anchor="middle" x="416" y="-3881.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2103</text>
<text text-anchor="middle" x="416" y="-3866.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate</text>
<text text-anchor="middle" x="416" y="-3851.8" font-family="Times,serif" font-size="14.00" fill="#000000">bindingSigOrchard for</text>
<text text-anchor="middle" x="416" y="-3836.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="edge54" class="edge">
<title>ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2103</title>
<path fill="none" stroke="#000000" d="M248.33,-3863C262.02,-3863 276.03,-3863 289.84,-3863"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3866.5001 299.85,-3863 289.85,-3859.5001 289.85,-3866.5001"/>
</g>
<!-- ZcashFoundation/zebra#2317 -->
<g id="node82" class="node">
<title>ZcashFoundation/zebra#2317</title>
<g id="a_node82"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2317" xlink:title="ZcashFoundation/zebra#2317&#10;Validate Orchard&#10;SpendAuth signatures for&#10;Transaction::V5" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-3811 300,-3811 300,-3743 532,-3743 532,-3811"/>
<text text-anchor="middle" x="416" y="-3795.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2317</text>
<text text-anchor="middle" x="416" y="-3780.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate Orchard</text>
<text text-anchor="middle" x="416" y="-3765.8" font-family="Times,serif" font-size="14.00" fill="#000000">SpendAuth signatures for</text>
<text text-anchor="middle" x="416" y="-3750.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction::V5</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2317 -->
<g id="edge55" class="edge">
<title>ZcashFoundation/zebra#2102&#45;&gt;ZcashFoundation/zebra#2317</title>
<path fill="none" stroke="#000000" d="M244.65,-3828.9C260.83,-3824 277.55,-3818.9 293.9,-3814"/>
<polygon fill="#000000" stroke="#000000" points="294.923,-3817.3473 303.48,-3811.1 292.8948,-3810.6475 294.923,-3817.3473"/>
</g>
<!-- ZcashFoundation/zebra#2329 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#2329</title>
<g id="a_node83"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2329" xlink:title="ZcashFoundation/zebra#2329&#10;State: Validate&#10;transparent coinbase&#10;outputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3983 16,-3983 16,-3915 248,-3915 248,-3983"/>
<text text-anchor="middle" x="132" y="-3967.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2329</text>
<text text-anchor="middle" x="132" y="-3952.8" font-family="Times,serif" font-size="14.00" fill="#000000">State: Validate</text>
<text text-anchor="middle" x="132" y="-3937.8" font-family="Times,serif" font-size="14.00" fill="#000000">transparent coinbase</text>
<text text-anchor="middle" x="132" y="-3922.8" font-family="Times,serif" font-size="14.00" fill="#000000">outputs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2330 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#2330</title>
<g id="a_node84"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2330" xlink:title="ZcashFoundation/zebra#2330&#10;Transaction Verifier:&#10;Validate transparent&#10;coinbase outputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-3983 300,-3983 300,-3915 532,-3915 532,-3983"/>
<text text-anchor="middle" x="416" y="-3967.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2330</text>
<text text-anchor="middle" x="416" y="-3952.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction Verifier:</text>
<text text-anchor="middle" x="416" y="-3937.8" font-family="Times,serif" font-size="14.00" fill="#000000">Validate transparent</text>
<text text-anchor="middle" x="416" y="-3922.8" font-family="Times,serif" font-size="14.00" fill="#000000">coinbase outputs</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2329&#45;&gt;ZcashFoundation/zebra#2330 -->
<g id="edge56" class="edge">
<title>ZcashFoundation/zebra#2329&#45;&gt;ZcashFoundation/zebra#2330</title>
<path fill="none" stroke="#000000" d="M248.33,-3949C262.02,-3949 276.03,-3949 289.84,-3949"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-3952.5001 299.85,-3949 289.85,-3945.5001 289.85,-3952.5001"/>
</g>
<!-- ZcashFoundation/zcash_script#21 -->
<g id="node85" class="node">
<title>ZcashFoundation/zcash_script#21</title>
<g id="a_node85"><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,-4054.5 0,-4054.5 0,-4001.5 264,-4001.5 264,-4054.5"/>
<text text-anchor="middle" x="132" y="-4039.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zcash_script#21</text>
<text text-anchor="middle" x="132" y="-4024.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add support for V5</text>
<text text-anchor="middle" x="132" y="-4009.3" font-family="Times,serif" font-size="14.00" fill="#000000">transactions</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2328 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#2328</title>
<g id="a_node86"><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,-4054.5 300,-4054.5 300,-4001.5 532,-4001.5 532,-4054.5"/>
<text text-anchor="middle" x="416" y="-4039.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2328</text>
<text text-anchor="middle" x="416" y="-4024.3" font-family="Times,serif" font-size="14.00" fill="#000000">Update `zcash_script` to</text>
<text text-anchor="middle" x="416" y="-4009.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="edge57" class="edge">
<title>ZcashFoundation/zcash_script#21&#45;&gt;ZcashFoundation/zebra#2328</title>
<path fill="none" stroke="#000000" d="M264.02,-4028C272.47,-4028 280.96,-4028 289.38,-4028"/>
<polygon fill="#000000" stroke="#000000" points="289.6,-4031.5001 299.6,-4028 289.6,-4024.5001 289.6,-4031.5001"/>
</g>
<!-- ZcashFoundation/zebra#1981 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#1981</title>
<g id="a_node87"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1981" xlink:title="ZcashFoundation/zebra#1981&#10;Implement Transparent and&#10;Sapling validation for&#10;transaction v5" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="800,-4062 568,-4062 568,-3994 800,-3994 800,-4062"/>
<text text-anchor="middle" x="684" y="-4046.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1981</text>
<text text-anchor="middle" x="684" y="-4031.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Transparent and</text>
<text text-anchor="middle" x="684" y="-4016.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling validation for</text>
<text text-anchor="middle" x="684" y="-4001.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="edge58" class="edge">
<title>ZcashFoundation/zebra#2328&#45;&gt;ZcashFoundation/zebra#1981</title>
<path fill="none" stroke="#000000" d="M532.38,-4028C540.71,-4028 549.14,-4028 557.53,-4028"/>
<polygon fill="#000000" stroke="#000000" points="557.74,-4031.5001 567.74,-4028 557.74,-4024.5001 557.74,-4031.5001"/>
</g>
<!-- ZcashFoundation/zebra#2338 -->
<g id="node88" class="node">
<title>ZcashFoundation/zebra#2338</title>
<g id="a_node88"><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,-4133.5 16,-4133.5 16,-4080.5 248,-4080.5 248,-4133.5"/>
<text text-anchor="middle" x="132" y="-4118.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2338</text>
<text text-anchor="middle" x="132" y="-4103.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create Error enums in</text>
<text text-anchor="middle" x="132" y="-4088.3" font-family="Times,serif" font-size="14.00" fill="#000000">`zebrad`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2339 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2339</title>
<g id="a_node89"><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,-4141 300,-4141 300,-4073 532,-4073 532,-4141"/>
<text text-anchor="middle" x="416" y="-4125.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2339</text>
<text text-anchor="middle" x="416" y="-4110.8" font-family="Times,serif" font-size="14.00" fill="#000000">Downcast and match</text>
<text text-anchor="middle" x="416" y="-4095.8" font-family="Times,serif" font-size="14.00" fill="#000000">Already Verified error</text>
<text text-anchor="middle" x="416" y="-4080.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="edge59" class="edge">
<title>ZcashFoundation/zebra#2338&#45;&gt;ZcashFoundation/zebra#2339</title>
<path fill="none" stroke="#000000" d="M248.33,-4107C262.02,-4107 276.03,-4107 289.84,-4107"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4110.5001 299.85,-4107 289.85,-4103.5001 289.85,-4110.5001"/>
</g>
<!-- ZcashFoundation/zebra#2331 -->
<g id="node90" class="node">
<title>ZcashFoundation/zebra#2331</title>
<g id="a_node90"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2331" xlink:title="ZcashFoundation/zebra#2331&#10;Remove serde from zebra&#45;&#10;chain" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4219.5 16,-4219.5 16,-4166.5 248,-4166.5 248,-4219.5"/>
<text text-anchor="middle" x="132" y="-4204.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2331</text>
<text text-anchor="middle" x="132" y="-4189.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove serde from zebra&#45;</text>
<text text-anchor="middle" x="132" y="-4174.3" font-family="Times,serif" font-size="14.00" fill="#000000">chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2042 -->
<g id="node91" class="node">
<title>ZcashFoundation/zebra#2042</title>
<g id="a_node91"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2042" xlink:title="ZcashFoundation/zebra#2042&#10;zebra&#45;chain: Port array&#45;&#10;wrapper types to const&#10;generics" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4227 300,-4227 300,-4159 532,-4159 532,-4227"/>
<text text-anchor="middle" x="416" y="-4211.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2042</text>
<text text-anchor="middle" x="416" y="-4196.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;chain: Port array&#45;</text>
<text text-anchor="middle" x="416" y="-4181.8" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper types to const</text>
<text text-anchor="middle" x="416" y="-4166.8" font-family="Times,serif" font-size="14.00" fill="#000000">generics</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042 -->
<g id="edge60" class="edge">
<title>ZcashFoundation/zebra#2331&#45;&gt;ZcashFoundation/zebra#2042</title>
<path fill="none" stroke="#000000" d="M248.33,-4193C262.02,-4193 276.03,-4193 289.84,-4193"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4196.5001 299.85,-4193 289.85,-4189.5001 289.85,-4196.5001"/>
</g>
<!-- ZcashFoundation/zebra#2375 -->
<g id="node92" class="node">
<title>ZcashFoundation/zebra#2375</title>
<g id="a_node92"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2375" xlink:title="ZcashFoundation/zebra#2375&#10;Automatically use zebrad&#10;version for the zebra&#45;&#10;network user agent" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4306 16,-4306 16,-4238 248,-4238 248,-4306"/>
<text text-anchor="middle" x="132" y="-4290.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2375</text>
<text text-anchor="middle" x="132" y="-4275.8" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically use zebrad</text>
<text text-anchor="middle" x="132" y="-4260.8" font-family="Times,serif" font-size="14.00" fill="#000000">version for the zebra&#45;</text>
<text text-anchor="middle" x="132" y="-4245.8" font-family="Times,serif" font-size="14.00" fill="#000000">network user agent</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#794 -->
<g id="node93" class="node">
<title>ZcashFoundation/zebra#794</title>
<g id="a_node93"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/794" xlink:title="ZcashFoundation/zebra#794&#10;Make sure custom user&#10;agents conform to BIP&#45;14" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="527.5,-4298.5 304.5,-4298.5 304.5,-4245.5 527.5,-4245.5 527.5,-4298.5"/>
<text text-anchor="middle" x="416" y="-4283.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#794</text>
<text text-anchor="middle" x="416" y="-4268.3" font-family="Times,serif" font-size="14.00" fill="#000000">Make sure custom user</text>
<text text-anchor="middle" x="416" y="-4253.3" font-family="Times,serif" font-size="14.00" fill="#000000">agents conform to BIP&#45;14</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794 -->
<g id="edge61" class="edge">
<title>ZcashFoundation/zebra#2375&#45;&gt;ZcashFoundation/zebra#794</title>
<path fill="none" stroke="#000000" d="M248.33,-4272C263.39,-4272 278.85,-4272 294,-4272"/>
<polygon fill="#000000" stroke="#000000" points="294.43,-4275.5001 304.43,-4272 294.43,-4268.5001 294.43,-4275.5001"/>
</g>
<!-- ZcashFoundation/zebra#2381 -->
<g id="node94" class="node">
<title>ZcashFoundation/zebra#2381</title>
<g id="a_node94"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2381" xlink:title="ZcashFoundation/zebra#2381&#10;ZIP&#45;209: Validate&#10;transaction value&#10;balances &#45; Implementation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-3572 16,-3572 16,-3504 248,-3504 248,-3572"/>
<text text-anchor="middle" x="132" y="-3556.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2381</text>
<text text-anchor="middle" x="132" y="-3541.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209: Validate</text>
<text text-anchor="middle" x="132" y="-3526.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction value</text>
<text text-anchor="middle" x="132" y="-3511.8" font-family="Times,serif" font-size="14.00" fill="#000000">balances &#45; Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1895 -->
<g id="edge62" class="edge">
<title>ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1895</title>
<path fill="none" stroke="#000000" d="M248.33,-3539.2C262.02,-3539.4 276.03,-3539.5 289.84,-3539.7"/>
<polygon fill="#000000" stroke="#000000" points="289.8155,-3543.1998 299.85,-3539.8 289.8855,-3536.2002 289.8155,-3543.1998"/>
</g>
<!-- ZcashFoundation/zebra#1162 -->
<g id="node95" class="node">
<title>ZcashFoundation/zebra#1162</title>
<g id="a_node95"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1162" xlink:title="ZcashFoundation/zebra#1162&#10;Validate coinbase miner&#10;subsidy and miner fees" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-3481.5 300,-3481.5 300,-3428.5 532,-3428.5 532,-3481.5"/>
<text text-anchor="middle" x="416" y="-3466.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1162</text>
<text text-anchor="middle" x="416" y="-3451.3" font-family="Times,serif" font-size="14.00" fill="#000000">Validate coinbase miner</text>
<text text-anchor="middle" x="416" y="-3436.3" font-family="Times,serif" font-size="14.00" fill="#000000">subsidy and miner fees</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1162 -->
<g id="edge63" class="edge">
<title>ZcashFoundation/zebra#2381&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M248.33,-3504C270.52,-3497.5 293.57,-3490.8 315.22,-3484.5"/>
<polygon fill="#000000" stroke="#000000" points="316.4573,-3487.7842 325.06,-3481.6 314.4784,-3481.0698 316.4573,-3487.7842"/>
</g>
<!-- ZcashFoundation/zebra#2301 -->
<g id="node96" class="node">
<title>ZcashFoundation/zebra#2301</title>
<g id="a_node96"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2301" xlink:title="ZcashFoundation/zebra#2301&#10;ZIP&#45;221: Validate chain&#10;history commitments in&#10;the non&#45;finalized state" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="532,-4542 300,-4542 300,-4538 296,-4538 296,-4534 300,-4534 300,-4482 296,-4482 296,-4478 300,-4478 300,-4474 532,-4474 532,-4542"/>
<polyline fill="none" stroke="#000000" points="300,-4538 304,-4538 304,-4534 300,-4534 "/>
<polyline fill="none" stroke="#000000" points="300,-4482 304,-4482 304,-4478 300,-4478 "/>
<text text-anchor="middle" x="416" y="-4526.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2301</text>
<text text-anchor="middle" x="416" y="-4511.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="416" y="-4496.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="416" y="-4481.8" font-family="Times,serif" font-size="14.00" fill="#000000">the non&#45;finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2377 -->
<g id="node97" class="node">
<title>ZcashFoundation/zebra#2377</title>
<g id="a_node97"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2377" xlink:title="ZcashFoundation/zebra#2377&#10;Refactor history tree&#10;pruning" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="800,-4569.5 568,-4569.5 568,-4516.5 800,-4516.5 800,-4569.5"/>
<text text-anchor="middle" x="684" y="-4554.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2377</text>
<text text-anchor="middle" x="684" y="-4539.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor history tree</text>
<text text-anchor="middle" x="684" y="-4524.3" font-family="Times,serif" font-size="14.00" fill="#000000">pruning</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2301&#45;&gt;ZcashFoundation/zebra#2377 -->
<g id="edge64" class="edge">
<title>ZcashFoundation/zebra#2301&#45;&gt;ZcashFoundation/zebra#2377</title>
<path fill="none" stroke="#000000" d="M532.38,-4523.2C540.81,-4524.3 549.33,-4525.4 557.81,-4526.5"/>
<polygon fill="#000000" stroke="#000000" points="557.3702,-4529.9722 567.74,-4527.8 558.279,-4523.0314 557.3702,-4529.9722"/>
</g>
<!-- ZcashFoundation/zebra#2378 -->
<g id="node98" class="node">
<title>ZcashFoundation/zebra#2378</title>
<g id="a_node98"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2378" xlink:title="ZcashFoundation/zebra#2378&#10;Improve history tree&#10;forking" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="800,-4498.5 568,-4498.5 568,-4445.5 800,-4445.5 800,-4498.5"/>
<text text-anchor="middle" x="684" y="-4483.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2378</text>
<text text-anchor="middle" x="684" y="-4468.3" font-family="Times,serif" font-size="14.00" fill="#000000">Improve history tree</text>
<text text-anchor="middle" x="684" y="-4453.3" font-family="Times,serif" font-size="14.00" fill="#000000">forking</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2301&#45;&gt;ZcashFoundation/zebra#2378 -->
<g id="edge65" class="edge">
<title>ZcashFoundation/zebra#2301&#45;&gt;ZcashFoundation/zebra#2378</title>
<path fill="none" stroke="#000000" d="M532.38,-4492.4C540.81,-4491.2 549.33,-4490.1 557.81,-4489"/>
<polygon fill="#000000" stroke="#000000" points="558.3266,-4492.4619 567.74,-4487.6 557.3493,-4485.5304 558.3266,-4492.4619"/>
</g>
<!-- ZcashFoundation/zebra#1951 -->
<g id="node99" class="node">
<title>ZcashFoundation/zebra#1951</title>
<g id="a_node99"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1951" xlink:title="ZcashFoundation/zebra#1951&#10;Generalize/deduplicate&#10;async batch verification&#10;services / create a&#10;derive&#45;able proc macro" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4643.5 16,-4643.5 16,-4560.5 248,-4560.5 248,-4643.5"/>
<text text-anchor="middle" x="132" y="-4628.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1951</text>
<text text-anchor="middle" x="132" y="-4613.3" font-family="Times,serif" font-size="14.00" fill="#000000">Generalize/deduplicate</text>
<text text-anchor="middle" x="132" y="-4598.3" font-family="Times,serif" font-size="14.00" fill="#000000">async batch verification</text>
<text text-anchor="middle" x="132" y="-4583.3" font-family="Times,serif" font-size="14.00" fill="#000000">services / create a</text>
<text text-anchor="middle" x="132" y="-4568.3" font-family="Times,serif" font-size="14.00" fill="#000000">derive&#45;able proc macro</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2390 -->
<g id="node100" class="node">
<title>ZcashFoundation/zebra#2390</title>
<g id="a_node100"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2390" xlink:title="ZcashFoundation/zebra#2390&#10;Fix tasks spawned by&#10;`tower_batch::Batch` only&#10;being alive during one&#10;test execution" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4643.5 300,-4643.5 300,-4560.5 532,-4560.5 532,-4643.5"/>
<text text-anchor="middle" x="416" y="-4628.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2390</text>
<text text-anchor="middle" x="416" y="-4613.3" font-family="Times,serif" font-size="14.00" fill="#000000">Fix tasks spawned by</text>
<text text-anchor="middle" x="416" y="-4598.3" font-family="Times,serif" font-size="14.00" fill="#000000">`tower_batch::Batch` only</text>
<text text-anchor="middle" x="416" y="-4583.3" font-family="Times,serif" font-size="14.00" fill="#000000">being alive during one</text>
<text text-anchor="middle" x="416" y="-4568.3" font-family="Times,serif" font-size="14.00" fill="#000000">test execution</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390 -->
<g id="edge66" class="edge">
<title>ZcashFoundation/zebra#1951&#45;&gt;ZcashFoundation/zebra#2390</title>
<path fill="none" stroke="#000000" d="M248.33,-4602C262.02,-4602 276.03,-4602 289.84,-4602"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4605.5001 299.85,-4602 289.85,-4598.5001 289.85,-4605.5001"/>
</g>
<!-- ZcashFoundation/zebra#338 -->
<g id="node101" class="node">
<title>ZcashFoundation/zebra#338</title>
<g id="a_node101"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/338" xlink:title="ZcashFoundation/zebra#338&#10;Calc Block Subsidy and&#10;Funding Streams" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="243.5,-3481.5 20.5,-3481.5 20.5,-3428.5 243.5,-3428.5 243.5,-3481.5"/>
<text text-anchor="middle" x="132" y="-3466.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#338</text>
<text text-anchor="middle" x="132" y="-3451.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calc Block Subsidy and</text>
<text text-anchor="middle" x="132" y="-3436.3" font-family="Times,serif" font-size="14.00" fill="#000000">Funding Streams</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162 -->
<g id="edge67" class="edge">
<title>ZcashFoundation/zebra#338&#45;&gt;ZcashFoundation/zebra#1162</title>
<path fill="none" stroke="#000000" d="M243.84,-3455C258.72,-3455 274.06,-3455 289.18,-3455"/>
<polygon fill="#000000" stroke="#000000" points="289.59,-3458.5001 299.59,-3455 289.59,-3451.5001 289.59,-3458.5001"/>
</g>
<!-- ZcashFoundation/zebra#2407 -->
<g id="node102" class="node">
<title>ZcashFoundation/zebra#2407</title>
<g id="a_node102"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2407" xlink:title="ZcashFoundation/zebra#2407&#10;Calculate incremental&#10;note commitment trees" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4448.5 16,-4448.5 16,-4444.5 12,-4444.5 12,-4440.5 16,-4440.5 16,-4403.5 12,-4403.5 12,-4399.5 16,-4399.5 16,-4395.5 248,-4395.5 248,-4448.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4444.5 20,-4444.5 20,-4440.5 16,-4440.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4403.5 20,-4403.5 20,-4399.5 16,-4399.5 "/>
<text text-anchor="middle" x="132" y="-4433.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2407</text>
<text text-anchor="middle" x="132" y="-4418.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calculate incremental</text>
<text text-anchor="middle" x="132" y="-4403.3" font-family="Times,serif" font-size="14.00" fill="#000000">note commitment trees</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2407&#45;&gt;ZcashFoundation/zebra#2301 -->
<g id="edge68" class="edge">
<title>ZcashFoundation/zebra#2407&#45;&gt;ZcashFoundation/zebra#2301</title>
<path fill="none" stroke="#000000" d="M219.53,-4448.5C242.98,-4455.6 268.77,-4463.4 293.73,-4471"/>
<polygon fill="#000000" stroke="#000000" points="293.0346,-4474.4465 303.62,-4474 295.0666,-4467.7479 293.0346,-4474.4465"/>
</g>
<!-- ZcashFoundation/zebra#2458 -->
<g id="node103" class="node">
<title>ZcashFoundation/zebra#2458</title>
<g id="a_node103"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2458" xlink:title="ZcashFoundation/zebra#2458&#10;[WIP] Tracking anchors&#10;and note commitment trees&#10;in zebra&#45;state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4456 300,-4456 300,-4452 296,-4452 296,-4448 300,-4448 300,-4396 296,-4396 296,-4392 300,-4392 300,-4388 532,-4388 532,-4456"/>
<polyline fill="none" stroke="#000000" points="300,-4452 304,-4452 304,-4448 300,-4448 "/>
<polyline fill="none" stroke="#000000" points="300,-4396 304,-4396 304,-4392 300,-4392 "/>
<text text-anchor="middle" x="416" y="-4440.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2458</text>
<text text-anchor="middle" x="416" y="-4425.8" font-family="Times,serif" font-size="14.00" fill="#000000">[WIP] Tracking anchors</text>
<text text-anchor="middle" x="416" y="-4410.8" font-family="Times,serif" font-size="14.00" fill="#000000">and note commitment trees</text>
<text text-anchor="middle" x="416" y="-4395.8" font-family="Times,serif" font-size="14.00" fill="#000000">in zebra&#45;state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2407&#45;&gt;ZcashFoundation/zebra#2458 -->
<g id="edge69" class="edge">
<title>ZcashFoundation/zebra#2407&#45;&gt;ZcashFoundation/zebra#2458</title>
<path fill="none" stroke="#000000" d="M248.33,-4422C262.02,-4422 276.03,-4422 289.84,-4422"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4425.5001 299.85,-4422 289.85,-4418.5001 289.85,-4425.5001"/>
</g>
<!-- ZcashFoundation/zebra#2425 -->
<g id="node104" class="node">
<title>ZcashFoundation/zebra#2425</title>
<g id="a_node104"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2425" xlink:title="ZcashFoundation/zebra#2425&#10;Design: Validate note&#10;commitment trees in state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4369.5 300,-4369.5 300,-4316.5 532,-4316.5 532,-4369.5"/>
<text text-anchor="middle" x="416" y="-4354.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2425</text>
<text text-anchor="middle" x="416" y="-4339.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: Validate note</text>
<text text-anchor="middle" x="416" y="-4324.3" font-family="Times,serif" font-size="14.00" fill="#000000">commitment trees in state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2407&#45;&gt;ZcashFoundation/zebra#2425 -->
<g id="edge70" class="edge">
<title>ZcashFoundation/zebra#2407&#45;&gt;ZcashFoundation/zebra#2425</title>
<path fill="none" stroke="#000000" d="M227.36,-4395.5C254.05,-4388 283.22,-4379.9 310.47,-4372.4"/>
<polygon fill="#000000" stroke="#000000" points="311.7336,-4375.6803 320.41,-4369.6 309.8356,-4368.9426 311.7336,-4375.6803"/>
</g>
<!-- ZcashFoundation/zebra#2231 -->
<g id="node105" class="node">
<title>ZcashFoundation/zebra#2231</title>
<g id="a_node105"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2231" xlink:title="ZcashFoundation/zebra#2231&#10;Stop double&#45;spends by&#10;checking nullifiers and&#10;UTXO spends in each non&#45;&#10;finalized chain" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4744.5 16,-4744.5 16,-4661.5 248,-4661.5 248,-4744.5"/>
<text text-anchor="middle" x="132" y="-4729.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2231</text>
<text text-anchor="middle" x="132" y="-4714.3" font-family="Times,serif" font-size="14.00" fill="#000000">Stop double&#45;spends by</text>
<text text-anchor="middle" x="132" y="-4699.3" font-family="Times,serif" font-size="14.00" fill="#000000">checking nullifiers and</text>
<text text-anchor="middle" x="132" y="-4684.3" font-family="Times,serif" font-size="14.00" fill="#000000">UTXO spends in each non&#45;</text>
<text text-anchor="middle" x="132" y="-4669.3" font-family="Times,serif" font-size="14.00" fill="#000000">finalized chain</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2441 -->
<g id="node106" class="node">
<title>ZcashFoundation/zebra#2441</title>
<g id="a_node106"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2441" xlink:title="ZcashFoundation/zebra#2441&#10;Add orchard&#10;binding_verification_key" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4815.5 16,-4815.5 16,-4811.5 12,-4811.5 12,-4807.5 16,-4807.5 16,-4770.5 12,-4770.5 12,-4766.5 16,-4766.5 16,-4762.5 248,-4762.5 248,-4815.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4811.5 20,-4811.5 20,-4807.5 16,-4807.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4770.5 20,-4770.5 20,-4766.5 16,-4766.5 "/>
<text text-anchor="middle" x="132" y="-4800.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2441</text>
<text text-anchor="middle" x="132" y="-4785.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add orchard</text>
<text text-anchor="middle" x="132" y="-4770.3" font-family="Times,serif" font-size="14.00" fill="#000000">binding_verification_key</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2483 -->
<g id="node107" class="node">
<title>ZcashFoundation/zebra#2483</title>
<g id="a_node107"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2483" xlink:title="ZcashFoundation/zebra#2483&#10;Move zebra_state::service&#10;::check tests to their&#10;own module" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="248,-4902 16,-4902 16,-4898 12,-4898 12,-4894 16,-4894 16,-4842 12,-4842 12,-4838 16,-4838 16,-4834 248,-4834 248,-4902"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4898 20,-4898 20,-4894 16,-4894 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="16,-4842 20,-4842 20,-4838 16,-4838 "/>
<text text-anchor="middle" x="132" y="-4886.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2483</text>
<text text-anchor="middle" x="132" y="-4871.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move zebra_state::service</text>
<text text-anchor="middle" x="132" y="-4856.8" font-family="Times,serif" font-size="14.00" fill="#000000">::check tests to their</text>
<text text-anchor="middle" x="132" y="-4841.8" font-family="Times,serif" font-size="14.00" fill="#000000">own module</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2477 -->
<g id="node108" class="node">
<title>ZcashFoundation/zebra#2477</title>
<g id="a_node108"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2477" xlink:title="ZcashFoundation/zebra#2477&#10;WIP: Reject duplicate&#10;sprout nullifiers in the&#10;state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="532,-4902 300,-4902 300,-4898 296,-4898 296,-4894 300,-4894 300,-4842 296,-4842 296,-4838 300,-4838 300,-4834 532,-4834 532,-4902"/>
<polyline fill="none" stroke="#000000" points="300,-4898 304,-4898 304,-4894 300,-4894 "/>
<polyline fill="none" stroke="#000000" points="300,-4842 304,-4842 304,-4838 300,-4838 "/>
<text text-anchor="middle" x="416" y="-4886.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2477</text>
<text text-anchor="middle" x="416" y="-4871.8" font-family="Times,serif" font-size="14.00" fill="#000000">WIP: Reject duplicate</text>
<text text-anchor="middle" x="416" y="-4856.8" font-family="Times,serif" font-size="14.00" fill="#000000">sprout nullifiers in the</text>
<text text-anchor="middle" x="416" y="-4841.8" font-family="Times,serif" font-size="14.00" fill="#000000">state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2483&#45;&gt;ZcashFoundation/zebra#2477 -->
<g id="edge71" class="edge">
<title>ZcashFoundation/zebra#2483&#45;&gt;ZcashFoundation/zebra#2477</title>
<path fill="none" stroke="#000000" d="M248.33,-4868C262.02,-4868 276.03,-4868 289.84,-4868"/>
<polygon fill="#000000" stroke="#000000" points="289.85,-4871.5001 299.85,-4868 289.85,-4864.5001 289.85,-4871.5001"/>
</g>
</g>
</svg>