developers/zcash-zf-dag.svg

1632 lines
125 KiB
XML

<?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="1044pt" height="4268pt"
viewBox="0.00 0.00 1044.00 4267.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 4263.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-4263.5 1040,-4263.5 1040,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="232,-68 0,-68 0,0 232,0 232,-68"/>
<text text-anchor="middle" x="116" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1135</text>
<text text-anchor="middle" x="116" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor Network and</text>
<text text-anchor="middle" x="116" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">NetworkUpgrade enums into</text>
<text text-anchor="middle" x="116" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">structs and a trait</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1011 -->
<g id="node2" class="node">
<title>ZcashFoundation/zebra#1011</title>
<g id="a_node2"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1011" xlink:title="ZcashFoundation/zebra#1011&#10;Re&#45;enable the&#10;BlockVerifier continuous_&#10;blockchain_test" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-68 268,-68 268,0 500,0 500,-68"/>
<text text-anchor="middle" x="384" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1011</text>
<text text-anchor="middle" x="384" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable the</text>
<text text-anchor="middle" x="384" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">BlockVerifier continuous_</text>
<text text-anchor="middle" x="384" 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="M232.38,-34C240.71,-34 249.14,-34 257.53,-34"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-37.5001 267.74,-34 257.74,-30.5001 257.74,-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="227.5,-146.5 4.5,-146.5 4.5,-93.5 227.5,-93.5 227.5,-146.5"/>
<text text-anchor="middle" x="116" y="-131.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#271</text>
<text text-anchor="middle" x="116" y="-116.3" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling Key Agreement and</text>
<text text-anchor="middle" x="116" 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="495.5,-154 272.5,-154 272.5,-86 495.5,-86 495.5,-154"/>
<text text-anchor="middle" x="384" y="-138.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#269</text>
<text text-anchor="middle" x="384" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">Sapling note</text>
<text text-anchor="middle" x="384" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">encryption/decryption</text>
<text text-anchor="middle" x="384" 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="M227.72,-120C239.16,-120 250.82,-120 262.36,-120"/>
<polygon fill="#000000" stroke="#000000" points="262.47,-123.5001 272.47,-120 262.47,-116.5001 262.47,-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="227.5,-203 4.5,-203 4.5,-165 227.5,-165 227.5,-203"/>
<text text-anchor="middle" x="116" y="-187.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#325</text>
<text text-anchor="middle" x="116" 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="227.5,-274.5 4.5,-274.5 4.5,-221.5 227.5,-221.5 227.5,-274.5"/>
<text text-anchor="middle" x="116" y="-259.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#619</text>
<text text-anchor="middle" x="116" y="-244.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync and</text>
<text text-anchor="middle" x="116" 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="495.5,-282 272.5,-282 272.5,-214 495.5,-214 495.5,-282"/>
<text text-anchor="middle" x="384" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#466</text>
<text text-anchor="middle" x="384" y="-251.8" font-family="Times,serif" font-size="14.00" fill="#000000">Design network</text>
<text text-anchor="middle" x="384" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000">integration test</text>
<text text-anchor="middle" x="384" 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="M227.72,-248C239.16,-248 250.82,-248 262.36,-248"/>
<polygon fill="#000000" stroke="#000000" points="262.47,-251.5001 272.47,-248 262.47,-244.5001 262.47,-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="227.5,-353.5 4.5,-353.5 4.5,-300.5 227.5,-300.5 227.5,-353.5"/>
<text text-anchor="middle" x="116" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#884</text>
<text text-anchor="middle" x="116" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: sync</text>
<text text-anchor="middle" x="116" 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="495.5,-353.5 272.5,-353.5 272.5,-300.5 495.5,-300.5 495.5,-353.5"/>
<text text-anchor="middle" x="384" y="-338.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#899</text>
<text text-anchor="middle" x="384" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">Retcon new sync logic</text>
<text text-anchor="middle" x="384" 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="M227.72,-327C239.16,-327 250.82,-327 262.36,-327"/>
<polygon fill="#000000" stroke="#000000" points="262.47,-330.5001 272.47,-327 262.47,-323.5001 262.47,-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="227.5,-447 4.5,-447 4.5,-379 227.5,-379 227.5,-447"/>
<text text-anchor="middle" x="116" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#919</text>
<text text-anchor="middle" x="116" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rewrite</text>
<text text-anchor="middle" x="116" y="-401.8" font-family="Times,serif" font-size="14.00" fill="#000000">`block::tests::generate`</text>
<text text-anchor="middle" x="116" 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="500,-454.5 268,-454.5 268,-371.5 500,-371.5 500,-454.5"/>
<text text-anchor="middle" x="384" y="-439.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1021</text>
<text text-anchor="middle" x="384" y="-424.3" font-family="Times,serif" font-size="14.00" fill="#000000">Combine proptests and</text>
<text text-anchor="middle" x="384" y="-409.3" font-family="Times,serif" font-size="14.00" fill="#000000">transcripts to perform</text>
<text text-anchor="middle" x="384" y="-394.3" font-family="Times,serif" font-size="14.00" fill="#000000">top&#45;level integration</text>
<text text-anchor="middle" x="384" 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="M227.72,-413C237.52,-413 247.49,-413 257.41,-413"/>
<polygon fill="#000000" stroke="#000000" points="257.71,-416.5001 267.71,-413 257.71,-409.5001 257.71,-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="495.5,-761.5 272.5,-761.5 272.5,-708.5 495.5,-708.5 495.5,-761.5"/>
<text text-anchor="middle" x="384" y="-746.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#889</text>
<text text-anchor="middle" x="384" y="-731.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: inbound message</text>
<text text-anchor="middle" x="384" y="-716.3" font-family="Times,serif" font-size="14.00" fill="#000000">handling.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1077 -->
<g id="node13" class="node">
<title>ZcashFoundation/zebra#1077</title>
<g id="a_node13"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1077" xlink:title="ZcashFoundation/zebra#1077&#10;Handle TransactionsByHash&#10;in the Inbound service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-761.5 536,-761.5 536,-708.5 768,-708.5 768,-761.5"/>
<text text-anchor="middle" x="652" y="-746.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1077</text>
<text text-anchor="middle" x="652" y="-731.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle TransactionsByHash</text>
<text text-anchor="middle" x="652" y="-716.3" font-family="Times,serif" font-size="14.00" fill="#000000">in the Inbound service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077 -->
<g id="edge6" class="edge">
<title>ZcashFoundation/zebra#889&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M495.72,-735C505.52,-735 515.49,-735 525.41,-735"/>
<polygon fill="#000000" stroke="#000000" points="525.71,-738.5001 535.71,-735 525.71,-731.5001 525.71,-738.5001"/>
</g>
<!-- ZcashFoundation/zebra#1048 -->
<g id="node14" class="node">
<title>ZcashFoundation/zebra#1048</title>
<g id="a_node14"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1048" xlink:title="ZcashFoundation/zebra#1048&#10;Test translation for&#10;zebra&#45;network::{Request,&#10;Response} protocol" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-769 0,-769 0,-701 232,-701 232,-769"/>
<text text-anchor="middle" x="116" y="-753.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1048</text>
<text text-anchor="middle" x="116" y="-738.8" font-family="Times,serif" font-size="14.00" fill="#000000">Test translation for</text>
<text text-anchor="middle" x="116" y="-723.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebra&#45;network::{Request,</text>
<text text-anchor="middle" x="116" y="-708.8" font-family="Times,serif" font-size="14.00" fill="#000000">Response} protocol</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889 -->
<g id="edge7" class="edge">
<title>ZcashFoundation/zebra#1048&#45;&gt;ZcashFoundation/zebra#889</title>
<path fill="none" stroke="#000000" d="M232.38,-735C242.23,-735 252.22,-735 262.11,-735"/>
<polygon fill="#000000" stroke="#000000" points="262.39,-738.5001 272.39,-735 262.39,-731.5001 262.39,-738.5001"/>
</g>
<!-- ZcashFoundation/zebra#1080 -->
<g id="node15" class="node">
<title>ZcashFoundation/zebra#1080</title>
<g id="a_node15"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1080" xlink:title="ZcashFoundation/zebra#1080&#10;Handle `PushTransaction`&#10;in the Inbound service." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-690.5 536,-690.5 536,-637.5 768,-637.5 768,-690.5"/>
<text text-anchor="middle" x="652" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1080</text>
<text text-anchor="middle" x="652" y="-660.3" font-family="Times,serif" font-size="14.00" fill="#000000">Handle `PushTransaction`</text>
<text text-anchor="middle" x="652" y="-645.3" font-family="Times,serif" font-size="14.00" fill="#000000">in the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1081 -->
<g id="node16" class="node">
<title>ZcashFoundation/zebra#1081</title>
<g id="a_node16"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1081" xlink:title="ZcashFoundation/zebra#1081&#10;Handle&#10;`AdvertiseTransaction` in&#10;the Inbound service." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-619 536,-619 536,-551 768,-551 768,-619"/>
<text text-anchor="middle" x="652" y="-603.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1081</text>
<text text-anchor="middle" x="652" y="-588.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="652" y="-573.8" font-family="Times,serif" font-size="14.00" fill="#000000">`AdvertiseTransaction` in</text>
<text text-anchor="middle" x="652" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000">the Inbound service.</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320 -->
<g id="node17" class="node">
<title>ZcashFoundation/zebra#1320</title>
<g id="a_node17"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1320" xlink:title="ZcashFoundation/zebra#1320&#10;Add sprout and sapling&#10;and orchard anchors to&#10;`zebra&#45;state`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-1106 268,-1106 268,-1038 500,-1038 500,-1106"/>
<text text-anchor="middle" x="384" y="-1090.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1320</text>
<text text-anchor="middle" x="384" y="-1075.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add sprout and sapling</text>
<text text-anchor="middle" x="384" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000">and orchard anchors to</text>
<text text-anchor="middle" x="384" y="-1045.8" font-family="Times,serif" font-size="14.00" fill="#000000">`zebra&#45;state`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1486 -->
<g id="node18" class="node">
<title>ZcashFoundation/zebra#1486</title>
<g id="a_node18"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1486" xlink:title="ZcashFoundation/zebra#1486&#10;Tune RocksDB memory usage" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-1160 536,-1160 536,-1122 768,-1122 768,-1160"/>
<text text-anchor="middle" x="652" y="-1144.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1486</text>
<text text-anchor="middle" x="652" y="-1129.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tune RocksDB memory usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#1486 -->
<g id="edge8" class="edge">
<title>ZcashFoundation/zebra#1320&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M500.38,-1102C523.16,-1107.8 546.64,-1113.9 568.11,-1119.4"/>
<polygon fill="#000000" stroke="#000000" points="567.2733,-1122.7987 577.83,-1121.9 569.0171,-1116.0193 567.2733,-1122.7987"/>
</g>
<!-- ZcashFoundation/zebra#1400 -->
<g id="node19" class="node">
<title>ZcashFoundation/zebra#1400</title>
<g id="a_node19"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1400" xlink:title="ZcashFoundation/zebra#1400&#10;Test that zcashd and&#10;Zebra can sync from Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1137.5 0,-1137.5 0,-1084.5 232,-1084.5 232,-1137.5"/>
<text text-anchor="middle" x="116" y="-1122.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1400</text>
<text text-anchor="middle" x="116" y="-1107.3" font-family="Times,serif" font-size="14.00" fill="#000000">Test that zcashd and</text>
<text text-anchor="middle" x="116" y="-1092.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra can sync from Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287 -->
<g id="node20" class="node">
<title>ZcashFoundation/zebra#1287</title>
<g id="a_node20"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1287" xlink:title="ZcashFoundation/zebra#1287&#10;Implement incremental,&#10;sparse note commitment&#10;trees for Sapling, Sprout&#10;and Orchard" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-996.5 0,-996.5 0,-913.5 232,-913.5 232,-996.5"/>
<text text-anchor="middle" x="116" y="-981.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1287</text>
<text text-anchor="middle" x="116" y="-966.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement incremental,</text>
<text text-anchor="middle" x="116" y="-951.3" font-family="Times,serif" font-size="14.00" fill="#000000">sparse note commitment</text>
<text text-anchor="middle" x="116" y="-936.3" font-family="Times,serif" font-size="14.00" fill="#000000">trees for Sapling, Sprout</text>
<text text-anchor="middle" x="116" y="-921.3" font-family="Times,serif" font-size="14.00" fill="#000000">and Orchard</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320 -->
<g id="edge9" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#1320</title>
<path fill="none" stroke="#000000" d="M206.2,-996.55C226.47,-1005.7 247.93,-1015.3 268,-1024 275.62,-1027.3 283.54,-1030.7 291.5,-1034.1"/>
<polygon fill="#000000" stroke="#000000" points="290.2733,-1037.3805 300.85,-1038 292.9681,-1030.92 290.2733,-1037.3805"/>
</g>
<!-- ZcashFoundation/zebra#2092 -->
<g id="node21" class="node">
<title>ZcashFoundation/zebra#2092</title>
<g id="a_node21"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2092" xlink:title="ZcashFoundation/zebra#2092&#10;Implement Block Header&#10;FinalSaplingRoot" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-981.5 268,-981.5 268,-928.5 500,-928.5 500,-981.5"/>
<text text-anchor="middle" x="384" y="-966.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2092</text>
<text text-anchor="middle" x="384" y="-951.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement Block Header</text>
<text text-anchor="middle" x="384" y="-936.3" font-family="Times,serif" font-size="14.00" fill="#000000">FinalSaplingRoot</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2092 -->
<g id="edge10" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2092</title>
<path fill="none" stroke="#000000" d="M232.38,-955C240.71,-955 249.14,-955 257.53,-955"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-958.5001 267.74,-955 257.74,-951.5001 257.74,-958.5001"/>
</g>
<!-- ZcashFoundation/zebra#2134 -->
<g id="node22" class="node">
<title>ZcashFoundation/zebra#2134</title>
<g id="a_node22"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2134" xlink:title="ZcashFoundation/zebra#2134&#10;ZIP&#45;221: Validate chain&#10;history commitments in&#10;the finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-848 536,-848 536,-780 768,-780 768,-848"/>
<text text-anchor="middle" x="652" y="-832.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2134</text>
<text text-anchor="middle" x="652" y="-817.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="652" y="-802.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="652" y="-787.8" font-family="Times,serif" font-size="14.00" fill="#000000">the finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge11" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M153.76,-913.21C182.11,-884.98 223.55,-849.88 268,-833 349.82,-801.93 448.55,-797.71 525.42,-800.97"/>
<polygon fill="#000000" stroke="#000000" points="525.4737,-804.4765 535.63,-801.46 525.8093,-797.4846 525.4737,-804.4765"/>
</g>
<!-- ZcashFoundation/zebra#2135 -->
<g id="node23" class="node">
<title>ZcashFoundation/zebra#2135</title>
<g id="a_node23"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2135" xlink:title="ZcashFoundation/zebra#2135&#10;ZIP&#45;221: Validate chain&#10;history commitments in&#10;the non&#45;finalized state" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-972 536,-972 536,-904 768,-904 768,-972"/>
<text text-anchor="middle" x="652" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2135</text>
<text text-anchor="middle" x="652" y="-941.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Validate chain</text>
<text text-anchor="middle" x="652" y="-926.8" font-family="Times,serif" font-size="14.00" fill="#000000">history commitments in</text>
<text text-anchor="middle" x="652" y="-911.8" font-family="Times,serif" font-size="14.00" fill="#000000">the non&#45;finalized state</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge12" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M232.13,-984.56C244.18,-986.78 256.3,-988.67 268,-990 370.45,-1001.6 398.29,-1006.9 500,-990 519.42,-986.77 539.68,-981.37 558.85,-975.24"/>
<polygon fill="#000000" stroke="#000000" points="560.0537,-978.5286 568.46,-972.08 557.8671,-971.8789 560.0537,-978.5286"/>
</g>
<!-- ZcashFoundation/zebra#2132 -->
<g id="node24" class="node">
<title>ZcashFoundation/zebra#2132</title>
<g id="a_node24"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2132" xlink:title="ZcashFoundation/zebra#2132&#10;ZIP&#45;221: Integrate&#10;history merkle mountain&#10;range from librustzcash" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="500,-910 268,-910 268,-842 500,-842 500,-910"/>
<text text-anchor="middle" x="384" y="-894.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2132</text>
<text text-anchor="middle" x="384" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Integrate</text>
<text text-anchor="middle" x="384" y="-864.8" font-family="Times,serif" font-size="14.00" fill="#000000">history merkle mountain</text>
<text text-anchor="middle" x="384" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000">range from librustzcash</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2132 -->
<g id="edge13" class="edge">
<title>ZcashFoundation/zebra#1287&#45;&gt;ZcashFoundation/zebra#2132</title>
<path fill="none" stroke="#000000" d="M232.38,-920.69C241.2,-918.09 250.12,-915.47 258.99,-912.85"/>
<polygon fill="#000000" stroke="#000000" points="259.9795,-916.2073 268.58,-910.02 257.9983,-909.4935 259.9795,-916.2073"/>
</g>
<!-- ZcashFoundation/zebra#2048 -->
<g id="node25" class="node">
<title>ZcashFoundation/zebra#2048</title>
<g id="a_node25"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2048" xlink:title="ZcashFoundation/zebra#2048&#10;ZIP&#45;244: Implement&#10;transaction authorization&#10;hashes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1036,-910 804,-910 804,-842 1036,-842 1036,-910"/>
<text text-anchor="middle" x="920" y="-894.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2048</text>
<text text-anchor="middle" x="920" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement</text>
<text text-anchor="middle" x="920" y="-864.8" font-family="Times,serif" font-size="14.00" fill="#000000">transaction authorization</text>
<text text-anchor="middle" x="920" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000">hashes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge14" class="edge">
<title>ZcashFoundation/zebra#2134&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M768.38,-840.92C776.81,-842.87 785.33,-844.84 793.81,-846.81"/>
<polygon fill="#000000" stroke="#000000" points="793.2092,-850.2632 803.74,-849.1 794.7823,-843.4423 793.2092,-850.2632"/>
</g>
<!-- ZcashFoundation/zebra#2135&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge15" class="edge">
<title>ZcashFoundation/zebra#2135&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M768.38,-911.08C776.81,-909.13 785.33,-907.16 793.81,-905.19"/>
<polygon fill="#000000" stroke="#000000" points="794.7823,-908.5577 803.74,-902.9 793.2092,-901.7368 794.7823,-908.5577"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134 -->
<g id="edge16" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2134</title>
<path fill="none" stroke="#000000" d="M500.38,-849.08C508.81,-847.13 517.33,-845.16 525.81,-843.19"/>
<polygon fill="#000000" stroke="#000000" points="526.7823,-846.5577 535.74,-840.9 525.2092,-839.7368 526.7823,-846.5577"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135 -->
<g id="edge17" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2135</title>
<path fill="none" stroke="#000000" d="M500.38,-902.92C508.81,-904.87 517.33,-906.84 525.81,-908.81"/>
<polygon fill="#000000" stroke="#000000" points="525.2092,-912.2632 535.74,-911.1 526.7823,-905.4423 525.2092,-912.2632"/>
</g>
<!-- ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048 -->
<g id="edge18" class="edge">
<title>ZcashFoundation/zebra#2132&#45;&gt;ZcashFoundation/zebra#2048</title>
<path fill="none" stroke="#000000" d="M500.3,-876C586.87,-876 704.93,-876 793.78,-876"/>
<polygon fill="#000000" stroke="#000000" points="793.92,-879.5001 803.92,-876 793.92,-872.5001 793.92,-879.5001"/>
</g>
<!-- ZcashFoundation/zebra#1311 -->
<g id="node26" class="node">
<title>ZcashFoundation/zebra#1311</title>
<g id="a_node26"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1311" xlink:title="ZcashFoundation/zebra#1311&#10;Create function for post&#45;&#10;blossom height&#10;adjustments" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1275 0,-1275 0,-1207 232,-1207 232,-1275"/>
<text text-anchor="middle" x="116" y="-1259.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1311</text>
<text text-anchor="middle" x="116" y="-1244.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create function for post&#45;</text>
<text text-anchor="middle" x="116" y="-1229.8" font-family="Times,serif" font-size="14.00" fill="#000000">blossom height</text>
<text text-anchor="middle" x="116" y="-1214.8" font-family="Times,serif" font-size="14.00" fill="#000000">adjustments</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1170 -->
<g id="node27" class="node">
<title>ZcashFoundation/zebra#1170</title>
<g id="a_node27"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/1170" xlink:title="ZcashFoundation/zebra#1170&#10;Calculate and validate&#10;founders reward addresses" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="500,-1267.5 268,-1267.5 268,-1263.5 264,-1263.5 264,-1259.5 268,-1259.5 268,-1222.5 264,-1222.5 264,-1218.5 268,-1218.5 268,-1214.5 500,-1214.5 500,-1267.5"/>
<polyline fill="none" stroke="#000000" points="268,-1263.5 272,-1263.5 272,-1259.5 268,-1259.5 "/>
<polyline fill="none" stroke="#000000" points="268,-1222.5 272,-1222.5 272,-1218.5 268,-1218.5 "/>
<text text-anchor="middle" x="384" y="-1252.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1170</text>
<text text-anchor="middle" x="384" y="-1237.3" font-family="Times,serif" font-size="14.00" fill="#000000">Calculate and validate</text>
<text text-anchor="middle" x="384" y="-1222.3" font-family="Times,serif" font-size="14.00" fill="#000000">founders reward addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170 -->
<g id="edge19" class="edge">
<title>ZcashFoundation/zebra#1311&#45;&gt;ZcashFoundation/zebra#1170</title>
<path fill="none" stroke="#000000" d="M232.38,-1241C240.71,-1241 249.14,-1241 257.53,-1241"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-1244.5001 267.74,-1241 257.74,-1237.5001 257.74,-1244.5001"/>
</g>
<!-- ZcashFoundation/zebra#936 -->
<g id="node28" class="node">
<title>ZcashFoundation/zebra#936</title>
<g id="a_node28"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/936" xlink:title="ZcashFoundation/zebra#936&#10;Design: mempool&#10;transaction handling" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="495.5,-525.5 272.5,-525.5 272.5,-472.5 495.5,-472.5 495.5,-525.5"/>
<text text-anchor="middle" x="384" y="-510.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#936</text>
<text text-anchor="middle" x="384" y="-495.3" font-family="Times,serif" font-size="14.00" fill="#000000">Design: mempool</text>
<text text-anchor="middle" x="384" y="-480.3" font-family="Times,serif" font-size="14.00" fill="#000000">transaction handling</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077 -->
<g id="edge20" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1077</title>
<path fill="none" stroke="#000000" d="M397.16,-525.59C419.69,-568.43 469.73,-652.59 536,-699 538.15,-700.51 540.37,-701.95 542.65,-703.34"/>
<polygon fill="#000000" stroke="#000000" points="541.2286,-706.5562 551.66,-708.41 544.6614,-700.4557 541.2286,-706.5562"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080 -->
<g id="edge21" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1080</title>
<path fill="none" stroke="#000000" d="M408.73,-525.63C436.98,-554.59 485.79,-600.42 536,-628 539.29,-629.81 542.68,-631.54 546.15,-633.19"/>
<polygon fill="#000000" stroke="#000000" points="544.9158,-636.473 555.47,-637.4 547.7975,-630.0936 544.9158,-636.473"/>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081 -->
<g id="edge22" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1081</title>
<path fill="none" stroke="#000000" d="M466.6,-525.5C488.63,-532.57 512.85,-540.35 536.3,-547.87"/>
<polygon fill="#000000" stroke="#000000" points="535.3587,-551.2437 545.95,-550.97 537.4997,-544.5792 535.3587,-551.2437"/>
</g>
<!-- ZcashFoundation/zebra#1083 -->
<g id="node29" class="node">
<title>ZcashFoundation/zebra#1083</title>
<g id="a_node29"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1083" xlink:title="ZcashFoundation/zebra#1083&#10;Handle&#10;`MempoolTransactions` in&#10;the Inbound service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-533 536,-533 536,-465 768,-465 768,-533"/>
<text text-anchor="middle" x="652" y="-517.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1083</text>
<text text-anchor="middle" x="652" y="-502.8" font-family="Times,serif" font-size="14.00" fill="#000000">Handle</text>
<text text-anchor="middle" x="652" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">`MempoolTransactions` in</text>
<text text-anchor="middle" x="652" y="-472.8" font-family="Times,serif" font-size="14.00" fill="#000000">the Inbound service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083 -->
<g id="edge23" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1083</title>
<path fill="none" stroke="#000000" d="M495.72,-499C505.52,-499 515.49,-499 525.41,-499"/>
<polygon fill="#000000" stroke="#000000" points="525.71,-502.5001 535.71,-499 525.71,-495.5001 525.71,-502.5001"/>
</g>
<!-- ZcashFoundation/zebra#571 -->
<g id="node30" class="node">
<title>ZcashFoundation/zebra#571</title>
<g id="a_node30"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/571" xlink:title="ZcashFoundation/zebra#571&#10;Create large transaction&#10;test cases for mempool&#10;testing" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="763.5,-447 540.5,-447 540.5,-379 763.5,-379 763.5,-447"/>
<text text-anchor="middle" x="652" y="-431.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#571</text>
<text text-anchor="middle" x="652" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000">Create large transaction</text>
<text text-anchor="middle" x="652" y="-401.8" font-family="Times,serif" font-size="14.00" fill="#000000">test cases for mempool</text>
<text text-anchor="middle" x="652" y="-386.8" font-family="Times,serif" font-size="14.00" fill="#000000">testing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571 -->
<g id="edge24" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#571</title>
<path fill="none" stroke="#000000" d="M470.2,-472.43C480.26,-469.27 490.36,-466.08 500,-463 512.78,-458.92 526.14,-454.59 539.41,-450.27"/>
<polygon fill="#000000" stroke="#000000" points="540.6317,-453.553 549.05,-447.12 538.4575,-446.8992 540.6317,-453.553"/>
</g>
<!-- ZcashFoundation/zebra#484 -->
<g id="node31" class="node">
<title>ZcashFoundation/zebra#484</title>
<g id="a_node31"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/484" xlink:title="ZcashFoundation/zebra#484&#10;Limit transaction size in&#10;the mempool" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="763.5,-360.5 540.5,-360.5 540.5,-307.5 763.5,-307.5 763.5,-360.5"/>
<text text-anchor="middle" x="652" y="-345.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#484</text>
<text text-anchor="middle" x="652" y="-330.3" font-family="Times,serif" font-size="14.00" fill="#000000">Limit transaction size in</text>
<text text-anchor="middle" x="652" y="-315.3" font-family="Times,serif" font-size="14.00" fill="#000000">the mempool</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484 -->
<g id="edge25" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#484</title>
<path fill="none" stroke="#000000" d="M488.02,-472.4C492.28,-469.58 496.3,-466.45 500,-463 532.39,-432.75 503.61,-400.25 536,-370 537.27,-368.81 538.58,-367.66 539.93,-366.55"/>
<polygon fill="#000000" stroke="#000000" points="542.0186,-369.3586 547.98,-360.6 537.8578,-363.7293 542.0186,-369.3586"/>
</g>
<!-- ZcashFoundation/zebra#1683 -->
<g id="node32" class="node">
<title>ZcashFoundation/zebra#1683</title>
<g id="a_node32"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1683" xlink:title="ZcashFoundation/zebra#1683&#10;Verify mempool&#10;transactions using a&#10;block height" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-289 536,-289 536,-221 768,-221 768,-289"/>
<text text-anchor="middle" x="652" y="-273.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1683</text>
<text text-anchor="middle" x="652" y="-258.8" font-family="Times,serif" font-size="14.00" fill="#000000">Verify mempool</text>
<text text-anchor="middle" x="652" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">transactions using a</text>
<text text-anchor="middle" x="652" y="-228.8" font-family="Times,serif" font-size="14.00" fill="#000000">block height</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1683 -->
<g id="edge26" class="edge">
<title>ZcashFoundation/zebra#936&#45;&gt;ZcashFoundation/zebra#1683</title>
<path fill="none" stroke="#000000" d="M489.72,-472.32C493.41,-469.52 496.86,-466.42 500,-463 550.74,-407.69 486.77,-354.66 536,-298 536.42,-297.52 536.84,-297.04 537.27,-296.57"/>
<polygon fill="#000000" stroke="#000000" points="539.9345,-298.8626 544.7,-289.4 535.0737,-293.8255 539.9345,-298.8626"/>
</g>
<!-- ZcashFoundation/zebra#196 -->
<g id="node33" class="node">
<title>ZcashFoundation/zebra#196</title>
<g id="a_node33"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/196" xlink:title="ZcashFoundation/zebra#196&#10;Tracking: transaction&#10;validation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="495.5,-1177.5 272.5,-1177.5 272.5,-1124.5 495.5,-1124.5 495.5,-1177.5"/>
<text text-anchor="middle" x="384" y="-1162.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#196</text>
<text text-anchor="middle" x="384" y="-1147.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tracking: transaction</text>
<text text-anchor="middle" x="384" y="-1132.3" font-family="Times,serif" font-size="14.00" fill="#000000">validation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486 -->
<g id="edge27" class="edge">
<title>ZcashFoundation/zebra#196&#45;&gt;ZcashFoundation/zebra#1486</title>
<path fill="none" stroke="#000000" d="M495.72,-1146.8C505.52,-1146.5 515.49,-1146.1 525.41,-1145.7"/>
<polygon fill="#000000" stroke="#000000" points="525.8534,-1149.1855 535.71,-1145.3 525.5817,-1142.1908 525.8534,-1149.1855"/>
</g>
<!-- ZcashFoundation/zebra#1086 -->
<g id="node34" class="node">
<title>ZcashFoundation/zebra#1086</title>
<g id="a_node34"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1086" xlink:title="ZcashFoundation/zebra#1086&#10;Remove git dependencies&#10;on Hyper, Metrics, Tower,&#10;ed25519&#45;zebra, lexical&#45;&#10;core" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1420.5 0,-1420.5 0,-1337.5 232,-1337.5 232,-1420.5"/>
<text text-anchor="middle" x="116" y="-1405.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1086</text>
<text text-anchor="middle" x="116" y="-1390.3" font-family="Times,serif" font-size="14.00" fill="#000000">Remove git dependencies</text>
<text text-anchor="middle" x="116" y="-1375.3" font-family="Times,serif" font-size="14.00" fill="#000000">on Hyper, Metrics, Tower,</text>
<text text-anchor="middle" x="116" y="-1360.3" font-family="Times,serif" font-size="14.00" fill="#000000">ed25519&#45;zebra, lexical&#45;</text>
<text text-anchor="middle" x="116" y="-1345.3" font-family="Times,serif" font-size="14.00" fill="#000000">core</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1686 -->
<g id="node35" class="node">
<title>ZcashFoundation/zebra#1686</title>
<g id="a_node35"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1686" xlink:title="ZcashFoundation/zebra#1686&#10;Delete isolated::Wrapper" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-1462 268,-1462 268,-1424 500,-1424 500,-1462"/>
<text text-anchor="middle" x="384" y="-1446.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1686</text>
<text text-anchor="middle" x="384" y="-1431.8" font-family="Times,serif" font-size="14.00" fill="#000000">Delete isolated::Wrapper</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686 -->
<g id="edge28" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#1686</title>
<path fill="none" stroke="#000000" d="M232.38,-1406.8C253.16,-1411.8 274.53,-1416.9 294.41,-1421.6"/>
<polygon fill="#000000" stroke="#000000" points="293.8181,-1425.0575 304.36,-1424 295.4595,-1418.2527 293.8181,-1425.0575"/>
</g>
<!-- ZcashFoundation/zebra#2112 -->
<g id="node36" class="node">
<title>ZcashFoundation/zebra#2112</title>
<g id="a_node36"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2112" xlink:title="ZcashFoundation/zebra#2112&#10;Integrate&#10;TurboWish/tokio&#45;console" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-1405.5 268,-1405.5 268,-1352.5 500,-1352.5 500,-1405.5"/>
<text text-anchor="middle" x="384" y="-1390.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2112</text>
<text text-anchor="middle" x="384" y="-1375.3" font-family="Times,serif" font-size="14.00" fill="#000000">Integrate</text>
<text text-anchor="middle" x="384" y="-1360.3" font-family="Times,serif" font-size="14.00" fill="#000000">TurboWish/tokio&#45;console</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112 -->
<g id="edge29" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2112</title>
<path fill="none" stroke="#000000" d="M232.38,-1379C240.71,-1379 249.14,-1379 257.53,-1379"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-1382.5001 267.74,-1379 257.74,-1375.5001 257.74,-1382.5001"/>
</g>
<!-- ZcashFoundation/zebra#2200 -->
<g id="node37" class="node">
<title>ZcashFoundation/zebra#2200</title>
<g id="a_node37"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2200" xlink:title="ZcashFoundation/zebra#2200&#10;Upgrade to latest tokio" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-1334 268,-1334 268,-1296 500,-1296 500,-1334"/>
<text text-anchor="middle" x="384" y="-1318.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2200</text>
<text text-anchor="middle" x="384" y="-1303.8" font-family="Times,serif" font-size="14.00" fill="#000000">Upgrade to latest tokio</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200 -->
<g id="edge30" class="edge">
<title>ZcashFoundation/zebra#1086&#45;&gt;ZcashFoundation/zebra#2200</title>
<path fill="none" stroke="#000000" d="M232.38,-1351.2C253.16,-1346.2 274.53,-1341.1 294.41,-1336.4"/>
<polygon fill="#000000" stroke="#000000" points="295.4595,-1339.7473 304.36,-1334 293.8181,-1332.9425 295.4595,-1339.7473"/>
</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="768,-1428 536,-1428 536,-1360 768,-1360 768,-1428"/>
<text text-anchor="middle" x="652" y="-1412.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2202</text>
<text text-anchor="middle" x="652" y="-1397.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move batch cryptography</text>
<text text-anchor="middle" x="652" y="-1382.8" font-family="Times,serif" font-size="14.00" fill="#000000">flushes to a blocking</text>
<text text-anchor="middle" x="652" y="-1367.8" font-family="Times,serif" font-size="14.00" fill="#000000">thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202 -->
<g id="edge31" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2202</title>
<path fill="none" stroke="#000000" d="M466.61,-1334C477.87,-1336.9 489.25,-1339.9 500,-1343 514.59,-1347.2 529.87,-1351.9 544.87,-1356.8"/>
<polygon fill="#000000" stroke="#000000" points="544.0876,-1360.2262 554.68,-1360 546.2584,-1353.5713 544.0876,-1360.2262"/>
</g>
<!-- ZcashFoundation/zebra#2201 -->
<g id="node39" class="node">
<title>ZcashFoundation/zebra#2201</title>
<g id="a_node39"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2201" xlink:title="ZcashFoundation/zebra#2201&#10;Move the metrics recorder&#10;to a blocking thread" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-1341.5 536,-1341.5 536,-1288.5 768,-1288.5 768,-1341.5"/>
<text text-anchor="middle" x="652" y="-1326.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2201</text>
<text text-anchor="middle" x="652" y="-1311.3" font-family="Times,serif" font-size="14.00" fill="#000000">Move the metrics recorder</text>
<text text-anchor="middle" x="652" y="-1296.3" font-family="Times,serif" font-size="14.00" fill="#000000">to a blocking thread</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201 -->
<g id="edge32" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2201</title>
<path fill="none" stroke="#000000" d="M500.38,-1315C508.71,-1315 517.14,-1315 525.53,-1315"/>
<polygon fill="#000000" stroke="#000000" points="525.74,-1318.5001 535.74,-1315 525.74,-1311.5001 525.74,-1318.5001"/>
</g>
<!-- ZcashFoundation/zebra#2268 -->
<g id="node40" class="node">
<title>ZcashFoundation/zebra#2268</title>
<g id="a_node40"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2268" xlink:title="ZcashFoundation/zebra#2268&#10;Replace atomics with&#10;watch or oneshot channels" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-1270.5 536,-1270.5 536,-1217.5 768,-1217.5 768,-1270.5"/>
<text text-anchor="middle" x="652" y="-1255.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2268</text>
<text text-anchor="middle" x="652" y="-1240.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace atomics with</text>
<text text-anchor="middle" x="652" y="-1225.3" font-family="Times,serif" font-size="14.00" fill="#000000">watch or oneshot channels</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268 -->
<g id="edge33" class="edge">
<title>ZcashFoundation/zebra#2200&#45;&gt;ZcashFoundation/zebra#2268</title>
<path fill="none" stroke="#000000" d="M455.82,-1296C482.29,-1289 512.91,-1280.8 541.98,-1273.1"/>
<polygon fill="#000000" stroke="#000000" points="542.9469,-1276.4655 551.77,-1270.6 541.2149,-1269.6831 542.9469,-1276.4655"/>
</g>
<!-- ZcashFoundation/zebra#950 -->
<g id="node41" class="node">
<title>ZcashFoundation/zebra#950</title>
<g id="a_node41"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/950" xlink:title="ZcashFoundation/zebra#950&#10;Demo: compare zcashd vs&#10;zebrad ludicrous speed on&#10;syncing" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="227.5,-1507 4.5,-1507 4.5,-1439 227.5,-1439 227.5,-1507"/>
<text text-anchor="middle" x="116" y="-1491.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#950</text>
<text text-anchor="middle" x="116" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000">Demo: compare zcashd vs</text>
<text text-anchor="middle" x="116" y="-1461.8" font-family="Times,serif" font-size="14.00" fill="#000000">zebrad ludicrous speed on</text>
<text text-anchor="middle" x="116" y="-1446.8" font-family="Times,serif" font-size="14.00" fill="#000000">syncing</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#692 -->
<g id="node42" class="node">
<title>ZcashFoundation/zebra#692</title>
<g id="a_node42"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/692" xlink:title="ZcashFoundation/zebra#692&#10;Use git metadata and&#10;platform info in Zebra" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="227.5,-1578.5 4.5,-1578.5 4.5,-1525.5 227.5,-1525.5 227.5,-1578.5"/>
<text text-anchor="middle" x="116" y="-1563.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#692</text>
<text text-anchor="middle" x="116" y="-1548.3" font-family="Times,serif" font-size="14.00" fill="#000000">Use git metadata and</text>
<text text-anchor="middle" x="116" y="-1533.3" font-family="Times,serif" font-size="14.00" fill="#000000">platform info in Zebra</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1753 -->
<g id="node43" class="node">
<title>ZcashFoundation/zebra#1753</title>
<g id="a_node43"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1753" xlink:title="ZcashFoundation/zebra#1753&#10;Re&#45;deploy the Foundation&#10;DNS Seeders" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="500,-1762.5 268,-1762.5 268,-1709.5 500,-1709.5 500,-1762.5"/>
<text text-anchor="middle" x="384" y="-1747.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1753</text>
<text text-anchor="middle" x="384" y="-1732.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;deploy the Foundation</text>
<text text-anchor="middle" x="384" y="-1717.3" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders</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="768,-1675.5 536,-1675.5 536,-1622.5 768,-1622.5 768,-1675.5"/>
<text text-anchor="middle" x="652" y="-1660.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1791</text>
<text text-anchor="middle" x="652" y="-1645.3" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;enable `sync_large_che</text>
<text text-anchor="middle" x="652" y="-1630.3" font-family="Times,serif" font-size="14.00" fill="#000000">ckpoints_testnet` test</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1753&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge34" class="edge">
<title>ZcashFoundation/zebra#1753&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M470.22,-1709.5C480.27,-1706.3 490.37,-1703.1 500,-1700 520.9,-1693.3 543.36,-1685.8 564.43,-1678.8"/>
<polygon fill="#000000" stroke="#000000" points="565.6873,-1682.0688 574,-1675.5 563.4053,-1675.4512 565.6873,-1682.0688"/>
</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="1036,-1683 804,-1683 804,-1679 800,-1679 800,-1675 804,-1675 804,-1623 800,-1623 800,-1619 804,-1619 804,-1615 1036,-1615 1036,-1683"/>
<polyline fill="none" stroke="#000000" points="804,-1679 808,-1679 808,-1675 804,-1675 "/>
<polyline fill="none" stroke="#000000" points="804,-1623 808,-1623 808,-1619 804,-1619 "/>
<text text-anchor="middle" x="920" y="-1667.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1007</text>
<text text-anchor="middle" x="920" y="-1652.8" font-family="Times,serif" font-size="14.00" fill="#000000">Draft RFC: Initial draft</text>
<text text-anchor="middle" x="920" y="-1637.8" font-family="Times,serif" font-size="14.00" fill="#000000">for basic network</text>
<text text-anchor="middle" x="920" y="-1622.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="edge35" class="edge">
<title>ZcashFoundation/zebra#1791&#45;&gt;ZcashFoundation/zebra#1007</title>
<path fill="none" stroke="#000000" d="M768.38,-1649C776.71,-1649 785.14,-1649 793.53,-1649"/>
<polygon fill="#000000" stroke="#000000" points="793.74,-1652.5001 803.74,-1649 793.74,-1645.5001 793.74,-1652.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="232,-2095.5 0,-2095.5 0,-2012.5 232,-2012.5 232,-2095.5"/>
<text text-anchor="middle" x="116" y="-2080.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1827</text>
<text text-anchor="middle" x="116" y="-2065.3" font-family="Times,serif" font-size="14.00" fill="#000000">Split `WrongVersion`</text>
<text text-anchor="middle" x="116" y="-2050.3" font-family="Times,serif" font-size="14.00" fill="#000000">errors into</text>
<text text-anchor="middle" x="116" y="-2035.3" font-family="Times,serif" font-size="14.00" fill="#000000">`OutdatedVersion` and</text>
<text text-anchor="middle" x="116" y="-2020.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="232,-2228 0,-2228 0,-2160 232,-2160 232,-2228"/>
<text text-anchor="middle" x="116" y="-2212.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1828</text>
<text text-anchor="middle" x="116" y="-2197.8" font-family="Times,serif" font-size="14.00" fill="#000000">Move duplicate</text>
<text text-anchor="middle" x="116" y="-2182.8" font-family="Times,serif" font-size="14.00" fill="#000000">`Transaction` code into</text>
<text text-anchor="middle" x="116" y="-2167.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="232,-2322.5 0,-2322.5 0,-2269.5 232,-2269.5 232,-2322.5"/>
<text text-anchor="middle" x="116" y="-2307.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1592</text>
<text text-anchor="middle" x="116" y="-2292.3" font-family="Times,serif" font-size="14.00" fill="#000000">Write tests for sync</text>
<text text-anchor="middle" x="116" y="-2277.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="500,-2345 268,-2345 268,-2341 264,-2341 264,-2337 268,-2337 268,-2255 264,-2255 264,-2251 268,-2251 268,-2247 500,-2247 500,-2345"/>
<polyline fill="none" stroke="#000000" points="268,-2341 272,-2341 272,-2337 268,-2337 "/>
<polyline fill="none" stroke="#000000" points="268,-2255 272,-2255 272,-2251 268,-2251 "/>
<text text-anchor="middle" x="384" y="-2329.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1817</text>
<text text-anchor="middle" x="384" y="-2314.8" font-family="Times,serif" font-size="14.00" fill="#000000">Re&#45;Apply &quot;Refactor</text>
<text text-anchor="middle" x="384" y="-2299.8" font-family="Times,serif" font-size="14.00" fill="#000000">`connection.rs` to make</text>
<text text-anchor="middle" x="384" y="-2284.8" font-family="Times,serif" font-size="14.00" fill="#000000">`fail_with` errors</text>
<text text-anchor="middle" x="384" y="-2269.8" font-family="Times,serif" font-size="14.00" fill="#000000">impossible&quot; (double</text>
<text text-anchor="middle" x="384" y="-2254.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="edge36" class="edge">
<title>ZcashFoundation/zebra#1592&#45;&gt;ZcashFoundation/zebra#1817</title>
<path fill="none" stroke="#000000" d="M232.38,-2296C240.71,-2296 249.14,-2296 257.53,-2296"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-2299.5001 267.74,-2296 257.74,-2292.5001 257.74,-2299.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;activation heights" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-2409 0,-2409 0,-2341 232,-2341 232,-2409"/>
<text text-anchor="middle" x="116" y="-2393.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1841</text>
<text text-anchor="middle" x="116" y="-2378.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;252: Update Zebra and</text>
<text text-anchor="middle" x="116" y="-2363.8" font-family="Times,serif" font-size="14.00" fill="#000000">DNS Seeders with NU5</text>
<text text-anchor="middle" x="116" y="-2348.8" font-family="Times,serif" font-size="14.00" fill="#000000">activation heights</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849 -->
<g id="node51" class="node">
<title>ZcashFoundation/zebra#1849</title>
<g id="a_node51"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1849" xlink:title="ZcashFoundation/zebra#1849&#10;Refactor MetaAddr fields&#10;to enable security fixes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-1971.5 0,-1971.5 0,-1918.5 232,-1918.5 232,-1971.5"/>
<text text-anchor="middle" x="116" y="-1956.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1849</text>
<text text-anchor="middle" x="116" y="-1941.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor MetaAddr fields</text>
<text text-anchor="middle" x="116" y="-1926.3" font-family="Times,serif" font-size="14.00" fill="#000000">to enable security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1848 -->
<g id="node52" class="node">
<title>ZcashFoundation/zebra#1848</title>
<g id="a_node52"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1848" xlink:title="ZcashFoundation/zebra#1848&#10;Security: Limit&#10;reconnection rate to each&#10;individual peer address" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-2127 268,-2127 268,-2059 500,-2059 500,-2127"/>
<text text-anchor="middle" x="384" y="-2111.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1848</text>
<text text-anchor="middle" x="384" y="-2096.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit</text>
<text text-anchor="middle" x="384" y="-2081.8" font-family="Times,serif" font-size="14.00" fill="#000000">reconnection rate to each</text>
<text text-anchor="middle" x="384" y="-2066.8" font-family="Times,serif" font-size="14.00" fill="#000000">individual peer address</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1848 -->
<g id="edge37" class="edge">
<title>ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1848</title>
<path fill="none" stroke="#000000" d="M182.07,-1971.6C199.29,-1980.2 217.16,-1990.7 232,-2003 252.29,-2019.8 246.83,-2034.4 268,-2050 269.62,-2051.2 271.28,-2052.4 272.97,-2053.5"/>
<polygon fill="#000000" stroke="#000000" points="271.3102,-2056.5894 281.65,-2058.9 275.0079,-2050.6457 271.3102,-2056.5894"/>
</g>
<!-- ZcashFoundation/zebra#1865 -->
<g id="node53" class="node">
<title>ZcashFoundation/zebra#1865</title>
<g id="a_node53"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1865" xlink:title="ZcashFoundation/zebra#1865&#10;Security: Running Zebra&#10;nodes should eventually&#10;stop trying to contact&#10;peers that always fail" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-1941.5 536,-1941.5 536,-1858.5 768,-1858.5 768,-1941.5"/>
<text text-anchor="middle" x="652" y="-1926.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1865</text>
<text text-anchor="middle" x="652" y="-1911.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Running Zebra</text>
<text text-anchor="middle" x="652" y="-1896.3" font-family="Times,serif" font-size="14.00" fill="#000000">nodes should eventually</text>
<text text-anchor="middle" x="652" y="-1881.3" font-family="Times,serif" font-size="14.00" fill="#000000">stop trying to contact</text>
<text text-anchor="middle" x="652" y="-1866.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers that always fail</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1865 -->
<g id="edge38" class="edge">
<title>ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1865</title>
<path fill="none" stroke="#000000" d="M232.17,-1934.2C244.27,-1933.1 256.38,-1932 268,-1931 353.76,-1923.6 450.34,-1915.8 525.19,-1909.9"/>
<polygon fill="#000000" stroke="#000000" points="525.8976,-1913.356 535.6,-1909.1 525.3612,-1906.3766 525.8976,-1913.356"/>
</g>
<!-- ZcashFoundation/zebra#1867 -->
<g id="node54" class="node">
<title>ZcashFoundation/zebra#1867</title>
<g id="a_node54"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1867" xlink:title="ZcashFoundation/zebra#1867&#10;Security: Zebra should&#10;stop gossiping&#10;unreachable addresses to&#10;other nodes, Action: re&#45;&#10;deploy all nodes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-1879 268,-1879 268,-1781 500,-1781 500,-1879"/>
<text text-anchor="middle" x="384" y="-1863.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1867</text>
<text text-anchor="middle" x="384" y="-1848.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Zebra should</text>
<text text-anchor="middle" x="384" y="-1833.8" font-family="Times,serif" font-size="14.00" fill="#000000">stop gossiping</text>
<text text-anchor="middle" x="384" y="-1818.8" font-family="Times,serif" font-size="14.00" fill="#000000">unreachable addresses to</text>
<text text-anchor="middle" x="384" y="-1803.8" font-family="Times,serif" font-size="14.00" fill="#000000">other nodes, Action: re&#45;</text>
<text text-anchor="middle" x="384" y="-1788.8" font-family="Times,serif" font-size="14.00" fill="#000000">deploy all nodes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1867 -->
<g id="edge39" class="edge">
<title>ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1867</title>
<path fill="none" stroke="#000000" d="M177.82,-1918.5C202.44,-1907.9 231.69,-1895.4 260.32,-1883.1"/>
<polygon fill="#000000" stroke="#000000" points="261.7878,-1886.2786 269.58,-1879.1 259.0119,-1879.8525 261.7878,-1886.2786"/>
</g>
<!-- ZcashFoundation/zebra#1868 -->
<g id="node55" class="node">
<title>ZcashFoundation/zebra#1868</title>
<g id="a_node55"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1868" xlink:title="ZcashFoundation/zebra#1868&#10;Security: Zebra should&#10;stop gossiping failure&#10;times as last_seen times" target="_blank">
<polygon fill="#fad8c7" stroke="#000000" points="500,-2041 268,-2041 268,-1973 500,-1973 500,-2041"/>
<text text-anchor="middle" x="384" y="-2025.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1868</text>
<text text-anchor="middle" x="384" y="-2010.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Zebra should</text>
<text text-anchor="middle" x="384" y="-1995.8" font-family="Times,serif" font-size="14.00" fill="#000000">stop gossiping failure</text>
<text text-anchor="middle" x="384" y="-1980.8" font-family="Times,serif" font-size="14.00" fill="#000000">times as last_seen times</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1868 -->
<g id="edge40" class="edge">
<title>ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1868</title>
<path fill="none" stroke="#000000" d="M230.82,-1971.6C239.79,-1973.6 248.88,-1975.7 257.93,-1977.8"/>
<polygon fill="#000000" stroke="#000000" points="257.1743,-1981.2177 267.71,-1980.1 258.7768,-1974.4036 257.1743,-1981.2177"/>
</g>
<!-- ZcashFoundation/zebra#1873 -->
<g id="node56" class="node">
<title>ZcashFoundation/zebra#1873</title>
<g id="a_node56"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1873" xlink:title="ZcashFoundation/zebra#1873&#10;Zebra&#39;s address book can&#10;use all available memory" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-1691.5 268,-1691.5 268,-1638.5 500,-1638.5 500,-1691.5"/>
<text text-anchor="middle" x="384" y="-1676.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1873</text>
<text text-anchor="middle" x="384" y="-1661.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra&#39;s address book can</text>
<text text-anchor="middle" x="384" y="-1646.3" font-family="Times,serif" font-size="14.00" fill="#000000">use all available memory</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1873 -->
<g id="edge41" class="edge">
<title>ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1873</title>
<path fill="none" stroke="#000000" d="M125.16,-1918.5C143.88,-1868.2 191.34,-1758.8 268,-1700 269.38,-1698.9 270.79,-1697.9 272.22,-1696.9"/>
<polygon fill="#000000" stroke="#000000" points="274.0976,-1699.854 280.74,-1691.6 270.4001,-1693.9102 274.0976,-1699.854"/>
</g>
<!-- ZcashFoundation/zebra#1875 -->
<g id="node57" class="node">
<title>ZcashFoundation/zebra#1875</title>
<g id="a_node57"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1875" xlink:title="ZcashFoundation/zebra#1875&#10;Zebra attempts new peer&#10;connections in a fixed,&#10;predictable order" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-2127 536,-2127 536,-2059 768,-2059 768,-2127"/>
<text text-anchor="middle" x="652" y="-2111.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1875</text>
<text text-anchor="middle" x="652" y="-2096.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra attempts new peer</text>
<text text-anchor="middle" x="652" y="-2081.8" font-family="Times,serif" font-size="14.00" fill="#000000">connections in a fixed,</text>
<text text-anchor="middle" x="652" y="-2066.8" font-family="Times,serif" font-size="14.00" fill="#000000">predictable order</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1875 -->
<g id="edge42" class="edge">
<title>ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1875</title>
<path fill="none" stroke="#000000" d="M232.21,-1942.6C327.13,-1942.2 452.98,-1945.4 500,-1964 546.44,-1982.4 588.81,-2021 616.95,-2051.2"/>
<polygon fill="#000000" stroke="#000000" points="614.4654,-2053.6698 623.79,-2058.7 619.6375,-2048.9528 614.4654,-2053.6698"/>
</g>
<!-- ZcashFoundation/zebra#1876 -->
<g id="node58" class="node">
<title>ZcashFoundation/zebra#1876</title>
<g id="a_node58"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/1876" xlink:title="ZcashFoundation/zebra#1876&#10;Security: Retry&#10;previously successful&#10;peers before peers that&#10;have always failed" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-2228.5 268,-2228.5 268,-2145.5 500,-2145.5 500,-2228.5"/>
<text text-anchor="middle" x="384" y="-2213.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1876</text>
<text text-anchor="middle" x="384" y="-2198.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Retry</text>
<text text-anchor="middle" x="384" y="-2183.3" font-family="Times,serif" font-size="14.00" fill="#000000">previously successful</text>
<text text-anchor="middle" x="384" y="-2168.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers before peers that</text>
<text text-anchor="middle" x="384" y="-2153.3" font-family="Times,serif" font-size="14.00" fill="#000000">have always failed</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1876 -->
<g id="edge43" class="edge">
<title>ZcashFoundation/zebra#1849&#45;&gt;ZcashFoundation/zebra#1876</title>
<path fill="none" stroke="#000000" d="M192.23,-1971.5C207.11,-1979.7 221.38,-1990 232,-2003 270.78,-2050.4 228.06,-2089.6 268,-2136 268.63,-2136.7 269.27,-2137.4 269.92,-2138.2"/>
<polygon fill="#000000" stroke="#000000" points="267.7189,-2140.9415 277.33,-2145.4 272.5971,-2135.9211 267.7189,-2140.9415"/>
</g>
<!-- ZcashFoundation/zebra#1848&#45;&gt;ZcashFoundation/zebra#1875 -->
<g id="edge44" class="edge">
<title>ZcashFoundation/zebra#1848&#45;&gt;ZcashFoundation/zebra#1875</title>
<path fill="none" stroke="#000000" d="M500.38,-2093C508.71,-2093 517.14,-2093 525.53,-2093"/>
<polygon fill="#000000" stroke="#000000" points="525.74,-2096.5001 535.74,-2093 525.74,-2089.5001 525.74,-2096.5001"/>
</g>
<!-- ZcashFoundation/zebra#1956 -->
<g id="node59" class="node">
<title>ZcashFoundation/zebra#1956</title>
<g id="a_node59"><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="1036,-1864 804,-1864 804,-1796 1036,-1796 1036,-1864"/>
<text text-anchor="middle" x="920" y="-1848.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1956</text>
<text text-anchor="middle" x="920" y="-1833.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should store a</text>
<text text-anchor="middle" x="920" y="-1818.8" font-family="Times,serif" font-size="14.00" fill="#000000">persistent list of recent</text>
<text text-anchor="middle" x="920" y="-1803.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="edge45" class="edge">
<title>ZcashFoundation/zebra#1865&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M768.38,-1869.6C776.81,-1867.4 785.33,-1865.2 793.81,-1863"/>
<polygon fill="#000000" stroke="#000000" points="794.9527,-1866.3189 803.74,-1860.4 793.1795,-1859.5472 794.9527,-1866.3189"/>
</g>
<!-- ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge46" class="edge">
<title>ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M486.82,-1780.9C491.39,-1777.8 495.81,-1774.4 500,-1771 520.04,-1754.5 516.89,-1742.6 536,-1725 553.83,-1708.6 575.57,-1693.4 595.38,-1680.9"/>
<polygon fill="#000000" stroke="#000000" points="597.4007,-1683.7646 604.03,-1675.5 593.6938,-1677.8267 597.4007,-1683.7646"/>
</g>
<!-- ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1865 -->
<g id="edge47" class="edge">
<title>ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1865</title>
<path fill="none" stroke="#000000" d="M500.38,-1860.4C508.81,-1862.6 517.33,-1864.8 525.81,-1867"/>
<polygon fill="#000000" stroke="#000000" points="525.1795,-1870.4528 535.74,-1869.6 526.9527,-1863.6811 525.1795,-1870.4528"/>
</g>
<!-- ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1956 -->
<g id="edge48" class="edge">
<title>ZcashFoundation/zebra#1867&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M500.3,-1830C586.87,-1830 704.93,-1830 793.78,-1830"/>
<polygon fill="#000000" stroke="#000000" points="793.92,-1833.5001 803.92,-1830 793.92,-1826.5001 793.92,-1833.5001"/>
</g>
<!-- ZcashFoundation/zebra#1876&#45;&gt;ZcashFoundation/zebra#1875 -->
<g id="edge49" class="edge">
<title>ZcashFoundation/zebra#1876&#45;&gt;ZcashFoundation/zebra#1875</title>
<path fill="none" stroke="#000000" d="M500.38,-2146.2C515.33,-2140.9 530.57,-2135.6 545.36,-2130.4"/>
<polygon fill="#000000" stroke="#000000" points="546.7257,-2133.6296 554.99,-2127 544.3952,-2127.0289 546.7257,-2133.6296"/>
</g>
<!-- ZcashFoundation/zebra#1869 -->
<g id="node60" class="node">
<title>ZcashFoundation/zebra#1869</title>
<g id="a_node60"><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="232,-1679.5 0,-1679.5 0,-1596.5 232,-1596.5 232,-1679.5"/>
<text text-anchor="middle" x="116" y="-1664.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1869</text>
<text text-anchor="middle" x="116" y="-1649.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should limit the</text>
<text text-anchor="middle" x="116" y="-1634.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of addresses it</text>
<text text-anchor="middle" x="116" y="-1619.3" font-family="Times,serif" font-size="14.00" fill="#000000">uses from a single Addrs</text>
<text text-anchor="middle" x="116" y="-1604.3" font-family="Times,serif" font-size="14.00" fill="#000000">response</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791 -->
<g id="edge50" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M232.06,-1629.9C308.29,-1625.9 410.17,-1623.1 500,-1629 508.4,-1629.6 517.04,-1630.3 525.74,-1631.1"/>
<polygon fill="#000000" stroke="#000000" points="525.6769,-1634.6104 535.97,-1632.1 526.358,-1627.6436 525.6769,-1634.6104"/>
</g>
<!-- ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873 -->
<g id="edge51" class="edge">
<title>ZcashFoundation/zebra#1869&#45;&gt;ZcashFoundation/zebra#1873</title>
<path fill="none" stroke="#000000" d="M232.38,-1649.7C240.71,-1650.6 249.14,-1651.4 257.53,-1652.3"/>
<polygon fill="#000000" stroke="#000000" points="257.4464,-1655.8085 267.74,-1653.3 258.1288,-1648.8418 257.4464,-1655.8085"/>
</g>
<!-- ZcashFoundation/zebra#1890 -->
<g id="node61" class="node">
<title>ZcashFoundation/zebra#1890</title>
<g id="a_node61"><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="232,-2510.5 0,-2510.5 0,-2427.5 232,-2427.5 232,-2510.5"/>
<text text-anchor="middle" x="116" y="-2495.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1890</text>
<text text-anchor="middle" x="116" y="-2480.3" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should support</text>
<text text-anchor="middle" x="116" y="-2465.3" font-family="Times,serif" font-size="14.00" fill="#000000">separate local bind and</text>
<text text-anchor="middle" x="116" y="-2450.3" font-family="Times,serif" font-size="14.00" fill="#000000">external advertise</text>
<text text-anchor="middle" x="116" y="-2435.3" font-family="Times,serif" font-size="14.00" fill="#000000">addresses</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1893 -->
<g id="node62" class="node">
<title>ZcashFoundation/zebra#1893</title>
<g id="a_node62"><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="500,-2503 268,-2503 268,-2435 500,-2435 500,-2503"/>
<text text-anchor="middle" x="384" y="-2487.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1893</text>
<text text-anchor="middle" x="384" y="-2472.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should auto&#45;</text>
<text text-anchor="middle" x="384" y="-2457.8" font-family="Times,serif" font-size="14.00" fill="#000000">discover its own external</text>
<text text-anchor="middle" x="384" y="-2442.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="edge52" class="edge">
<title>ZcashFoundation/zebra#1890&#45;&gt;ZcashFoundation/zebra#1893</title>
<path fill="none" stroke="#000000" d="M232.38,-2469C240.71,-2469 249.14,-2469 257.53,-2469"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-2472.5001 267.74,-2469 257.74,-2465.5001 257.74,-2472.5001"/>
</g>
<!-- ZcashFoundation/zebra#1904 -->
<g id="node63" class="node">
<title>ZcashFoundation/zebra#1904</title>
<g id="a_node63"><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="500,-1582 268,-1582 268,-1514 500,-1514 500,-1582"/>
<text text-anchor="middle" x="384" y="-1566.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1904</text>
<text text-anchor="middle" x="384" y="-1551.8" font-family="Times,serif" font-size="14.00" fill="#000000">Testnet DNS seeders don&#39;t</text>
<text text-anchor="middle" x="384" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000">show the Foundation&#39;s new</text>
<text text-anchor="middle" x="384" y="-1521.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="edge53" class="edge">
<title>ZcashFoundation/zebra#1904&#45;&gt;ZcashFoundation/zebra#1791</title>
<path fill="none" stroke="#000000" d="M474.36,-1582.1C506.03,-1594 541.36,-1607.3 572.11,-1618.9"/>
<polygon fill="#000000" stroke="#000000" points="570.9073,-1622.1869 581.5,-1622.4 573.3522,-1615.6277 570.9073,-1622.1869"/>
</g>
<!-- ZcashFoundation/zebra#1917 -->
<g id="node64" class="node">
<title>ZcashFoundation/zebra#1917</title>
<g id="a_node64"><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="232,-2611.5 0,-2611.5 0,-2528.5 232,-2528.5 232,-2611.5"/>
<text text-anchor="middle" x="116" y="-2596.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1917</text>
<text text-anchor="middle" x="116" y="-2581.3" font-family="Times,serif" font-size="14.00" fill="#000000">Check Transaction</text>
<text text-anchor="middle" x="116" y="-2566.3" font-family="Times,serif" font-size="14.00" fill="#000000">cardinality at parse</text>
<text text-anchor="middle" x="116" y="-2551.3" font-family="Times,serif" font-size="14.00" fill="#000000">time, to limit memory</text>
<text text-anchor="middle" x="116" y="-2536.3" font-family="Times,serif" font-size="14.00" fill="#000000">usage</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1851 -->
<g id="node65" class="node">
<title>ZcashFoundation/zebra#1851</title>
<g id="a_node65"><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="232,-2698 0,-2698 0,-2630 232,-2630 232,-2698"/>
<text text-anchor="middle" x="116" y="-2682.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1851</text>
<text text-anchor="middle" x="116" y="-2667.8" font-family="Times,serif" font-size="14.00" fill="#000000">Limit the number of</text>
<text text-anchor="middle" x="116" y="-2652.8" font-family="Times,serif" font-size="14.00" fill="#000000">connected peers in the</text>
<text text-anchor="middle" x="116" y="-2637.8" font-family="Times,serif" font-size="14.00" fill="#000000">PeerSet</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1850 -->
<g id="node66" class="node">
<title>ZcashFoundation/zebra#1850</title>
<g id="a_node66"><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="232,-2799.5 0,-2799.5 0,-2716.5 232,-2716.5 232,-2799.5"/>
<text text-anchor="middle" x="116" y="-2784.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1850</text>
<text text-anchor="middle" x="116" y="-2769.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit the</text>
<text text-anchor="middle" x="116" y="-2754.3" font-family="Times,serif" font-size="14.00" fill="#000000">number of outbound peer</text>
<text text-anchor="middle" x="116" y="-2739.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections when dialing</text>
<text text-anchor="middle" x="116" y="-2724.3" font-family="Times,serif" font-size="14.00" fill="#000000">new peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1334 -->
<g id="node67" class="node">
<title>ZcashFoundation/zebra#1334</title>
<g id="a_node67"><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="500,-3001.5 268,-3001.5 268,-2918.5 500,-2918.5 500,-3001.5"/>
<text text-anchor="middle" x="384" y="-2986.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1334</text>
<text text-anchor="middle" x="384" y="-2971.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="384" y="-2956.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, reject new</text>
<text text-anchor="middle" x="384" y="-2941.3" font-family="Times,serif" font-size="14.00" fill="#000000">connections from outdated</text>
<text text-anchor="middle" x="384" y="-2926.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#706 -->
<g id="node68" class="node">
<title>ZcashFoundation/zebra#706</title>
<g id="a_node68"><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="763.5,-2931.5 540.5,-2931.5 540.5,-2848.5 763.5,-2848.5 763.5,-2931.5"/>
<text text-anchor="middle" x="652" y="-2916.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#706</text>
<text text-anchor="middle" x="652" y="-2901.3" font-family="Times,serif" font-size="14.00" fill="#000000">Do we need to prefer</text>
<text text-anchor="middle" x="652" y="-2886.3" font-family="Times,serif" font-size="14.00" fill="#000000">evicting pre&#45;upgrade</text>
<text text-anchor="middle" x="652" y="-2871.3" font-family="Times,serif" font-size="14.00" fill="#000000">peers from the peer set</text>
<text text-anchor="middle" x="652" y="-2856.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="edge54" class="edge">
<title>ZcashFoundation/zebra#1334&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M500.38,-2929.6C510.34,-2927 520.43,-2924.4 530.43,-2921.8"/>
<polygon fill="#000000" stroke="#000000" points="531.5983,-2925.1124 540.39,-2919.2 529.8302,-2918.3394 531.5983,-2925.1124"/>
</g>
<!-- ZcashFoundation/zebra#1894 -->
<g id="node69" class="node">
<title>ZcashFoundation/zebra#1894</title>
<g id="a_node69"><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="768,-1802 536,-1802 536,-1734 768,-1734 768,-1802"/>
<text text-anchor="middle" x="652" y="-1786.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1894</text>
<text text-anchor="middle" x="652" y="-1771.8" font-family="Times,serif" font-size="14.00" fill="#000000">Zebra should follow OS</text>
<text text-anchor="middle" x="652" y="-1756.8" font-family="Times,serif" font-size="14.00" fill="#000000">directory conventions</text>
<text text-anchor="middle" x="652" y="-1741.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="edge55" class="edge">
<title>ZcashFoundation/zebra#1894&#45;&gt;ZcashFoundation/zebra#1956</title>
<path fill="none" stroke="#000000" d="M768.38,-1794.9C776.81,-1796.9 785.33,-1798.8 793.81,-1800.8"/>
<polygon fill="#000000" stroke="#000000" points="793.2081,-1804.2532 803.74,-1803.1 794.7877,-1797.4337 793.2081,-1804.2532"/>
</g>
<!-- ZcashFoundation/zebra#1874 -->
<g id="node70" class="node">
<title>ZcashFoundation/zebra#1874</title>
<g id="a_node70"><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="232,-2987 0,-2987 0,-2919 232,-2919 232,-2987"/>
<text text-anchor="middle" x="116" y="-2971.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1874</text>
<text text-anchor="middle" x="116" y="-2956.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP 244: Transaction</text>
<text text-anchor="middle" x="116" y="-2941.8" font-family="Times,serif" font-size="14.00" fill="#000000">Identifier Non&#45;</text>
<text text-anchor="middle" x="116" y="-2926.8" font-family="Times,serif" font-size="14.00" fill="#000000">Malleability</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1567 -->
<g id="node71" class="node">
<title>ZcashFoundation/zebra#1567</title>
<g id="a_node71"><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="232,-3058.5 0,-3058.5 0,-3005.5 232,-3005.5 232,-3058.5"/>
<text text-anchor="middle" x="116" y="-3043.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1567</text>
<text text-anchor="middle" x="116" y="-3028.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;221: Block Header</text>
<text text-anchor="middle" x="116" y="-3013.3" font-family="Times,serif" font-size="14.00" fill="#000000">Chain History Commitment</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2015 -->
<g id="node72" class="node">
<title>ZcashFoundation/zebra#2015</title>
<g id="a_node72"><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="232,-3129.5 0,-3129.5 0,-3076.5 232,-3076.5 232,-3129.5"/>
<text text-anchor="middle" x="116" y="-3114.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2015</text>
<text text-anchor="middle" x="116" y="-3099.3" font-family="Times,serif" font-size="14.00" fill="#000000">Run coverage on the</text>
<text text-anchor="middle" x="116" y="-3084.3" font-family="Times,serif" font-size="14.00" fill="#000000">latest nightly</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2028 -->
<g id="node73" class="node">
<title>ZcashFoundation/zebra#2028</title>
<g id="a_node73"><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="232,-3216 0,-3216 0,-3148 232,-3148 232,-3216"/>
<text text-anchor="middle" x="116" y="-3200.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2028</text>
<text text-anchor="middle" x="116" y="-3185.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use the AtLeastOne</text>
<text text-anchor="middle" x="116" y="-3170.8" font-family="Times,serif" font-size="14.00" fill="#000000">generic type to enforce</text>
<text text-anchor="middle" x="116" y="-3155.8" font-family="Times,serif" font-size="14.00" fill="#000000">field counts</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1774 -->
<g id="node74" class="node">
<title>ZcashFoundation/zebra#1774</title>
<g id="a_node74"><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="232,-3302 0,-3302 0,-3234 232,-3234 232,-3302"/>
<text text-anchor="middle" x="116" y="-3286.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1774</text>
<text text-anchor="middle" x="116" y="-3271.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add a size estimator to</text>
<text text-anchor="middle" x="116" y="-3256.8" font-family="Times,serif" font-size="14.00" fill="#000000">the message encoder and</text>
<text text-anchor="middle" x="116" y="-3241.8" font-family="Times,serif" font-size="14.00" fill="#000000">serializers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2035 -->
<g id="node75" class="node">
<title>ZcashFoundation/zebra#2035</title>
<g id="a_node75"><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="232,-3373.5 0,-3373.5 0,-3369.5 -4,-3369.5 -4,-3365.5 0,-3365.5 0,-3328.5 -4,-3328.5 -4,-3324.5 0,-3324.5 0,-3320.5 232,-3320.5 232,-3373.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-3369.5 4,-3369.5 4,-3365.5 0,-3365.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-3328.5 4,-3328.5 4,-3324.5 0,-3324.5 "/>
<text text-anchor="middle" x="116" y="-3358.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2035</text>
<text text-anchor="middle" x="116" y="-3343.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add external_addr to</text>
<text text-anchor="middle" x="116" y="-3328.3" font-family="Times,serif" font-size="14.00" fill="#000000">config (network section)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2052 -->
<g id="node76" class="node">
<title>ZcashFoundation/zebra#2052</title>
<g id="a_node76"><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="500,-3381 268,-3381 268,-3313 500,-3313 500,-3381"/>
<text text-anchor="middle" x="384" y="-3365.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2052</text>
<text text-anchor="middle" x="384" y="-3350.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use default port for</text>
<text text-anchor="middle" x="384" y="-3335.8" font-family="Times,serif" font-size="14.00" fill="#000000">initial peers and</text>
<text text-anchor="middle" x="384" y="-3320.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="edge56" class="edge">
<title>ZcashFoundation/zebra#2035&#45;&gt;ZcashFoundation/zebra#2052</title>
<path fill="none" stroke="#000000" d="M232.38,-3347C240.71,-3347 249.14,-3347 257.53,-3347"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-3350.5001 267.74,-3347 257.74,-3343.5001 257.74,-3350.5001"/>
</g>
<!-- ZcashFoundation/zebra#2050 -->
<g id="node77" class="node">
<title>ZcashFoundation/zebra#2050</title>
<g id="a_node77"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2050" xlink:title="ZcashFoundation/zebra#2050&#10;ZIP&#45;244: Implement Non&#45;&#10;Malleable transaction ids" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-3523.5 268,-3523.5 268,-3470.5 500,-3470.5 500,-3523.5"/>
<text text-anchor="middle" x="384" y="-3508.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2050</text>
<text text-anchor="middle" x="384" y="-3493.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement Non&#45;</text>
<text text-anchor="middle" x="384" y="-3478.3" font-family="Times,serif" font-size="14.00" fill="#000000">Malleable transaction ids</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2051 -->
<g id="node78" class="node">
<title>ZcashFoundation/zebra#2051</title>
<g id="a_node78"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2051" xlink:title="ZcashFoundation/zebra#2051&#10;ZIP&#45;244: Implement&#10;sighash for Non&#45;Malleable&#10;Transaction Ids" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-3570 536,-3570 536,-3502 768,-3502 768,-3570"/>
<text text-anchor="middle" x="652" y="-3554.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2051</text>
<text text-anchor="middle" x="652" y="-3539.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;244: Implement</text>
<text text-anchor="middle" x="652" y="-3524.8" font-family="Times,serif" font-size="14.00" fill="#000000">sighash for Non&#45;Malleable</text>
<text text-anchor="middle" x="652" y="-3509.8" font-family="Times,serif" font-size="14.00" fill="#000000">Transaction Ids</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2051 -->
<g id="edge57" class="edge">
<title>ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2051</title>
<path fill="none" stroke="#000000" d="M500.38,-3513.9C508.81,-3515.2 517.33,-3516.4 525.81,-3517.6"/>
<polygon fill="#000000" stroke="#000000" points="525.3294,-3521.067 535.74,-3519.1 526.375,-3514.1455 525.3294,-3521.067"/>
</g>
<!-- ZcashFoundation/zebra#2165 -->
<g id="node79" class="node">
<title>ZcashFoundation/zebra#2165</title>
<g id="a_node79"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2165" xlink:title="ZcashFoundation/zebra#2165&#10;Add ZIP&#45;244 signature&#10;hash support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="768,-3483.5 536,-3483.5 536,-3479.5 532,-3479.5 532,-3475.5 536,-3475.5 536,-3438.5 532,-3438.5 532,-3434.5 536,-3434.5 536,-3430.5 768,-3430.5 768,-3483.5"/>
<polyline fill="none" stroke="#000000" points="536,-3479.5 540,-3479.5 540,-3475.5 536,-3475.5 "/>
<polyline fill="none" stroke="#000000" points="536,-3438.5 540,-3438.5 540,-3434.5 536,-3434.5 "/>
<text text-anchor="middle" x="652" y="-3468.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2165</text>
<text text-anchor="middle" x="652" y="-3453.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add ZIP&#45;244 signature</text>
<text text-anchor="middle" x="652" y="-3438.3" font-family="Times,serif" font-size="14.00" fill="#000000">hash support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2165 -->
<g id="edge58" class="edge">
<title>ZcashFoundation/zebra#2050&#45;&gt;ZcashFoundation/zebra#2165</title>
<path fill="none" stroke="#000000" d="M500.38,-3479.6C508.81,-3478.4 517.33,-3477.1 525.81,-3475.8"/>
<polygon fill="#000000" stroke="#000000" points="526.3266,-3479.2619 535.74,-3474.4 525.3493,-3472.3304 526.3266,-3479.2619"/>
</g>
<!-- ZcashFoundation/zebra#2115 -->
<g id="node80" class="node">
<title>ZcashFoundation/zebra#2115</title>
<g id="a_node80"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2115" xlink:title="ZcashFoundation/zebra#2115&#10;RFC for ZIP&#45;213: Shielded&#10;Coinbase rules for&#10;Heartwood" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-3610 0,-3610 0,-3542 232,-3542 232,-3610"/>
<text text-anchor="middle" x="116" y="-3594.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2115</text>
<text text-anchor="middle" x="116" y="-3579.8" font-family="Times,serif" font-size="14.00" fill="#000000">RFC for ZIP&#45;213: Shielded</text>
<text text-anchor="middle" x="116" y="-3564.8" font-family="Times,serif" font-size="14.00" fill="#000000">Coinbase rules for</text>
<text text-anchor="middle" x="116" y="-3549.8" font-family="Times,serif" font-size="14.00" fill="#000000">Heartwood</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#608 -->
<g id="node81" class="node">
<title>ZcashFoundation/zebra#608</title>
<g id="a_node81"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/608" xlink:title="ZcashFoundation/zebra#608&#10;ZIP&#45;213: Shielded&#10;Coinbase rules for&#10;Heartwood" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="495.5,-3610 272.5,-3610 272.5,-3542 495.5,-3542 495.5,-3610"/>
<text text-anchor="middle" x="384" y="-3594.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#608</text>
<text text-anchor="middle" x="384" y="-3579.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;213: Shielded</text>
<text text-anchor="middle" x="384" y="-3564.8" font-family="Times,serif" font-size="14.00" fill="#000000">Coinbase rules for</text>
<text text-anchor="middle" x="384" y="-3549.8" font-family="Times,serif" font-size="14.00" fill="#000000">Heartwood</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2115&#45;&gt;ZcashFoundation/zebra#608 -->
<g id="edge59" class="edge">
<title>ZcashFoundation/zebra#2115&#45;&gt;ZcashFoundation/zebra#608</title>
<path fill="none" stroke="#000000" d="M232.38,-3576C242.23,-3576 252.22,-3576 262.11,-3576"/>
<polygon fill="#000000" stroke="#000000" points="262.39,-3579.5001 272.39,-3576 262.39,-3572.5001 262.39,-3579.5001"/>
</g>
<!-- ZcashFoundation/zebra#2152 -->
<g id="node82" class="node">
<title>ZcashFoundation/zebra#2152</title>
<g id="a_node82"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2152" xlink:title="ZcashFoundation/zebra#2152&#10;ZIP&#45;209 RFC: Value Pools&#10;Implementation" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-3696.5 0,-3696.5 0,-3643.5 232,-3643.5 232,-3696.5"/>
<text text-anchor="middle" x="116" y="-3681.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2152</text>
<text text-anchor="middle" x="116" y="-3666.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209 RFC: Value Pools</text>
<text text-anchor="middle" x="116" y="-3651.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#1895 -->
<g id="node83" class="node">
<title>ZcashFoundation/zebra#1895</title>
<g id="a_node83"><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="500,-3711.5 268,-3711.5 268,-3628.5 500,-3628.5 500,-3711.5"/>
<text text-anchor="middle" x="384" y="-3696.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1895</text>
<text text-anchor="middle" x="384" y="-3681.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZIP&#45;209: Prohibit</text>
<text text-anchor="middle" x="384" y="-3666.3" font-family="Times,serif" font-size="14.00" fill="#000000">Negative Shielded Chain</text>
<text text-anchor="middle" x="384" y="-3651.3" font-family="Times,serif" font-size="14.00" fill="#000000">Value Pool Balances &#45;</text>
<text text-anchor="middle" x="384" y="-3636.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implementation</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2152&#45;&gt;ZcashFoundation/zebra#1895 -->
<g id="edge60" class="edge">
<title>ZcashFoundation/zebra#2152&#45;&gt;ZcashFoundation/zebra#1895</title>
<path fill="none" stroke="#000000" d="M232.38,-3670C240.71,-3670 249.14,-3670 257.53,-3670"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-3673.5001 267.74,-3670 257.74,-3666.5001 257.74,-3673.5001"/>
</g>
<!-- ZcashFoundation/zebra#1973 -->
<g id="node84" class="node">
<title>ZcashFoundation/zebra#1973</title>
<g id="a_node84"><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="232,-3797.5 0,-3797.5 0,-3744.5 232,-3744.5 232,-3797.5"/>
<text text-anchor="middle" x="116" y="-3782.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#1973</text>
<text text-anchor="middle" x="116" y="-3767.3" font-family="Times,serif" font-size="14.00" fill="#000000">Automatically invalidate</text>
<text text-anchor="middle" x="116" y="-3752.3" font-family="Times,serif" font-size="14.00" fill="#000000">preselected peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2156 -->
<g id="node85" class="node">
<title>ZcashFoundation/zebra#2156</title>
<g id="a_node85"><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="500,-3812.5 268,-3812.5 268,-3729.5 500,-3729.5 500,-3812.5"/>
<text text-anchor="middle" x="384" y="-3797.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2156</text>
<text text-anchor="middle" x="384" y="-3782.3" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Send notfound</text>
<text text-anchor="middle" x="384" y="-3767.3" font-family="Times,serif" font-size="14.00" fill="#000000">inv items to the inv</text>
<text text-anchor="middle" x="384" y="-3752.3" font-family="Times,serif" font-size="14.00" fill="#000000">collector, Credit:</text>
<text text-anchor="middle" x="384" y="-3737.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="edge61" class="edge">
<title>ZcashFoundation/zebra#1973&#45;&gt;ZcashFoundation/zebra#2156</title>
<path fill="none" stroke="#000000" d="M232.38,-3771C240.71,-3771 249.14,-3771 257.53,-3771"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-3774.5001 267.74,-3771 257.74,-3767.5001 257.74,-3774.5001"/>
</g>
<!-- ZcashFoundation/zebra#2160 -->
<g id="node86" class="node">
<title>ZcashFoundation/zebra#2160</title>
<g id="a_node86"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2160" xlink:title="ZcashFoundation/zebra#2160&#10;Security: MetaAddr&#10;refactor, gossip time,&#10;connection order,&#10;reconnection rate fixes&#10;(see tickets)" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-3914 0,-3914 0,-3910 -4,-3910 -4,-3906 0,-3906 0,-3824 -4,-3824 -4,-3820 0,-3820 0,-3816 232,-3816 232,-3914"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-3910 4,-3910 4,-3906 0,-3906 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-3824 4,-3824 4,-3820 0,-3820 "/>
<text text-anchor="middle" x="116" y="-3898.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2160</text>
<text text-anchor="middle" x="116" y="-3883.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: MetaAddr</text>
<text text-anchor="middle" x="116" y="-3868.8" font-family="Times,serif" font-size="14.00" fill="#000000">refactor, gossip time,</text>
<text text-anchor="middle" x="116" y="-3853.8" font-family="Times,serif" font-size="14.00" fill="#000000">connection order,</text>
<text text-anchor="middle" x="116" y="-3838.8" font-family="Times,serif" font-size="14.00" fill="#000000">reconnection rate fixes</text>
<text text-anchor="middle" x="116" y="-3823.8" font-family="Times,serif" font-size="14.00" fill="#000000">(see tickets)</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829 -->
<g id="node87" class="node">
<title>ZcashFoundation/zebra#829</title>
<g id="a_node87"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/829" xlink:title="ZcashFoundation/zebra#829&#10;Replace `primitive_types`&#10;with `bigint`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="227.5,-3523.5 4.5,-3523.5 4.5,-3470.5 227.5,-3470.5 227.5,-3523.5"/>
<text text-anchor="middle" x="116" y="-3508.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#829</text>
<text text-anchor="middle" x="116" y="-3493.3" font-family="Times,serif" font-size="14.00" fill="#000000">Replace `primitive_types`</text>
<text text-anchor="middle" x="116" y="-3478.3" font-family="Times,serif" font-size="14.00" fill="#000000">with `bigint`</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2050 -->
<g id="edge62" class="edge">
<title>ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2050</title>
<path fill="none" stroke="#000000" d="M227.72,-3497C237.52,-3497 247.49,-3497 257.41,-3497"/>
<polygon fill="#000000" stroke="#000000" points="257.71,-3500.5001 267.71,-3497 257.71,-3493.5001 257.71,-3500.5001"/>
</g>
<!-- ZcashFoundation/zebra#2129 -->
<g id="node88" class="node">
<title>ZcashFoundation/zebra#2129</title>
<g id="a_node88"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2129" xlink:title="ZcashFoundation/zebra#2129&#10;Add ZIP&#45;0244 TxId Digest&#10;support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-3452.5 268,-3452.5 268,-3448.5 264,-3448.5 264,-3444.5 268,-3444.5 268,-3407.5 264,-3407.5 264,-3403.5 268,-3403.5 268,-3399.5 500,-3399.5 500,-3452.5"/>
<polyline fill="none" stroke="#000000" points="268,-3448.5 272,-3448.5 272,-3444.5 268,-3444.5 "/>
<polyline fill="none" stroke="#000000" points="268,-3407.5 272,-3407.5 272,-3403.5 268,-3403.5 "/>
<text text-anchor="middle" x="384" y="-3437.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2129</text>
<text text-anchor="middle" x="384" y="-3422.3" font-family="Times,serif" font-size="14.00" fill="#000000">Add ZIP&#45;0244 TxId Digest</text>
<text text-anchor="middle" x="384" y="-3407.3" font-family="Times,serif" font-size="14.00" fill="#000000">support</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2129 -->
<g id="edge63" class="edge">
<title>ZcashFoundation/zebra#829&#45;&gt;ZcashFoundation/zebra#2129</title>
<path fill="none" stroke="#000000" d="M216.17,-3470.5C235.13,-3465.4 255.04,-3460.2 274.27,-3455.1"/>
<polygon fill="#000000" stroke="#000000" points="275.2002,-3458.4743 283.95,-3452.5 273.3844,-3451.7139 275.2002,-3458.4743"/>
</g>
<!-- ZcashFoundation/zebra#2292 -->
<g id="node89" class="node">
<title>ZcashFoundation/zebra#2292</title>
<g id="a_node89"><a xlink:href="https://github.com/ZcashFoundation/zebra/issues/2292" xlink:title="ZcashFoundation/zebra#2292&#10;Cleanup MetaAddr after&#10;security fixes" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-4071.5 268,-4071.5 268,-4018.5 500,-4018.5 500,-4071.5"/>
<text text-anchor="middle" x="384" y="-4056.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2292</text>
<text text-anchor="middle" x="384" y="-4041.3" font-family="Times,serif" font-size="14.00" fill="#000000">Cleanup MetaAddr after</text>
<text text-anchor="middle" x="384" y="-4026.3" font-family="Times,serif" font-size="14.00" fill="#000000">security fixes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2275 -->
<g id="node90" class="node">
<title>ZcashFoundation/zebra#2275</title>
<g id="a_node90"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2275" xlink:title="ZcashFoundation/zebra#2275&#10;Security: Limit&#10;reconnection rate to&#10;individual peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-4000 0,-4000 0,-3996 -4,-3996 -4,-3992 0,-3992 0,-3940 -4,-3940 -4,-3936 0,-3936 0,-3932 232,-3932 232,-4000"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-3996 4,-3996 4,-3992 0,-3992 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-3940 4,-3940 4,-3936 0,-3936 "/>
<text text-anchor="middle" x="116" y="-3984.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2275</text>
<text text-anchor="middle" x="116" y="-3969.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Limit</text>
<text text-anchor="middle" x="116" y="-3954.8" font-family="Times,serif" font-size="14.00" fill="#000000">reconnection rate to</text>
<text text-anchor="middle" x="116" y="-3939.8" font-family="Times,serif" font-size="14.00" fill="#000000">individual peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2275&#45;&gt;ZcashFoundation/zebra#2292 -->
<g id="edge64" class="edge">
<title>ZcashFoundation/zebra#2275&#45;&gt;ZcashFoundation/zebra#2292</title>
<path fill="none" stroke="#000000" d="M231.6,-4000.1C249.01,-4005.2 266.84,-4010.5 283.89,-4015.5"/>
<polygon fill="#000000" stroke="#000000" points="283.2499,-4018.9591 293.83,-4018.4 285.2105,-4012.2393 283.2499,-4018.9591"/>
</g>
<!-- ZcashFoundation/zebra#2293 -->
<g id="node91" class="node">
<title>ZcashFoundation/zebra#2293</title>
<g id="a_node91"><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" points="500,-3992.5 268,-3992.5 268,-3939.5 500,-3939.5 500,-3992.5"/>
<text text-anchor="middle" x="384" y="-3977.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2293</text>
<text text-anchor="middle" x="384" y="-3962.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch MetaAddrChanges and</text>
<text text-anchor="middle" x="384" y="-3947.3" font-family="Times,serif" font-size="14.00" fill="#000000">remove identical changes</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2275&#45;&gt;ZcashFoundation/zebra#2293 -->
<g id="edge65" class="edge">
<title>ZcashFoundation/zebra#2275&#45;&gt;ZcashFoundation/zebra#2293</title>
<path fill="none" stroke="#000000" d="M232.38,-3966C240.71,-3966 249.14,-3966 257.53,-3966"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-3969.5001 267.74,-3966 257.74,-3962.5001 257.74,-3969.5001"/>
</g>
<!-- ZcashFoundation/zebra#2276 -->
<g id="node92" class="node">
<title>ZcashFoundation/zebra#2276</title>
<g id="a_node92"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2276" xlink:title="ZcashFoundation/zebra#2276&#10;Always send our local&#10;listener with the latest&#10;time" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-4158 0,-4158 0,-4154 -4,-4154 -4,-4150 0,-4150 0,-4098 -4,-4098 -4,-4094 0,-4094 0,-4090 232,-4090 232,-4158"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-4154 4,-4154 4,-4150 0,-4150 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-4098 4,-4098 4,-4094 0,-4094 "/>
<text text-anchor="middle" x="116" y="-4142.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2276</text>
<text text-anchor="middle" x="116" y="-4127.8" font-family="Times,serif" font-size="14.00" fill="#000000">Always send our local</text>
<text text-anchor="middle" x="116" y="-4112.8" font-family="Times,serif" font-size="14.00" fill="#000000">listener with the latest</text>
<text text-anchor="middle" x="116" y="-4097.8" font-family="Times,serif" font-size="14.00" fill="#000000">time</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2276&#45;&gt;ZcashFoundation/zebra#2292 -->
<g id="edge66" class="edge">
<title>ZcashFoundation/zebra#2276&#45;&gt;ZcashFoundation/zebra#2292</title>
<path fill="none" stroke="#000000" d="M231.6,-4089.9C249.01,-4084.8 266.84,-4079.5 283.89,-4074.5"/>
<polygon fill="#000000" stroke="#000000" points="285.2105,-4077.7607 293.83,-4071.6 283.2499,-4071.0409 285.2105,-4077.7607"/>
</g>
<!-- ZcashFoundation/zebra#2277 -->
<g id="node93" class="node">
<title>ZcashFoundation/zebra#2277</title>
<g id="a_node93"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2277" xlink:title="ZcashFoundation/zebra#2277&#10;Gossip dynamic local&#10;listener ports to peers" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-4071.5 0,-4071.5 0,-4067.5 -4,-4067.5 -4,-4063.5 0,-4063.5 0,-4026.5 -4,-4026.5 -4,-4022.5 0,-4022.5 0,-4018.5 232,-4018.5 232,-4071.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-4067.5 4,-4067.5 4,-4063.5 0,-4063.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-4026.5 4,-4026.5 4,-4022.5 0,-4022.5 "/>
<text text-anchor="middle" x="116" y="-4056.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2277</text>
<text text-anchor="middle" x="116" y="-4041.3" font-family="Times,serif" font-size="14.00" fill="#000000">Gossip dynamic local</text>
<text text-anchor="middle" x="116" y="-4026.3" font-family="Times,serif" font-size="14.00" fill="#000000">listener ports to peers</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2277&#45;&gt;ZcashFoundation/zebra#2292 -->
<g id="edge67" class="edge">
<title>ZcashFoundation/zebra#2277&#45;&gt;ZcashFoundation/zebra#2292</title>
<path fill="none" stroke="#000000" d="M232.38,-4045C240.71,-4045 249.14,-4045 257.53,-4045"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-4048.5001 267.74,-4045 257.74,-4041.5001 257.74,-4048.5001"/>
</g>
<!-- ZcashFoundation/zebra#2262 -->
<g id="node94" class="node">
<title>ZcashFoundation/zebra#2262</title>
<g id="a_node94"><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="232,-2900.5 0,-2900.5 0,-2817.5 232,-2817.5 232,-2900.5"/>
<text text-anchor="middle" x="116" y="-2885.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2262</text>
<text text-anchor="middle" x="116" y="-2870.3" font-family="Times,serif" font-size="14.00" fill="#000000">After network upgrade</text>
<text text-anchor="middle" x="116" y="-2855.3" font-family="Times,serif" font-size="14.00" fill="#000000">activation, close</text>
<text text-anchor="middle" x="116" y="-2840.3" font-family="Times,serif" font-size="14.00" fill="#000000">existing connections to</text>
<text text-anchor="middle" x="116" y="-2825.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="edge68" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#1334</title>
<path fill="none" stroke="#000000" d="M226.17,-2900.5C238.71,-2905.2 251.53,-2910.1 264.19,-2914.8"/>
<polygon fill="#000000" stroke="#000000" points="263.2399,-2918.1842 273.83,-2918.5 265.7482,-2911.6491 263.2399,-2918.1842"/>
</g>
<!-- ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge69" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M232.16,-2868.5C244.26,-2869.4 256.38,-2870.3 268,-2871 355.65,-2876.6 454.66,-2881.5 530.18,-2884.9"/>
<polygon fill="#000000" stroke="#000000" points="530.0784,-2888.3986 540.21,-2885.3 530.3574,-2881.4042 530.0784,-2888.3986"/>
</g>
<!-- ZcashFoundation/zebra#2261 -->
<g id="node95" class="node">
<title>ZcashFoundation/zebra#2261</title>
<g id="a_node95"><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="500,-2862 268,-2862 268,-2794 500,-2794 500,-2862"/>
<text text-anchor="middle" x="384" y="-2846.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2261</text>
<text text-anchor="middle" x="384" y="-2831.8" font-family="Times,serif" font-size="14.00" fill="#000000">Stop sending addresses of</text>
<text text-anchor="middle" x="384" y="-2816.8" font-family="Times,serif" font-size="14.00" fill="#000000">outdated peers to other</text>
<text text-anchor="middle" x="384" y="-2801.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="edge70" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2261</title>
<path fill="none" stroke="#000000" d="M232.38,-2845.5C240.71,-2844.6 249.14,-2843.6 257.53,-2842.6"/>
<polygon fill="#000000" stroke="#000000" points="258.2169,-2846.0434 267.74,-2841.4 257.3998,-2839.0913 258.2169,-2846.0434"/>
</g>
<!-- ZcashFoundation/zebra#2107 -->
<g id="node96" class="node">
<title>ZcashFoundation/zebra#2107</title>
<g id="a_node96"><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="500,-2776 268,-2776 268,-2678 500,-2678 500,-2776"/>
<text text-anchor="middle" x="384" y="-2760.8" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2107</text>
<text text-anchor="middle" x="384" y="-2745.8" font-family="Times,serif" font-size="14.00" fill="#000000">Security: Stop</text>
<text text-anchor="middle" x="384" y="-2730.8" font-family="Times,serif" font-size="14.00" fill="#000000">immediately disconnecting</text>
<text text-anchor="middle" x="384" y="-2715.8" font-family="Times,serif" font-size="14.00" fill="#000000">from nodes that send</text>
<text text-anchor="middle" x="384" y="-2700.8" font-family="Times,serif" font-size="14.00" fill="#000000">unexpected messages,</text>
<text text-anchor="middle" x="384" y="-2685.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="edge71" class="edge">
<title>ZcashFoundation/zebra#2262&#45;&gt;ZcashFoundation/zebra#2107</title>
<path fill="none" stroke="#000000" d="M213.68,-2817.4C219.93,-2814.3 226.08,-2811.2 232,-2808 248.74,-2799 251.49,-2794.4 268,-2785 270.27,-2783.7 272.57,-2782.4 274.9,-2781.1"/>
<polygon fill="#000000" stroke="#000000" points="276.8418,-2784.0293 283.98,-2776.2 273.5174,-2777.869 276.8418,-2784.0293"/>
</g>
<!-- ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706 -->
<g id="edge72" class="edge">
<title>ZcashFoundation/zebra#2107&#45;&gt;ZcashFoundation/zebra#706</title>
<path fill="none" stroke="#000000" d="M484.45,-2776.1C489.75,-2779 494.96,-2782 500,-2785 529.52,-2802.5 560.9,-2823.7 587.43,-2842.4"/>
<polygon fill="#000000" stroke="#000000" points="585.6917,-2845.4585 595.87,-2848.4 589.7476,-2839.7532 585.6917,-2845.4585"/>
</g>
<!-- ZcashFoundation/zebra#2288 -->
<g id="node97" class="node">
<title>ZcashFoundation/zebra#2288</title>
<g id="a_node97"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2288" xlink:title="ZcashFoundation/zebra#2288&#10;Batch math &amp; variable&#45;&#10;time multiscalar&#10;multiplication for&#10;redpallas" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="232,-4259.5 0,-4259.5 0,-4255.5 -4,-4255.5 -4,-4251.5 0,-4251.5 0,-4184.5 -4,-4184.5 -4,-4180.5 0,-4180.5 0,-4176.5 232,-4176.5 232,-4259.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-4255.5 4,-4255.5 4,-4251.5 0,-4251.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="0,-4184.5 4,-4184.5 4,-4180.5 0,-4180.5 "/>
<text text-anchor="middle" x="116" y="-4244.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2288</text>
<text text-anchor="middle" x="116" y="-4229.3" font-family="Times,serif" font-size="14.00" fill="#000000">Batch math &amp; variable&#45;</text>
<text text-anchor="middle" x="116" y="-4214.3" font-family="Times,serif" font-size="14.00" fill="#000000">time multiscalar</text>
<text text-anchor="middle" x="116" y="-4199.3" font-family="Times,serif" font-size="14.00" fill="#000000">multiplication for</text>
<text text-anchor="middle" x="116" y="-4184.3" font-family="Times,serif" font-size="14.00" fill="#000000">redpallas</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2318 -->
<g id="node98" class="node">
<title>ZcashFoundation/zebra#2318</title>
<g id="a_node98"><a xlink:href="https://github.com/ZcashFoundation/zebra/pull/2318" xlink:title="ZcashFoundation/zebra#2318&#10;RedPallas async verifier&#10;service" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="500,-4244.5 268,-4244.5 268,-4240.5 264,-4240.5 264,-4236.5 268,-4236.5 268,-4199.5 264,-4199.5 264,-4195.5 268,-4195.5 268,-4191.5 500,-4191.5 500,-4244.5"/>
<polyline fill="none" stroke="#000000" points="268,-4240.5 272,-4240.5 272,-4236.5 268,-4236.5 "/>
<polyline fill="none" stroke="#000000" points="268,-4199.5 272,-4199.5 272,-4195.5 268,-4195.5 "/>
<text text-anchor="middle" x="384" y="-4229.3" font-family="Times,serif" font-size="14.00" fill="#000000">ZcashFoundation/zebra#2318</text>
<text text-anchor="middle" x="384" y="-4214.3" font-family="Times,serif" font-size="14.00" fill="#000000">RedPallas async verifier</text>
<text text-anchor="middle" x="384" y="-4199.3" font-family="Times,serif" font-size="14.00" fill="#000000">service</text>
</a>
</g>
</g>
<!-- ZcashFoundation/zebra#2288&#45;&gt;ZcashFoundation/zebra#2318 -->
<g id="edge73" class="edge">
<title>ZcashFoundation/zebra#2288&#45;&gt;ZcashFoundation/zebra#2318</title>
<path fill="none" stroke="#000000" d="M232.38,-4218C240.71,-4218 249.14,-4218 257.53,-4218"/>
<polygon fill="#000000" stroke="#000000" points="257.74,-4221.5001 267.74,-4218 257.74,-4214.5001 257.74,-4221.5001"/>
</g>
</g>
</svg>